diff --git a/CHANGELOG.md b/CHANGELOG.md index 55c2eeb3..c45e5a46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [15.9] - 2023-10-14 +- New: Disable CoPilot AI (in Windows 11) +- New: Fully translated into Bulgarian +- New: 'Reinforce policies' in Options re-applies your current enabled tweaks (#389) +- Hotfix: Crash on localized versions of Windows (#383) +- Hotfix: Various UI bugs +- Improved: Optimized images and assets +- Improved: Startup items detection + ## [15.8] - 2023-08-26 - New: Fully translated into Nepali (thanks to chapagetti) - New: You can now set custom DNS in Pinger, as well as from template diff --git a/Optimizer/Constants.cs b/Optimizer/Constants.cs index 83df1125..a2f95f92 100644 --- a/Optimizer/Constants.cs +++ b/Optimizer/Constants.cs @@ -3,7 +3,9 @@ internal static class Constants { internal static string DOWNLOADS_FOLDER = "OptimizerDownloads"; - internal static string InternalDNS = "1.1.1.1"; + internal static string INTERNAL_DNS = "1.1.1.1"; + internal static string THEME_FLAG = "themeable"; + internal static int CONTRAST_THRESHOLD = 149; internal static string INDICIUM_TOOL = "indicium"; internal static string UWP_TOOL = "uwp"; @@ -37,6 +39,7 @@ internal static class Constants internal static string JAPANESE = "日本語"; internal static string PERSIAN = "فارسی"; internal static string NEPALI = "नेपाली"; + internal static string BULGARIAN = "български"; internal static string CloudflareDNS = "Cloudflare"; internal static string OpenDNS = "OpenDNS"; diff --git a/Optimizer/Controls/MoonCheck.cs b/Optimizer/Controls/MoonCheck.cs index 4cd87765..9a6b76f2 100644 --- a/Optimizer/Controls/MoonCheck.cs +++ b/Optimizer/Controls/MoonCheck.cs @@ -21,7 +21,7 @@ protected override void OnCheckedChanged(EventArgs e) this.Tag = "themeable"; this.Font = new Font(this.Font, FontStyle.Underline); - this.ForeColor = Options.ForegroundColor; + this.ForeColor = OptionsHelper.ForegroundColor; } else { diff --git a/Optimizer/Controls/MoonCheckList.cs b/Optimizer/Controls/MoonCheckList.cs index 9b5bde89..f6f461c9 100644 --- a/Optimizer/Controls/MoonCheckList.cs +++ b/Optimizer/Controls/MoonCheckList.cs @@ -13,7 +13,7 @@ public MoonCheckList() protected override void OnDrawItem(DrawItemEventArgs e) { Color foreColor = Color.White; - Color accentColor = Options.ForegroundColor; + Color accentColor = OptionsHelper.ForegroundColor; if (this.Items.Count > 0) { diff --git a/Optimizer/Controls/MoonMenuRenderer.cs b/Optimizer/Controls/MoonMenuRenderer.cs index 6bd4bf5a..80f1b3ab 100644 --- a/Optimizer/Controls/MoonMenuRenderer.cs +++ b/Optimizer/Controls/MoonMenuRenderer.cs @@ -51,7 +51,7 @@ public override Color ToolStripDropDownBackground { get { - return Options.BackgroundColor; + return OptionsHelper.BackgroundColor; } } @@ -59,21 +59,21 @@ public override Color ImageMarginGradientBegin { get { - return Options.BackgroundColor; + return OptionsHelper.BackgroundColor; } } public override Color ImageMarginGradientMiddle { get { - return Options.BackgroundColor; + return OptionsHelper.BackgroundColor; } } public override Color ImageMarginGradientEnd { get { - return Options.BackgroundColor; + return OptionsHelper.BackgroundColor; } } @@ -81,7 +81,7 @@ public override Color ToolStripBorder { get { - return Options.BackgroundColor; + return OptionsHelper.BackgroundColor; } } @@ -89,7 +89,7 @@ public override Color MenuBorder { get { - return Options.BackAccentColor; + return OptionsHelper.BackAccentColor; } } @@ -97,7 +97,7 @@ public override Color MenuItemSelected { get { - return Options.BackAccentColor; + return OptionsHelper.BackAccentColor; } } @@ -105,7 +105,7 @@ public override Color MenuItemSelectedGradientBegin { get { - return Options.BackAccentColor; + return OptionsHelper.BackAccentColor; } } @@ -113,7 +113,7 @@ public override Color MenuItemSelectedGradientEnd { get { - return Options.BackAccentColor; + return OptionsHelper.BackAccentColor; } } @@ -121,7 +121,7 @@ public override Color MenuItemBorder { get { - return Options.BackAccentColor; + return OptionsHelper.BackAccentColor; } } } diff --git a/Optimizer/Controls/MoonProgress.cs b/Optimizer/Controls/MoonProgress.cs index c474345d..d135022e 100644 --- a/Optimizer/Controls/MoonProgress.cs +++ b/Optimizer/Controls/MoonProgress.cs @@ -22,7 +22,7 @@ protected override void OnPaint(PaintEventArgs e) rec.Width = (int)(rec.Width * ((double)base.Value / Maximum)) - 4; rec.Height -= 4; - brush = new LinearGradientBrush(rec, Options.ForegroundAccentColor, Options.ForegroundColor, LinearGradientMode.Vertical); + brush = new LinearGradientBrush(rec, OptionsHelper.ForegroundAccentColor, OptionsHelper.ForegroundColor, LinearGradientMode.Vertical); e.Graphics.FillRectangle(brush, 2, 2, rec.Width, rec.Height); } } diff --git a/Optimizer/Controls/MoonRadio.cs b/Optimizer/Controls/MoonRadio.cs index e614fbb9..a4623d12 100644 --- a/Optimizer/Controls/MoonRadio.cs +++ b/Optimizer/Controls/MoonRadio.cs @@ -21,7 +21,7 @@ protected override void OnCheckedChanged(EventArgs e) this.Tag = "themeable"; this.Font = new Font(this.Font, FontStyle.Underline); - this.ForeColor = Options.ForegroundColor; + this.ForeColor = OptionsHelper.ForegroundColor; } else { diff --git a/Optimizer/Controls/MoonTabs.cs b/Optimizer/Controls/MoonTabs.cs index 29162d1a..531e1ad9 100644 --- a/Optimizer/Controls/MoonTabs.cs +++ b/Optimizer/Controls/MoonTabs.cs @@ -172,7 +172,7 @@ protected override void OnPaint(PaintEventArgs e) if (TabCount > 0) { using (SolidBrush brushBackgroundTab = new SolidBrush(Color.FromArgb(40, 40, 40))) - using (SolidBrush brushDivider = new SolidBrush(Options.ForegroundColor)) + using (SolidBrush brushDivider = new SolidBrush(OptionsHelper.ForegroundColor)) { { e.Graphics.FillRectangle(brushBackgroundTab, DisplayRectangle); @@ -206,16 +206,16 @@ protected override void OnPaint(PaintEventArgs e) SolidBrush brushActiveText; - using (Pen penActive = new Pen(Options.ForegroundColor)) + using (Pen penActive = new Pen(OptionsHelper.ForegroundColor)) using (Pen penBorder = new Pen(Color.FromArgb(40, 40, 40), 0)) - using (SolidBrush brushActive = new SolidBrush(Options.ForegroundColor)) + using (SolidBrush brushActive = new SolidBrush(OptionsHelper.ForegroundColor)) using (SolidBrush brushInActive = new SolidBrush(Color.FromArgb(40, 40, 40))) - using (SolidBrush brushAlternative = new SolidBrush(Options.ForegroundColor)) - using (SolidBrush brushActiveIndicator = new SolidBrush(ControlPaint.Light(Options.ForegroundColor))) - using (SolidBrush brushInActiveIndicator = new SolidBrush(Options.ForegroundColor)) - using (brushActiveText = new SolidBrush(Options.TextColor)) + using (SolidBrush brushAlternative = new SolidBrush(OptionsHelper.ForegroundColor)) + using (SolidBrush brushActiveIndicator = new SolidBrush(ControlPaint.Light(OptionsHelper.ForegroundColor))) + using (SolidBrush brushInActiveIndicator = new SolidBrush(OptionsHelper.ForegroundColor)) + using (brushActiveText = new SolidBrush(OptionsHelper.TextColor)) using (SolidBrush brushInActiveText = new SolidBrush(Color.White)) - using (SolidBrush brushDrag = new SolidBrush(ControlPaint.Dark(Options.ForegroundColor))) + using (SolidBrush brushDrag = new SolidBrush(ControlPaint.Dark(OptionsHelper.ForegroundColor))) { //if (MoonManager.THEME_PREFERENCE == THEME.LIGHT) brushActiveText = new SolidBrush(Color.White); diff --git a/Optimizer/Controls/MoonToggle.cs b/Optimizer/Controls/MoonToggle.cs index 980a338c..6f348d5b 100644 --- a/Optimizer/Controls/MoonToggle.cs +++ b/Optimizer/Controls/MoonToggle.cs @@ -58,17 +58,17 @@ protected override void OnPaint(PaintEventArgs pevent) if (this.Checked) //ON { if (solidStyle) - pevent.Graphics.FillPath(new SolidBrush(Options.ForegroundColor), GetFigurePath()); - else pevent.Graphics.DrawPath(new Pen(Options.ForegroundColor, 2), GetFigurePath()); + pevent.Graphics.FillPath(new SolidBrush(OptionsHelper.ForegroundColor), GetFigurePath()); + else pevent.Graphics.DrawPath(new Pen(OptionsHelper.ForegroundColor, 2), GetFigurePath()); //Draw the toggle - pevent.Graphics.FillEllipse(new SolidBrush(Options.TextColor), + pevent.Graphics.FillEllipse(new SolidBrush(OptionsHelper.TextColor), new Rectangle(this.Width - this.Height + 1, 2, toggleSize, toggleSize)); } else //OFF { if (solidStyle) - pevent.Graphics.FillPath(new SolidBrush(Options.BackAccentColor), GetFigurePath()); - else pevent.Graphics.DrawPath(new Pen(Options.BackAccentColor, 2), GetFigurePath()); + pevent.Graphics.FillPath(new SolidBrush(OptionsHelper.BackAccentColor), GetFigurePath()); + else pevent.Graphics.DrawPath(new Pen(OptionsHelper.BackAccentColor, 2), GetFigurePath()); //Draw the toggle pevent.Graphics.FillEllipse(new SolidBrush(Color.White), new Rectangle(2, 2, toggleSize, toggleSize)); diff --git a/Optimizer/Controls/MoonTree.cs b/Optimizer/Controls/MoonTree.cs index 4aecf3a2..e338d1b6 100644 --- a/Optimizer/Controls/MoonTree.cs +++ b/Optimizer/Controls/MoonTree.cs @@ -49,7 +49,7 @@ protected override void OnDrawNode(DrawTreeNodeEventArgs e) } if (FindName(e.Node.Name)) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Color.Silver); - else if (e.Node.Tag != null && e.Node.Tag.ToString() == _primaryItemTag) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Options.ForegroundColor); + else if (e.Node.Tag != null && e.Node.Tag.ToString() == _primaryItemTag) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, OptionsHelper.ForegroundColor); else TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Color.White); if (this.ImageList != null && this.ImageList.Images.Count > 0 && e.Node.SelectedImageIndex > -1) diff --git a/Optimizer/DebugHelper.cs b/Optimizer/DebugHelper.cs new file mode 100644 index 00000000..abbea3b9 --- /dev/null +++ b/Optimizer/DebugHelper.cs @@ -0,0 +1,31 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Optimizer +{ + // Collection of useful debugging methods and utilities + internal sealed class DebugHelper + { + // For comparing and detecting missing properties in two translation JSON files + internal static void FindDifferenceInTwoJsons() + { + JObject file1 = JObject.Parse(Properties.Resources.EN); + JObject file2 = JObject.Parse(Properties.Resources.NE); + + var p1 = file1.Properties().ToList(); + var p2 = file2.Properties().ToList(); + + var missingProps = p1.Where(expected => p2.Where(actual => actual.Name == expected.Name).Count() == 0); + + StringBuilder sb = new StringBuilder(); + foreach (var x in missingProps) + { + sb.Append(x.Name + Environment.NewLine); + } + MessageBox.Show(sb.ToString()); + } + } +} diff --git a/Optimizer/EmbeddedAssembly.cs b/Optimizer/EmbeddedAssembly.cs index f9ece8eb..86c4885c 100644 --- a/Optimizer/EmbeddedAssembly.cs +++ b/Optimizer/EmbeddedAssembly.cs @@ -20,7 +20,7 @@ internal static void Load(string embeddedResource, string fileName) using (Stream stream = currentAssembly.GetManifestResourceStream(embeddedResource)) { - if (stream == null) throw new Exception(embeddedResource + " is not found in Embedded Resources."); + if (stream == null) throw new Exception($"{embeddedResource} is not found in Embedded Resources."); bytes = new byte[(int)stream.Length]; stream.Read(bytes, 0, (int)stream.Length); @@ -69,16 +69,13 @@ internal static void Load(string embeddedResource, string fileName) } assembly = Assembly.LoadFile(tempFile); - _dictionary.Add(assembly.FullName, assembly); } internal static Assembly Get(string assemblyFullName) { if (_dictionary == null || _dictionary.Count == 0) return null; - if (_dictionary.ContainsKey(assemblyFullName)) return _dictionary[assemblyFullName]; - return null; } } diff --git a/Optimizer/ErrorLogger.cs b/Optimizer/ErrorLogger.cs index 72c8d885..93853d46 100644 --- a/Optimizer/ErrorLogger.cs +++ b/Optimizer/ErrorLogger.cs @@ -27,7 +27,7 @@ internal static void LogInfoSilent(string message) _silentReportLog.AppendLine(); } - internal static void InitSilentReport() + internal static void InitializeSilentReport() { _silentReportLog = new StringBuilder(); diff --git a/Optimizer/Forms/AboutForm.cs b/Optimizer/Forms/AboutForm.cs index c276a45e..d4883e5a 100644 --- a/Optimizer/Forms/AboutForm.cs +++ b/Optimizer/Forms/AboutForm.cs @@ -9,9 +9,9 @@ public sealed partial class AboutForm : Form public AboutForm() { InitializeComponent(); - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); - pictureBox1.BackColor = Options.CurrentOptions.Theme; + pictureBox1.BackColor = OptionsHelper.CurrentOptions.Theme; } private void About_Load(object sender, EventArgs e) diff --git a/Optimizer/Forms/FileUnlockForm.cs b/Optimizer/Forms/FileUnlockForm.cs index a59e6a3f..4dce0e33 100644 --- a/Optimizer/Forms/FileUnlockForm.cs +++ b/Optimizer/Forms/FileUnlockForm.cs @@ -16,10 +16,10 @@ public FileUnlockForm() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); - radioFile.Text = Options.TranslationList["radioFile"].ToString(); - btnKill.Text = Options.TranslationList["btnKill"].ToString(); + radioFile.Text = OptionsHelper.TranslationList["radioFile"].ToString(); + btnKill.Text = OptionsHelper.TranslationList["btnKill"].ToString(); } private void FileUnlockForm_Load(object sender, EventArgs e) diff --git a/Optimizer/Forms/FirstRunForm.Designer.cs b/Optimizer/Forms/FirstRunForm.Designer.cs index abb252f3..4070dc1c 100644 --- a/Optimizer/Forms/FirstRunForm.Designer.cs +++ b/Optimizer/Forms/FirstRunForm.Designer.cs @@ -75,6 +75,10 @@ private void InitializeComponent() this.pictureBox18 = new System.Windows.Forms.PictureBox(); this.radioNepali = new Optimizer.MoonRadio(); this.pictureBox19 = new System.Windows.Forms.PictureBox(); + this.radioUkrainian = new Optimizer.MoonRadio(); + this.pictureBox20 = new System.Windows.Forms.PictureBox(); + this.radioBulgarian = new Optimizer.MoonRadio(); + this.pictureBox21 = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox88)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox87)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox86)).BeginInit(); @@ -97,15 +101,16 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.pictureBox17)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox18)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox21)).BeginInit(); this.SuspendLayout(); // // pictureBox88 // this.pictureBox88.Image = global::Optimizer.Properties.Resources.greece; - this.pictureBox88.Location = new System.Drawing.Point(20, 108); - this.pictureBox88.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox88.Location = new System.Drawing.Point(13, 72); this.pictureBox88.Name = "pictureBox88"; - this.pictureBox88.Size = new System.Drawing.Size(48, 28); + this.pictureBox88.Size = new System.Drawing.Size(32, 19); this.pictureBox88.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox88.TabIndex = 83; this.pictureBox88.TabStop = false; @@ -114,10 +119,9 @@ private void InitializeComponent() // pictureBox87 // this.pictureBox87.Image = global::Optimizer.Properties.Resources.russia; - this.pictureBox87.Location = new System.Drawing.Point(20, 64); - this.pictureBox87.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox87.Location = new System.Drawing.Point(13, 43); this.pictureBox87.Name = "pictureBox87"; - this.pictureBox87.Size = new System.Drawing.Size(48, 28); + this.pictureBox87.Size = new System.Drawing.Size(32, 19); this.pictureBox87.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox87.TabIndex = 82; this.pictureBox87.TabStop = false; @@ -126,10 +130,9 @@ private void InitializeComponent() // pictureBox86 // this.pictureBox86.Image = global::Optimizer.Properties.Resources.united_kingdom; - this.pictureBox86.Location = new System.Drawing.Point(20, 21); - this.pictureBox86.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox86.Location = new System.Drawing.Point(13, 14); this.pictureBox86.Name = "pictureBox86"; - this.pictureBox86.Size = new System.Drawing.Size(48, 28); + this.pictureBox86.Size = new System.Drawing.Size(32, 19); this.pictureBox86.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox86.TabIndex = 81; this.pictureBox86.TabStop = false; @@ -148,9 +151,10 @@ private void InitializeComponent() this.btnStart.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnStart.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnStart.ForeColor = System.Drawing.Color.White; - this.btnStart.Location = new System.Drawing.Point(16, 537); + this.btnStart.Location = new System.Drawing.Point(11, 401); + this.btnStart.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(471, 46); + this.btnStart.Size = new System.Drawing.Size(314, 31); this.btnStart.TabIndex = 86; this.btnStart.Tag = "themeable"; this.btnStart.Text = "✓"; @@ -160,10 +164,9 @@ private void InitializeComponent() // pictureBox1 // this.pictureBox1.Image = global::Optimizer.Properties.Resources.turkey; - this.pictureBox1.Location = new System.Drawing.Point(272, 18); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox1.Location = new System.Drawing.Point(181, 12); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(48, 28); + this.pictureBox1.Size = new System.Drawing.Size(32, 19); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 87; this.pictureBox1.TabStop = false; @@ -172,10 +175,9 @@ private void InitializeComponent() // pictureBox2 // this.pictureBox2.Image = global::Optimizer.Properties.Resources.germany; - this.pictureBox2.Location = new System.Drawing.Point(20, 152); - this.pictureBox2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox2.Location = new System.Drawing.Point(13, 101); this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(48, 28); + this.pictureBox2.Size = new System.Drawing.Size(32, 19); this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox2.TabIndex = 89; this.pictureBox2.TabStop = false; @@ -184,10 +186,9 @@ private void InitializeComponent() // pictureBox3 // this.pictureBox3.Image = global::Optimizer.Properties.Resources.spain; - this.pictureBox3.Location = new System.Drawing.Point(272, 62); - this.pictureBox3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox3.Location = new System.Drawing.Point(181, 41); this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(48, 28); + this.pictureBox3.Size = new System.Drawing.Size(32, 19); this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox3.TabIndex = 91; this.pictureBox3.TabStop = false; @@ -196,10 +197,9 @@ private void InitializeComponent() // pictureBox4 // this.pictureBox4.Image = global::Optimizer.Properties.Resources.brazil; - this.pictureBox4.Location = new System.Drawing.Point(272, 105); - this.pictureBox4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox4.Location = new System.Drawing.Point(181, 70); this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.Size = new System.Drawing.Size(48, 28); + this.pictureBox4.Size = new System.Drawing.Size(32, 19); this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox4.TabIndex = 93; this.pictureBox4.TabStop = false; @@ -208,10 +208,9 @@ private void InitializeComponent() // pictureBox5 // this.pictureBox5.Image = global::Optimizer.Properties.Resources.france; - this.pictureBox5.Location = new System.Drawing.Point(273, 148); - this.pictureBox5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox5.Location = new System.Drawing.Point(182, 99); this.pictureBox5.Name = "pictureBox5"; - this.pictureBox5.Size = new System.Drawing.Size(48, 28); + this.pictureBox5.Size = new System.Drawing.Size(32, 19); this.pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox5.TabIndex = 95; this.pictureBox5.TabStop = false; @@ -220,10 +219,9 @@ private void InitializeComponent() // pictureBox6 // this.pictureBox6.Image = global::Optimizer.Properties.Resources.italy; - this.pictureBox6.Location = new System.Drawing.Point(20, 195); - this.pictureBox6.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox6.Location = new System.Drawing.Point(13, 130); this.pictureBox6.Name = "pictureBox6"; - this.pictureBox6.Size = new System.Drawing.Size(48, 28); + this.pictureBox6.Size = new System.Drawing.Size(32, 19); this.pictureBox6.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox6.TabIndex = 97; this.pictureBox6.TabStop = false; @@ -232,10 +230,9 @@ private void InitializeComponent() // pictureBox7 // this.pictureBox7.Image = global::Optimizer.Properties.Resources.china; - this.pictureBox7.Location = new System.Drawing.Point(273, 195); - this.pictureBox7.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox7.Location = new System.Drawing.Point(182, 130); this.pictureBox7.Name = "pictureBox7"; - this.pictureBox7.Size = new System.Drawing.Size(48, 28); + this.pictureBox7.Size = new System.Drawing.Size(32, 19); this.pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox7.TabIndex = 99; this.pictureBox7.TabStop = false; @@ -244,10 +241,9 @@ private void InitializeComponent() // pictureBox8 // this.pictureBox8.Image = global::Optimizer.Properties.Resources.czech; - this.pictureBox8.Location = new System.Drawing.Point(20, 238); - this.pictureBox8.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox8.Location = new System.Drawing.Point(13, 159); this.pictureBox8.Name = "pictureBox8"; - this.pictureBox8.Size = new System.Drawing.Size(48, 28); + this.pictureBox8.Size = new System.Drawing.Size(32, 19); this.pictureBox8.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox8.TabIndex = 101; this.pictureBox8.TabStop = false; @@ -256,10 +252,9 @@ private void InitializeComponent() // pictureBox9 // this.pictureBox9.Image = global::Optimizer.Properties.Resources.china; - this.pictureBox9.Location = new System.Drawing.Point(273, 240); - this.pictureBox9.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox9.Location = new System.Drawing.Point(182, 160); this.pictureBox9.Name = "pictureBox9"; - this.pictureBox9.Size = new System.Drawing.Size(48, 28); + this.pictureBox9.Size = new System.Drawing.Size(32, 19); this.pictureBox9.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox9.TabIndex = 103; this.pictureBox9.TabStop = false; @@ -268,10 +263,9 @@ private void InitializeComponent() // pictureBox10 // this.pictureBox10.Image = global::Optimizer.Properties.Resources.korea; - this.pictureBox10.Location = new System.Drawing.Point(273, 284); - this.pictureBox10.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox10.Location = new System.Drawing.Point(182, 189); this.pictureBox10.Name = "pictureBox10"; - this.pictureBox10.Size = new System.Drawing.Size(48, 28); + this.pictureBox10.Size = new System.Drawing.Size(32, 19); this.pictureBox10.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox10.TabIndex = 105; this.pictureBox10.TabStop = false; @@ -282,9 +276,10 @@ private void InitializeComponent() this.radioKorean.AutoSize = true; this.radioKorean.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioKorean.ForeColor = System.Drawing.Color.White; - this.radioKorean.Location = new System.Drawing.Point(333, 279); + this.radioKorean.Location = new System.Drawing.Point(222, 186); + this.radioKorean.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioKorean.Name = "radioKorean"; - this.radioKorean.Size = new System.Drawing.Size(111, 36); + this.radioKorean.Size = new System.Drawing.Size(76, 25); this.radioKorean.TabIndex = 106; this.radioKorean.Tag = ""; this.radioKorean.Text = "한국어"; @@ -296,9 +291,10 @@ private void InitializeComponent() this.radioTaiwan.AutoSize = true; this.radioTaiwan.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioTaiwan.ForeColor = System.Drawing.Color.White; - this.radioTaiwan.Location = new System.Drawing.Point(333, 236); + this.radioTaiwan.Location = new System.Drawing.Point(222, 157); + this.radioTaiwan.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioTaiwan.Name = "radioTaiwan"; - this.radioTaiwan.Size = new System.Drawing.Size(139, 36); + this.radioTaiwan.Size = new System.Drawing.Size(96, 25); this.radioTaiwan.TabIndex = 104; this.radioTaiwan.Tag = ""; this.radioTaiwan.Text = "繁體中文"; @@ -310,9 +306,10 @@ private void InitializeComponent() this.radioCzech.AutoSize = true; this.radioCzech.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioCzech.ForeColor = System.Drawing.Color.White; - this.radioCzech.Location = new System.Drawing.Point(80, 234); + this.radioCzech.Location = new System.Drawing.Point(53, 156); + this.radioCzech.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioCzech.Name = "radioCzech"; - this.radioCzech.Size = new System.Drawing.Size(119, 36); + this.radioCzech.Size = new System.Drawing.Size(81, 25); this.radioCzech.TabIndex = 102; this.radioCzech.Tag = ""; this.radioCzech.Text = "Čeština"; @@ -324,9 +321,10 @@ private void InitializeComponent() this.radioChinese.AutoSize = true; this.radioChinese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioChinese.ForeColor = System.Drawing.Color.White; - this.radioChinese.Location = new System.Drawing.Point(333, 190); + this.radioChinese.Location = new System.Drawing.Point(222, 127); + this.radioChinese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioChinese.Name = "radioChinese"; - this.radioChinese.Size = new System.Drawing.Size(139, 36); + this.radioChinese.Size = new System.Drawing.Size(96, 25); this.radioChinese.TabIndex = 100; this.radioChinese.Tag = ""; this.radioChinese.Text = "简体中文"; @@ -338,9 +336,10 @@ private void InitializeComponent() this.radioItalian.AutoSize = true; this.radioItalian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioItalian.ForeColor = System.Drawing.Color.White; - this.radioItalian.Location = new System.Drawing.Point(80, 190); + this.radioItalian.Location = new System.Drawing.Point(53, 127); + this.radioItalian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioItalian.Name = "radioItalian"; - this.radioItalian.Size = new System.Drawing.Size(121, 36); + this.radioItalian.Size = new System.Drawing.Size(82, 25); this.radioItalian.TabIndex = 98; this.radioItalian.Tag = ""; this.radioItalian.Text = "Italiano"; @@ -352,9 +351,10 @@ private void InitializeComponent() this.radioFrench.AutoSize = true; this.radioFrench.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioFrench.ForeColor = System.Drawing.Color.White; - this.radioFrench.Location = new System.Drawing.Point(333, 144); + this.radioFrench.Location = new System.Drawing.Point(222, 96); + this.radioFrench.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioFrench.Name = "radioFrench"; - this.radioFrench.Size = new System.Drawing.Size(127, 36); + this.radioFrench.Size = new System.Drawing.Size(86, 25); this.radioFrench.TabIndex = 96; this.radioFrench.Tag = ""; this.radioFrench.Text = "Français"; @@ -366,9 +366,10 @@ private void InitializeComponent() this.radioPortuguese.AutoSize = true; this.radioPortuguese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioPortuguese.ForeColor = System.Drawing.Color.White; - this.radioPortuguese.Location = new System.Drawing.Point(332, 100); + this.radioPortuguese.Location = new System.Drawing.Point(221, 67); + this.radioPortuguese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioPortuguese.Name = "radioPortuguese"; - this.radioPortuguese.Size = new System.Drawing.Size(150, 36); + this.radioPortuguese.Size = new System.Drawing.Size(102, 25); this.radioPortuguese.TabIndex = 94; this.radioPortuguese.Tag = ""; this.radioPortuguese.Text = "Português"; @@ -380,9 +381,10 @@ private void InitializeComponent() this.radioSpanish.AutoSize = true; this.radioSpanish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioSpanish.ForeColor = System.Drawing.Color.White; - this.radioSpanish.Location = new System.Drawing.Point(332, 57); + this.radioSpanish.Location = new System.Drawing.Point(221, 38); + this.radioSpanish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioSpanish.Name = "radioSpanish"; - this.radioSpanish.Size = new System.Drawing.Size(122, 36); + this.radioSpanish.Size = new System.Drawing.Size(84, 25); this.radioSpanish.TabIndex = 92; this.radioSpanish.Tag = ""; this.radioSpanish.Text = "Español"; @@ -394,9 +396,10 @@ private void InitializeComponent() this.radioGerman.AutoSize = true; this.radioGerman.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioGerman.ForeColor = System.Drawing.Color.White; - this.radioGerman.Location = new System.Drawing.Point(80, 147); + this.radioGerman.Location = new System.Drawing.Point(53, 98); + this.radioGerman.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioGerman.Name = "radioGerman"; - this.radioGerman.Size = new System.Drawing.Size(127, 36); + this.radioGerman.Size = new System.Drawing.Size(87, 25); this.radioGerman.TabIndex = 90; this.radioGerman.Tag = ""; this.radioGerman.Text = "Deutsch"; @@ -408,9 +411,10 @@ private void InitializeComponent() this.radioTurkish.AutoSize = true; this.radioTurkish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioTurkish.ForeColor = System.Drawing.Color.White; - this.radioTurkish.Location = new System.Drawing.Point(332, 14); + this.radioTurkish.Location = new System.Drawing.Point(221, 9); + this.radioTurkish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioTurkish.Name = "radioTurkish"; - this.radioTurkish.Size = new System.Drawing.Size(110, 36); + this.radioTurkish.Size = new System.Drawing.Size(76, 25); this.radioTurkish.TabIndex = 88; this.radioTurkish.Tag = ""; this.radioTurkish.Text = "Türkçe"; @@ -422,9 +426,10 @@ private void InitializeComponent() this.radioHellenic.AutoSize = true; this.radioHellenic.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioHellenic.ForeColor = System.Drawing.Color.White; - this.radioHellenic.Location = new System.Drawing.Point(80, 104); + this.radioHellenic.Location = new System.Drawing.Point(53, 69); + this.radioHellenic.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioHellenic.Name = "radioHellenic"; - this.radioHellenic.Size = new System.Drawing.Size(140, 36); + this.radioHellenic.Size = new System.Drawing.Size(94, 25); this.radioHellenic.TabIndex = 84; this.radioHellenic.Tag = ""; this.radioHellenic.Text = "Ελληνικά"; @@ -437,9 +442,10 @@ private void InitializeComponent() this.radioEnglish.Checked = true; this.radioEnglish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Underline); this.radioEnglish.ForeColor = System.Drawing.Color.MediumOrchid; - this.radioEnglish.Location = new System.Drawing.Point(80, 16); + this.radioEnglish.Location = new System.Drawing.Point(53, 11); + this.radioEnglish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioEnglish.Name = "radioEnglish"; - this.radioEnglish.Size = new System.Drawing.Size(115, 36); + this.radioEnglish.Size = new System.Drawing.Size(79, 25); this.radioEnglish.TabIndex = 80; this.radioEnglish.TabStop = true; this.radioEnglish.Tag = "themeable"; @@ -452,9 +458,10 @@ private void InitializeComponent() this.radioRussian.AutoSize = true; this.radioRussian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioRussian.ForeColor = System.Drawing.Color.White; - this.radioRussian.Location = new System.Drawing.Point(80, 60); + this.radioRussian.Location = new System.Drawing.Point(53, 40); + this.radioRussian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioRussian.Name = "radioRussian"; - this.radioRussian.Size = new System.Drawing.Size(128, 36); + this.radioRussian.Size = new System.Drawing.Size(90, 25); this.radioRussian.TabIndex = 79; this.radioRussian.Tag = ""; this.radioRussian.Text = "русский"; @@ -466,9 +473,10 @@ private void InitializeComponent() this.radioPolish.AutoSize = true; this.radioPolish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioPolish.ForeColor = System.Drawing.Color.White; - this.radioPolish.Location = new System.Drawing.Point(80, 278); + this.radioPolish.Location = new System.Drawing.Point(53, 185); + this.radioPolish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioPolish.Name = "radioPolish"; - this.radioPolish.Size = new System.Drawing.Size(101, 36); + this.radioPolish.Size = new System.Drawing.Size(69, 25); this.radioPolish.TabIndex = 108; this.radioPolish.Tag = ""; this.radioPolish.Text = "Polski"; @@ -478,10 +486,9 @@ private void InitializeComponent() // pictureBox11 // this.pictureBox11.Image = global::Optimizer.Properties.Resources.poland; - this.pictureBox11.Location = new System.Drawing.Point(20, 282); - this.pictureBox11.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox11.Location = new System.Drawing.Point(13, 188); this.pictureBox11.Name = "pictureBox11"; - this.pictureBox11.Size = new System.Drawing.Size(48, 28); + this.pictureBox11.Size = new System.Drawing.Size(32, 19); this.pictureBox11.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox11.TabIndex = 107; this.pictureBox11.TabStop = false; @@ -492,9 +499,10 @@ private void InitializeComponent() this.radioArabic.AutoSize = true; this.radioArabic.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioArabic.ForeColor = System.Drawing.Color.White; - this.radioArabic.Location = new System.Drawing.Point(80, 321); + this.radioArabic.Location = new System.Drawing.Point(53, 214); + this.radioArabic.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioArabic.Name = "radioArabic"; - this.radioArabic.Size = new System.Drawing.Size(105, 36); + this.radioArabic.Size = new System.Drawing.Size(71, 25); this.radioArabic.TabIndex = 110; this.radioArabic.Tag = ""; this.radioArabic.Text = "العربية"; @@ -504,10 +512,9 @@ private void InitializeComponent() // pictureBox12 // this.pictureBox12.Image = global::Optimizer.Properties.Resources.egypt; - this.pictureBox12.Location = new System.Drawing.Point(20, 326); - this.pictureBox12.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox12.Location = new System.Drawing.Point(13, 217); this.pictureBox12.Name = "pictureBox12"; - this.pictureBox12.Size = new System.Drawing.Size(48, 28); + this.pictureBox12.Size = new System.Drawing.Size(32, 19); this.pictureBox12.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox12.TabIndex = 109; this.pictureBox12.TabStop = false; @@ -518,9 +525,10 @@ private void InitializeComponent() this.radioKurdish.AutoSize = true; this.radioKurdish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioKurdish.ForeColor = System.Drawing.Color.White; - this.radioKurdish.Location = new System.Drawing.Point(333, 321); + this.radioKurdish.Location = new System.Drawing.Point(222, 214); + this.radioKurdish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioKurdish.Name = "radioKurdish"; - this.radioKurdish.Size = new System.Drawing.Size(101, 36); + this.radioKurdish.Size = new System.Drawing.Size(70, 25); this.radioKurdish.TabIndex = 112; this.radioKurdish.Tag = ""; this.radioKurdish.Text = "کوردی"; @@ -530,10 +538,9 @@ private void InitializeComponent() // pictureBox13 // this.pictureBox13.Image = global::Optimizer.Properties.Resources.kurdish; - this.pictureBox13.Location = new System.Drawing.Point(273, 326); - this.pictureBox13.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox13.Location = new System.Drawing.Point(182, 217); this.pictureBox13.Name = "pictureBox13"; - this.pictureBox13.Size = new System.Drawing.Size(48, 28); + this.pictureBox13.Size = new System.Drawing.Size(32, 19); this.pictureBox13.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox13.TabIndex = 111; this.pictureBox13.TabStop = false; @@ -544,9 +551,10 @@ private void InitializeComponent() this.radioHungarian.AutoSize = true; this.radioHungarian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioHungarian.ForeColor = System.Drawing.Color.White; - this.radioHungarian.Location = new System.Drawing.Point(80, 363); + this.radioHungarian.Location = new System.Drawing.Point(53, 242); + this.radioHungarian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioHungarian.Name = "radioHungarian"; - this.radioHungarian.Size = new System.Drawing.Size(122, 36); + this.radioHungarian.Size = new System.Drawing.Size(83, 25); this.radioHungarian.TabIndex = 114; this.radioHungarian.Tag = ""; this.radioHungarian.Text = "Magyar"; @@ -556,10 +564,9 @@ private void InitializeComponent() // pictureBox14 // this.pictureBox14.Image = global::Optimizer.Properties.Resources.hungary; - this.pictureBox14.Location = new System.Drawing.Point(20, 368); - this.pictureBox14.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox14.Location = new System.Drawing.Point(13, 245); this.pictureBox14.Name = "pictureBox14"; - this.pictureBox14.Size = new System.Drawing.Size(48, 28); + this.pictureBox14.Size = new System.Drawing.Size(32, 19); this.pictureBox14.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox14.TabIndex = 113; this.pictureBox14.TabStop = false; @@ -570,9 +577,10 @@ private void InitializeComponent() this.radioRomanian.AutoSize = true; this.radioRomanian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioRomanian.ForeColor = System.Drawing.Color.White; - this.radioRomanian.Location = new System.Drawing.Point(333, 364); + this.radioRomanian.Location = new System.Drawing.Point(222, 243); + this.radioRomanian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioRomanian.Name = "radioRomanian"; - this.radioRomanian.Size = new System.Drawing.Size(128, 36); + this.radioRomanian.Size = new System.Drawing.Size(87, 25); this.radioRomanian.TabIndex = 116; this.radioRomanian.Tag = ""; this.radioRomanian.Text = "Română"; @@ -582,10 +590,9 @@ private void InitializeComponent() // pictureBox15 // this.pictureBox15.Image = global::Optimizer.Properties.Resources.romania; - this.pictureBox15.Location = new System.Drawing.Point(273, 369); - this.pictureBox15.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox15.Location = new System.Drawing.Point(182, 246); this.pictureBox15.Name = "pictureBox15"; - this.pictureBox15.Size = new System.Drawing.Size(48, 28); + this.pictureBox15.Size = new System.Drawing.Size(32, 19); this.pictureBox15.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox15.TabIndex = 115; this.pictureBox15.TabStop = false; @@ -596,9 +603,10 @@ private void InitializeComponent() this.radioDutch.AutoSize = true; this.radioDutch.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioDutch.ForeColor = System.Drawing.Color.White; - this.radioDutch.Location = new System.Drawing.Point(80, 406); + this.radioDutch.Location = new System.Drawing.Point(53, 271); + this.radioDutch.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioDutch.Name = "radioDutch"; - this.radioDutch.Size = new System.Drawing.Size(163, 36); + this.radioDutch.Size = new System.Drawing.Size(112, 25); this.radioDutch.TabIndex = 118; this.radioDutch.Tag = ""; this.radioDutch.Text = "Nederlands"; @@ -608,10 +616,9 @@ private void InitializeComponent() // pictureBox16 // this.pictureBox16.Image = global::Optimizer.Properties.Resources.dutch; - this.pictureBox16.Location = new System.Drawing.Point(20, 411); - this.pictureBox16.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox16.Location = new System.Drawing.Point(13, 274); this.pictureBox16.Name = "pictureBox16"; - this.pictureBox16.Size = new System.Drawing.Size(48, 28); + this.pictureBox16.Size = new System.Drawing.Size(32, 19); this.pictureBox16.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox16.TabIndex = 117; this.pictureBox16.TabStop = false; @@ -620,10 +627,9 @@ private void InitializeComponent() // pictureBox17 // this.pictureBox17.Image = global::Optimizer.Properties.Resources.japan; - this.pictureBox17.Location = new System.Drawing.Point(273, 411); - this.pictureBox17.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox17.Location = new System.Drawing.Point(182, 274); this.pictureBox17.Name = "pictureBox17"; - this.pictureBox17.Size = new System.Drawing.Size(48, 28); + this.pictureBox17.Size = new System.Drawing.Size(32, 19); this.pictureBox17.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox17.TabIndex = 119; this.pictureBox17.TabStop = false; @@ -634,9 +640,10 @@ private void InitializeComponent() this.radioJapanese.AutoSize = true; this.radioJapanese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioJapanese.ForeColor = System.Drawing.Color.White; - this.radioJapanese.Location = new System.Drawing.Point(333, 408); + this.radioJapanese.Location = new System.Drawing.Point(222, 272); + this.radioJapanese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioJapanese.Name = "radioJapanese"; - this.radioJapanese.Size = new System.Drawing.Size(114, 36); + this.radioJapanese.Size = new System.Drawing.Size(79, 25); this.radioJapanese.TabIndex = 120; this.radioJapanese.Tag = ""; this.radioJapanese.Text = "日本語"; @@ -648,9 +655,10 @@ private void InitializeComponent() this.radioFarsi.AutoSize = true; this.radioFarsi.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioFarsi.ForeColor = System.Drawing.Color.White; - this.radioFarsi.Location = new System.Drawing.Point(80, 450); + this.radioFarsi.Location = new System.Drawing.Point(53, 300); + this.radioFarsi.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioFarsi.Name = "radioFarsi"; - this.radioFarsi.Size = new System.Drawing.Size(99, 36); + this.radioFarsi.Size = new System.Drawing.Size(69, 25); this.radioFarsi.TabIndex = 122; this.radioFarsi.Tag = ""; this.radioFarsi.Text = "فارسی"; @@ -660,10 +668,9 @@ private void InitializeComponent() // pictureBox18 // this.pictureBox18.Image = global::Optimizer.Properties.Resources.iran; - this.pictureBox18.Location = new System.Drawing.Point(20, 453); - this.pictureBox18.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox18.Location = new System.Drawing.Point(13, 302); this.pictureBox18.Name = "pictureBox18"; - this.pictureBox18.Size = new System.Drawing.Size(48, 28); + this.pictureBox18.Size = new System.Drawing.Size(32, 19); this.pictureBox18.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox18.TabIndex = 121; this.pictureBox18.TabStop = false; @@ -674,9 +681,10 @@ private void InitializeComponent() this.radioNepali.AutoSize = true; this.radioNepali.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); this.radioNepali.ForeColor = System.Drawing.Color.White; - this.radioNepali.Location = new System.Drawing.Point(333, 453); + this.radioNepali.Location = new System.Drawing.Point(222, 302); + this.radioNepali.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.radioNepali.Name = "radioNepali"; - this.radioNepali.Size = new System.Drawing.Size(97, 36); + this.radioNepali.Size = new System.Drawing.Size(67, 25); this.radioNepali.TabIndex = 124; this.radioNepali.Tag = ""; this.radioNepali.Text = "नेपाली"; @@ -686,23 +694,76 @@ private void InitializeComponent() // pictureBox19 // this.pictureBox19.Image = global::Optimizer.Properties.Resources.nepal; - this.pictureBox19.Location = new System.Drawing.Point(273, 456); - this.pictureBox19.Margin = new System.Windows.Forms.Padding(4); + this.pictureBox19.Location = new System.Drawing.Point(182, 304); this.pictureBox19.Name = "pictureBox19"; - this.pictureBox19.Size = new System.Drawing.Size(48, 28); + this.pictureBox19.Size = new System.Drawing.Size(32, 19); this.pictureBox19.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox19.TabIndex = 123; this.pictureBox19.TabStop = false; this.pictureBox19.Click += new System.EventHandler(this.pictureBox19_Click); // + // radioUkrainian + // + this.radioUkrainian.AutoSize = true; + this.radioUkrainian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); + this.radioUkrainian.ForeColor = System.Drawing.Color.White; + this.radioUkrainian.Location = new System.Drawing.Point(222, 331); + this.radioUkrainian.Margin = new System.Windows.Forms.Padding(2); + this.radioUkrainian.Name = "radioUkrainian"; + this.radioUkrainian.Size = new System.Drawing.Size(67, 25); + this.radioUkrainian.TabIndex = 128; + this.radioUkrainian.Tag = ""; + this.radioUkrainian.Text = "नेपाली"; + this.radioUkrainian.UseVisualStyleBackColor = true; + this.radioUkrainian.CheckedChanged += new System.EventHandler(this.radioUkrainian_CheckedChanged); + // + // pictureBox20 + // + this.pictureBox20.Image = global::Optimizer.Properties.Resources.ukraine; + this.pictureBox20.Location = new System.Drawing.Point(182, 333); + this.pictureBox20.Name = "pictureBox20"; + this.pictureBox20.Size = new System.Drawing.Size(32, 19); + this.pictureBox20.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox20.TabIndex = 127; + this.pictureBox20.TabStop = false; + // + // radioBulgarian + // + this.radioBulgarian.AutoSize = true; + this.radioBulgarian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F); + this.radioBulgarian.ForeColor = System.Drawing.Color.White; + this.radioBulgarian.Location = new System.Drawing.Point(53, 329); + this.radioBulgarian.Margin = new System.Windows.Forms.Padding(2); + this.radioBulgarian.Name = "radioBulgarian"; + this.radioBulgarian.Size = new System.Drawing.Size(69, 25); + this.radioBulgarian.TabIndex = 126; + this.radioBulgarian.Tag = ""; + this.radioBulgarian.Text = "فارسی"; + this.radioBulgarian.UseVisualStyleBackColor = true; + this.radioBulgarian.CheckedChanged += new System.EventHandler(this.radioBulgarian_CheckedChanged); + // + // pictureBox21 + // + this.pictureBox21.Image = global::Optimizer.Properties.Resources.bulgaria; + this.pictureBox21.Location = new System.Drawing.Point(13, 331); + this.pictureBox21.Name = "pictureBox21"; + this.pictureBox21.Size = new System.Drawing.Size(32, 19); + this.pictureBox21.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox21.TabIndex = 125; + this.pictureBox21.TabStop = false; + // // FirstRunForm // this.AcceptButton = this.btnStart; - this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F); + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); this.CancelButton = this.btnStart; - this.ClientSize = new System.Drawing.Size(504, 600); + this.ClientSize = new System.Drawing.Size(336, 443); + this.Controls.Add(this.radioUkrainian); + this.Controls.Add(this.pictureBox20); + this.Controls.Add(this.radioBulgarian); + this.Controls.Add(this.pictureBox21); this.Controls.Add(this.radioNepali); this.Controls.Add(this.pictureBox19); this.Controls.Add(this.radioFarsi); @@ -753,7 +814,6 @@ private void InitializeComponent() this.ForeColor = System.Drawing.Color.White; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "FirstRunForm"; @@ -783,6 +843,8 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.pictureBox17)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox18)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox21)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -835,5 +897,9 @@ private void InitializeComponent() private System.Windows.Forms.PictureBox pictureBox18; private MoonRadio radioNepali; private System.Windows.Forms.PictureBox pictureBox19; + private MoonRadio radioUkrainian; + private System.Windows.Forms.PictureBox pictureBox20; + private MoonRadio radioBulgarian; + private System.Windows.Forms.PictureBox pictureBox21; } } diff --git a/Optimizer/Forms/FirstRunForm.cs b/Optimizer/Forms/FirstRunForm.cs index 471a5da2..1c55d021 100644 --- a/Optimizer/Forms/FirstRunForm.cs +++ b/Optimizer/Forms/FirstRunForm.cs @@ -9,7 +9,7 @@ public FirstRunForm() { InitializeComponent(); this.DoubleBuffered = true; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); } private void btnStart_Click(object sender, EventArgs e) @@ -19,7 +19,30 @@ private void btnStart_Click(object sender, EventArgs e) private void FirstRunForm_Load(object sender, EventArgs e) { - + radioArabic.Text = Constants.ARABIC; + radioPortuguese.Text = Constants.PORTUGUESE; + radioChinese.Text = Constants.CHINESE; + radioCzech.Text = Constants.CZECH; + radioDutch.Text = Constants.DUTCH; + radioFrench.Text = Constants.FRENCH; + radioGerman.Text = Constants.GERMAN; + radioHellenic.Text = Constants.HELLENIC; + radioHungarian.Text = Constants.HUNGARIAN; + radioFarsi.Text = Constants.PERSIAN; + radioItalian.Text = Constants.ITALIAN; + radioJapanese.Text = Constants.JAPANESE; + radioKorean.Text = Constants.KOREAN; + radioKurdish.Text = Constants.KURDISH; + radioNepali.Text = Constants.NEPALI; + radioPolish.Text = Constants.POLISH; + radioRomanian.Text = Constants.ROMANIAN; + radioRussian.Text = Constants.RUSSIAN; + radioSpanish.Text = Constants.SPANISH; + radioTaiwan.Text = Constants.TAIWANESE; + radioTurkish.Text = Constants.TURKISH; + radioUkrainian.Text = Constants.UKRAINIAN; + radioBulgarian.Text = Constants.BULGARIAN; + radioEnglish.Text = Constants.ENGLISH; } private void pictureBox86_Click(object sender, EventArgs e) @@ -39,23 +62,23 @@ private void pictureBox88_Click(object sender, EventArgs e) private void radioEnglish_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.EN; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EN; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioRussian_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.RU; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RU; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioHellenic_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.EL; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EL; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox1_Click(object sender, EventArgs e) @@ -65,16 +88,16 @@ private void pictureBox1_Click(object sender, EventArgs e) private void radioTurkish_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.TR; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TR; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioGerman_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.DE; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.DE; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox2_Click(object sender, EventArgs e) @@ -89,16 +112,16 @@ private void pictureBox3_Click(object sender, EventArgs e) private void radioSpanish_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.ES; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.ES; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioPortuguese_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.PT; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PT; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox4_Click(object sender, EventArgs e) @@ -108,9 +131,9 @@ private void pictureBox4_Click(object sender, EventArgs e) private void radioFrench_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.FR; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FR; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox5_Click(object sender, EventArgs e) @@ -120,9 +143,9 @@ private void pictureBox5_Click(object sender, EventArgs e) private void radioitalian_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.IT; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.IT; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox6_Click(object sender, EventArgs e) @@ -137,9 +160,9 @@ private void pictureBox7_Click(object sender, EventArgs e) private void radioChinese_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.CN; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CN; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox8_Click(object sender, EventArgs e) @@ -149,16 +172,16 @@ private void pictureBox8_Click(object sender, EventArgs e) private void radioCzech_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.CZ; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CZ; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioTaiwan_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.TW; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TW; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox9_Click(object sender, EventArgs e) @@ -168,9 +191,9 @@ private void pictureBox9_Click(object sender, EventArgs e) private void radioKorean_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.KO; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KO; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox10_Click(object sender, EventArgs e) @@ -185,16 +208,16 @@ private void pictureBox11_Click(object sender, EventArgs e) private void radioPolish_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.PL; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PL; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioArabic_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.AR; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.AR; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox12_Click(object sender, EventArgs e) @@ -209,9 +232,9 @@ private void pictureBox13_Click(object sender, EventArgs e) private void radioKurdish_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.KU; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KU; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox14_Click(object sender, EventArgs e) @@ -221,16 +244,16 @@ private void pictureBox14_Click(object sender, EventArgs e) private void radioHungarian_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.HU; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.HU; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void radioRomanian_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.RO; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RO; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox15_Click(object sender, EventArgs e) @@ -240,9 +263,9 @@ private void pictureBox15_Click(object sender, EventArgs e) private void radioDutch_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.NL; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NL; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox16_Click(object sender, EventArgs e) @@ -252,9 +275,9 @@ private void pictureBox16_Click(object sender, EventArgs e) private void radioJapanese_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.JA; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.JA; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox17_Click(object sender, EventArgs e) @@ -264,9 +287,9 @@ private void pictureBox17_Click(object sender, EventArgs e) private void radioFarsi_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.FA; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FA; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } private void pictureBox18_Click(object sender, EventArgs e) @@ -281,9 +304,23 @@ private void pictureBox19_Click(object sender, EventArgs e) private void radioNepali_CheckedChanged(object sender, EventArgs e) { - Options.CurrentOptions.LanguageCode = LanguageCode.NE; - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NE; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); + } + + private void radioBulgarian_CheckedChanged(object sender, EventArgs e) + { + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.BG; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); + } + + private void radioUkrainian_CheckedChanged(object sender, EventArgs e) + { + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.UA; + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); } } } diff --git a/Optimizer/Forms/HelperForm.cs b/Optimizer/Forms/HelperForm.cs index 8402a83d..9def4db9 100644 --- a/Optimizer/Forms/HelperForm.cs +++ b/Optimizer/Forms/HelperForm.cs @@ -22,7 +22,7 @@ private void Confirm() } if (_type == MessageType.Restart) { - Options.SaveSettings(); + OptionsHelper.SaveSettings(); Utilities.Reboot(); } if (_type == MessageType.Hosts) @@ -38,7 +38,7 @@ private void Confirm() internal HelperForm(MainForm main, MessageType m, string text) { InitializeComponent(); - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); _main = main; _type = m; @@ -48,7 +48,7 @@ internal HelperForm(MainForm main, MessageType m, string text) if (_type == MessageType.Error) { btnNo.Visible = false; - btnYes.Text = Options.TranslationList["btnOk"]; + btnYes.Text = OptionsHelper.TranslationList["btnOk"]; this.AcceptButton = btnNo; this.AcceptButton = btnYes; @@ -57,7 +57,7 @@ internal HelperForm(MainForm main, MessageType m, string text) } // translate UI elements - if (Options.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); + if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); } private void btnNo_Click(object sender, EventArgs e) @@ -79,7 +79,7 @@ private void Messager_Load(object sender, EventArgs e) private void Translate() { - Dictionary translationList = Options.TranslationList.ToObject>(); + Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); Control element; diff --git a/Optimizer/Forms/HostsEditorForm.cs b/Optimizer/Forms/HostsEditorForm.cs index 131ab606..21e0e360 100644 --- a/Optimizer/Forms/HostsEditorForm.cs +++ b/Optimizer/Forms/HostsEditorForm.cs @@ -12,7 +12,7 @@ public sealed partial class HostsEditorForm : Form public HostsEditorForm() { InitializeComponent(); - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); if (HostsHelper.GetReadOnly()) { @@ -20,7 +20,7 @@ public HostsEditorForm() } // translate UI elements - if (Options.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); + if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); } private void HostsEditor_Load(object sender, EventArgs e) @@ -37,8 +37,8 @@ private void HostsEditor_Load(object sender, EventArgs e) private void Translate() { - this.Text = Options.TranslationList["HostsEditorForm"]; - Dictionary translationList = Options.TranslationList.ToObject>(); + this.Text = OptionsHelper.TranslationList["HostsEditorForm"]; + Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); Control element; diff --git a/Optimizer/Forms/InfoForm.cs b/Optimizer/Forms/InfoForm.cs index f436cce8..88faf8d0 100644 --- a/Optimizer/Forms/InfoForm.cs +++ b/Optimizer/Forms/InfoForm.cs @@ -12,17 +12,17 @@ public InfoForm(string info) InitializeComponent(); CheckForIllegalCrossThreadCalls = false; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); txtInfo.Text = info; // translate UI elements - if (Options.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); + if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); } private void Translate() { - Dictionary translationList = Options.TranslationList.ToObject>(); + Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); Control element; diff --git a/Optimizer/Forms/MainForm.Designer.cs b/Optimizer/Forms/MainForm.Designer.cs index c2cf4e64..620be42e 100644 --- a/Optimizer/Forms/MainForm.Designer.cs +++ b/Optimizer/Forms/MainForm.Designer.cs @@ -93,6 +93,7 @@ private void InitializeComponent() this.label15 = new System.Windows.Forms.Label(); this.label14 = new System.Windows.Forms.Label(); this.panelWin11Tweaks = new System.Windows.Forms.Panel(); + this.copilotSw = new Optimizer.ToggleCard(); this.label20 = new System.Windows.Forms.Label(); this.label19 = new System.Windows.Forms.Label(); this.stickersSw = new Optimizer.ToggleCard(); @@ -387,6 +388,7 @@ private void InitializeComponent() this.listFonts = new Optimizer.MoonList(); this.fontSetTitle = new System.Windows.Forms.Label(); this.optionsTab = new System.Windows.Forms.TabPage(); + this.btnReinforce = new System.Windows.Forms.Button(); this.linkLabel6 = new System.Windows.Forms.LinkLabel(); this.linkLabel4 = new System.Windows.Forms.LinkLabel(); this.pictureBox6 = new System.Windows.Forms.PictureBox(); @@ -742,7 +744,7 @@ private void InitializeComponent() this.universalTab.Margin = new System.Windows.Forms.Padding(2); this.universalTab.Name = "universalTab"; this.universalTab.Padding = new System.Windows.Forms.Padding(2); - this.universalTab.Size = new System.Drawing.Size(1273, 611); + this.universalTab.Size = new System.Drawing.Size(1273, 628); this.universalTab.TabIndex = 0; this.universalTab.Text = "General"; // @@ -1222,7 +1224,7 @@ private void InitializeComponent() this.windows10Tab.Margin = new System.Windows.Forms.Padding(2); this.windows10Tab.Name = "windows10Tab"; this.windows10Tab.Padding = new System.Windows.Forms.Padding(2); - this.windows10Tab.Size = new System.Drawing.Size(1273, 611); + this.windows10Tab.Size = new System.Drawing.Size(1273, 628); this.windows10Tab.TabIndex = 1; this.windows10Tab.Text = "Windows 10"; // @@ -1342,6 +1344,7 @@ private void InitializeComponent() // panelWin11Tweaks // this.panelWin11Tweaks.AutoScroll = true; + this.panelWin11Tweaks.Controls.Add(this.copilotSw); this.panelWin11Tweaks.Controls.Add(this.label20); this.panelWin11Tweaks.Controls.Add(this.label19); this.panelWin11Tweaks.Controls.Add(this.stickersSw); @@ -1357,6 +1360,22 @@ private void InitializeComponent() this.panelWin11Tweaks.TabIndex = 80; this.panelWin11Tweaks.Visible = false; // + // copilotSw + // + this.copilotSw.AccessibleName = "Disable CoPilot AI"; + this.copilotSw.AccessibleRole = System.Windows.Forms.AccessibleRole.CheckButton; + this.copilotSw.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.copilotSw.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.copilotSw.ForeColor = System.Drawing.Color.White; + this.copilotSw.LabelText = "Disable CoPilot AI"; + this.copilotSw.Location = new System.Drawing.Point(465, 126); + this.copilotSw.Margin = new System.Windows.Forms.Padding(6); + this.copilotSw.Name = "copilotSw"; + this.copilotSw.Size = new System.Drawing.Size(414, 24); + this.copilotSw.TabIndex = 179; + this.copilotSw.Tag = "themeable"; + this.copilotSw.ToggleChecked = false; + // // label20 // this.label20.AutoSize = true; @@ -1874,7 +1893,7 @@ private void InitializeComponent() this.windows8Tab.Margin = new System.Windows.Forms.Padding(2); this.windows8Tab.Name = "windows8Tab"; this.windows8Tab.Padding = new System.Windows.Forms.Padding(2); - this.windows8Tab.Size = new System.Drawing.Size(1273, 611); + this.windows8Tab.Size = new System.Drawing.Size(1273, 628); this.windows8Tab.TabIndex = 2; this.windows8Tab.Text = "Windows 8.1"; // @@ -1920,7 +1939,7 @@ private void InitializeComponent() this.advancedTab.Margin = new System.Windows.Forms.Padding(2); this.advancedTab.Name = "advancedTab"; this.advancedTab.Padding = new System.Windows.Forms.Padding(2); - this.advancedTab.Size = new System.Drawing.Size(1273, 611); + this.advancedTab.Size = new System.Drawing.Size(1273, 628); this.advancedTab.TabIndex = 15; this.advancedTab.Text = "Advanced"; // @@ -2021,7 +2040,7 @@ private void InitializeComponent() this.modernAppsTab.Location = new System.Drawing.Point(4, 26); this.modernAppsTab.Name = "modernAppsTab"; this.modernAppsTab.Padding = new System.Windows.Forms.Padding(3); - this.modernAppsTab.Size = new System.Drawing.Size(1273, 611); + this.modernAppsTab.Size = new System.Drawing.Size(1273, 628); this.modernAppsTab.TabIndex = 11; this.modernAppsTab.Text = "UWP Apps"; // @@ -2145,7 +2164,7 @@ private void InitializeComponent() this.startupTab.Location = new System.Drawing.Point(4, 26); this.startupTab.Margin = new System.Windows.Forms.Padding(2); this.startupTab.Name = "startupTab"; - this.startupTab.Size = new System.Drawing.Size(1273, 611); + this.startupTab.Size = new System.Drawing.Size(1273, 628); this.startupTab.TabIndex = 7; this.startupTab.Text = "Startup"; // @@ -2402,7 +2421,7 @@ private void InitializeComponent() this.appsTab.Location = new System.Drawing.Point(4, 26); this.appsTab.Name = "appsTab"; this.appsTab.Padding = new System.Windows.Forms.Padding(3); - this.appsTab.Size = new System.Drawing.Size(1273, 611); + this.appsTab.Size = new System.Drawing.Size(1273, 628); this.appsTab.TabIndex = 12; this.appsTab.Text = "Apps"; // @@ -2414,7 +2433,7 @@ private void InitializeComponent() this.txtFeedError.ForeColor = System.Drawing.Color.Gold; this.txtFeedError.Location = new System.Drawing.Point(3, 47); this.txtFeedError.Name = "txtFeedError"; - this.txtFeedError.Size = new System.Drawing.Size(1267, 441); + this.txtFeedError.Size = new System.Drawing.Size(1267, 458); this.txtFeedError.TabIndex = 171; this.txtFeedError.Text = "No internet connection, try refreshing links again"; this.txtFeedError.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -2563,7 +2582,7 @@ private void InitializeComponent() this.panelCommonApps.Controls.Add(this.bitPref); this.panelCommonApps.Controls.Add(this.goToDownloadsB); this.panelCommonApps.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panelCommonApps.Location = new System.Drawing.Point(3, 488); + this.panelCommonApps.Location = new System.Drawing.Point(3, 505); this.panelCommonApps.Name = "panelCommonApps"; this.panelCommonApps.Size = new System.Drawing.Size(1267, 120); this.panelCommonApps.TabIndex = 162; @@ -2762,7 +2781,7 @@ private void InitializeComponent() this.cleanerTab.Margin = new System.Windows.Forms.Padding(2); this.cleanerTab.Name = "cleanerTab"; this.cleanerTab.Padding = new System.Windows.Forms.Padding(2); - this.cleanerTab.Size = new System.Drawing.Size(1273, 611); + this.cleanerTab.Size = new System.Drawing.Size(1273, 628); this.cleanerTab.TabIndex = 5; this.cleanerTab.Text = "Cleaner"; // @@ -2773,7 +2792,7 @@ private void InitializeComponent() this.panel14.Dock = System.Windows.Forms.DockStyle.Fill; this.panel14.Location = new System.Drawing.Point(221, 2); this.panel14.Name = "panel14"; - this.panel14.Size = new System.Drawing.Size(1050, 546); + this.panel14.Size = new System.Drawing.Size(1050, 563); this.panel14.TabIndex = 51; // // listCleanPreview @@ -2787,7 +2806,7 @@ private void InitializeComponent() this.listCleanPreview.HorizontalScrollbar = true; this.listCleanPreview.Location = new System.Drawing.Point(0, 0); this.listCleanPreview.Name = "listCleanPreview"; - this.listCleanPreview.Size = new System.Drawing.Size(1048, 544); + this.listCleanPreview.Size = new System.Drawing.Size(1048, 561); this.listCleanPreview.TabIndex = 1; // // panel13 @@ -2801,7 +2820,7 @@ private void InitializeComponent() this.panel13.Controls.Add(this.cleanDriveB); this.panel13.Controls.Add(this.lblFootprint); this.panel13.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel13.Location = new System.Drawing.Point(221, 548); + this.panel13.Location = new System.Drawing.Point(221, 565); this.panel13.Name = "panel13"; this.panel13.Size = new System.Drawing.Size(1050, 61); this.panel13.TabIndex = 50; @@ -2949,7 +2968,7 @@ private void InitializeComponent() this.panel1.Location = new System.Drawing.Point(2, 2); this.panel1.Margin = new System.Windows.Forms.Padding(2); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(219, 607); + this.panel1.Size = new System.Drawing.Size(219, 624); this.panel1.TabIndex = 47; // // bravePasswords @@ -3383,7 +3402,7 @@ private void InitializeComponent() this.pingerTab.Location = new System.Drawing.Point(4, 26); this.pingerTab.Name = "pingerTab"; this.pingerTab.Padding = new System.Windows.Forms.Padding(3); - this.pingerTab.Size = new System.Drawing.Size(1273, 611); + this.pingerTab.Size = new System.Drawing.Size(1273, 628); this.pingerTab.TabIndex = 13; this.pingerTab.Text = "Pinger"; // @@ -3399,7 +3418,7 @@ private void InitializeComponent() this.netTools.Name = "netTools"; this.netTools.Padding = new System.Drawing.Point(0, 0); this.netTools.SelectedIndex = 0; - this.netTools.Size = new System.Drawing.Size(1267, 605); + this.netTools.Size = new System.Drawing.Size(1267, 622); this.netTools.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.netTools.TabIndex = 104; // @@ -3430,7 +3449,7 @@ private void InitializeComponent() this.tabPage2.Location = new System.Drawing.Point(4, 4); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1259, 575); + this.tabPage2.Size = new System.Drawing.Size(1259, 592); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "DNS"; // @@ -3742,7 +3761,7 @@ private void InitializeComponent() this.tabPage1.Location = new System.Drawing.Point(4, 4); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1259, 575); + this.tabPage1.Size = new System.Drawing.Size(1259, 592); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "Pinger"; // @@ -3921,7 +3940,7 @@ private void InitializeComponent() this.hostsEditorTab.Margin = new System.Windows.Forms.Padding(2); this.hostsEditorTab.Name = "hostsEditorTab"; this.hostsEditorTab.Padding = new System.Windows.Forms.Padding(2); - this.hostsEditorTab.Size = new System.Drawing.Size(1273, 611); + this.hostsEditorTab.Size = new System.Drawing.Size(1273, 628); this.hostsEditorTab.TabIndex = 9; this.hostsEditorTab.Text = "Hosts"; // @@ -4233,7 +4252,7 @@ private void InitializeComponent() this.registryFixerTab.Margin = new System.Windows.Forms.Padding(2); this.registryFixerTab.Name = "registryFixerTab"; this.registryFixerTab.Padding = new System.Windows.Forms.Padding(2); - this.registryFixerTab.Size = new System.Drawing.Size(1273, 611); + this.registryFixerTab.Size = new System.Drawing.Size(1273, 628); this.registryFixerTab.TabIndex = 8; this.registryFixerTab.Text = "Registry"; // @@ -4443,7 +4462,7 @@ private void InitializeComponent() this.indiciumTab.Location = new System.Drawing.Point(4, 26); this.indiciumTab.Name = "indiciumTab"; this.indiciumTab.Padding = new System.Windows.Forms.Padding(3); - this.indiciumTab.Size = new System.Drawing.Size(1273, 611); + this.indiciumTab.Size = new System.Drawing.Size(1273, 628); this.indiciumTab.TabIndex = 14; this.indiciumTab.Text = "Hardware"; // @@ -4454,7 +4473,7 @@ private void InitializeComponent() this.panel12.Dock = System.Windows.Forms.DockStyle.Fill; this.panel12.Location = new System.Drawing.Point(3, 38); this.panel12.Name = "panel12"; - this.panel12.Size = new System.Drawing.Size(1267, 570); + this.panel12.Size = new System.Drawing.Size(1267, 587); this.panel12.TabIndex = 2; // // specsTree @@ -4509,7 +4528,7 @@ private void InitializeComponent() treeNode6, treeNode7, treeNode8}); - this.specsTree.Size = new System.Drawing.Size(1265, 568); + this.specsTree.Size = new System.Drawing.Size(1265, 585); this.specsTree.TabIndex = 0; this.specsTree.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.specsTree_NodeMouseClick); // @@ -4632,7 +4651,7 @@ private void InitializeComponent() this.integratorTab.Margin = new System.Windows.Forms.Padding(2); this.integratorTab.Name = "integratorTab"; this.integratorTab.Padding = new System.Windows.Forms.Padding(2); - this.integratorTab.Size = new System.Drawing.Size(1273, 599); + this.integratorTab.Size = new System.Drawing.Size(1273, 628); this.integratorTab.TabIndex = 10; this.integratorTab.Text = "Integrator"; // @@ -4652,7 +4671,7 @@ private void InitializeComponent() this.synapse.Name = "synapse"; this.synapse.Padding = new System.Drawing.Point(0, 0); this.synapse.SelectedIndex = 0; - this.synapse.Size = new System.Drawing.Size(1269, 595); + this.synapse.Size = new System.Drawing.Size(1269, 624); this.synapse.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.synapse.TabIndex = 0; // @@ -4671,7 +4690,7 @@ private void InitializeComponent() this.integratorInfoTab.Margin = new System.Windows.Forms.Padding(2); this.integratorInfoTab.Name = "integratorInfoTab"; this.integratorInfoTab.Padding = new System.Windows.Forms.Padding(2); - this.integratorInfoTab.Size = new System.Drawing.Size(1261, 565); + this.integratorInfoTab.Size = new System.Drawing.Size(1261, 594); this.integratorInfoTab.TabIndex = 0; this.integratorInfoTab.Text = "Info"; // @@ -4780,7 +4799,7 @@ private void InitializeComponent() this.tabPage8.Margin = new System.Windows.Forms.Padding(2); this.tabPage8.Name = "tabPage8"; this.tabPage8.Padding = new System.Windows.Forms.Padding(2); - this.tabPage8.Size = new System.Drawing.Size(1261, 619); + this.tabPage8.Size = new System.Drawing.Size(1261, 594); this.tabPage8.TabIndex = 1; this.tabPage8.Text = "Add/Modify"; // @@ -5125,7 +5144,7 @@ private void InitializeComponent() this.tabPage9.Margin = new System.Windows.Forms.Padding(2); this.tabPage9.Name = "tabPage9"; this.tabPage9.Padding = new System.Windows.Forms.Padding(2); - this.tabPage9.Size = new System.Drawing.Size(1261, 619); + this.tabPage9.Size = new System.Drawing.Size(1261, 594); this.tabPage9.TabIndex = 2; this.tabPage9.Text = "Remove"; // @@ -5236,7 +5255,7 @@ private void InitializeComponent() this.tabPage10.Margin = new System.Windows.Forms.Padding(2); this.tabPage10.Name = "tabPage10"; this.tabPage10.Padding = new System.Windows.Forms.Padding(2); - this.tabPage10.Size = new System.Drawing.Size(1261, 619); + this.tabPage10.Size = new System.Drawing.Size(1261, 594); this.tabPage10.TabIndex = 3; this.tabPage10.Text = "Ready Menus"; // @@ -5384,7 +5403,7 @@ private void InitializeComponent() this.tabPage11.Margin = new System.Windows.Forms.Padding(2); this.tabPage11.Name = "tabPage11"; this.tabPage11.Padding = new System.Windows.Forms.Padding(2); - this.tabPage11.Size = new System.Drawing.Size(1261, 619); + this.tabPage11.Size = new System.Drawing.Size(1261, 594); this.tabPage11.TabIndex = 4; this.tabPage11.Text = "Run Dialog"; // @@ -5574,7 +5593,7 @@ private void InitializeComponent() this.tabPage3.Controls.Add(this.fontSetTitle); this.tabPage3.Location = new System.Drawing.Point(4, 4); this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(1261, 619); + this.tabPage3.Size = new System.Drawing.Size(1261, 594); this.tabPage3.TabIndex = 5; this.tabPage3.Text = "Fonts"; // @@ -5738,6 +5757,7 @@ private void InitializeComponent() // this.optionsTab.AutoScroll = true; this.optionsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.optionsTab.Controls.Add(this.btnReinforce); this.optionsTab.Controls.Add(this.linkLabel6); this.optionsTab.Controls.Add(this.linkLabel4); this.optionsTab.Controls.Add(this.pictureBox6); @@ -5773,6 +5793,24 @@ private void InitializeComponent() this.optionsTab.TabIndex = 6; this.optionsTab.Text = "Options"; // + // btnReinforce + // + this.btnReinforce.BackColor = System.Drawing.Color.DodgerBlue; + this.btnReinforce.FlatAppearance.BorderColor = System.Drawing.Color.RoyalBlue; + this.btnReinforce.FlatAppearance.BorderSize = 0; + this.btnReinforce.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue; + this.btnReinforce.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue; + this.btnReinforce.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnReinforce.ForeColor = System.Drawing.Color.White; + this.btnReinforce.Location = new System.Drawing.Point(34, 487); + this.btnReinforce.Margin = new System.Windows.Forms.Padding(2); + this.btnReinforce.Name = "btnReinforce"; + this.btnReinforce.Size = new System.Drawing.Size(261, 31); + this.btnReinforce.TabIndex = 103; + this.btnReinforce.Text = "Reinforce policies"; + this.btnReinforce.UseVisualStyleBackColor = false; + this.btnReinforce.Click += new System.EventHandler(this.btnReinforce_Click); + // // linkLabel6 // this.linkLabel6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -5970,30 +6008,6 @@ private void InitializeComponent() this.boxLang.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.boxLang.ForeColor = System.Drawing.Color.White; this.boxLang.FormattingEnabled = true; - this.boxLang.Items.AddRange(new object[] { - "English", - "Русский", - "Ελληνικά", - "Deutsch", - "Italiano", - "Čeština", - "Türkçe", - "Español", - "Português", - "Français", - "Polski", - "简体中文", - "繁體中文", - "한국어", - "العربية", - "کوردی", - "Magyar", - "Română", - "Nederlands", - "українська", - "日本語", - "فارسی", - "नेपाली"}); this.boxLang.Location = new System.Drawing.Point(92, 3); this.boxLang.Name = "boxLang"; this.boxLang.Size = new System.Drawing.Size(212, 29); @@ -6050,12 +6064,12 @@ private void InitializeComponent() this.btnOpenConf.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue; this.btnOpenConf.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnOpenConf.ForeColor = System.Drawing.Color.White; - this.btnOpenConf.Location = new System.Drawing.Point(34, 452); + this.btnOpenConf.Location = new System.Drawing.Point(34, 417); this.btnOpenConf.Margin = new System.Windows.Forms.Padding(2); this.btnOpenConf.Name = "btnOpenConf"; this.btnOpenConf.Size = new System.Drawing.Size(261, 31); this.btnOpenConf.TabIndex = 63; - this.btnOpenConf.Text = "Show config folder"; + this.btnOpenConf.Text = "Show configuration folder"; this.btnOpenConf.UseVisualStyleBackColor = false; this.btnOpenConf.Click += new System.EventHandler(this.btnOpenConf_Click); // @@ -6064,7 +6078,7 @@ private void InitializeComponent() this.lblTroubleshoot.AutoSize = true; this.lblTroubleshoot.Font = new System.Drawing.Font("Segoe UI Semibold", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lblTroubleshoot.ForeColor = System.Drawing.Color.DodgerBlue; - this.lblTroubleshoot.Location = new System.Drawing.Point(17, 379); + this.lblTroubleshoot.Location = new System.Drawing.Point(17, 344); this.lblTroubleshoot.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.lblTroubleshoot.Name = "lblTroubleshoot"; this.lblTroubleshoot.Size = new System.Drawing.Size(150, 25); @@ -6077,7 +6091,7 @@ private void InitializeComponent() this.lblUpdating.AutoSize = true; this.lblUpdating.Font = new System.Drawing.Font("Segoe UI Semibold", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lblUpdating.ForeColor = System.Drawing.Color.DodgerBlue; - this.lblUpdating.Location = new System.Drawing.Point(17, 283); + this.lblUpdating.Location = new System.Drawing.Point(17, 244); this.lblUpdating.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.lblUpdating.Name = "lblUpdating"; this.lblUpdating.Size = new System.Drawing.Size(142, 25); @@ -6093,7 +6107,7 @@ private void InitializeComponent() this.btnViewLog.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue; this.btnViewLog.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnViewLog.ForeColor = System.Drawing.Color.White; - this.btnViewLog.Location = new System.Drawing.Point(34, 417); + this.btnViewLog.Location = new System.Drawing.Point(34, 382); this.btnViewLog.Margin = new System.Windows.Forms.Padding(2); this.btnViewLog.Name = "btnViewLog"; this.btnViewLog.Size = new System.Drawing.Size(261, 31); @@ -6128,7 +6142,7 @@ private void InitializeComponent() this.btnUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnUpdate.Font = new System.Drawing.Font("Segoe UI Semibold", 10F); this.btnUpdate.ForeColor = System.Drawing.Color.White; - this.btnUpdate.Location = new System.Drawing.Point(34, 317); + this.btnUpdate.Location = new System.Drawing.Point(34, 278); this.btnUpdate.Margin = new System.Windows.Forms.Padding(2); this.btnUpdate.Name = "btnUpdate"; this.btnUpdate.Size = new System.Drawing.Size(261, 31); @@ -6146,7 +6160,7 @@ private void InitializeComponent() this.btnResetConfig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue; this.btnResetConfig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnResetConfig.ForeColor = System.Drawing.Color.White; - this.btnResetConfig.Location = new System.Drawing.Point(34, 487); + this.btnResetConfig.Location = new System.Drawing.Point(34, 452); this.btnResetConfig.Margin = new System.Windows.Forms.Padding(2); this.btnResetConfig.Name = "btnResetConfig"; this.btnResetConfig.Size = new System.Drawing.Size(261, 31); @@ -6160,7 +6174,7 @@ private void InitializeComponent() this.lblTheming.AutoSize = true; this.lblTheming.Font = new System.Drawing.Font("Segoe UI Semibold", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lblTheming.ForeColor = System.Drawing.Color.DodgerBlue; - this.lblTheming.Location = new System.Drawing.Point(17, 123); + this.lblTheming.Location = new System.Drawing.Point(17, 95); this.lblTheming.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.lblTheming.Name = "lblTheming"; this.lblTheming.Size = new System.Drawing.Size(174, 25); @@ -6188,7 +6202,7 @@ private void InitializeComponent() // colorPicker1 // this.colorPicker1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.colorPicker1.Location = new System.Drawing.Point(22, 151); + this.colorPicker1.Location = new System.Drawing.Point(22, 123); this.colorPicker1.Name = "colorPicker1"; this.colorPicker1.Size = new System.Drawing.Size(139, 98); this.colorPicker1.TabIndex = 97; @@ -6974,6 +6988,8 @@ private void InitializeComponent() private TextBox txtDns4A; private Label label10; private Button btnSetDns; + private Button btnReinforce; + private ToggleCard copilotSw; } } diff --git a/Optimizer/Forms/MainForm.cs b/Optimizer/Forms/MainForm.cs index 9ff5ebd2..23bab730 100644 --- a/Optimizer/Forms/MainForm.cs +++ b/Optimizer/Forms/MainForm.cs @@ -25,7 +25,7 @@ public sealed partial class MainForm : Form ListViewColumnSorter _columnSorter; List _startUpItems = new List(); - List _backupItems = new List(); + List _backupItems = new List(); List _hostsEntries = new List(); List _customCommands = new List(); @@ -48,7 +48,7 @@ public sealed partial class MainForm : Form DesktopItemType _desktopItemType = DesktopItemType.Program; DesktopTypePosition _desktopItemPosition = DesktopTypePosition.Top; - public List AppsFromFeed = new List(); + public List AppsFromFeed = new List(); readonly string _feedLink = "https://raw.githubusercontent.com/hellzerg/optimizer/master/feed.json"; readonly string _feedImages = "https://raw.githubusercontent.com/hellzerg/optimizer/master/images/feed.zip"; @@ -79,6 +79,7 @@ public sealed partial class MainForm : Form string _repairMessage = "Are you sure you want to reset configuration?\n\nThis will reset all your preferences, including any icons you extracted or downloaded using Integrator, but will not touch anything on your computer!"; string _flushDNSMessage = "Are you sure you wish to flush the DNS cache of Windows?\n\nThis will cause internet disconnection for a moment and it may be needed a restart to function properly."; string _uwpRestoreMessage = "Are you sure you want to do this?"; + string _reinforcePoliciesMessage = "Are you sure you want to re-apply your current policies?"; string _byteSizeNullString = " b"; string _primaryItemTag = "_primary"; @@ -276,6 +277,7 @@ private void EnableToggleEvents() hpetSw.ToggleClicked += HpetSw_ToggleClicked; loginVerboseSw.ToggleClicked += LoginVerboseSw_ToggleClicked; classicPhotoViewerSw.ToggleClicked += ClassicPhotoViewerSw_ToggleClicked; + copilotSw.ToggleClicked += CopilotSw_ToggleClicked; PMB.ToggleClicked += PMB_ToggleClicked; SSB.ToggleClicked += SSB_ToggleClicked; @@ -286,6 +288,19 @@ private void EnableToggleEvents() AddOwnerB.ToggleClicked += AddOwnerB_ToggleClicked; } + private void CopilotSw_ToggleClicked(object sender, EventArgs e) + { + if (copilotSw.ToggleChecked) + { + OptimizeHelper.DisableCoPilotAI(); + } + else + { + OptimizeHelper.EnableCoPilotAI(); + } + OptionsHelper.CurrentOptions.DisableCoPilotAI = copilotSw.ToggleChecked; + } + private void ClassicPhotoViewerSw_ToggleClicked(object sender, EventArgs e) { if (classicPhotoViewerSw.ToggleChecked) @@ -296,7 +311,7 @@ private void ClassicPhotoViewerSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.DisableClassicPhotoViewer(); } - Options.CurrentOptions.RestoreClassicPhotoViewer = classicPhotoViewerSw.ToggleChecked; + OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer = classicPhotoViewerSw.ToggleChecked; } private void LoginVerboseSw_ToggleClicked(object sender, EventArgs e) @@ -309,7 +324,7 @@ private void LoginVerboseSw_ToggleClicked(object sender, EventArgs e) { Utilities.DisableLoginVerbose(); } - Options.CurrentOptions.EnableLoginVerbose = loginVerboseSw.ToggleChecked; + OptionsHelper.CurrentOptions.EnableLoginVerbose = loginVerboseSw.ToggleChecked; } private void HpetSw_ToggleClicked(object sender, EventArgs e) @@ -322,7 +337,7 @@ private void HpetSw_ToggleClicked(object sender, EventArgs e) { Utilities.EnableHPET(); } - Options.CurrentOptions.DisableHPET = hpetSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableHPET = hpetSw.ToggleChecked; } private void EdgeTelemetrySw_ToggleClicked(object sender, EventArgs e) @@ -335,7 +350,7 @@ private void EdgeTelemetrySw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableEdgeTelemetry(); } - Options.CurrentOptions.DisableEdgeTelemetry = edgeTelemetrySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableEdgeTelemetry = edgeTelemetrySw.ToggleChecked; } private void EdgeAiSw_ToggleClicked(object sender, EventArgs e) @@ -348,7 +363,7 @@ private void EdgeAiSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableEdgeDiscoverBar(); } - Options.CurrentOptions.DisableEdgeDiscoverBar = edgeAiSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar = edgeAiSw.ToggleChecked; } private void WinSearchSw_ToggleClicked(object sender, EventArgs e) @@ -361,7 +376,7 @@ private void WinSearchSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableSearch(); } - Options.CurrentOptions.DisableSearch = winSearchSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSearch = winSearchSw.ToggleChecked; } private void VbsSw_ToggleClicked(object sender, EventArgs e) @@ -374,7 +389,7 @@ private void VbsSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableVirtualizationBasedSecurity(); } - Options.CurrentOptions.DisableVBS = vbsSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableVBS = vbsSw.ToggleChecked; ShowRestartNeeded(); } @@ -388,7 +403,7 @@ private void NvidiaTelemetrySw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableNvidiaTelemetry(); } - Options.CurrentOptions.DisableNVIDIATelemetry = nvidiaTelemetrySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableNVIDIATelemetry = nvidiaTelemetrySw.ToggleChecked; ShowRestartNeeded(); } @@ -402,7 +417,7 @@ private void NtfsStampSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableNTFSTimeStamp(); } - Options.CurrentOptions.DisableNTFSTimeStamp = ntfsStampSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableNTFSTimeStamp = ntfsStampSw.ToggleChecked; ShowRestartNeeded(); } @@ -416,7 +431,7 @@ private void Smb2Sw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableSMB("2"); } - Options.CurrentOptions.DisableSMB2 = smb2Sw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSMB2 = smb2Sw.ToggleChecked; ShowRestartNeeded(); } @@ -430,7 +445,7 @@ private void Smb1Sw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableSMB("1"); } - Options.CurrentOptions.DisableSMB1 = smb1Sw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSMB1 = smb1Sw.ToggleChecked; ShowRestartNeeded(); } @@ -444,7 +459,7 @@ private void HibernateSw_ToggleClicked(object sender, EventArgs e) { Utilities.EnableHibernation(); } - Options.CurrentOptions.DisableHibernation = hibernateSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableHibernation = hibernateSw.ToggleChecked; ShowRestartNeeded(); } @@ -458,7 +473,7 @@ private void StickersSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableStickers(); } - Options.CurrentOptions.DisableStickers = stickersSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableStickers = stickersSw.ToggleChecked; } private void TpmSw_ToggleClicked(object sender, EventArgs e) @@ -471,7 +486,7 @@ private void TpmSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableTPMCheck(); } - Options.CurrentOptions.DisableTPMCheck = tpmSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableTPMCheck = tpmSw.ToggleChecked; } private void CompactModeSw_ToggleClicked(object sender, EventArgs e) @@ -484,7 +499,7 @@ private void CompactModeSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.DisableFilesCompactMode(); } - Options.CurrentOptions.CompactMode = compactModeSw.ToggleChecked; + OptionsHelper.CurrentOptions.CompactMode = compactModeSw.ToggleChecked; ShowRestartNeeded(); } @@ -498,7 +513,7 @@ private void GameModeSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.DisableGamingMode(); } - Options.CurrentOptions.EnableGamingMode = gameModeSw.ToggleChecked; + OptionsHelper.CurrentOptions.EnableGamingMode = gameModeSw.ToggleChecked; ShowRestartNeeded(); } @@ -512,7 +527,7 @@ private void VsSw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableVisualStudioTelemetry(); } - Options.CurrentOptions.DisableVisualStudioTelemetry = vsSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableVisualStudioTelemetry = vsSw.ToggleChecked; } private void ChromeTelemetrySw_ToggleClicked(object sender, EventArgs e) @@ -525,7 +540,7 @@ private void ChromeTelemetrySw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableChromeTelemetry(); } - Options.CurrentOptions.DisableChromeTelemetry = chromeTelemetrySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableChromeTelemetry = chromeTelemetrySw.ToggleChecked; } private void FfTelemetrySw_ToggleClicked(object sender, EventArgs e) @@ -538,7 +553,7 @@ private void FfTelemetrySw_ToggleClicked(object sender, EventArgs e) { OptimizeHelper.EnableFirefoxTelemetry(); } - Options.CurrentOptions.DisableFirefoxTemeletry = ffTelemetrySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableFirefoxTemeletry = ffTelemetrySw.ToggleChecked; } private void ClassicContextSw_Click(object sender, EventArgs e) @@ -551,7 +566,7 @@ private void ClassicContextSw_Click(object sender, EventArgs e) { OptimizeHelper.EnableShowMoreOptions(); } - Options.CurrentOptions.ClassicMenu = classicContextSw.ToggleChecked; + OptionsHelper.CurrentOptions.ClassicMenu = classicContextSw.ToggleChecked; ShowRestartNeeded(); } @@ -565,7 +580,7 @@ private void chatSw_Click(object sender, EventArgs e) { OptimizeHelper.EnableChat(); } - Options.CurrentOptions.DisableChat = chatSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableChat = chatSw.ToggleChecked; } private void WidgetsSw_Click(object sender, EventArgs e) @@ -578,7 +593,7 @@ private void WidgetsSw_Click(object sender, EventArgs e) { OptimizeHelper.EnableWidgets(); } - Options.CurrentOptions.DisableWidgets = widgetsSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableWidgets = widgetsSw.ToggleChecked; } private void SnapAssistSw_Click(object sender, EventArgs e) @@ -591,7 +606,7 @@ private void SnapAssistSw_Click(object sender, EventArgs e) { OptimizeHelper.EnableSnapAssist(); } - Options.CurrentOptions.DisableSnapAssist = snapAssistSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSnapAssist = snapAssistSw.ToggleChecked; ShowRestartNeeded(); } @@ -605,76 +620,77 @@ private void LeftTaskbarSw_Click(object sender, EventArgs e) { OptimizeHelper.AlignTaskbarToCenter(); } - Options.CurrentOptions.TaskbarToLeft = leftTaskbarSw.ToggleChecked; + OptionsHelper.CurrentOptions.TaskbarToLeft = leftTaskbarSw.ToggleChecked; } private void TranslateTips() { try { - performanceSw.Label.Tag = Options.TranslationList["performanceTip"].ToString(); - networkSw.Label.Tag = Options.TranslationList["networkTip"].ToString(); - defenderSw.Label.Tag = Options.TranslationList["defenderTip"].ToString(); - smartScreenSw.Label.Tag = Options.TranslationList["smartScreenTip"].ToString(); - systemRestoreSw.Label.Tag = Options.TranslationList["systemRestoreTip"].ToString(); - reportingSw.Label.Tag = Options.TranslationList["reportingTip"].ToString(); - telemetryTasksSw.Label.Tag = Options.TranslationList["telemetryTasksTip"].ToString(); - officeTelemetrySw.Label.Tag = Options.TranslationList["officeTelemetryTip"].ToString(); - printSw.Label.Tag = Options.TranslationList["printTip"].ToString(); - faxSw.Label.Tag = Options.TranslationList["faxTip"].ToString(); - mediaSharingSw.Label.Tag = Options.TranslationList["mediaSharingTip"].ToString(); - stickySw.Label.Tag = Options.TranslationList["stickyTip"].ToString(); - homegroupSw.Label.Tag = Options.TranslationList["homegroupTip"].ToString(); - superfetchSw.Label.Tag = Options.TranslationList["superfetchTip"].ToString(); - compatSw.Label.Tag = Options.TranslationList["compatTip"].ToString(); - disableOneDriveSw.Label.Tag = Options.TranslationList["disableOneDriveTip"].ToString(); - oldMixerSw.Label.Tag = Options.TranslationList["oldMixerTip"].ToString(); - oldExplorerSw.Label.Tag = Options.TranslationList["oldExplorerTip"].ToString(); - adsSw.Label.Tag = Options.TranslationList["adsTip"].ToString(); - uODSw.Label.Tag = Options.TranslationList["uODTip"].ToString(); - peopleSw.Label.Tag = Options.TranslationList["peopleTip"].ToString(); - longPathsSw.Label.Tag = Options.TranslationList["longPathsTip"].ToString(); - inkSw.Label.Tag = Options.TranslationList["inkTip"].ToString(); - spellSw.Label.Tag = Options.TranslationList["spellTip"].ToString(); - xboxSw.Label.Tag = Options.TranslationList["xboxTip"].ToString(); - autoUpdatesSw.Label.Tag = Options.TranslationList["autoUpdatesTip"].ToString(); - driversSw.Label.Tag = Options.TranslationList["driversTip"].ToString(); - telemetryServicesSw.Label.Tag = Options.TranslationList["telemetryServicesTip"].ToString(); - privacySw.Label.Tag = Options.TranslationList["privacyTip"].ToString(); - ccSw.Label.Tag = Options.TranslationList["ccTip"].ToString(); - cortanaSw.Label.Tag = Options.TranslationList["cortanaTip"].ToString(); - edgeAiSw.Label.Tag = Options.TranslationList["edgeAiTip"].ToString(); - edgeTelemetrySw.Label.Tag = Options.TranslationList["edgeTelemetryTip"].ToString(); - sensorSw.Label.Tag = Options.TranslationList["sensorTip"].ToString(); - castSw.Label.Tag = Options.TranslationList["castTip"].ToString(); - gameBarSw.Label.Tag = Options.TranslationList["gameBarTip"].ToString(); - insiderSw.Label.Tag = Options.TranslationList["insiderTip"].ToString(); - storeUpdatesSw.Label.Tag = Options.TranslationList["storeUpdatesTip"].ToString(); - tpmSw.Label.Tag = Options.TranslationList["tpmTip"].ToString(); - leftTaskbarSw.Label.Tag = Options.TranslationList["leftTaskbarTip"].ToString(); - snapAssistSw.Label.Tag = Options.TranslationList["snapAssistTip"].ToString(); - widgetsSw.Label.Tag = Options.TranslationList["widgetsTip"].ToString(); - chatSw.Label.Tag = Options.TranslationList["chatTip"].ToString(); - stickersSw.Label.Tag = Options.TranslationList["stickersTip"].ToString(); - classicContextSw.Label.Tag = Options.TranslationList["classicContextTip"].ToString(); - picUpdate.Tag = Options.TranslationList["linkUpdate"].ToString() + "!"; - picLab.Tag = Options.TranslationList["lblLab"].ToString(); - picRestartNeeded.Tag = Options.TranslationList["restartAndApply"].ToString(); - ffTelemetrySw.Label.Tag = Options.TranslationList["ffTelemetryTip"].ToString(); - vsSw.Label.Tag = Options.TranslationList["vsTip"].ToString(); - chromeTelemetrySw.Label.Tag = Options.TranslationList["chromeTelemetryTip"].ToString(); - gameModeSw.Label.Tag = Options.TranslationList["gameModeTip"].ToString(); - compactModeSw.Label.Tag = Options.TranslationList["compactModeTip"].ToString(); - hibernateSw.Label.Tag = Options.TranslationList["hibernateTip"].ToString(); - winSearchSw.Label.Tag = Options.TranslationList["winSearchTip"].ToString(); - smb1Sw.Label.Tag = Options.TranslationList["smbTip"].ToString().Replace("{v}", "v1"); - smb2Sw.Label.Tag = Options.TranslationList["smbTip"].ToString().Replace("{v}", "v2"); - ntfsStampSw.Label.Tag = Options.TranslationList["ntfsStampTip"].ToString(); - nvidiaTelemetrySw.Label.Tag = Options.TranslationList["nvidiaTelemetrySw"].ToString(); - vbsSw.Label.Tag = Options.TranslationList["vbsTip"].ToString(); - hpetSw.Label.Tag = Options.TranslationList["hpetSw"].ToString(); - loginVerboseSw.Label.Tag = Options.TranslationList["loginVerboseSw"].ToString(); - classicPhotoViewerSw.Label.Tag = Options.TranslationList["classicPhotoViewerSw"].ToString(); + performanceSw.Label.Tag = OptionsHelper.TranslationList["performanceTip"].ToString(); + networkSw.Label.Tag = OptionsHelper.TranslationList["networkTip"].ToString(); + defenderSw.Label.Tag = OptionsHelper.TranslationList["defenderTip"].ToString(); + smartScreenSw.Label.Tag = OptionsHelper.TranslationList["smartScreenTip"].ToString(); + systemRestoreSw.Label.Tag = OptionsHelper.TranslationList["systemRestoreTip"].ToString(); + reportingSw.Label.Tag = OptionsHelper.TranslationList["reportingTip"].ToString(); + telemetryTasksSw.Label.Tag = OptionsHelper.TranslationList["telemetryTasksTip"].ToString(); + officeTelemetrySw.Label.Tag = OptionsHelper.TranslationList["officeTelemetryTip"].ToString(); + printSw.Label.Tag = OptionsHelper.TranslationList["printTip"].ToString(); + faxSw.Label.Tag = OptionsHelper.TranslationList["faxTip"].ToString(); + mediaSharingSw.Label.Tag = OptionsHelper.TranslationList["mediaSharingTip"].ToString(); + stickySw.Label.Tag = OptionsHelper.TranslationList["stickyTip"].ToString(); + homegroupSw.Label.Tag = OptionsHelper.TranslationList["homegroupTip"].ToString(); + superfetchSw.Label.Tag = OptionsHelper.TranslationList["superfetchTip"].ToString(); + compatSw.Label.Tag = OptionsHelper.TranslationList["compatTip"].ToString(); + disableOneDriveSw.Label.Tag = OptionsHelper.TranslationList["disableOneDriveTip"].ToString(); + oldMixerSw.Label.Tag = OptionsHelper.TranslationList["oldMixerTip"].ToString(); + oldExplorerSw.Label.Tag = OptionsHelper.TranslationList["oldExplorerTip"].ToString(); + adsSw.Label.Tag = OptionsHelper.TranslationList["adsTip"].ToString(); + uODSw.Label.Tag = OptionsHelper.TranslationList["uODTip"].ToString(); + peopleSw.Label.Tag = OptionsHelper.TranslationList["peopleTip"].ToString(); + longPathsSw.Label.Tag = OptionsHelper.TranslationList["longPathsTip"].ToString(); + inkSw.Label.Tag = OptionsHelper.TranslationList["inkTip"].ToString(); + spellSw.Label.Tag = OptionsHelper.TranslationList["spellTip"].ToString(); + xboxSw.Label.Tag = OptionsHelper.TranslationList["xboxTip"].ToString(); + autoUpdatesSw.Label.Tag = OptionsHelper.TranslationList["autoUpdatesTip"].ToString(); + driversSw.Label.Tag = OptionsHelper.TranslationList["driversTip"].ToString(); + telemetryServicesSw.Label.Tag = OptionsHelper.TranslationList["telemetryServicesTip"].ToString(); + privacySw.Label.Tag = OptionsHelper.TranslationList["privacyTip"].ToString(); + ccSw.Label.Tag = OptionsHelper.TranslationList["ccTip"].ToString(); + cortanaSw.Label.Tag = OptionsHelper.TranslationList["cortanaTip"].ToString(); + edgeAiSw.Label.Tag = OptionsHelper.TranslationList["edgeAiTip"].ToString(); + edgeTelemetrySw.Label.Tag = OptionsHelper.TranslationList["edgeTelemetryTip"].ToString(); + sensorSw.Label.Tag = OptionsHelper.TranslationList["sensorTip"].ToString(); + castSw.Label.Tag = OptionsHelper.TranslationList["castTip"].ToString(); + gameBarSw.Label.Tag = OptionsHelper.TranslationList["gameBarTip"].ToString(); + insiderSw.Label.Tag = OptionsHelper.TranslationList["insiderTip"].ToString(); + storeUpdatesSw.Label.Tag = OptionsHelper.TranslationList["storeUpdatesTip"].ToString(); + tpmSw.Label.Tag = OptionsHelper.TranslationList["tpmTip"].ToString(); + leftTaskbarSw.Label.Tag = OptionsHelper.TranslationList["leftTaskbarTip"].ToString(); + snapAssistSw.Label.Tag = OptionsHelper.TranslationList["snapAssistTip"].ToString(); + widgetsSw.Label.Tag = OptionsHelper.TranslationList["widgetsTip"].ToString(); + chatSw.Label.Tag = OptionsHelper.TranslationList["chatTip"].ToString(); + stickersSw.Label.Tag = OptionsHelper.TranslationList["stickersTip"].ToString(); + classicContextSw.Label.Tag = OptionsHelper.TranslationList["classicContextTip"].ToString(); + picUpdate.Tag = OptionsHelper.TranslationList["linkUpdate"].ToString() + "!"; + picLab.Tag = OptionsHelper.TranslationList["lblLab"].ToString(); + picRestartNeeded.Tag = OptionsHelper.TranslationList["restartAndApply"].ToString(); + ffTelemetrySw.Label.Tag = OptionsHelper.TranslationList["ffTelemetryTip"].ToString(); + vsSw.Label.Tag = OptionsHelper.TranslationList["vsTip"].ToString(); + chromeTelemetrySw.Label.Tag = OptionsHelper.TranslationList["chromeTelemetryTip"].ToString(); + gameModeSw.Label.Tag = OptionsHelper.TranslationList["gameModeTip"].ToString(); + compactModeSw.Label.Tag = OptionsHelper.TranslationList["compactModeTip"].ToString(); + hibernateSw.Label.Tag = OptionsHelper.TranslationList["hibernateTip"].ToString(); + winSearchSw.Label.Tag = OptionsHelper.TranslationList["winSearchTip"].ToString(); + smb1Sw.Label.Tag = OptionsHelper.TranslationList["smbTip"].ToString().Replace("{v}", "v1"); + smb2Sw.Label.Tag = OptionsHelper.TranslationList["smbTip"].ToString().Replace("{v}", "v2"); + ntfsStampSw.Label.Tag = OptionsHelper.TranslationList["ntfsStampTip"].ToString(); + nvidiaTelemetrySw.Label.Tag = OptionsHelper.TranslationList["nvidiaTelemetrySw"].ToString(); + vbsSw.Label.Tag = OptionsHelper.TranslationList["vbsTip"].ToString(); + hpetSw.Label.Tag = OptionsHelper.TranslationList["hpetSw"].ToString(); + loginVerboseSw.Label.Tag = OptionsHelper.TranslationList["loginVerboseSw"].ToString(); + classicPhotoViewerSw.Label.Tag = OptionsHelper.TranslationList["classicPhotoViewerSw"].ToString(); + copilotSw.Label.Tag = OptionsHelper.TranslationList["copilotTip"].ToString(); } catch (Exception err) { @@ -692,7 +708,7 @@ private void ToggleSwitch40_Click(object sender, EventArgs e) { OptimizeHelper.AddCastToDevice(); } - Options.CurrentOptions.RemoveCastToDevice = castSw.ToggleChecked; + OptionsHelper.CurrentOptions.RemoveCastToDevice = castSw.ToggleChecked; } private void ToggleSwitch39_Click(object sender, EventArgs e) @@ -705,7 +721,7 @@ private void ToggleSwitch39_Click(object sender, EventArgs e) { OptimizeHelper.DisableLongPaths(); } - Options.CurrentOptions.EnableLongPaths = longPathsSw.ToggleChecked; + OptionsHelper.CurrentOptions.EnableLongPaths = longPathsSw.ToggleChecked; } private void ToggleSwitch38_Click(object sender, EventArgs e) @@ -718,7 +734,7 @@ private void ToggleSwitch38_Click(object sender, EventArgs e) { OptimizeHelper.EnableStickyKeys(); } - Options.CurrentOptions.DisableStickyKeys = stickySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableStickyKeys = stickySw.ToggleChecked; } private void ToggleSwitch37_Click(object sender, EventArgs e) @@ -731,7 +747,7 @@ private void ToggleSwitch37_Click(object sender, EventArgs e) { OptimizeHelper.EnableCloudClipboard(); } - Options.CurrentOptions.DisableCloudClipboard = ccSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableCloudClipboard = ccSw.ToggleChecked; } private void ToggleSwitch36_Click(object sender, EventArgs e) @@ -744,7 +760,7 @@ private void ToggleSwitch36_Click(object sender, EventArgs e) { OptimizeHelper.EnableSmartScreen(); } - Options.CurrentOptions.DisableSmartScreen = smartScreenSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSmartScreen = smartScreenSw.ToggleChecked; } private void ToggleSwitch35_Click(object sender, EventArgs e) @@ -757,7 +773,7 @@ private void ToggleSwitch35_Click(object sender, EventArgs e) { OptimizeHelper.EnableStoreUpdates(); } - Options.CurrentOptions.DisableStoreUpdates = storeUpdatesSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableStoreUpdates = storeUpdatesSw.ToggleChecked; } private void ToggleSwitch34_Click(object sender, EventArgs e) @@ -770,7 +786,7 @@ private void ToggleSwitch34_Click(object sender, EventArgs e) { OptimizeHelper.EnableInsiderService(); } - Options.CurrentOptions.DisableInsiderService = insiderSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableInsiderService = insiderSw.ToggleChecked; } private void ToggleSwitch33_Click(object sender, EventArgs e) @@ -783,7 +799,7 @@ private void ToggleSwitch33_Click(object sender, EventArgs e) { OptimizeHelper.EnableFaxService(); } - Options.CurrentOptions.DisableFaxService = faxSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableFaxService = faxSw.ToggleChecked; } //ROOT @@ -796,34 +812,62 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa CheckForIllegalCrossThreadCalls = false; + boxLang.Items.AddRange(new string[] + { + Constants.ENGLISH, + Constants.RUSSIAN, + Constants.TURKISH, + Constants.HELLENIC, + Constants.GERMAN, + Constants.PORTUGUESE, + Constants.FRENCH, + Constants.SPANISH, + Constants.ITALIAN, + Constants.CHINESE, + Constants.TAIWANESE, + Constants.CZECH, + Constants.KOREAN, + Constants.POLISH, + Constants.ARABIC, + Constants.KURDISH, + Constants.HUNGARIAN, + Constants.ROMANIAN, + Constants.DUTCH, + Constants.UKRAINIAN, + Constants.JAPANESE, + Constants.PERSIAN, + Constants.NEPALI, + Constants.BULGARIAN, + }); + _splashForm.LoadingStatus.Text = "checking for requirements"; // override tool launch configurations - _disableStartupTool = (disableStartups.HasValue) ? disableStartups.Value : Options.CurrentOptions.DisableStartupTool; - _disableUWPApps = (disableUWPApps.HasValue) ? disableUWPApps.Value : Options.CurrentOptions.DisableUWPApps; - _disableAppsTool = (disableCommonApps.HasValue) ? disableCommonApps.Value : Options.CurrentOptions.DisableAppsTool; - _disablePinger = (disablePinger.HasValue) ? disablePinger.Value : Options.CurrentOptions.DisablePinger; - _disableCleaner = (disableCleaner.HasValue) ? disableCleaner.Value : Options.CurrentOptions.DisableCleaner; - _disableHostsEditor = (disableHostsEditor.HasValue) ? disableHostsEditor.Value : Options.CurrentOptions.DisableHostsEditor; - _disableIndicium = (disableIndicium.HasValue) ? disableIndicium.Value : Options.CurrentOptions.DisableIndicium; - _disableIntegrator = (disableIntegrator.HasValue) ? disableIntegrator.Value : Options.CurrentOptions.DisableIntegrator; + _disableStartupTool = (disableStartups.HasValue) ? disableStartups.Value : OptionsHelper.CurrentOptions.DisableStartupTool; + _disableUWPApps = (disableUWPApps.HasValue) ? disableUWPApps.Value : OptionsHelper.CurrentOptions.DisableUWPApps; + _disableAppsTool = (disableCommonApps.HasValue) ? disableCommonApps.Value : OptionsHelper.CurrentOptions.DisableAppsTool; + _disablePinger = (disablePinger.HasValue) ? disablePinger.Value : OptionsHelper.CurrentOptions.DisablePinger; + _disableCleaner = (disableCleaner.HasValue) ? disableCleaner.Value : OptionsHelper.CurrentOptions.DisableCleaner; + _disableHostsEditor = (disableHostsEditor.HasValue) ? disableHostsEditor.Value : OptionsHelper.CurrentOptions.DisableHostsEditor; + _disableIndicium = (disableIndicium.HasValue) ? disableIndicium.Value : OptionsHelper.CurrentOptions.DisableIndicium; + _disableIntegrator = (disableIntegrator.HasValue) ? disableIntegrator.Value : OptionsHelper.CurrentOptions.DisableIntegrator; // theming - Options.ApplyTheme(this); - pictureBox1.BackColor = Options.CurrentOptions.Theme; - colorPicker1.Color = Options.CurrentOptions.Theme; + OptionsHelper.ApplyTheme(this); + pictureBox1.BackColor = OptionsHelper.CurrentOptions.Theme; + colorPicker1.Color = OptionsHelper.CurrentOptions.Theme; launcherMenu.Renderer = new MoonMenuRenderer(); indiciumMenu.Renderer = new MoonMenuRenderer(); - progressDownloader.BackColor = Options.ForegroundColor; - progressDownloader.ForeColor = Options.ForegroundAccentColor; + progressDownloader.BackColor = OptionsHelper.ForegroundColor; + progressDownloader.ForeColor = OptionsHelper.ForegroundAccentColor; // quick access - _trayMenu = Options.CurrentOptions.EnableTray; - quickAccessToggle.ToggleChecked = Options.CurrentOptions.EnableTray; - launcherIcon.Visible = Options.CurrentOptions.EnableTray; - autoStartToggle.ToggleChecked = Options.CurrentOptions.AutoStart; + _trayMenu = OptionsHelper.CurrentOptions.EnableTray; + quickAccessToggle.ToggleChecked = OptionsHelper.CurrentOptions.EnableTray; + launcherIcon.Visible = OptionsHelper.CurrentOptions.EnableTray; + autoStartToggle.ToggleChecked = OptionsHelper.CurrentOptions.AutoStart; //telemetrySvcToggle.ToggleChecked = Options.CurrentOptions.DisableOptimizerTelemetry; //seperatorNetMon.Visible = Options.CurrentOptions.EnableTray; @@ -870,7 +914,7 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8) { LoadUniversalToggleStates(); - LoadWindowsVIIIToggleStates(); + LoadWindows8ToggleStates(); tabCollection.TabPages.Remove(windows10Tab); @@ -888,7 +932,7 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10) { LoadUniversalToggleStates(); - LoadWindowsXToggleStates(); + LoadWindows10ToggleStates(); tabCollection.TabPages.Remove(windows8Tab); defenderSw.Visible = false; @@ -911,8 +955,8 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows11) { LoadUniversalToggleStates(); - LoadWindowsXToggleStates(); - LoadWindowsXIToggleStates(); + LoadWindows10ToggleStates(); + LoadWindows11ToggleStates(); tabCollection.TabPages.Remove(windows8Tab); windows10Tab.Text = "Windows 11"; @@ -1042,20 +1086,20 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa Program._MainForm = this; - if (string.IsNullOrEmpty(Options.CurrentOptions.AppsFolder)) + if (string.IsNullOrEmpty(OptionsHelper.CurrentOptions.AppsFolder)) { - Options.CurrentOptions.AppsFolder = Path.Combine(KnownFolders.GetPath(KnownFolder.Downloads), Constants.DOWNLOADS_FOLDER); - txtDownloadFolder.Text = Options.CurrentOptions.AppsFolder; - Directory.CreateDirectory(Options.CurrentOptions.AppsFolder); - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AppsFolder = Path.Combine(Utilities.GetUserDownloadsFolder(), Constants.DOWNLOADS_FOLDER); + txtDownloadFolder.Text = OptionsHelper.CurrentOptions.AppsFolder; + Directory.CreateDirectory(OptionsHelper.CurrentOptions.AppsFolder); + OptionsHelper.SaveSettings(); } else { - if (!Directory.Exists(Options.CurrentOptions.AppsFolder)) + if (!Directory.Exists(OptionsHelper.CurrentOptions.AppsFolder)) { try { - Directory.CreateDirectory(Options.CurrentOptions.AppsFolder); + Directory.CreateDirectory(OptionsHelper.CurrentOptions.AppsFolder); } catch (Exception ex) { @@ -1063,7 +1107,7 @@ public MainForm(SplashForm _splashForm, bool? disableIndicium = null, bool? disa Logger.LogError("MainForm.INIT", ex.Message, ex.StackTrace); } } - txtDownloadFolder.Text = Options.CurrentOptions.AppsFolder; + txtDownloadFolder.Text = OptionsHelper.CurrentOptions.AppsFolder; } if (!Program.EXPERIMENTAL_BUILD && PingerHelper.IsInternetAvailable()) @@ -1341,7 +1385,7 @@ private void ApplySelectedDNS() private void LoadTranslation() { - if (Options.CurrentOptions.LanguageCode == LanguageCode.EN) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.EN) { boxLang.Text = Constants.ENGLISH; Translate(true); @@ -1352,94 +1396,98 @@ private void LoadTranslation() } // set default window size to fit content - if (Options.CurrentOptions.LanguageCode == LanguageCode.RU) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.RU) { boxLang.Text = Constants.RUSSIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.TR) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.TR) { boxLang.Text = Constants.TURKISH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.EL) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.EL) { boxLang.Text = Constants.HELLENIC; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.DE) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.DE) { boxLang.Text = Constants.GERMAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.PT) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.PT) { boxLang.Text = Constants.PORTUGUESE; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.FR) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.FR) { boxLang.Text = Constants.FRENCH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.ES) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.ES) { boxLang.Text = Constants.SPANISH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.IT) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.IT) { boxLang.Text = Constants.ITALIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.CN) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.CN) { boxLang.Text = Constants.CHINESE; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.TW) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.TW) { boxLang.Text = Constants.TAIWANESE; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.CZ) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.CZ) { boxLang.Text = Constants.CZECH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.KO) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.KO) { boxLang.Text = Constants.KOREAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.PL) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.PL) { boxLang.Text = Constants.POLISH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.AR) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.AR) { boxLang.Text = Constants.ARABIC; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.KU) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.KU) { boxLang.Text = Constants.KURDISH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.HU) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.HU) { boxLang.Text = Constants.HUNGARIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.RO) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.RO) { boxLang.Text = Constants.ROMANIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.NL) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.NL) { boxLang.Text = Constants.DUTCH; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.UA) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.UA) { boxLang.Text = Constants.UKRAINIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.JA) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.JA) { boxLang.Text = Constants.JAPANESE; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.FA) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.FA) { boxLang.Text = Constants.PERSIAN; } - if (Options.CurrentOptions.LanguageCode == LanguageCode.NE) + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.NE) { boxLang.Text = Constants.NEPALI; } + if (OptionsHelper.CurrentOptions.LanguageCode == LanguageCode.BG) + { + boxLang.Text = Constants.BULGARIAN; + } } private void GetHardwareSpecs() @@ -2106,7 +2154,7 @@ private void GetRAM() private void Translate(bool skipFull = false) { - translationList = Options.TranslationList.ToObject>(); + translationList = OptionsHelper.TranslationList.ToObject>(); if (Environment.Is64BitOperatingSystem) { @@ -2122,18 +2170,19 @@ private void Translate(bool skipFull = false) if (!skipFull) { - _noNewVersionMessage = Options.TranslationList["noNewVersion"]; - _betaVersionMessage = Options.TranslationList["betaVersion"]; - _newVersionMessage = Options.TranslationList["newVersion"]; - _restartMessage = Options.TranslationList["restartAndApply"]; - _removeStartupItemsMessage = Options.TranslationList["removeAllStartup"]; - _removeHostsEntriesMessage = Options.TranslationList["removeAllHosts"]; - _removeDesktopItemsMessage = Options.TranslationList["removeAllItems"]; - _removeModernAppsMessage = Options.TranslationList["removeModernApps"]; - _errorModernAppsMessage = Options.TranslationList["errorModernApps"]; - _repairMessage = Options.TranslationList["resetMessage"]; - _uwpRestoreMessage = Options.TranslationList["restoreUwpMessage"]; - _flushDNSMessage = Options.TranslationList["flushDNSMessage"]; + _noNewVersionMessage = OptionsHelper.TranslationList["noNewVersion"]; + _betaVersionMessage = OptionsHelper.TranslationList["betaVersion"]; + _newVersionMessage = OptionsHelper.TranslationList["newVersion"]; + _restartMessage = OptionsHelper.TranslationList["restartAndApply"]; + _removeStartupItemsMessage = OptionsHelper.TranslationList["removeAllStartup"]; + _removeHostsEntriesMessage = OptionsHelper.TranslationList["removeAllHosts"]; + _removeDesktopItemsMessage = OptionsHelper.TranslationList["removeAllItems"]; + _removeModernAppsMessage = OptionsHelper.TranslationList["removeModernApps"]; + _errorModernAppsMessage = OptionsHelper.TranslationList["errorModernApps"]; + _repairMessage = OptionsHelper.TranslationList["resetMessage"]; + _uwpRestoreMessage = OptionsHelper.TranslationList["restoreUwpMessage"]; + _reinforcePoliciesMessage = OptionsHelper.TranslationList["msgReinforce"]; + _flushDNSMessage = OptionsHelper.TranslationList["flushDNSMessage"]; listStartupItems.Columns[0].Text = translationList["startupItemName"]; listStartupItems.Columns[1].Text = translationList["startupItemLocation"]; @@ -2217,7 +2266,7 @@ private void GetFeed() try { string feed = client.DownloadString(_feedLink); - AppsFromFeed = JsonConvert.DeserializeObject>(feed); + AppsFromFeed = JsonConvert.DeserializeObject>(feed); AppCard appCard; groupSystemTools.Controls.Clear(); @@ -2225,7 +2274,7 @@ private void GetFeed() groupCoding.Controls.Clear(); groupSoundVideo.Controls.Clear(); - foreach (FeedApp x in AppsFromFeed) + foreach (AppInfo x in AppsFromFeed) { appCard = new AppCard(); appCard.AutoSize = true; @@ -2388,89 +2437,90 @@ private bool FixRegistry() private void LoadAdvancedToggleStates() { - hpetSw.ToggleChecked = Options.CurrentOptions.DisableHPET; - loginVerboseSw.ToggleChecked = Options.CurrentOptions.EnableLoginVerbose; + hpetSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableHPET; + loginVerboseSw.ToggleChecked = OptionsHelper.CurrentOptions.EnableLoginVerbose; } private void LoadUniversalToggleStates() { - performanceSw.ToggleChecked = Options.CurrentOptions.EnablePerformanceTweaks; - networkSw.ToggleChecked = Options.CurrentOptions.DisableNetworkThrottling; - defenderSw.ToggleChecked = Options.CurrentOptions.DisableWindowsDefender; - systemRestoreSw.ToggleChecked = Options.CurrentOptions.DisableSystemRestore; - printSw.ToggleChecked = Options.CurrentOptions.DisablePrintService; - mediaSharingSw.ToggleChecked = Options.CurrentOptions.DisableMediaPlayerSharing; - reportingSw.ToggleChecked = Options.CurrentOptions.DisableErrorReporting; - homegroupSw.ToggleChecked = Options.CurrentOptions.DisableHomeGroup; - superfetchSw.ToggleChecked = Options.CurrentOptions.DisableSuperfetch; - telemetryTasksSw.ToggleChecked = Options.CurrentOptions.DisableTelemetryTasks; - officeTelemetrySw.ToggleChecked = Options.CurrentOptions.DisableOffice2016Telemetry; - compatSw.ToggleChecked = Options.CurrentOptions.DisableCompatibilityAssistant; - faxSw.ToggleChecked = Options.CurrentOptions.DisableFaxService; - smartScreenSw.ToggleChecked = Options.CurrentOptions.DisableSmartScreen; - stickySw.ToggleChecked = Options.CurrentOptions.DisableStickyKeys; - hibernateSw.ToggleChecked = Options.CurrentOptions.DisableHibernation; - smb1Sw.ToggleChecked = Options.CurrentOptions.DisableSMB1; - smb2Sw.ToggleChecked = Options.CurrentOptions.DisableSMB2; - ntfsStampSw.ToggleChecked = Options.CurrentOptions.DisableNTFSTimeStamp; - winSearchSw.ToggleChecked = Options.CurrentOptions.DisableSearch; - ffTelemetrySw.ToggleChecked = Options.CurrentOptions.DisableFirefoxTemeletry; - vsSw.ToggleChecked = Options.CurrentOptions.DisableVisualStudioTelemetry; - chromeTelemetrySw.ToggleChecked = Options.CurrentOptions.DisableChromeTelemetry; - nvidiaTelemetrySw.ToggleChecked = Options.CurrentOptions.DisableNVIDIATelemetry; - } - - private void LoadWindowsVIIIToggleStates() - { - disableOneDriveSw.ToggleChecked = Options.CurrentOptions.DisableOneDrive; - } - - private void LoadWindowsXToggleStates() - { - oldMixerSw.ToggleChecked = Options.CurrentOptions.EnableLegacyVolumeSlider; - uODSw.ToggleChecked = Options.CurrentOptions.UninstallOneDrive; - gameBarSw.ToggleChecked = Options.CurrentOptions.DisableGameBar; - cortanaSw.ToggleChecked = Options.CurrentOptions.DisableCortana; - edgeTelemetrySw.ToggleChecked = Options.CurrentOptions.DisableEdgeTelemetry; - edgeAiSw.ToggleChecked = Options.CurrentOptions.DisableEdgeDiscoverBar; - xboxSw.ToggleChecked = Options.CurrentOptions.DisableXboxLive; - oldExplorerSw.ToggleChecked = Options.CurrentOptions.DisableQuickAccessHistory; - sensorSw.ToggleChecked = Options.CurrentOptions.DisableSensorServices; - privacySw.ToggleChecked = Options.CurrentOptions.DisablePrivacyOptions; - telemetryServicesSw.ToggleChecked = Options.CurrentOptions.DisableTelemetryServices; - autoUpdatesSw.ToggleChecked = Options.CurrentOptions.DisableAutomaticUpdates; - peopleSw.ToggleChecked = Options.CurrentOptions.DisableMyPeople; - adsSw.ToggleChecked = Options.CurrentOptions.DisableStartMenuAds; - spellSw.ToggleChecked = Options.CurrentOptions.DisableSpellingTyping; - inkSw.ToggleChecked = Options.CurrentOptions.DisableWindowsInk; - driversSw.ToggleChecked = Options.CurrentOptions.ExcludeDrivers; - insiderSw.ToggleChecked = Options.CurrentOptions.DisableInsiderService; - storeUpdatesSw.ToggleChecked = Options.CurrentOptions.DisableStoreUpdates; - ccSw.ToggleChecked = Options.CurrentOptions.DisableCloudClipboard; - longPathsSw.ToggleChecked = Options.CurrentOptions.EnableLongPaths; - castSw.ToggleChecked = Options.CurrentOptions.RemoveCastToDevice; - gameModeSw.ToggleChecked = Options.CurrentOptions.EnableGamingMode; - tpmSw.ToggleChecked = Options.CurrentOptions.DisableTPMCheck; - classicPhotoViewerSw.ToggleChecked = Options.CurrentOptions.RestoreClassicPhotoViewer; - } - - private void LoadWindowsXIToggleStates() - { - leftTaskbarSw.ToggleChecked = Options.CurrentOptions.TaskbarToLeft; - snapAssistSw.ToggleChecked = Options.CurrentOptions.DisableSnapAssist; - widgetsSw.ToggleChecked = Options.CurrentOptions.DisableWidgets; - chatSw.ToggleChecked = Options.CurrentOptions.DisableChat; - stickersSw.ToggleChecked = Options.CurrentOptions.DisableStickers; - classicContextSw.ToggleChecked = Options.CurrentOptions.ClassicMenu; - tpmSw.ToggleChecked = Options.CurrentOptions.DisableTPMCheck; - compactModeSw.ToggleChecked = Options.CurrentOptions.CompactMode; - vbsSw.ToggleChecked = Options.CurrentOptions.DisableVBS; + performanceSw.ToggleChecked = OptionsHelper.CurrentOptions.EnablePerformanceTweaks; + networkSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableNetworkThrottling; + defenderSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableWindowsDefender; + systemRestoreSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSystemRestore; + printSw.ToggleChecked = OptionsHelper.CurrentOptions.DisablePrintService; + mediaSharingSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableMediaPlayerSharing; + reportingSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableErrorReporting; + homegroupSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableHomeGroup; + superfetchSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSuperfetch; + telemetryTasksSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableTelemetryTasks; + officeTelemetrySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableOffice2016Telemetry; + compatSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableCompatibilityAssistant; + faxSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableFaxService; + smartScreenSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSmartScreen; + stickySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableStickyKeys; + hibernateSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableHibernation; + smb1Sw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSMB1; + smb2Sw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSMB2; + ntfsStampSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableNTFSTimeStamp; + winSearchSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSearch; + ffTelemetrySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableFirefoxTemeletry; + vsSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableVisualStudioTelemetry; + chromeTelemetrySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableChromeTelemetry; + nvidiaTelemetrySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableNVIDIATelemetry; + } + + private void LoadWindows8ToggleStates() + { + disableOneDriveSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableOneDrive; + } + + private void LoadWindows10ToggleStates() + { + oldMixerSw.ToggleChecked = OptionsHelper.CurrentOptions.EnableLegacyVolumeSlider; + uODSw.ToggleChecked = OptionsHelper.CurrentOptions.UninstallOneDrive; + gameBarSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableGameBar; + cortanaSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableCortana; + edgeTelemetrySw.ToggleChecked = OptionsHelper.CurrentOptions.DisableEdgeTelemetry; + edgeAiSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar; + xboxSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableXboxLive; + oldExplorerSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableQuickAccessHistory; + sensorSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSensorServices; + privacySw.ToggleChecked = OptionsHelper.CurrentOptions.DisablePrivacyOptions; + telemetryServicesSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableTelemetryServices; + autoUpdatesSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableAutomaticUpdates; + peopleSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableMyPeople; + adsSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableStartMenuAds; + spellSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSpellingTyping; + inkSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableWindowsInk; + driversSw.ToggleChecked = OptionsHelper.CurrentOptions.ExcludeDrivers; + insiderSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableInsiderService; + storeUpdatesSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableStoreUpdates; + ccSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableCloudClipboard; + longPathsSw.ToggleChecked = OptionsHelper.CurrentOptions.EnableLongPaths; + castSw.ToggleChecked = OptionsHelper.CurrentOptions.RemoveCastToDevice; + gameModeSw.ToggleChecked = OptionsHelper.CurrentOptions.EnableGamingMode; + tpmSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableTPMCheck; + classicPhotoViewerSw.ToggleChecked = OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer; + } + + private void LoadWindows11ToggleStates() + { + leftTaskbarSw.ToggleChecked = OptionsHelper.CurrentOptions.TaskbarToLeft; + snapAssistSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableSnapAssist; + widgetsSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableWidgets; + chatSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableChat; + stickersSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableStickers; + classicContextSw.ToggleChecked = OptionsHelper.CurrentOptions.ClassicMenu; + tpmSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableTPMCheck; + compactModeSw.ToggleChecked = OptionsHelper.CurrentOptions.CompactMode; + vbsSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableVBS; + copilotSw.ToggleChecked = OptionsHelper.CurrentOptions.DisableCoPilotAI; } private void Main_Load(object sender, EventArgs e) { FixTabHeaderWidth(); - if (Options.CurrentOptions.AutoStart && Options.CurrentOptions.EnableTray) + if (OptionsHelper.CurrentOptions.AutoStart && OptionsHelper.CurrentOptions.EnableTray) { this.Hide(); } @@ -2652,8 +2702,8 @@ private void Main_FormClosing(object sender, FormClosingEventArgs e) } else { - Options.CurrentOptions.AppsFolder = txtDownloadFolder.Text; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AppsFolder = txtDownloadFolder.Text; + OptionsHelper.SaveSettings(); } } @@ -2911,9 +2961,9 @@ private void radioProgram_CheckedChanged(object sender, EventArgs e) checkDefaultIcon.Checked = true; txtIcon.Enabled = false; btnBrowseIcon.Enabled = false; - itemtoaddgroup.Text = Options.TranslationList["itemtoaddgroup"]; + itemtoaddgroup.Text = OptionsHelper.TranslationList["itemtoaddgroup"]; checkDefaultIcon.Visible = true; - checkDefaultIcon.Text = Options.TranslationList["checkDefaultIcon"]; + checkDefaultIcon.Text = OptionsHelper.TranslationList["checkDefaultIcon"]; txtItemName.Clear(); txtItem.ReadOnly = true; txtIcon.ReadOnly = true; @@ -2928,8 +2978,8 @@ private void radioFolder_CheckedChanged(object sender, EventArgs e) checkDefaultIcon.Checked = true; btnBrowseItem.Enabled = true; txtItem.Clear(); - itemtoaddgroup.Text = Options.TranslationList["folderToAdd"]; - checkDefaultIcon.Text = Options.TranslationList["checkDefaultFolderIcon"]; + itemtoaddgroup.Text = OptionsHelper.TranslationList["folderToAdd"]; + checkDefaultIcon.Text = OptionsHelper.TranslationList["checkDefaultFolderIcon"]; txtItemName.Clear(); txtItem.ReadOnly = true; txtIcon.ReadOnly = true; @@ -2942,9 +2992,9 @@ private void radioLink_CheckedChanged(object sender, EventArgs e) if (radioLink.Checked) { checkDefaultIcon.Checked = true; - checkDefaultIcon.Text = Options.TranslationList["checkFavicon"]; + checkDefaultIcon.Text = OptionsHelper.TranslationList["checkFavicon"]; btnBrowseItem.Enabled = false; - itemtoaddgroup.Text = Options.TranslationList["linkToAdd"]; + itemtoaddgroup.Text = OptionsHelper.TranslationList["linkToAdd"]; checkDefaultIcon.Visible = true; txtItem.Text = "http://"; txtItemName.Clear(); @@ -2959,9 +3009,9 @@ private void radioFile_CheckedChanged(object sender, EventArgs e) if (radioFile.Checked) { checkDefaultIcon.Checked = true; - checkDefaultIcon.Text = Options.TranslationList["checkNoIcon"]; + checkDefaultIcon.Text = OptionsHelper.TranslationList["checkNoIcon"]; btnBrowseItem.Enabled = true; - itemtoaddgroup.Text = Options.TranslationList["fileToAdd"]; + itemtoaddgroup.Text = OptionsHelper.TranslationList["fileToAdd"]; checkDefaultIcon.Visible = true; txtItem.Clear(); txtItemName.Clear(); @@ -2980,9 +3030,9 @@ private void radioCommand_CheckedChanged(object sender, EventArgs e) checkDefaultIcon.Checked = true; txtIcon.Enabled = false; btnBrowseIcon.Enabled = false; - itemtoaddgroup.Text = Options.TranslationList["commandToAdd"]; + itemtoaddgroup.Text = OptionsHelper.TranslationList["commandToAdd"]; checkDefaultIcon.Visible = true; - checkDefaultIcon.Text = Options.TranslationList["checkNoIcon"]; + checkDefaultIcon.Text = OptionsHelper.TranslationList["checkNoIcon"]; txtItemName.Clear(); txtItem.ReadOnly = false; txtIcon.ReadOnly = true; @@ -3324,7 +3374,7 @@ private void toggleSwitch1_Click(object sender, EventArgs e) { OptimizeHelper.DisablePerformanceTweaks(); } - Options.CurrentOptions.EnablePerformanceTweaks = performanceSw.ToggleChecked; + OptionsHelper.CurrentOptions.EnablePerformanceTweaks = performanceSw.ToggleChecked; ShowRestartNeeded(); } @@ -3338,7 +3388,7 @@ private void toggleSwitch2_Click(object sender, EventArgs e) { OptimizeHelper.EnableNetworkThrottling(); } - Options.CurrentOptions.DisableNetworkThrottling = networkSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableNetworkThrottling = networkSw.ToggleChecked; } private void toggleSwitch3_Click(object sender, EventArgs e) @@ -3351,14 +3401,14 @@ private void toggleSwitch3_Click(object sender, EventArgs e) { OptimizeHelper.EnableDefender(); } - Options.CurrentOptions.DisableWindowsDefender = defenderSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableWindowsDefender = defenderSw.ToggleChecked; } private void toggleSwitch4_Click(object sender, EventArgs e) { if (systemRestoreSw.ToggleChecked) { - if (MessageBox.Show(Options.TranslationList["systemRestoreM"].ToString(), "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + if (MessageBox.Show(OptionsHelper.TranslationList["systemRestoreM"].ToString(), "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { _skipSystemRestore = true; systemRestoreSw.ToggleChecked = false; @@ -3374,7 +3424,7 @@ private void toggleSwitch4_Click(object sender, EventArgs e) OptimizeHelper.EnableSystemRestore(); } - if (!_skipSystemRestore) Options.CurrentOptions.DisableSystemRestore = systemRestoreSw.ToggleChecked; + if (!_skipSystemRestore) OptionsHelper.CurrentOptions.DisableSystemRestore = systemRestoreSw.ToggleChecked; } private void toggleSwitch5_Click(object sender, EventArgs e) @@ -3387,7 +3437,7 @@ private void toggleSwitch5_Click(object sender, EventArgs e) { OptimizeHelper.EnablePrintService(); } - Options.CurrentOptions.DisablePrintService = printSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisablePrintService = printSw.ToggleChecked; } private void toggleSwitch6_Click(object sender, EventArgs e) @@ -3400,7 +3450,7 @@ private void toggleSwitch6_Click(object sender, EventArgs e) { OptimizeHelper.EnableMediaPlayerSharing(); } - Options.CurrentOptions.DisableMediaPlayerSharing = mediaSharingSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableMediaPlayerSharing = mediaSharingSw.ToggleChecked; } private void toggleSwitch8_Click(object sender, EventArgs e) @@ -3413,7 +3463,7 @@ private void toggleSwitch8_Click(object sender, EventArgs e) { OptimizeHelper.EnableErrorReporting(); } - Options.CurrentOptions.DisableErrorReporting = reportingSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableErrorReporting = reportingSw.ToggleChecked; } private void toggleSwitch9_Click(object sender, EventArgs e) @@ -3426,7 +3476,7 @@ private void toggleSwitch9_Click(object sender, EventArgs e) { OptimizeHelper.EnableHomeGroup(); } - Options.CurrentOptions.DisableHomeGroup = homegroupSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableHomeGroup = homegroupSw.ToggleChecked; } private void toggleSwitch10_Click(object sender, EventArgs e) @@ -3439,7 +3489,7 @@ private void toggleSwitch10_Click(object sender, EventArgs e) { OptimizeHelper.EnableSuperfetch(); } - Options.CurrentOptions.DisableSuperfetch = superfetchSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSuperfetch = superfetchSw.ToggleChecked; } private void toggleSwitch11_Click(object sender, EventArgs e) @@ -3452,7 +3502,7 @@ private void toggleSwitch11_Click(object sender, EventArgs e) { OptimizeHelper.EnableTelemetryTasks(); } - Options.CurrentOptions.DisableTelemetryTasks = telemetryTasksSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableTelemetryTasks = telemetryTasksSw.ToggleChecked; } private void toggleSwitch12_Click(object sender, EventArgs e) @@ -3465,7 +3515,7 @@ private void toggleSwitch12_Click(object sender, EventArgs e) { OptimizeHelper.EnableOffice2016Telemetry(); } - Options.CurrentOptions.DisableOffice2016Telemetry = officeTelemetrySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableOffice2016Telemetry = officeTelemetrySw.ToggleChecked; } private void toggleSwitch13_Click(object sender, EventArgs e) @@ -3478,7 +3528,7 @@ private void toggleSwitch13_Click(object sender, EventArgs e) { OptimizeHelper.DisableLegacyVolumeSlider(); } - Options.CurrentOptions.EnableLegacyVolumeSlider = oldMixerSw.ToggleChecked; + OptionsHelper.CurrentOptions.EnableLegacyVolumeSlider = oldMixerSw.ToggleChecked; } private void toggleSwitch18_Click(object sender, EventArgs e) @@ -3491,7 +3541,7 @@ private void toggleSwitch18_Click(object sender, EventArgs e) { OptimizeHelper.EnableQuickAccessHistory(); } - Options.CurrentOptions.DisableQuickAccessHistory = oldExplorerSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableQuickAccessHistory = oldExplorerSw.ToggleChecked; ShowRestartNeeded(); } @@ -3505,14 +3555,14 @@ private void toggleSwitch26_Click(object sender, EventArgs e) { OptimizeHelper.EnableStartMenuAds(); } - Options.CurrentOptions.DisableStartMenuAds = adsSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableStartMenuAds = adsSw.ToggleChecked; } private void toggleSwitch14_Click(object sender, EventArgs e) { if (uODSw.ToggleChecked) { - if (MessageBox.Show(Options.TranslationList["onedriveM"].ToString(), "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + if (MessageBox.Show(OptionsHelper.TranslationList["onedriveM"].ToString(), "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { _skipOneDrive = true; uODSw.ToggleChecked = false; @@ -3532,7 +3582,7 @@ private void toggleSwitch14_Click(object sender, EventArgs e) t.Start(); } - if (!_skipOneDrive) Options.CurrentOptions.UninstallOneDrive = uODSw.ToggleChecked; + if (!_skipOneDrive) OptionsHelper.CurrentOptions.UninstallOneDrive = uODSw.ToggleChecked; } private void toggleSwitch25_Click(object sender, EventArgs e) @@ -3545,7 +3595,7 @@ private void toggleSwitch25_Click(object sender, EventArgs e) { OptimizeHelper.EnableMyPeople(); } - Options.CurrentOptions.DisableMyPeople = peopleSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableMyPeople = peopleSw.ToggleChecked; } private void toggleSwitch24_Click(object sender, EventArgs e) @@ -3558,7 +3608,7 @@ private void toggleSwitch24_Click(object sender, EventArgs e) { OptimizeHelper.EnableAutomaticUpdates(); } - Options.CurrentOptions.DisableAutomaticUpdates = autoUpdatesSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableAutomaticUpdates = autoUpdatesSw.ToggleChecked; } private void toggleSwitch30_Click(object sender, EventArgs e) @@ -3571,7 +3621,7 @@ private void toggleSwitch30_Click(object sender, EventArgs e) { OptimizeHelper.IncludeDrivers(); } - Options.CurrentOptions.ExcludeDrivers = driversSw.ToggleChecked; + OptionsHelper.CurrentOptions.ExcludeDrivers = driversSw.ToggleChecked; } private void toggleSwitch23_Click(object sender, EventArgs e) @@ -3584,7 +3634,7 @@ private void toggleSwitch23_Click(object sender, EventArgs e) { OptimizeHelper.EnableTelemetryServices(); } - Options.CurrentOptions.DisableTelemetryServices = telemetryServicesSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableTelemetryServices = telemetryServicesSw.ToggleChecked; ShowRestartNeeded(); } @@ -3600,7 +3650,7 @@ private void toggleSwitch21_Click(object sender, EventArgs e) Task t = new Task(() => OptimizeHelper.CompromisePrivacy()); t.Start(); } - Options.CurrentOptions.DisablePrivacyOptions = privacySw.ToggleChecked; + OptionsHelper.CurrentOptions.DisablePrivacyOptions = privacySw.ToggleChecked; ShowRestartNeeded(); } @@ -3614,7 +3664,7 @@ private void toggleSwitch16_Click(object sender, EventArgs e) { OptimizeHelper.EnableCortana(); } - Options.CurrentOptions.DisableCortana = cortanaSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableCortana = cortanaSw.ToggleChecked; } private void toggleSwitch20_Click(object sender, EventArgs e) @@ -3627,7 +3677,7 @@ private void toggleSwitch20_Click(object sender, EventArgs e) { OptimizeHelper.EnableSensorServices(); } - Options.CurrentOptions.DisableSensorServices = sensorSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSensorServices = sensorSw.ToggleChecked; ShowRestartNeeded(); } @@ -3641,7 +3691,7 @@ private void toggleSwitch29_Click(object sender, EventArgs e) { OptimizeHelper.EnableWindowsInk(); } - Options.CurrentOptions.DisableWindowsInk = inkSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableWindowsInk = inkSw.ToggleChecked; } private void toggleSwitch28_Click(object sender, EventArgs e) @@ -3654,7 +3704,7 @@ private void toggleSwitch28_Click(object sender, EventArgs e) { OptimizeHelper.EnableSpellingAndTypingFeatures(); } - Options.CurrentOptions.DisableSpellingTyping = spellSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableSpellingTyping = spellSw.ToggleChecked; } private void toggleSwitch17_Click(object sender, EventArgs e) @@ -3667,7 +3717,7 @@ private void toggleSwitch17_Click(object sender, EventArgs e) { OptimizeHelper.EnableXboxLive(); } - Options.CurrentOptions.DisableXboxLive = xboxSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableXboxLive = xboxSw.ToggleChecked; ShowRestartNeeded(); } @@ -3681,7 +3731,7 @@ private void toggleSwitch15_Click(object sender, EventArgs e) { OptimizeHelper.EnableGameBar(); } - Options.CurrentOptions.DisableGameBar = gameBarSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableGameBar = gameBarSw.ToggleChecked; ShowRestartNeeded(); } @@ -3695,7 +3745,7 @@ private void toggleSwitch31_Click(object sender, EventArgs e) { OptimizeHelper.EnableOneDrive(); } - Options.CurrentOptions.DisableOneDrive = disableOneDriveSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableOneDrive = disableOneDriveSw.ToggleChecked; } private void toggleSwitch32_Click(object sender, EventArgs e) @@ -3708,7 +3758,7 @@ private void toggleSwitch32_Click(object sender, EventArgs e) { OptimizeHelper.EnableCompatibilityAssistant(); } - Options.CurrentOptions.DisableCompatibilityAssistant = compatSw.ToggleChecked; + OptionsHelper.CurrentOptions.DisableCompatibilityAssistant = compatSw.ToggleChecked; } private void btnUpdate_Click(object sender, EventArgs e) @@ -3747,7 +3797,7 @@ private void RenderAppDownloaderFree() linkWarnings.Visible = !string.IsNullOrEmpty(downloadLog); - txtDownloadStatus.Text = Options.TranslationList["downloadsFinished"]; + txtDownloadStatus.Text = OptionsHelper.TranslationList["downloadsFinished"]; } string appNameTemp = string.Empty; @@ -3760,7 +3810,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) { if (!Directory.Exists(txtDownloadFolder.Text)) { - MessageBox.Show(Options.TranslationList["downloadDirInvalid"].ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList["downloadDirInvalid"].ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } @@ -3779,7 +3829,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) MoonCheck currentCheck; Control[] temp; - foreach (FeedApp x in AppsFromFeed) + foreach (AppInfo x in AppsFromFeed) { if (string.IsNullOrEmpty(x.Tag)) continue; temp = appsTab.Controls.Find(x.Tag, true); @@ -3795,7 +3845,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) count++; if (string.IsNullOrEmpty(x.Link64)) { - downloadLog += "• " + x.Title + ":" + Environment.NewLine + Options.TranslationList["no64Download"] + Environment.NewLine + Environment.NewLine; + downloadLog += "• " + x.Title + ":" + Environment.NewLine + OptionsHelper.TranslationList["no64Download"] + Environment.NewLine + Environment.NewLine; await DownloadApp(x, false); } else @@ -3812,7 +3862,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) } else { - downloadLog += "• " + x.Title + ":" + Environment.NewLine + Options.TranslationList["no32Download"] + Environment.NewLine + Environment.NewLine; + downloadLog += "• " + x.Title + ":" + Environment.NewLine + OptionsHelper.TranslationList["no32Download"] + Environment.NewLine + Environment.NewLine; } } } @@ -3833,7 +3883,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) if (a.ToLowerInvariant().Contains("sumatra")) p.StartInfo.Arguments = " -install"; // *** // - txtDownloadStatus.Text = string.Format("{0}/{1} - {2} {3} ...", count, maxCount, Options.TranslationList["installing"], Path.GetFileNameWithoutExtension(a)); + txtDownloadStatus.Text = string.Format("{0}/{1} - {2} {3} ...", count, maxCount, OptionsHelper.TranslationList["installing"], Path.GetFileNameWithoutExtension(a)); await p.RunAsync(); }; @@ -3851,7 +3901,7 @@ private async void btnDownloadApps_Click(object sender, EventArgs e) } string fileExtension = ".exe"; - private async Task DownloadApp(FeedApp app, bool pref64) + private async Task DownloadApp(AppInfo app, bool pref64) { try { @@ -3894,7 +3944,7 @@ private async Task DownloadApp(FeedApp app, bool pref64) catch (Exception ex) { Logger.LogError("MainForm.DownloadApp", ex.Message, ex.StackTrace); - downloadLog += "• " + app.Title + ":" + Environment.NewLine + Options.TranslationList["linkInvalid"] + Environment.NewLine + Environment.NewLine; + downloadLog += "• " + app.Title + ":" + Environment.NewLine + OptionsHelper.TranslationList["linkInvalid"] + Environment.NewLine + Environment.NewLine; if (pref64) try { File.Delete(Path.Combine(txtDownloadFolder.Text, app.Title + "-x64.exe")); } catch { } if (!pref64) try { File.Delete(Path.Combine(txtDownloadFolder.Text, app.Title + "-x86.exe")); } catch { } @@ -3944,8 +3994,8 @@ private void button5_Click(object sender, EventArgs e) if (d.ShowDialog() == DialogResult.OK) { txtDownloadFolder.Text = d.SelectedPath; - Options.CurrentOptions.AppsFolder = d.SelectedPath; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AppsFolder = d.SelectedPath; + OptionsHelper.SaveSettings(); } } @@ -3962,8 +4012,8 @@ private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs private void txtDownloadFolder_TextChanged(object sender, EventArgs e) { - Options.CurrentOptions.AppsFolder = txtDownloadFolder.Text; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AppsFolder = txtDownloadFolder.Text; + OptionsHelper.SaveSettings(); } private void chkOnlyRemovable_CheckedChanged(object sender, EventArgs e) @@ -3991,7 +4041,7 @@ private void btnViewLog_Click(object sender, EventArgs e) } else { - MessageBox.Show(Options.TranslationList["noErrorsM"].ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList["noErrorsM"].ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -4010,7 +4060,7 @@ private void btnPing_Click(object sender, EventArgs e) if (PingerHelper.PingHost(txtPingInput.Text) == null) { - listPingResults.Items.Add(string.Format("{0} [{1}]", Options.TranslationList["hostNotFound"], txtPingInput.Text)); + listPingResults.Items.Add(string.Format("{0} [{1}]", OptionsHelper.TranslationList["hostNotFound"], txtPingInput.Text)); return; } @@ -4019,7 +4069,7 @@ private void btnPing_Click(object sender, EventArgs e) btnShodan.Enabled = false; btnPing.Enabled = false; - listPingResults.Items.Add(string.Format("{0}", Options.TranslationList["pinging"])); + listPingResults.Items.Add(string.Format("{0}", OptionsHelper.TranslationList["pinging"])); listPingResults.Items.Add(""); for (int i = 0; i < 9; i++) @@ -4037,7 +4087,7 @@ private void btnPing_Click(object sender, EventArgs e) { _pingResults.Add(tmpReply); _shodanIP = _pingResults[i].Address.ToString(); - listPingResults.Items.Add(string.Format("{0} - {1}: {2} ms - TTL: {3}", _pingResults[i].Status, Options.TranslationList["latency"], _pingResults[i].RoundtripTime, _pingResults[i].Options.Ttl)); + listPingResults.Items.Add(string.Format("{0} - {1}: {2} ms - TTL: {3}", _pingResults[i].Status, OptionsHelper.TranslationList["latency"], _pingResults[i].RoundtripTime, _pingResults[i].Options.Ttl)); } } @@ -4050,11 +4100,11 @@ private void btnPing_Click(object sender, EventArgs e) long minLatency = _pingResults.Min(x => x.RoundtripTime); double averageLatency = _pingResults.Average(x => x.RoundtripTime); - listPingResults.Items.Add(string.Format("{0} = {1}, {2} = {3}, {4} = {5:F2}", Options.TranslationList["min"], minLatency, Options.TranslationList["max"], maxLatency, Options.TranslationList["avg"], averageLatency)); + listPingResults.Items.Add(string.Format("{0} = {1}, {2} = {3}, {4} = {5:F2}", OptionsHelper.TranslationList["min"], minLatency, OptionsHelper.TranslationList["max"], maxLatency, OptionsHelper.TranslationList["avg"], averageLatency)); } else { - listPingResults.Items.Add(Options.TranslationList["timeout"]); + listPingResults.Items.Add(OptionsHelper.TranslationList["timeout"]); } btnPing.Enabled = true; @@ -4155,8 +4205,8 @@ private void exitItem_Click(object sender, EventArgs e) { _trayMenu = false; - Options.CurrentOptions.AppsFolder = txtDownloadFolder.Text; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AppsFolder = txtDownloadFolder.Text; + OptionsHelper.SaveSettings(); Application.Exit(); } @@ -4258,7 +4308,7 @@ private void button13_Click(object sender, EventArgs e) foreach (var x in _startUpItems) { - _backupItems.Add(new StartupBackupItem(x.Name, x.FileLocation, x.RegistryLocation.ToString(), x.StartupType.ToString())); + _backupItems.Add(new BackupStartupItem(x.Name, x.FileLocation, x.RegistryLocation.ToString(), x.StartupType.ToString())); } try @@ -4281,7 +4331,7 @@ private void listStartupItems_ItemChecked(object sender, ItemCheckedEventArgs e) { if (e.Item.Checked) { - e.Item.ForeColor = Options.ForegroundColor; + e.Item.ForeColor = OptionsHelper.ForegroundColor; } else { @@ -4303,8 +4353,8 @@ private void trayRegistry_Click(object sender, EventArgs e) private void quickAccessToggle_ToggleClicked(object sender, EventArgs e) { - Options.CurrentOptions.EnableTray = quickAccessToggle.ToggleChecked; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.EnableTray = quickAccessToggle.ToggleChecked; + OptionsHelper.SaveSettings(); _trayMenu = quickAccessToggle.ToggleChecked; launcherIcon.Visible = quickAccessToggle.ToggleChecked; @@ -4481,121 +4531,126 @@ private void boxLang_SelectedIndexChanged(object sender, EventArgs e) if (boxLang.Text == Constants.ENGLISH) { picFlag.Image = Properties.Resources.united_kingdom; - Options.CurrentOptions.LanguageCode = LanguageCode.EN; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EN; } else if (boxLang.Text == Constants.RUSSIAN) { picFlag.Image = Properties.Resources.russia; - Options.CurrentOptions.LanguageCode = LanguageCode.RU; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RU; } else if (boxLang.Text == Constants.HELLENIC) { picFlag.Image = Properties.Resources.greece; - Options.CurrentOptions.LanguageCode = LanguageCode.EL; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EL; } else if (boxLang.Text == Constants.GERMAN) { picFlag.Image = Properties.Resources.germany; - Options.CurrentOptions.LanguageCode = LanguageCode.DE; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.DE; } else if (boxLang.Text == Constants.ITALIAN) { picFlag.Image = Properties.Resources.italy; - Options.CurrentOptions.LanguageCode = LanguageCode.IT; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.IT; } else if (boxLang.Text == Constants.CZECH) { picFlag.Image = Properties.Resources.czech; - Options.CurrentOptions.LanguageCode = LanguageCode.CZ; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CZ; } else if (boxLang.Text == Constants.TURKISH) { picFlag.Image = Properties.Resources.turkey; - Options.CurrentOptions.LanguageCode = LanguageCode.TR; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TR; } else if (boxLang.Text == Constants.SPANISH) { picFlag.Image = Properties.Resources.spain; - Options.CurrentOptions.LanguageCode = LanguageCode.ES; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.ES; } else if (boxLang.Text == Constants.PORTUGUESE) { picFlag.Image = Properties.Resources.brazil; - Options.CurrentOptions.LanguageCode = LanguageCode.PT; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PT; } else if (boxLang.Text == Constants.FRENCH) { picFlag.Image = Properties.Resources.france; - Options.CurrentOptions.LanguageCode = LanguageCode.FR; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FR; } else if (boxLang.Text == Constants.CHINESE) { picFlag.Image = Properties.Resources.china; - Options.CurrentOptions.LanguageCode = LanguageCode.CN; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CN; } else if (boxLang.Text == Constants.TAIWANESE) { picFlag.Image = Properties.Resources.china; - Options.CurrentOptions.LanguageCode = LanguageCode.TW; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TW; } else if (boxLang.Text == Constants.KOREAN) { picFlag.Image = Properties.Resources.korea; - Options.CurrentOptions.LanguageCode = LanguageCode.KO; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KO; } else if (boxLang.Text == Constants.POLISH) { picFlag.Image = Properties.Resources.poland; - Options.CurrentOptions.LanguageCode = LanguageCode.PL; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PL; } else if (boxLang.Text == Constants.ARABIC) { picFlag.Image = Properties.Resources.egypt; - Options.CurrentOptions.LanguageCode = LanguageCode.AR; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.AR; } else if (boxLang.Text == Constants.KURDISH) { picFlag.Image = Properties.Resources.kurdish; - Options.CurrentOptions.LanguageCode = LanguageCode.KU; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KU; } else if (boxLang.Text == Constants.HUNGARIAN) { picFlag.Image = Properties.Resources.hungary; - Options.CurrentOptions.LanguageCode = LanguageCode.HU; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.HU; } else if (boxLang.Text == Constants.ROMANIAN) { picFlag.Image = Properties.Resources.romania; - Options.CurrentOptions.LanguageCode = LanguageCode.RO; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RO; } else if (boxLang.Text == Constants.DUTCH) { picFlag.Image = Properties.Resources.dutch; - Options.CurrentOptions.LanguageCode = LanguageCode.NL; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NL; } else if (boxLang.Text == Constants.UKRAINIAN) { picFlag.Image = Properties.Resources.ukraine; - Options.CurrentOptions.LanguageCode = LanguageCode.UA; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.UA; } else if (boxLang.Text == Constants.JAPANESE) { picFlag.Image = Properties.Resources.japan; - Options.CurrentOptions.LanguageCode = LanguageCode.JA; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.JA; } else if (boxLang.Text == Constants.PERSIAN) { picFlag.Image = Properties.Resources.iran; - Options.CurrentOptions.LanguageCode = LanguageCode.FA; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FA; } else if (boxLang.Text == Constants.NEPALI) { picFlag.Image = Properties.Resources.nepal; - Options.CurrentOptions.LanguageCode = LanguageCode.NE; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NE; + } + else if (boxLang.Text == Constants.BULGARIAN) + { + picFlag.Image = Properties.Resources.bulgaria; + OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.BG; } - Options.SaveSettings(); - Options.LoadTranslation(); + OptionsHelper.SaveSettings(); + OptionsHelper.LoadTranslation(); Translate(); FixTabHeaderWidth(); @@ -4848,18 +4903,18 @@ private void restartAndApply_Click(object sender, EventArgs e) private void colorPicker1_ColorChanged(object sender, EventArgs e) { pictureBox1.BackColor = colorPicker1.Color; - Options.CurrentOptions.Theme = colorPicker1.Color; - Options.ApplyTheme(this); + OptionsHelper.CurrentOptions.Theme = colorPicker1.Color; + OptionsHelper.ApplyTheme(this); - Options.SaveSettings(); + OptionsHelper.SaveSettings(); } private void autoStartToggle_ToggleClicked(object sender, EventArgs e) { - Options.CurrentOptions.AutoStart = autoStartToggle.ToggleChecked; - Options.SaveSettings(); + OptionsHelper.CurrentOptions.AutoStart = autoStartToggle.ToggleChecked; + OptionsHelper.SaveSettings(); - if (Options.CurrentOptions.AutoStart) + if (OptionsHelper.CurrentOptions.AutoStart) { Utilities.RegisterAutoStart(); } @@ -4904,7 +4959,7 @@ private void ConfirmAndReboot() { if (MessageBox.Show(_uwpRestoreMessage, "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { - Options.SaveSettings(); + OptionsHelper.SaveSettings(); Utilities.Reboot(); } } @@ -4982,5 +5037,21 @@ private void btnSetDns_Click(object sender, EventArgs e) ApplySelectedDNS(); } } + + private void btnReinforce_Click(object sender, EventArgs e) + { + if (MessageBox.Show(_reinforcePoliciesMessage, "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + Utilities.ReinforceCurrentTweaks(); + + if (Program.MUTEX != null) + { + Program.MUTEX.ReleaseMutex(); + Program.MUTEX.Dispose(); + Program.MUTEX = null; + } + Application.Restart(); + } + } } } \ No newline at end of file diff --git a/Optimizer/Forms/MainForm.resx b/Optimizer/Forms/MainForm.resx index 2f8c8a75..a35eb81a 100644 --- a/Optimizer/Forms/MainForm.resx +++ b/Optimizer/Forms/MainForm.resx @@ -155,443 +155,157 @@ MWzhmaTGfmz5zHL2YrFYLH7mcnkHBniDBBEQJcMAAAAASUVORK5CYII= - - - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAXJJREFUaEPtz0FuIzEMBED//9MJMCgQURR5yBF34YPq5ha7bb+O4zg+39cNZ5/J - b7zlfOI5RaWP3TS1gacUlR42S1QHnlJUetgsUw/iFJUeNsvUg/hPTv4N31GmHsRLzvrZL1MP4rec9rJd - ph7El9+ff7qOO9ktUw/ii+j//AmbJaoDTxfRRTTx3MNmisrE80UUxANPfey+5fQREwNPvWxPPD9mZuCp - n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4 - l+2J58fMTDzvs/eW0zL1t5w+YyNFJU0tRaVGt0T1lvMS1Ty9gaeLaOJ5yVmZep5eEA88DTwtOStTz9ML - 4onnIF5yVqaepxfEE89BvOSsTD1PL4gnnoN4yVmZep7ewFMQDzwtOStTz9MrUb3lvES1RjdN7ZbzNLVn - bNxynqZ2y/keW0vOytSXnB3HcXys1+sbU0gKg8uLU5AAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAgBJREFUaEPlz1Fu3DAMBcDc/9ItoExpsLRsUfFmG3Q+3yNp+eO/9muR8X+Lty2x - sszaIHoN37hlfJm1QfQ6vnPJ6BIrQfy9fDuILxkt1N/Ltx/l9Ov53kv4RI/dIC7Uj3Dy9KbqmtkpY0H8 - KKd7b5HdMt7+0b8ZmzJ2OWfkk+zW3ew41mCtUD//AzPOtFlfZq3H7ikjW5xYZm2PG4lqixMtVvvsJ6ot - TrRY7bOfqLY4Uagf/145KN7iRKEeRImqz34Qb3GiUCeqIO6xm6jarBfqQh3EPXaDuM16oT5lJIjX2Qvi - NuuFespYEM+ZmzLWYjVR3TIexOfMTBlbZq1QL7ESxJX+ktElVgr1Eiu3lobH0CIrhXqZtSWP/YDxQt1i - dYmVgzyILxkt1C1WE9UgCuKDfBBdMlqo26wHcRAH8UE+iKaMFeo264kqiIP4IB9Ep4wkqi1OJKpEFcQH - +SAq1IlqmzOJKlEF8SdZECeqRLXNmURVqIP4IB9EQZyotjhRqE8ZGUSZLpxlf4yFTU4U6n3u3DK+xYlL - RvvsXzLaZn2ZtT77p4y0WJ2azYzlHfYL9TJrU8YS1SDa48aUsSBeYqVQB/E+dx7j7JSxIP46977EqUtG - g/g57m5zZspYEL+PdwTxlLFB9F7eEsRTxgbRe3lLEP8M3hzEP4d3B/HDPj5+A7KDH5iJTSF/AAAAAElF - TkSuQmCC - - - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH + iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI - AAADqUlEQVRYR8WXy0tbQRTGXbal/hVtIeADqQsR0Y342okIFlTUhS4EFyIK4kIEF21E0IXSmCq48IHo - yp2iCC5MF9JWBEVRfKFJdSVJjVE4Pd/JxMzNnaS3acEDPzKZOfOdc+fO62a4XC6nvGbqmM+MjwkwYQXK - qEMbfOBr0rBhrEzgLeNlggw5BL7og74mzSeMlYoXzEfmnjEFcQL6fmKgZYqRNIE3zDfGJJoO0DKOhq2C - ec/4GZPQvwBNaFviWf4wyPInYxL4H0DbMhJ68JfMd8bWMScnh05PTwkWDAZthEIhCofDdHV1RePj45SV - lWXT0PjBIJYtAUwWUwdqaWmR4E7t+PiYsrOzjVoKxLIkgEkXYUzONDIyoqSd2+zsrFFLgVjyKmIJYM2a - HIX19XUlG7fp6WkaHBwUNjc3VW3c/H6/UUvjCyMJZDIpN5lAIKBko3Z7e2sb4t3dXdUaNSRQX19PXV1d - Fj8NxMxEAtg6TQ5CVVWVkoybz+ez+a2tranWqG1vb1Ntba2UW1tbbf6KOiQwkVBpoaenR0R0Gxsbs/gU - FRXRw8ODao3a6OgoNTc3S3lyctLirzGBBHCImBqFmZkZEdGtra3tqb2kpIQODw9VS9wqKipocXFRygsL - CxZNDR8SuE6otLCzsyMiuh0dHdHBwYH8Jj45bGhoiEpLS9U/Io/HY9RmrpFA0sMmPz+fIpGIknFmseV3 - cnKiaoja29tt2or7lAk0NDQoiT/b3t6ezHr000dta2vLpqshCSR9BRjKRJufn6fKykpqbGykpqYmCVpd - XU3FxcXU0dEh27JuaDNpK+QVJJ2EKysrSiZuEOzu7qa5uTmZ3VNTU7SxsWF8VSmGPoZMQuMyxNK6vLxU - UlE7Pz+nsrIyOXhSGYYdq8Ckm4AsQ+NGhKWWaEtLS1RTUyPlm5sb2SP6+vqov7+fBgYGZGQw+016SZCN - yLgVe71eCaRbb28vdXZ2Snl1ddXinwYhRrZigIPB4uB2uyXQ3d0dXVxc0NnZGRUWFtLy8rLUDw8PW/zT - 4OkwAjgabcdxXl4e5ebmUnl5ucwJDHXMsM0m+v8FiPWOcXYh0TcV2OPjIxUUFBh9HeJmJK6eAK5JuC7Z - Ouzv70tgvA4YTj6Tn0MQ4xVjSwA866U0xrNey2MgS+PrSBNoWZ48hq1CA59TmJhJL6sOQN+0Ps10sFxw - acXGYQpi4heDdS5LLRXGyiTgk/sD42G+MphQeEKAMurQBh+Hn+eujN8Y1hAMZdztIwAAAABJRU5ErkJg - gg== + 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 - GfCAU20aAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AkKCzkS0sRiMgAAEF9JREFU + aEPtmHdUlHe6x18ECwxTQDCbpvHe3Xi89G6J0ViRpgKCLZZoLKgUURl6L8JQBRU1RE3UGDXJRgUbwsww + Q++9IxpLNhvXPfcshnPjc7/vzIuooJhdc/aPe59zPudFj7zzfH7P8/x+v5H5/0AYyepZNIxkDTw8JxnJ + a+2M5JVzjeSlzkZypYuxXDbPWF4w01h+/U8m8sv6JvKLmibyXO63/01hKutk0TSVdbxjImtzNpG1pBjL + mgoh0QOJh0bymj5I9BvJy/qN5co+SPw3JH4wll+rhsQpE/klb5Oi721Ni77RM5N/rWFadI578+8c5tJe + Fi0z6U0bM2l3lqmsqw0Sj0xk7WQiayVjWQtoIoiAOoIIqAAlZCwvAoXgOkHiMSrxwKTou3Jzxdlgq+KT + U2zLjmpYlxznPuk1h4X0DmMpvaeBp4WF9HaWufTWj+bSm2Qm7QHdBBHQAYkBkWbQyInUQqAKlCF5JZCC + fEhcIdOiC2RRfPaxTemXXdPKc2JnVmZPmV+/j/mg6gD3ya8hrKQ/gr8ILKX3vSyld3shQRbSH8hcehvc + Ar3DiLSB56tR/YyECSphrrhEVsXnybbsJM2oyKEPqg61z67J3DyvLoU3tzaNy+CfDGvpT+CvLBOtpD+d + gsQvkCGIgHuQeFqElVBX5OUSA5VQkElRAVkoc8mm5DxNKz9FM6tyaHbNIfqoNqNvfn3K6YWNie8ubExi + FtQnchn9hrCWPgA/s5gBGSSIBSLgLxBgRViJu89UYziJwbmoR/JsO1WCEjJVFJJlcS5W/zxW/yTNqs5B + 8gdpXn06LWyU0OKmhALHllgLh+Z4xqklisvsFcJa+jdO4AGSf1AJASTPopZQi7xIYqASbDt1QmBwJoxU + M6FuJWN5KZkpC8m6JJfsys/TzMqTWP3PaF7dAVrYkIbkk8ixJY6cW6OrlrSHm7u0RTLL2sO4DEcItcDf + JgIpBJAwy7MSg5Vg24kVYNvpZVUYGGq2CjVkXFRG5hCwKc2l6RXnaFbVlzSn9ijNb8gi+6ZUJL+PXNpi + aWl7JLl2hpa4dwW/59YVwmX4kuBWXoDkTwEu+ZEEnp4Hdqhf1EYDArXo/1LsPgVon0ton7P0YfUXNLfu + CC1ozKTFzclY+QQkH01uneG0vDuYPHoCczxvBuh63hRzmQ4TSBD8nRXYDvqfSV72M9nI8DOeVoU/keWN + +2RxAyt/A4kXAhkLBGSvVgETRQn6Px8CF2hG5ddonxNon8O0qDEDqy/B6sdh5SORfCh53gyklb0B/atu + 7d2+4mYAs/rWHi7j50It8FdLPG+qV1udOPs0v3KHpp5ppcnZFfROipzejM+nNxNYruPPhfTeISW9fwq9 + famVzAq7yUzOCgw3A6xANQZYSZYl18mu7Hv0/xmaU3MMw3sI7ZNOTq2JtKQ9hty6wsmzJ5hW9QbQmtt7 + 6OMf/BvBZMBl/FSgHXBQ/aiJ1shStYkMbYKVNvq2myZllZNBxFUSBlwEl0goziNR0GXSC76iQj/4Msil + 8SEX6Y3IS/RuRgG9f6aCjG+0Yq8f2j7sLmSqKCKrkqsY4O/og8rTEPic5tcfVPW/U+s+WtoRTe5dYbTi + ZhCtvrWX1t3xp/V3/VginVr9mLV3/LjMuUAvs9hC4r6V7Ecyu3ybJiJxoTiXdHdfIr74CgmC80kYWkCi + cCnpRchIL1JO+lEsMhofVUgGkQUQvUYGoXlkGHoBlblCU76vRPJDzwFThQwCeRD4BgInIfCZeoCbUyCQ + QMs6olTtsxLt8zFWf/3dXbTxvi9L24a7vhM33PPlMkdg+Bj07SgMYpal7C5N/a6dxkfmE88fye+9Svyg + AhKEykkYoSRhVAmJYspIL7ac9OMrQDmNV1FKBnHFZBBbRIYxUjKMyifDsDxU5AL9xwkZkmdXfvAkNlUU + YAYuoYXOQeALCByBQCYqkAyBeAiw/R8CATEEdqtWf9N9Hwj4/A8E1n/ytAB3QXvXQnarbcr5ZqzyNdLx + v0w88Q3SDZETP7yYBFHlJIitJmF8LYn21ZNeYgPpJzWSvqSBxkvqQR0ZJNWQQWIlGSaUkmGcAiKFZIjW + mxB+kSafKIBEKXeNkOEOdA1XiO8hcAYzcBxDnI0WyoCABAJxqu3TvSsELSRGC+1GC+0irLqKdXd8v1rV + 66u15jYnYSbrZsyLelymXmx9JArPp3G7rpKOWEq8ECXpRpQTP6aGBPENJEyEnKSVRMltpJfSTnqpHaSf + 1kHj01Gx9DYySGshg9RGMkyuJcMkVqSEDGNlZBh5nSZE5tIfz+Zj/1df5EyL8lCBb7EL4QpRyV4hcALX + pWMXSsQuFEtL2iKwhbLbpxhDjAG+vYvQ92zyGGbf1tW3fN8CDIO7CvNmRjljlN+SYiiRI/lrpC2WkU5I + KfEiq0g3toH4CS3ET2wjQVI7BEByB4lSOiDQSXppnaSf3knjM7po/P4uMtjfQQbprXcMU+pPQWKXYUKx + PyS+hMQPf0jIo6mXr+AMyBu4hZJt6Rc4B47iHMjCOZCKU3gfOTTH4BwIRxsFowpibKN7IOGPSvhhN/LD + 0/fhyl5fO1SBYYyLGhm79i7exC/KC7X35tPYvZAILiPtiBrSiWkiXnwr6Sa0ke6+Nki0DyMBWAkI6Cc3 + 9+vvqz1tkNZqYZjVpWWQ0cZMiJMzE+KLNQ2jC8wNw6+efi/nUr9J0Z8hcB4XudM4iY/R9PJsnMQZuAcl + 04L6eLRRFDm1hGErDcZZEIBZ2IPt1B/t5IeZ8MXT55Fnj8+CFT0+DPN+XhUz5WrVJFG8rGfMbhmNDSqj + ceG1pB3dTDqxraQT1zqshOC5SojYGfn01EmeU6yAv2LoXd4w4hoj2n2D/3Z67nGj/HMQOI2r9AnchY7Q + tLIsDHIqzalORBvFoo0iUYVQVCEQsxAAid2oxC6I+JFHtw+e3v3uXTuXLu/eiRdnYYUOyKeNC5I9HCMu + pbGhtTQuqpnGRbeQdkzLyBIpnRh6zIpraq/OnEAT3qJILuWh8ZYkl3kz8bLx1Nyves0Ux8i86ChZKQ+S + XWk62kiCNoqnubVRqEIY2TcGk2OzGBJ7IOGPdvKDiA/mwhvseOTasX2ha+d2hhkbKGe0g+VzRwcU940O + rqEx4U00NrKZxka1jCCBmZB0kCC8jHiu6cRbFH2c55g4imcfy6U7NAzC8xnG7tYoo2vHPjcryobAAbJU + ZuD7gARtFI8qRGM7DUcVgjELYlrcuAcS/pDww1D7QGQn2A68fl7avs0SMIxWQCkzOqDUZXRgZf/osAYa + DYExERB4TkJ7iEQ78THgvFVHiGcfRzzHJD8IcKm+OCxK0rHrZfmYF2WghVLJQpFE1sXx2E6jaWZFOH1Y + FUwf1Yhpft0eSOxCJXzRTt6YiR3k3OIFma1gS4Vz62Z9AIHAahZHrZD6X7TCmlQCz0oMttPTEjxI8LZ+ + S7zF8cRzkpCuS5q3rnMqo+uUzKU6fJgrJIyFQuJjoUhE8vEgBm0USbYloTS9LJA+qNhLs6v8IeELCW9I + 7ICEF74fbCWHps3k2LQJVdkYt7hxA+PUvIlhNEMaWOZohTb2sQKvJoHkwyqJtzQNK5+I5NNJd1lWsq5z + CsN3y+ZSHRoWiigQqYmkT+BnslREgFAQhCoEYBb8aUa5H82q9KbZ1dtpbs02ml+7BTPxKS2q30iLGjaQ + fcP6e/aN6yyB+qWaIY0s1uCBVqha4HmJMc9LQEDH6wLxHPYRVp1Nnvhuh6/wPT7X5i//TP3iYcJSEcJi + Ae6wSVsqxGAPWSl2oQo+qMIOmlbqRTPLt0LiU1RiI31UvYHm1ayDyFpaULfm8cL6NYn2DWs0F9WvUb+U + E3gHdAJSSXAiL5SIbCAdz8Ns35Pukv2k65ZN/OU59/geOWZA/eLnwkqxG/jrIuET+BkJq5O2Uu4EXmSt + 3Ao+hcQnNL10PSTW0qyKNTS7cjW215VoqZUQWZk7v26V4fzaVdxbEaOCG1m0wTVWYGQJDDa2W50lqcRT + rf4B4rsfJaw+yAnhe+YwkOHePhhWSm/g44Rnn5VyB5LehoS3qJK2Vn4C1pON8mOwiuyKV0DCExIemAkP + +rDS8/HsKs8rH1Wv+K851Su4N3LBCbAkApWAilBOhJXgRFQSrIA3LntOWH22990OsauvFlie0wj+c3iB + bcBrsrVy8w1r5cZfrZUbkPQ6JLxGlbSN0hMsB25kW+xKdiWuaCc3mlHm/vPM8uWZsyo8/gC4tz0Xo4Ig + ENToAPpGlIiEgFeeWmAp2sf9MLf6KgHw2edgyCwgYbCWfb6BlfayUa7Mt1F63LVRuj+yLXZ7zCb9FPg7 + 1y67YtfDkJgFiTHTy9y5Nw0TGkENLG+DFkjQSyXYnckLV22nZAhkon2OPC/QJ3A/6it0O6KFJ/cJg2Gr + XMZMUzowWGmerdJ1KhJdBDaBbRybwWLwHtAC3G++JDQCISBu0MAzAxI0IPFE5GmJcFYgjxPA7vOk/58I + EBL/OyshcD8yFnCf8juHSiKwwRrce6kEK7BtQICtwLACLP9A8pkCt8NvAIbl9w0IAE2wHxL0QokwDLKv + lHRcsAMN30IDAiRwO/IrEpcK3LI9BK7ZfMAIXA9xHzhy6DkkMhNWH2dEi2LfEi2INBbODRklnPey/50T + Q0LcYA56BiRUIs9IoAoBlaTtdgBnQIb6DHixADgMsvuQ+BWwSrjs4GThsgPjhB6HGOHSoddukVMqSNMQ + OaXwgbGeo2SPyD6uXjQ/Qg4BfeHcUO5fDhesAFsJccNW8MsLJUIaaNzar9SnsOtBVdIjCBCSJ6HrwX4I + 9EAgV7g0K1q4NHOtcEnmPOGS/bNFLhkg3V7knLZF5JyaDpEiCNzXc5A8RgX6IbBzxhlihPNeJsCGugoC + 8BWgYSVQhdHehcRbgnPgSRuxyY8oQBAABwgCIPNXCPRB4B8QAOmPIPAYEARACokWJ5JoUcxZ0YIIoWjB + q/4PtVriXXDjicTAXAxIBOJb28pj7C10sAq/XYAgAPYTBEA6qZIfEHCUkMg+QS5aGDMJVeCSe5VQC7CY + ggpWAq31rEQIquArJ96yTNV9CLdQTuJ1CWD1HRKrRPbx5sLF+zDIMVxyrxqDEmZAOqwEGLP5groKbCup + JLjk/yUBdvWT5UjcXOSQxAgXx3NJ/dYYlGDb6UvwyxCJwDoau/7coAQSxf7/rIDrbxLox+p/LXRImggJ + RmifwCXzr4RaQhdsAT3DSnzyjXqoAR8JqlZdtfojCewfFHBO60XyXuh9AZv86w21hAawAIchcf8ZCTzH + eF0lneXYkdAGfJwRAlaErQiHOvmnBLjVF7qk30fyR5C8JXYdjdef/NPBigQ0aOFpBYkMSLRCok99ajeR + 5t5KGrfpz8RjRZAcH20hYGGFuNVWJ53Rh8Rbhc5pmULnFBuho0RLOML36dcb3NUDAm8DR0hIIFEAie5R + IY0PtcTVfdil+sdtvtivve5Mn87qEw91PY9267pnF/CXZSZDyknglPw23yFJU+Ao4V7674qgelDHXsl5 + aKeJwA6H3VzNsBZnzfBWF9yf5o0OqrEbs1sxaXRACY9Jvc1oxDRzv/x/OhjmfwFFTW0e0aAKIQAAAABJ + RU5ErkJggg== - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH - EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo - z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ - xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT - ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn - FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg - v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI - AAADNElEQVRYR8WXwUtbQRDGPbal/hVtISZVkgqCoAnm4sl6tCQXLzkYCHjxIGiQ5qLFHsQekrQX60Eb - vIl486yFpM1JBMUqiG0DnpJSqzidb9mE997O05dEcOBHktndbyZvd3b3dfh8Pq88ZcaYLLPL/GL+avAd - PrShD/pKGgai08Fz5iNTZcgj6IsxGCtpNhCdmkfMPHPJSEG8gLELDLSkGK4JPGO+MZJoK0BLfBqGg3nF - /GQkoXaAJrRt8Ww/GGT5m5EE7gNo256ENfhj5jtjGxSNRqlSqVChUKDo0JCtrauri7q7u9Wn1T88PEzb - 29t0fHxM/f39tjamzCCWkQAWi7MzLcwvUN1qtRqtra1RPp+nra0tKhaL9OPkhL7u7dHm5iZls1na2Nig - q6srPYJoenra0GQQy5YAFt0/xug8MzOjpZq3m5sbSqVShiaDWGoq6gmgZqWOFIvFtFxr9npkRNRlPjEq - gU5G3GR6e3upVCppqdZsZ2eHAoGAoc0gZicSwNYpdVDzdx82MTEh6jNjSCDvcDZYWlrSEu1ZOp0W9Zk8 - EsAhIjXSh+VlLdGezc3NifrMLhKoOJwNMm8zWqI9m5ycFPWZChJwPWzi8biWaN1QiqOjo6I+c3lrAgA7 - Wju2uvpZ1NWoBFynAKAUDw8PtVxzhhLu6ekRdTVqCsRFOD4+TqFQSH1HHU9NTdHp6amWdjF+3NfX13Rw - cECJRIL8fr+h60AtQrEMV1ZWqFwuUzAYNNoyGXlxJpNJo+8dqDJ03YhyuRwdHR2pabD6cTJK9n5x0dbP - A2ojct2KX/Kj39/fV+Lp2VmKx+L0ZX1d/Zbs/PycwuGwoeNCjVFbMcDBIHWiSCTieREigcHBQVFHoHEY - ARyN4nEMsAiRCC4fqOmLiwsd0m5nZ2c0MDAgajhArBfM3RcSJ7jtVKtVHdJuTUzBO0bFtSaAaxKuS9KA - BriiIRAMidSBYar6+vrEcRYQ4wljJAAe9FJa50Gv5XWQ5Z3T0QTQsv3zOobDAl6nsDBdq8MDGNvSq5kV - lAsurdg4pCASfxjUuSq12xCdLuCV+w2TY/YYLCj8Q4Dv8KENfTy+nvs6/gPPcHq613NeWQAAAABJRU5E - rkJggg== + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + DAAACwwBP0AiyAAABVFJREFUaEPNWWmIHEUULm+8FS88EFFRvP5oFBVEEe+oYP5ExKCgBNGIB0EFhYAQ + wR8qCEb0R4wRFdYDTZaNUzXLiEqiokazIhJFPFAM0c3OzKuZVeO236t+2zM9XT3dPbPjzAcf3VX16tXr + 6urXr16pkYJpnqzKdK3S9i5l6JGQjQdxXazK9WNEaoSg7XEw7jZl7Hpcf8U1SCf9i2sZfS6U3kPCqmBP + pek6GLQB3J00NIOa5lTJ3iPaBoj3mqditpaA92PQp3F9AVwHo3/wGpZGTb/gug19v8b931I3p8qNS2Sk + BYKZPlSV6HYofxODTEcG9EJNm0NdWGLtqNSORDuWG8vYitT2iXLtTCh8CTNrIwP6YZkeEs1+8BI09DEe + 8h83aT2DvYK2L0MZf1x+Y3qhpgb4sKoEe8tISWi7wslO1s+SmoIw9VugoL9lks2tqlQ/W0aMo2RvcDJl + e4HU5ATPiqE1HQMNjtrWMN5iGb0F01gayjROlJoc2BzsD4UbE4MMnHC12t4nVoQw9Bj4V9dlFsNnwT7D + MT7G5WINfwPr8J18IKUc0PRUQqGm73F9Bddmom0QdF6Hrnf2mNnTUF7p7jNh6BoIz7UU2Z34uG6FF7oS + 5WpU/39QU11tap7k7GJ3monQVf7epuRVNVE7yj0Ar8F25X5uA1fDt98Bz3GT+zlxWdvPY5NShNpOiHU5 + EHkcmnWDuzp2oRm+X9Mn8BAXOfk0aLsIrHj7Z7HcuFm0dAG7qHCWq1HcwWtwPh5Jo6bn1Fiwl5PPggvs + 7BNePd3IcVEQ7CFaUhAGX7vARWG5cSmMa3gVtviiky0Kn5PIYql+ufT2YENwAIT+dEYzeKPBZZ+iFqcw + 8/s6+aLgN2bslx36MkhvSW8P+IPTtMzdhw+zNamgk+LieoXbI/j0ppD/0vx/8mJ+5hns630KYqSf87m1 + LuC3EPd42ZxsXCy9U8Duz9cxybXSoz8YetejO52aHpWeHlTsCRCaSXTyE3tVhMD90tAWj+5uXC/WeqDp + HU+HESO9L9Z2gD9gb4dRI/bXCZSCA9GQkeIYGc6I1W3QtMojOKqsitWCUv1o51/9wqNHjk5jMPSMVzCb + U3hwMwRuFMuBiT8OgSG9xvf3ipYhgnc4fuOyyRHoUBEmi37yGpeHmn7MDm8HCVO/zGtYEWq6WrQNAYae + 9xpVhLxNzJ3m8KBEV2ESCm4zOWfkklV2R7KxB2r7pJhTDGHS9reEvq6k7WEEbOz5yUYngO1kwbwnzyAH + ZUXgvB996NXXjZwfdZhPlMYase/lTY3LOne05SK9Br3x1LgPHM9r+61fRzdi/1EJDgqV+DYsvNFmbKJj + cd/bn5n/kjwB2t6odO0MNT5zuNPHb5xPWHrNSDBZZwRtv4gL4Ol4GzkPY++Otw+Zmt4QywRscFwgucvR + 9HpMZmik71xiLYbYyQrtVmV7vLS08NHOg9GeY2M/UO5Qk81TxKI2hGs1FNL2K6lNwlSPgEzB1MeCcRq2 + hfmpBIz9piVIb0utH+yv+QAurnzQnHInnqkwdjwSjoWnKeDklaZnoz4DJY213GUa2v8DnDqfCPaTlu7g + c6rwjKBj0AUgL2VO3+cCP2F7QolzomkZLw47+Ki/suswV+aH5WPRwmFAGmmLy4LnTQ5HMPUr0Hm2TdF2 + zC4nXB+AwStwzyftEyjLhgehd/u6DI+glqBtHLItp5BJhCuaPsX9ajVZPV209QjO53NE6R2I6dwtfy/L + ozfgA7+lkj1P/raPo98acAz91oaTwgd00MFHpL0mg7vC1M/BQHeCnC1bCS7DMjk3PZE6TCj1HxSY/LJl + ORmbAAAAAElFTkSuQmCC - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH - EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo - z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ - xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT - ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn - FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg - v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI - AAADDklEQVRYR8WXS09aYRCGXbZN/RVtEwLqQhcuccc/UIIbN5IYVy6Jf4CyNqZQXIpG11yiWxbWDZCY - qIkx8bKgZae0lqKZzvud4XAuQ0sB6yRPAjPfvDPw3c4ZCwQC/fKWWWA+MUfMV+angM/wIYYxGKtp+FCd - Ht4zn5kmQ32CschBrqZpozqFV0ySaTFakX5A7kcGWlqNng28YyqMJjoI0FL/DZ+DmWbqjCY0DNCEtque - 6wuDLr8xmsAogLbrn3AWf81UGS1xlNQY1PI1gMWiJTwHqOVqAIvuF6MNfg5Qy0xFpwHsWW2gTSgUolgs - Rjs7O7S8vOyLLy4u0u7uLi0tLdHk5KQvrpBlTAPjTM9DBoUh3G63qWO3t7dULBapUqlQtVqlQqFAl5eX - EiV6enqifD5PMzMzqqaAmuNoAEenNsCQy+VE9t+tVCqpmg4W0EDG47SZn58XqcEtHo+r2kIGDeAS0YJ0 - eHgoMoMbpkjTFo7QQMPjNEQiEZEY3qLRqE9faKAB9bJJJpOS3rW9vT0Tw4pvNpvitWx1ddXENjc3xdO1 - ra0tl7aDVs8GDg4OJN2yRqNBExMTdnxjY0MiZHaJM/f8/Fwilh0fH7viDkwD6hRcXFxIumWtVovC4bAd - 397elgiZZjv+qakpqtfrErHs5ubGjnswU6Auwru7O0nv2unpqVnV2WxWPF3b3983hxB+rdfu7+99+oJZ - hOo29M7xMAYtrQZjtqF6ENVqNUm37OrqitLptPk7exnWSSaTobOzM/FYhjWh1WDMQdTzKE6lUvTw8CAy - RCcnJ2Yhzs7O0srKCq2vrxuwA+bm5kxOuVyW0USPj49mV+A492oz3xlzFANcDNogCgaDtLa2RtfX12ae - tTFOsD6wCBOJxN8uJfsyArga//d1/IF5sQeSFGPqOhvAYxIel7SEUYIabxhfA+BFH0o7vOhjeQd0Ocrp - gJbrl3fwORzgdQoLc5jdgdyBXs2cYLvgoRUHh1ZE4weDfW622p9QnT3AK3eUSTNfGCwo/EKAz/AhhjF9 - vp4Hxn4DLP3gQugK66gAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - DAAACwwBP0AiyAAAHJlJREFUeF7t12t25DaWhdGe/wRrON12+bgtJ4+YlBQPXmDvtb5fVkbEBQGw6n/Y - 23/+85//XamMBQCcaS/RyWUsAOBMe4lOLmMBAGfaS3RyGQsAONNeopPLWADAmfYSnVzGAgDOtJfo5DIW - AHCmvUQnl7EAgDPtJTq5jAUAnGkv0cllLADgTHuJTi5jAQBn2kt0chkLADjTXqKTy1gAwJn2Ep1cxgIA - zrSX6OQyFgBwpr1EJ5exAIAz7SU6uYwFAJxpL9HJZSwA4Ex7iU4uYwEAZ9pLdHIZCwA4016ik8tYAMCZ - 9hKdXMYCAM60l+jkMhYAcKa9RCeXsQCAM+0lOrmMBQCcaS/RyWUsAOBMe4lOLmMBAGfaS3RyGQsAONNe - opPLWADAmfYSnVzGAgDOtJfo5DIWAHCmvUQnl7EAgDPtJTq5jAUAnGkv0cllLADgTHuJTi5jAQBn2kt0 - chkLADjTXqKTy1gAwJn2Ep1cxgIAzrSX6OQyFgBwpr1EJ5exAIAz7SU6uYwFAJxpL9HJZSwA4Ex7iU4u - YwEAZ9pLdHIZCwA4016ik8tYAMCZ9hKdXMYCAM60l+jkMhYAcKa9RCeXsQCAM+0lOrmMBQCcaS/RyWUs - AOBMe4lOLmMB8DvtEpWkieVaA65oh0iSJpZrDbiiHSJJmliuNeCKdogkaWK51oAr2iGSpInlWgOuaIdI - kiaWaw24oh0iSZpYrjXginaIJGliudaAK9ohkqSJ5VoDrmiHSJImlmsNuKIdIkmaWK414Ip2iCRpYrnW - gCvaIZKkieVaA65oh0iSJpZrDbiiHSJJmliuNeCKdogkaWK51oAr2iGSpInlWgOuaIdIkiaWaw24oh0i - SZpYrjXginaIJGliudaAK9ohkqSJ5VoDrmiHSJImlmsNuKIdIkmaWK414Ip2iCRpYrnWgCvaIZKkieVa - A65oh0iSJpZrDbiiHSJJmliuNeCKdogkaWK51oAr2iGSpInlWgOuaIdIkiaWaw24oh0iSZpYrjXginaI - JGliudaAK9ohkqSJ5VoDrmiHSJImlmsNuKIdIkmaWK414Ip2iCRpYrnWgCvaIZKkieVaA65oh0iSJpZr - DbiiHSJJmliuNeCKdogkaWK51oAr2iGSpInlWgOuaIdIkiaWaw24oh0iSZpYrjXginaIJGliudaAK9oh - kqSJ5VoDrmiHSJImlmsNuKIdIkmaWK414Ip2iCRpYrnWgCvaIZKkieVaA65oh0iSJpZrDbiiHSJJmliu - NeCKdogkaWK51gDgsdpLZ3IZCwA4016ik8tYAMCZ9hKdXMYCAM60l+jkMhYAcKa9RCeXsQCAM+0lOrmM - BQCcaS/RyWUsAOBMe4lOLmMBAGfaS3RyGQsA+Ex7gU4vowEAn2kv0OllNADgM+0FOr2MBgB8pr1Ap5fR - AIDPtBfo9DIaANC0l+cKZTwAoGkvz+llNADgM+0FOr2MBgB8pr1Ap5fRAIDPtBfo9DIaANC0l+cKZTwA - oGkvzxXKeABA016e08toAEDTXp4rlPEAgKa9PFco4wEATXt5rlDGAwB+1V6cq5QRAYBftRfnCmU8AKBp - L88VyngAQNNeniuU8QCAX7UX5yplRADgV+3FuUIZDwD4VXtxrlJGBAB+1V6cq5QRAYBftRfnKmVEAOCj - 9tJcpYwIAPyqvThXKSMCAB+1l+ZKZUwA4KP20lypjAkAfNRemquUEQGAj9pLc6UyJgDwUXtprlTGBAD+ - 1l6YK5UxAYCP2ktzpTImAPC39sJcrYwKAPytvTBXKmMCAH9rL8zVyqgAwN/aC3O1MioA8Kf2slytjAoA - /K29MFcrowIAf2ovyxXLuAD8rV2Wq5VRKdp6rVZGBeCjdmGuWMblg7ZOK5ZxAfioXZirlpH5Q1ufVcvI - APyqXZorlnH5Q1ufFcu4ADTt4ly1jLy1ti6rlpEB+Ey7PFcs426trcuKZVwAzrQLdNUy8pbaeqxaRgbg - TLtAVy5jb6Wtw8plbAB+p12iq5aRt9LWYdUyMgBXtIt05TL2Ftr8K5exAbiqXaYrl7GX1uZeuYwNwFe0 - C3X1Mvqy2swrl7EB+Kp2qa5cxl5Sm3flMjYA39Eu1tXL6Etpc65eRgfgu9rlunoZfQltvtXL6AD8RLtg - dyjjj9bm2qGMD8BPtAt2l7IEY7WZVi+jA/AI7aLdpSzBOG2WHcr4ADxCu2h3KsswRpthhzI+AI/ULtyd - yjLcXvvtu5QlAOCR2oW7W1mK22q/eZeyBAA8Q7t4dytLcTvtt+5UlgGAZ2mX725lKW6j/cadyjIA8Ezt - At6xLMfbtd+2W1kKAJ6tXcI7luV4m/abditLAcArtIt417IkL9d+y45lOQB4lXYZ71qW5GXab9ixLAcA - r9Qu5J3Lsjxd++5dy5IA8GrtUt65LMvTtO/ctSwJAO/QLubdy9I8XPuuXcuSAPBO7YLevSzNw7Tv2Lks - CwDv1i7p3cvS/Fj77J3LsgBwB+2i1s9fVu0zdy9LA8BdtMta339htc/avSwNAHfTLm19/cXVPmP3sjQA - 3FG7uPVXWaLfav9W/gcAwO21y1t/lSX6VPs38vIHGKNd4vqrLNFB+1t5+QOM0i5y/VOW6f+1v9FfZYkA - mKJd5vqnLJN1OilLBMA07VKXrpQtBMBE7WKXrpQtBMBU7XKXzsrWAWC6dslLrWwZAFbRLnvpY9kqAKyk - XfjSx7JVAFhNu/SlP8sWAWBV7fLX3mVrALC69hLQnmVLALCL9jLQXmUrALCb9lLQHmULALCr9nLQ+uXx - s4D2fKeX0YBnaodPa5dHzyLaM55eRgOerR1ArVkeOYtoz3iFMh7wCu0Qaq3yqFlIe86rlBGBV2iHUGuU - R8xi2rNepYwIvEo7iJpdHi2Lac96tTIq8CrtIGpmeaQsqD3v1cqowCu1w6hZ5VGyoPa8VyzjAq/WDqRm - lEfIotozX7WMDLxaO5C6d3l0LKo985XL2MA7tEOpe5ZHxsLac1+9jA68QzuUuld5VCyuPfvVy+jAu7SD - qXuUR8Ti2rPfpSwB8C7tYOq95dGwgfb8dylLALxTO5x6T3kkbKA9/53KMgDv1g6oXlseBZtoe2C3shTA - u7UDqteUR8BG2j7YrSwFcAftkOq5ZenZSNsHu5YlAe6gHVI9pyw5m2l7YdeyJMBdtIOqx5alZjNtL+xc - lgW4k3ZY9fOyvGyq7Yndy9IAd9IOq75flpVNtT0h5wJuqx1Yfb0sJxtr+0J/lSUC7qYdWF0vy8jm2t7Q - X2WJgDtqh1a/L8vH5tre0L/LUgF31A6tPi/LBs7OhbJUwF21g6telozNtb2hY1ku4I7aodV5WTo21vaF - elky4E7aYdW1soRsqu0J9bJkwF20g6qvlaVkM20v6LwsHfBu7YDqe2VJ2UjbBzovSwe8Uzuc+llZWjbQ - nr9+X5YPeJd2MPWYssQsrj17XStLCLxaO5B6bFlqFtWeua6XZQReqR1GPacsOQtqz1tfK0sJvEI7hHpu - WXoW0561vlaWEni2dgD1mvIIWER7xvpeWVLgWdrB02vLo2AB7fnqe2VJgWdoh07vKY+Ewdpz1ffLsgKP - 1g6c3lseDUO1Z6qflaUFHqUdNN2jPCIGas9TPytLCzxCO2S6V3lUDNKeox5Tlhj4iXa4dM/yyBiiPUM9 - piwx8F3tYOne5dFxc+3Z6XFlmYHvaIdKM8oj5Mbac9Njy1IDX9EOk2aVR8kNteelx5flBq5qB0kzyyPl - Ztqz0nPKkgO/0w6QZpdHy42056TnlCUHzrTDozXKI+YG2vPRc8vSA007NFqrPGrerD0bPbcsPfCrdmC0 - ZnnkvEl7Jnp+WX7go3ZYtHZ59LxBex56TXkEwJ/aIdEeZQvwYu1Z6DXlEQDtgGivshV4kfYM9NryKGBf - 7WBoz7IleIG2/npteRSwp3YotHfZGjxRW3e9vjwO2E87ENKfZYvwJG3N9Z7ySGAf7SBIH8tW4cHaWut9 - 5bHAHtohkFrZMjxQW2e9tzwaWFvb/NJZ2To8SFtjvbc8GlhX2/jSlbKF+KG2trpHeUSwnrbhpa+UrcQP - tHXVPcojgrW0zS59p2wpvqGtp+5THhOso210HbNW1/vvxuLL2lrqXuVRwXxtg+tYluu/2n/XsSwXX9DW - cXKrzgTjtc2tY1muf2l/p2NZLi5o6ze9leeCsdqm1rEsV9X+XseyXPxGW7vJZSz/AwDupG1oHctynWr/ - TseyXHyirdn0Mtp/tf8+uYwFs7TNrGNZrkvav9exLBdFW6/JZaz/1/5mehkNZmibWMeyXF/SPkfHslx8 - 0NZpehntX9rfTS5jwf21DaxjWa5vaZ+nY1kuoq3R9DLav7S/m15Gg/tqG1fHslw/0j5Xx7Jc/KGtz+Qy - VtX+fnIZC+6pbVody3I9RPt8Hctyba2ty/QyWtX+fnoZDe6lbVYdy3I9VPseHctybautyeQy1qfav5le - RoP7aBtVx7JcT9G+T8eyXNtpazG9jHaq/bvJZSy4h7ZJdSzL9VTte3Usy7WVtg7Ty2in2r+bXkaD92qb - U8eyXC/Rvl/HslzbaGswuYx1Sfv3k8tY8D5tY+pYluul2u/QsSzX8trs08tol7R/P72MBq/XNqSOZbne - ov0eHctyLa3NPbmMdVn7jOllNHitthl1LMv1Vu136ViWa0lt3ulltC9pnzO5jAWv0zaijmW5bqH9Ph3L - ci2nzTq5jPVl7bOml9Hg+doG1LEs162036ljWa5ltBmnl9G+pX3e5DIWPFfbfDqW5bql9nt1LMu1hDbf - 9DLat7TPm15Gg+dom07Hsly31n63jmW5xmuzTS5j/Uj73MllLHi8tuF0LMs1Qvv9+qcs03httulltB9p - nzu9jAaP0zaajmW5Rmlz6K+yROO12SaXsX6sffb0Mho8RttkOpblGqnNozUu0zbX9DLaQ7TPn1zGgp9r - G0zHslyjtbl2LssyXpttehntIdrnTy+jwfe1jaVjWa4ltPl2LUsyXpttchnrodr3TC5jwfe0TaVjWa6l - tDl3K0sxXpttehntodr3TC+jwde0zaRjWa4ltXl3KsswXpttchnr4dp3TS+jwXVtI+lYlmtpbe5dyhKM - 1uaaXkZ7ivZ9k8tYcE3bRDqW5dpCm3/1Mvp4bbbJZaynad85vYwG59rm0bEs11baOqxcxh6tzTW9jPZU - 7Xsnl7Hgc23j6FiWa0ttPVYs447XZpteRnuq9r3Ty2hw1DaMjmW5ttbWZbUy6nhttsllrJdo3z+5jAX/ - 1jaLjmW5+ENbn1XKiOO12aaX0V6iff/0Mhr8pW0SHcty8UFbpxXKeOO12SaXsV6m/YbpZTTw8r9aloui - rdf0Mtpoba7pZbSXar9jchmL3bXNoWNZLk60dZtaRhqvzTa9jPZS7XdML6Oxq7YpdCzLxQVt/SaWccZr - s00uY71F+z2Ty1jsqG0IHcty8QVtHSeVMcZrs00vo71F+z3Ty2jspG0EHcty8Q1tPaeUEcZrs00uY71N - +03Ty2jsom0CHcty8QNtXSeUnz9am2t6Ge2t2u+aXMZiB20D6FiWiwdo63vn8rPHa7NNLmO9Xftt08to - rKw9eB3LcvFAbZ3vWn7yaG2u6WW0W2i/b3IZi1W1h65jWS6eoK333cpPHa/NNr2Mdgvt900vo7Ga9rB1 - LMvFE7V1v1P5meO12SaXsW6l/c7JZSxW0h60jmW5eIG2/ncoP2+8Ntv0MtqttN85vYzGCtoD1rEsFy/U - nsO7y08br802uYx1O+23Ti+jsYL2gPXvslS8QXse7yw/a7Q21/Qy2i213zu5jMUK2gPWP2WZeKP2XN5R - fs54bbbpZbRbar93ehmNFbQHLJv8TtrzeXX5KeO12SaXsW6t/e7JZSxW0R7yzmVZuJH2nF5VfsJ4bbbp - ZbRba797ehmNVbSHvGNZDm6oPa9XlK8fr802uYw1Qvv9k8tYrKQ96J3KMnBT7Zm9onz9aG2u6WW0Edrv - n1zGYjXtYe9Qxufm2rN7Zvna8dpsk8tYY7QZppfRWE172CuXsRmiPcNnla8crc01vYw2SptjchmLFbUH - vmIZl2Has3x0+arx2mzTy2ijtDmml9FYUXvgK5UxGao900eWrxmvzTa5jDVSm2dyGYtVtYe+QhmP4dqz - fUT5+PHabNPLaCO1eaaX0VhVe+iTy1gsoj3jn5aPHq/NNrmMNVabaXoZjZW1Bz+xjMNi2rP+SfnY0dpc - 08too7W5JpexWF17+JPKGCyqPfPvlI8br802vYw2WptrehmN1bWHP6H8fBbXnv1Xy0eN12abXMZaQptv - chmLHbQNcOfys9lE2wNXy0eM12abXkZbQptvehmNHbQNcMfyc9lM2wtXyj8fr802uYy1lDbn5DIWu2ib - 4E7lZ7Kptid+V/7paG2u6WW0pbQ5J5ex2EnbCHcoP4/Ntb3xWfkn47XZJpexltNmnV5GYydtI7yz/Cz4 - r7ZHWvnz0dpc08toS2rzTi5jsZu2Gd5Rfg78S9srH8ufjddmm15GW1Kbd3oZjd20zfDK8jOganvm7/In - 47XZJpexltbmnlzGYkdtQ7yifD2canvnz/KfR2tzTS+jLa3NPb2Mxo7ahnhm+Vq4ZNX98+tc08tYy2uz - Ty+jsau2KZ5Rvg6+ZLU99HGeVcpoW2jzTy5jsbO2MR5Zvga2187H9DLaFtr808to7KxtjEeUjwf+0M7I - 5DLWVto6TC5jsbu2OX5SPhb4Qzsj08toW2nrML2Mxu7a5vhO+Tgg2jmZXMbaUluPyWUs+PnmzscA0c7J - 9DLaltp6TC5jwV/aJrlS/jnwQTsrk8tY22prMr2MBn9pm+Ss/DPgg3ZWppfRttbWZXIZC/7RNkorfw78 - op2X6WW0rbV1mV5Gg3+0jfKx/BlQtDMzuYzFH9r6TC5jwb+1zfJn+c9A0c7M9DIaf2jrM72MBv9mo8DX - /HpmppexiLZG08tocGSTwDUfL9VVymh80NZpchkLgO9ql+v0MhoftHWaXkYD4DvaxTq5jEXR1mtyGQuA - r2qX6vQyGkVbr+llNAC+ol2ok8tYnGjrNrmMBcBV7TKdXkbjRFu3yWUsAK5ql+nkMha/0dZuehkNgN9p - l+j0MhoXtPWbXMYC4HfaJTq9jMYFbf2ml9EAONMu0MllLL6grePkMhYAn2mX5/QyGl/Q1nF6GQ2Apl2c - k8tYfFFby+llNAB+1S7N6WU0vqGt5+QyFgC/apfm9DIa39DWc3oZDYCP2oU5uYzFD7R1nVzGAuBv7bKc - XkbjB9q6Ti+jAfCndlFOLmPxAG19J5exAGiX5PQyGg/Q1ndyGQuAdklOLmPxIG2Np5fRAPbVLsfpZTQe - qK3z5DIWwL7a5Ti9jMYDtXWeXkYD2FO7GCeXsXiCtt6Ty1gA+2mX4vQyGk/Q1nt6GQ1gL+1CnFzG4kna - mk8vowHso12G08toPFFb98llLIB9tMtwehmNJ2rrPr2MBrCHdhFOLmPxAm39J5exANbXLsHpZTReoK3/ - 9DIawNraBTi5jMULtecwuYwFsK52+U0vo/FC7TlMLmMBrKtdfpPLWLxYexbTy2gA62mX3vQyGm/Qnsfk - MhbAetqlN72Mxhu05zG9jAawlnbhTS5j8UbtuUwuYwGso112ko7lyACsoV10ko7lyADM1y45Sb0cG4D5 - 2iUn6fNydABmaxecpM/L0QGYq11ukn5fjhDATO1ik/T7coQA5mmXmqRr5RgBzNMuNUnXy1ECmKNdZpK+ - Vo4TwBztMpP09XKkAGZoF5mkr5cjBXB/7RKT9P1ytADurV1gkr5fjhbAfbXLS9LPyvECuK92eUn6eTli - APfULi5JPy9HDOB+2qUl6XHlqAHcS7uwJD2uHDWA+2iXlaTHluMGcB/tspL0+HLkAN6vXVKSnlOOHcD7 - tUtK0vPK0QN4r3ZBSXpeOXoA79MuJ0nPL0cQ4D3axSTp+eUIArxeu5QkvaYcQ4DXa5eSpNeVowjwWu1C - kvS6chQBXqddRpJeX44kwGu0i0jS68uRBHi+dglJek85lgDP1y4hSe8rRxPgedrlI+m95XgCPE+7fCS9 - vxxRgOdoF4+k95cjCvB47dKRdJ9yVAEeq104ku5TjirA47TLRtK9ynEFeJx22Ui6XzmyAI/RLhpJ9ytH - FuDn2iUj6b7l6AL8TLtgJN23HF2A72uXi6R7l+ML8H3tcpF0/3KEAb6uXSqSZpRjDPB17VKRNKccZYCv - aReKpDnlKANc1y4TSfPKkQa4pl0kkuaVIw3we+0SkTSzHGuA32uXiKS55WgDnGsXyOQyFlzW9tHkMhbA - 59rlMb2MBpe1fTS9jAbQtYtjchkLvqTtpellNICjdmlML6PBl7X9NLmMBXDULo3JZSz4lranppfRAP7R - LovpZTT4travJpexAP7RLovpZTT4travppfRAP7SLorJZSz4sba/JpexAPy/HDjT9tf0Mhqwu3ZBTC5j - wUO0PTa9jAbsrF0O08to8DBtn00uYwE7a5fD9DIaPEzbZ9PLaMCu2sUwuYwFD9f22+QyFrCjdilML6PB - w7X9Nr2MBuymXQiTy1jwFG3PTS+jATtpl8H0Mho8Tdt3k8tYwE7aZTC5jAVP1fbe9DIasIN2CUwvo8HT - tf03uYwF7KBdAtPLaPB0bf9NL6MBq2sXwOQyFrxM24eTy1jAytrhn15Gg5dp+3B6GQ1YVTv4k8tY8FJt - L04vowEraod+ehkNXq7tx8llLGBF7dBPL6PBy7X9OL2MBqymHfjJZSx4m7YvJ5exgJW0wz69jAZv0/bl - 9DIasIp20CeXseCt2t6cXkYDVtAO+fQyGrxd25+Ty1jACtohn1zGgltoe3R6GQ2YrB3u6WU0uI22TyeX - sYDJ2uGeXkaD22j7dHoZDZiqHezJZSy4nbZfJ5exgInaoZ5eRoPbaft1ehkNmKYd6MllLLiltmenl9GA - Sdphnl5Gg9tq+3ZyGQuYpB3m6WU0uK22b6eX0YAp2kGeXMaC22v7d3IZC5igHeLpZTS4vbZ/p5fRgLtr - B3hyGQtGaHt4ehkNuLN2eKeX0WCMto8nl7GAO2uHd3IZC0Zpe3l6GQ24o3Zop5fRYJy2nyeXsYA7aod2 - ehkNxmn7eXoZDbibdmAnl7FgrLavJ5exgDtph3V6GQ3Gavt6ehkNuIt2UCeXsWC0trenl9GAO2iHdHoZ - DcZr+3tyGQu4g3ZIp5fRYLy2v6eX0YB3awd0chkLltH2+eQyFvBO7XBOL6PBMto+n15GA96lHczJZSxY - Stvr08towDu0Qzm9jAbLaft9chkLeId2KCeXsWBJbc9PL6MBr9QO4/QyGiyr7fvJZSzgldphnF5Gg2W1 - fT+9jAa8SjuIk8tYsLy2/yeXsYBXaIdwehkNltf2//QyGvBs7QBOLmPBFtoZmF5GA56pHb7pZTTYRjsH - k8tYwDO1wze9jAbbaOdgehkNeJZ28CaXsWA77TxMLmMBz9AO3fQyGmynnYfpZTTg0dqBm1zGgi21MzG9 - jAY8Ujts08tosK12LiaXsYBHaodtchkLttbOxvQyGvAI7ZBNL6PB9tr5mFzGAh6hHbLpZTTYXjsf08to - wE+1Aza5jAVEOyeTy1jAT7TDNb2MBkQ7J9PLaMB3tYM1uYwFfNDOyvQyGvAd7VBNL6MBv2jnZXIZC/iO - dqiml9GAX7TzMr2MBnxVO1CTy1jAJ9q5mVzGAr6iHabpZTTgE+3cTC+jAVe1gzS5jAWcaGdnehkNuKId - oullNOA32vmZ23/+9/8A8VIS644ZBj0AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH - EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo - z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ - xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT - ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn - FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg - v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI - AAADoUlEQVQ4T5WUe2iXVRjHH1cKy1lLl3Pu4uU3Nnf9zd9uTqy8zHK2kunKdm3JyhFrTsjoAsuhJSUq - mBFF9IdGRNAfIUEURRFJBcFaF4rCIoloUW1TK9vi0/d532OW/0QPfHjfc95zvu95bsfAjMHZRl2+0SSG - +4z2hkLqFoxRnwt1OZPUZE+SypokOXeSisth2cwzXFubommjUTLHKJBG7gyjzPTigjszjOpEFo1FmTyy - s5pNqXGWz4eGfBeEsgyJpEPySqjMhHKNc2yKlcWrqc/PIM+yLwj+JO6+ZBdr9OcWbcibOc1c/SdHZIl5 - onIOVAj9l1niUpEmrkibpjANlszQPttLqQveYnvYoo9tYoXY2wIfnICnDsDuATh2BE6dhO++heeehAfu - hEND8N4bsL09cpDFwg+QtCPGRruXWzWoFztq+d+2eX0sulDU2j6jyx5knQbbsuD3s/GiV3Wqeyrhjmx4 - aV8853ZU8yuUqMYSefBYmJRdk4B0aSy1/UaPfUKNBq/JnfP25zR88xE83adQFIOGkTVUQd9W+PRDmPoj - TMqOvxDHNN++NLba89EJ75O7v50OK4J9PQLPDIaB7KEd8O6bYRBsagra18Jl0lhsr6jmrIObNagVnXkw - fiqslHWV6ketYSDr14mLFoaB7OwvCoHc9xguFYXWbwxYppIyrmzHiWmeBT98Hm84vl8icvlhZfP+DsVO - 7wd3x98mxiAx74LYElFieuvXTJu9zGZNtIirxchb8abz1rkSri8Lg2Afj8aJyBZeNnn2tneMn9DotYFI - bIPonA1nfg673JT5pkVQpQ6Z+DHMyTwp3kXqWnJFjQ3R6IK9otsStGrSWS8Od8H3Xykh26Fbbj3arSLv - 1SaV1qC+nfwChvrjzlkkFohyq2N13CmeaX++E8XRaRCrxIvqiIvtWXWQt5+2RGIFothGtcdY7oLNgQ0q - cHfbu2aTcPeP7Qoq/7DH9xD1+nzhifAYVtshOqTR6oI9gdvtKp30dJQcP6W77wV/nRp/9HX47H1lUzeO - lioBXiJeyPF7lRWqQnRjueCv4pyvEsO2Slk+F10WLtgh1oik3ybCi9dLxLPqYv4stRtIaW+5qHDB6JeB - YXGTpXObPfF3PF3Y41kqEsKFPG4FdlRCmfIiip2fLj7hxYI3irtEjy2T2IkoBGtFUsRJGFFXpfwylasW - nc6f/ym4TXgFbLFmCY7pJBMUWZsyagqL+WVKpfiXoNlf2tDLuBHpUW4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH - EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo - z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ - xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT - ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn - FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg - v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI - AAABTklEQVQ4T+3Uuy9DYRjHcYSBoZtIJEikQ012G4tYOkqMNgtLu0kkBkwWk9HAgoUIEZeBwSAhLm3q - EpcwCAOJP+D0+zup5s3jcekqhs9p8/Sc33veS5+qgeWoErVoRy+GMYNVHOAKOe+hJnRhEJNYwByOcIvH - 0mcee1jEBDJ4U8AI1nGMazzgHpfQyNuIMIU+JFEH+yKS10U3r2AU/ehEAuGNJ6g3NasZBX3R3O2PoUZc - oCOoecqBN2grFT1/MPCnNZRTVJua51yXZ+jYLH1BB/cdm0HNs4YnBb5gCzo6ng0ocCeoeTRgHPjbKdeY - miee8v+x+aTiQDUHbXsWaaRgG4E2pcHUrHKggrTlekjTV/u6QwH70LHRoOPoQSts2Ie4fVkt6MYQpqG3 - V5NVC9NAarAa+Ay7mMcY1MFfvcDvaCm0JFoazWwW+pcdguYc5YpBo5o82F6tegAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AkKCzkS0sRiMgAAEF9JREFU - aEPtmHdUlHe6x18ECwxTQDCbpvHe3Xi89G6J0ViRpgKCLZZoLKgUURl6L8JQBRU1RE3UGDXJRgUbwsww - Q++9IxpLNhvXPfcshnPjc7/vzIuooJhdc/aPe59zPudFj7zzfH7P8/x+v5H5/0AYyepZNIxkDTw8JxnJ - a+2M5JVzjeSlzkZypYuxXDbPWF4w01h+/U8m8sv6JvKLmibyXO63/01hKutk0TSVdbxjImtzNpG1pBjL - mgoh0QOJh0bymj5I9BvJy/qN5co+SPw3JH4wll+rhsQpE/klb5Oi721Ni77RM5N/rWFadI578+8c5tJe - Fi0z6U0bM2l3lqmsqw0Sj0xk7WQiayVjWQtoIoiAOoIIqAAlZCwvAoXgOkHiMSrxwKTou3Jzxdlgq+KT - U2zLjmpYlxznPuk1h4X0DmMpvaeBp4WF9HaWufTWj+bSm2Qm7QHdBBHQAYkBkWbQyInUQqAKlCF5JZCC - fEhcIdOiC2RRfPaxTemXXdPKc2JnVmZPmV+/j/mg6gD3ya8hrKQ/gr8ILKX3vSyld3shQRbSH8hcehvc - Ar3DiLSB56tR/YyECSphrrhEVsXnybbsJM2oyKEPqg61z67J3DyvLoU3tzaNy+CfDGvpT+CvLBOtpD+d - gsQvkCGIgHuQeFqElVBX5OUSA5VQkElRAVkoc8mm5DxNKz9FM6tyaHbNIfqoNqNvfn3K6YWNie8ubExi - FtQnchn9hrCWPgA/s5gBGSSIBSLgLxBgRViJu89UYziJwbmoR/JsO1WCEjJVFJJlcS5W/zxW/yTNqs5B - 8gdpXn06LWyU0OKmhALHllgLh+Z4xqklisvsFcJa+jdO4AGSf1AJASTPopZQi7xIYqASbDt1QmBwJoxU - M6FuJWN5KZkpC8m6JJfsys/TzMqTWP3PaF7dAVrYkIbkk8ixJY6cW6OrlrSHm7u0RTLL2sO4DEcItcDf - JgIpBJAwy7MSg5Vg24kVYNvpZVUYGGq2CjVkXFRG5hCwKc2l6RXnaFbVlzSn9ijNb8gi+6ZUJL+PXNpi - aWl7JLl2hpa4dwW/59YVwmX4kuBWXoDkTwEu+ZEEnp4Hdqhf1EYDArXo/1LsPgVon0ton7P0YfUXNLfu - CC1ozKTFzclY+QQkH01uneG0vDuYPHoCczxvBuh63hRzmQ4TSBD8nRXYDvqfSV72M9nI8DOeVoU/keWN - +2RxAyt/A4kXAhkLBGSvVgETRQn6Px8CF2hG5ddonxNon8O0qDEDqy/B6sdh5SORfCh53gyklb0B/atu - 7d2+4mYAs/rWHi7j50It8FdLPG+qV1udOPs0v3KHpp5ppcnZFfROipzejM+nNxNYruPPhfTeISW9fwq9 - famVzAq7yUzOCgw3A6xANQZYSZYl18mu7Hv0/xmaU3MMw3sI7ZNOTq2JtKQ9hty6wsmzJ5hW9QbQmtt7 - 6OMf/BvBZMBl/FSgHXBQ/aiJ1shStYkMbYKVNvq2myZllZNBxFUSBlwEl0goziNR0GXSC76iQj/4Msil - 8SEX6Y3IS/RuRgG9f6aCjG+0Yq8f2j7sLmSqKCKrkqsY4O/og8rTEPic5tcfVPW/U+s+WtoRTe5dYbTi - ZhCtvrWX1t3xp/V3/VginVr9mLV3/LjMuUAvs9hC4r6V7Ecyu3ybJiJxoTiXdHdfIr74CgmC80kYWkCi - cCnpRchIL1JO+lEsMhofVUgGkQUQvUYGoXlkGHoBlblCU76vRPJDzwFThQwCeRD4BgInIfCZeoCbUyCQ - QMs6olTtsxLt8zFWf/3dXbTxvi9L24a7vhM33PPlMkdg+Bj07SgMYpal7C5N/a6dxkfmE88fye+9Svyg - AhKEykkYoSRhVAmJYspIL7ac9OMrQDmNV1FKBnHFZBBbRIYxUjKMyifDsDxU5AL9xwkZkmdXfvAkNlUU - YAYuoYXOQeALCByBQCYqkAyBeAiw/R8CATEEdqtWf9N9Hwj4/A8E1n/ytAB3QXvXQnarbcr5ZqzyNdLx - v0w88Q3SDZETP7yYBFHlJIitJmF8LYn21ZNeYgPpJzWSvqSBxkvqQR0ZJNWQQWIlGSaUkmGcAiKFZIjW - mxB+kSafKIBEKXeNkOEOdA1XiO8hcAYzcBxDnI0WyoCABAJxqu3TvSsELSRGC+1GC+0irLqKdXd8v1rV - 66u15jYnYSbrZsyLelymXmx9JArPp3G7rpKOWEq8ECXpRpQTP6aGBPENJEyEnKSVRMltpJfSTnqpHaSf - 1kHj01Gx9DYySGshg9RGMkyuJcMkVqSEDGNlZBh5nSZE5tIfz+Zj/1df5EyL8lCBb7EL4QpRyV4hcALX - pWMXSsQuFEtL2iKwhbLbpxhDjAG+vYvQ92zyGGbf1tW3fN8CDIO7CvNmRjljlN+SYiiRI/lrpC2WkU5I - KfEiq0g3toH4CS3ET2wjQVI7BEByB4lSOiDQSXppnaSf3knjM7po/P4uMtjfQQbprXcMU+pPQWKXYUKx - PyS+hMQPf0jIo6mXr+AMyBu4hZJt6Rc4B47iHMjCOZCKU3gfOTTH4BwIRxsFowpibKN7IOGPSvhhN/LD - 0/fhyl5fO1SBYYyLGhm79i7exC/KC7X35tPYvZAILiPtiBrSiWkiXnwr6Sa0ke6+Nki0DyMBWAkI6Cc3 - 9+vvqz1tkNZqYZjVpWWQ0cZMiJMzE+KLNQ2jC8wNw6+efi/nUr9J0Z8hcB4XudM4iY/R9PJsnMQZuAcl - 04L6eLRRFDm1hGErDcZZEIBZ2IPt1B/t5IeZ8MXT55Fnj8+CFT0+DPN+XhUz5WrVJFG8rGfMbhmNDSqj - ceG1pB3dTDqxraQT1zqshOC5SojYGfn01EmeU6yAv2LoXd4w4hoj2n2D/3Z67nGj/HMQOI2r9AnchY7Q - tLIsDHIqzalORBvFoo0iUYVQVCEQsxAAid2oxC6I+JFHtw+e3v3uXTuXLu/eiRdnYYUOyKeNC5I9HCMu - pbGhtTQuqpnGRbeQdkzLyBIpnRh6zIpraq/OnEAT3qJILuWh8ZYkl3kz8bLx1Nyves0Ux8i86ChZKQ+S - XWk62kiCNoqnubVRqEIY2TcGk2OzGBJ7IOGPdvKDiA/mwhvseOTasX2ha+d2hhkbKGe0g+VzRwcU940O - rqEx4U00NrKZxka1jCCBmZB0kCC8jHiu6cRbFH2c55g4imcfy6U7NAzC8xnG7tYoo2vHPjcryobAAbJU - ZuD7gARtFI8qRGM7DUcVgjELYlrcuAcS/pDww1D7QGQn2A68fl7avs0SMIxWQCkzOqDUZXRgZf/osAYa - DYExERB4TkJ7iEQ78THgvFVHiGcfRzzHJD8IcKm+OCxK0rHrZfmYF2WghVLJQpFE1sXx2E6jaWZFOH1Y - FUwf1Yhpft0eSOxCJXzRTt6YiR3k3OIFma1gS4Vz62Z9AIHAahZHrZD6X7TCmlQCz0oMttPTEjxI8LZ+ - S7zF8cRzkpCuS5q3rnMqo+uUzKU6fJgrJIyFQuJjoUhE8vEgBm0USbYloTS9LJA+qNhLs6v8IeELCW9I - 7ICEF74fbCWHps3k2LQJVdkYt7hxA+PUvIlhNEMaWOZohTb2sQKvJoHkwyqJtzQNK5+I5NNJd1lWsq5z - CsN3y+ZSHRoWiigQqYmkT+BnslREgFAQhCoEYBb8aUa5H82q9KbZ1dtpbs02ml+7BTPxKS2q30iLGjaQ - fcP6e/aN6yyB+qWaIY0s1uCBVqha4HmJMc9LQEDH6wLxHPYRVp1Nnvhuh6/wPT7X5i//TP3iYcJSEcJi - Ae6wSVsqxGAPWSl2oQo+qMIOmlbqRTPLt0LiU1RiI31UvYHm1ayDyFpaULfm8cL6NYn2DWs0F9WvUb+U - E3gHdAJSSXAiL5SIbCAdz8Ns35Pukv2k65ZN/OU59/geOWZA/eLnwkqxG/jrIuET+BkJq5O2Uu4EXmSt - 3Ao+hcQnNL10PSTW0qyKNTS7cjW215VoqZUQWZk7v26V4fzaVdxbEaOCG1m0wTVWYGQJDDa2W50lqcRT - rf4B4rsfJaw+yAnhe+YwkOHePhhWSm/g44Rnn5VyB5LehoS3qJK2Vn4C1pON8mOwiuyKV0DCExIemAkP - +rDS8/HsKs8rH1Wv+K851Su4N3LBCbAkApWAilBOhJXgRFQSrIA3LntOWH22990OsauvFlie0wj+c3iB - bcBrsrVy8w1r5cZfrZUbkPQ6JLxGlbSN0hMsB25kW+xKdiWuaCc3mlHm/vPM8uWZsyo8/gC4tz0Xo4Ig - ENToAPpGlIiEgFeeWmAp2sf9MLf6KgHw2edgyCwgYbCWfb6BlfayUa7Mt1F63LVRuj+yLXZ7zCb9FPg7 - 1y67YtfDkJgFiTHTy9y5Nw0TGkENLG+DFkjQSyXYnckLV22nZAhkon2OPC/QJ3A/6it0O6KFJ/cJg2Gr - XMZMUzowWGmerdJ1KhJdBDaBbRybwWLwHtAC3G++JDQCISBu0MAzAxI0IPFE5GmJcFYgjxPA7vOk/58I - EBL/OyshcD8yFnCf8juHSiKwwRrce6kEK7BtQICtwLACLP9A8pkCt8NvAIbl9w0IAE2wHxL0QokwDLKv - lHRcsAMN30IDAiRwO/IrEpcK3LI9BK7ZfMAIXA9xHzhy6DkkMhNWH2dEi2LfEi2INBbODRklnPey/50T - Q0LcYA56BiRUIs9IoAoBlaTtdgBnQIb6DHixADgMsvuQ+BWwSrjs4GThsgPjhB6HGOHSoddukVMqSNMQ - OaXwgbGeo2SPyD6uXjQ/Qg4BfeHcUO5fDhesAFsJccNW8MsLJUIaaNzar9SnsOtBVdIjCBCSJ6HrwX4I - 9EAgV7g0K1q4NHOtcEnmPOGS/bNFLhkg3V7knLZF5JyaDpEiCNzXc5A8RgX6IbBzxhlihPNeJsCGugoC - 8BWgYSVQhdHehcRbgnPgSRuxyY8oQBAABwgCIPNXCPRB4B8QAOmPIPAYEARACokWJ5JoUcxZ0YIIoWjB - q/4PtVriXXDjicTAXAxIBOJb28pj7C10sAq/XYAgAPYTBEA6qZIfEHCUkMg+QS5aGDMJVeCSe5VQC7CY - ggpWAq31rEQIquArJ96yTNV9CLdQTuJ1CWD1HRKrRPbx5sLF+zDIMVxyrxqDEmZAOqwEGLP5groKbCup - JLjk/yUBdvWT5UjcXOSQxAgXx3NJ/dYYlGDb6UvwyxCJwDoau/7coAQSxf7/rIDrbxLox+p/LXRImggJ - RmifwCXzr4RaQhdsAT3DSnzyjXqoAR8JqlZdtfojCewfFHBO60XyXuh9AZv86w21hAawAIchcf8ZCTzH - eF0lneXYkdAGfJwRAlaErQiHOvmnBLjVF7qk30fyR5C8JXYdjdef/NPBigQ0aOFpBYkMSLRCok99ajeR - 5t5KGrfpz8RjRZAcH20hYGGFuNVWJ53Rh8Rbhc5pmULnFBuho0RLOML36dcb3NUDAm8DR0hIIFEAie5R - IY0PtcTVfdil+sdtvtivve5Mn87qEw91PY9267pnF/CXZSZDyknglPw23yFJU+Ao4V7674qgelDHXsl5 - aKeJwA6H3VzNsBZnzfBWF9yf5o0OqrEbs1sxaXRACY9Jvc1oxDRzv/x/OhjmfwFFTW0e0aAKIQAAAABJ - RU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - DAAACwwBP0AiyAAABVFJREFUaEPNWWmIHEUULm+8FS88EFFRvP5oFBVEEe+oYP5ExKCgBNGIB0EFhYAQ - wR8qCEb0R4wRFdYDTZaNUzXLiEqiokazIhJFPFAM0c3OzKuZVeO236t+2zM9XT3dPbPjzAcf3VX16tXr - 6urXr16pkYJpnqzKdK3S9i5l6JGQjQdxXazK9WNEaoSg7XEw7jZl7Hpcf8U1SCf9i2sZfS6U3kPCqmBP - pek6GLQB3J00NIOa5lTJ3iPaBoj3mqditpaA92PQp3F9AVwHo3/wGpZGTb/gug19v8b931I3p8qNS2Sk - BYKZPlSV6HYofxODTEcG9EJNm0NdWGLtqNSORDuWG8vYitT2iXLtTCh8CTNrIwP6YZkeEs1+8BI09DEe - 8h83aT2DvYK2L0MZf1x+Y3qhpgb4sKoEe8tISWi7wslO1s+SmoIw9VugoL9lks2tqlQ/W0aMo2RvcDJl - e4HU5ATPiqE1HQMNjtrWMN5iGb0F01gayjROlJoc2BzsD4UbE4MMnHC12t4nVoQw9Bj4V9dlFsNnwT7D - MT7G5WINfwPr8J18IKUc0PRUQqGm73F9Bddmom0QdF6Hrnf2mNnTUF7p7jNh6BoIz7UU2Z34uG6FF7oS - 5WpU/39QU11tap7k7GJ3monQVf7epuRVNVE7yj0Ar8F25X5uA1fDt98Bz3GT+zlxWdvPY5NShNpOiHU5 - EHkcmnWDuzp2oRm+X9Mn8BAXOfk0aLsIrHj7Z7HcuFm0dAG7qHCWq1HcwWtwPh5Jo6bn1Fiwl5PPggvs - 7BNePd3IcVEQ7CFaUhAGX7vARWG5cSmMa3gVtviiky0Kn5PIYql+ufT2YENwAIT+dEYzeKPBZZ+iFqcw - 8/s6+aLgN2bslx36MkhvSW8P+IPTtMzdhw+zNamgk+LieoXbI/j0ppD/0vx/8mJ+5hns630KYqSf87m1 - LuC3EPd42ZxsXCy9U8Duz9cxybXSoz8YetejO52aHpWeHlTsCRCaSXTyE3tVhMD90tAWj+5uXC/WeqDp - HU+HESO9L9Z2gD9gb4dRI/bXCZSCA9GQkeIYGc6I1W3QtMojOKqsitWCUv1o51/9wqNHjk5jMPSMVzCb - U3hwMwRuFMuBiT8OgSG9xvf3ipYhgnc4fuOyyRHoUBEmi37yGpeHmn7MDm8HCVO/zGtYEWq6WrQNAYae - 9xpVhLxNzJ3m8KBEV2ESCm4zOWfkklV2R7KxB2r7pJhTDGHS9reEvq6k7WEEbOz5yUYngO1kwbwnzyAH - ZUXgvB996NXXjZwfdZhPlMYase/lTY3LOne05SK9Br3x1LgPHM9r+61fRzdi/1EJDgqV+DYsvNFmbKJj - cd/bn5n/kjwB2t6odO0MNT5zuNPHb5xPWHrNSDBZZwRtv4gL4Ol4GzkPY++Otw+Zmt4QywRscFwgucvR - 9HpMZmik71xiLYbYyQrtVmV7vLS08NHOg9GeY2M/UO5Qk81TxKI2hGs1FNL2K6lNwlSPgEzB1MeCcRq2 - hfmpBIz9piVIb0utH+yv+QAurnzQnHInnqkwdjwSjoWnKeDklaZnoz4DJY213GUa2v8DnDqfCPaTlu7g - c6rwjKBj0AUgL2VO3+cCP2F7QolzomkZLw47+Ki/suswV+aH5WPRwmFAGmmLy4LnTQ5HMPUr0Hm2TdF2 - zC4nXB+AwStwzyftEyjLhgehd/u6DI+glqBtHLItp5BJhCuaPsX9ajVZPV209QjO53NE6R2I6dwtfy/L - ozfgA7+lkj1P/raPo98acAz91oaTwgd00MFHpL0mg7vC1M/BQHeCnC1bCS7DMjk3PZE6TCj1HxSY/LJl - ORmbAAAAAElFTkSuQmCC - - - + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAACd9JREFUaEPF mQlQFGcahqdSJeK5wnCjXF4oYlCjMR7gweLJfcmpIgwIKsihKOisxk2sJKW1qdJdV0UREl1Q44pyDcwJ @@ -639,107 +353,393 @@ yrfhxSkKNOgAAAAASUVORK5CYII= - + + + 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 + + + + 904, 44 + + + Items can have custom icons and position. +They can also be hidden, accessible only +by pressing the SHIFT key. + +It can also create custom commands +for Run Dialog, making it easy to launch +any application only by typing your desired keyword. + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAXJJREFUaEPtz0FuIzEMBED//9MJMCgQURR5yBF34YPq5ha7bb+O4zg+39cNZ5/J + b7zlfOI5RaWP3TS1gacUlR42S1QHnlJUetgsUw/iFJUeNsvUg/hPTv4N31GmHsRLzvrZL1MP4rec9rJd + ph7El9+ff7qOO9ktUw/ii+j//AmbJaoDTxfRRTTx3MNmisrE80UUxANPfey+5fQREwNPvWxPPD9mZuCp + n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4n/0g3mYuiPvZD+Jt5oK4 + l+2J58fMTDzvs/eW0zL1t5w+YyNFJU0tRaVGt0T1lvMS1Ty9gaeLaOJ5yVmZep5eEA88DTwtOStTz9ML + 4onnIF5yVqaepxfEE89BvOSsTD1PL4gnnoN4yVmZep7ewFMQDzwtOStTz9MrUb3lvES1RjdN7ZbzNLVn + bNxynqZ2y/keW0vOytSXnB3HcXys1+sbU0gKg8uLU5AAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAgBJREFUaEPlz1Fu3DAMBcDc/9ItoExpsLRsUfFmG3Q+3yNp+eO/9muR8X+Lty2x + sszaIHoN37hlfJm1QfQ6vnPJ6BIrQfy9fDuILxkt1N/Ltx/l9Ov53kv4RI/dIC7Uj3Dy9KbqmtkpY0H8 + KKd7b5HdMt7+0b8ZmzJ2OWfkk+zW3ew41mCtUD//AzPOtFlfZq3H7ikjW5xYZm2PG4lqixMtVvvsJ6ot + TrRY7bOfqLY4Uagf/145KN7iRKEeRImqz34Qb3GiUCeqIO6xm6jarBfqQh3EPXaDuM16oT5lJIjX2Qvi + NuuFespYEM+ZmzLWYjVR3TIexOfMTBlbZq1QL7ESxJX+ktElVgr1Eiu3lobH0CIrhXqZtSWP/YDxQt1i + dYmVgzyILxkt1C1WE9UgCuKDfBBdMlqo26wHcRAH8UE+iKaMFeo264kqiIP4IB9Ep4wkqi1OJKpEFcQH + +SAq1IlqmzOJKlEF8SdZECeqRLXNmURVqIP4IB9EQZyotjhRqE8ZGUSZLpxlf4yFTU4U6n3u3DK+xYlL + RvvsXzLaZn2ZtT77p4y0WJ2azYzlHfYL9TJrU8YS1SDa48aUsSBeYqVQB/E+dx7j7JSxIP46977EqUtG + g/g57m5zZspYEL+PdwTxlLFB9F7eEsRTxgbRe3lLEP8M3hzEP4d3B/HDPj5+A7KDH5iJTSF/AAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH + EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo + z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ + xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT + ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn + FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg + v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI + AAADqUlEQVRYR8WXy0tbQRTGXbal/hVtIeADqQsR0Y342okIFlTUhS4EFyIK4kIEF21E0IXSmCq48IHo + yp2iCC5MF9JWBEVRfKFJdSVJjVE4Pd/JxMzNnaS3acEDPzKZOfOdc+fO62a4XC6nvGbqmM+MjwkwYQXK + qEMbfOBr0rBhrEzgLeNlggw5BL7og74mzSeMlYoXzEfmnjEFcQL6fmKgZYqRNIE3zDfGJJoO0DKOhq2C + ec/4GZPQvwBNaFviWf4wyPInYxL4H0DbMhJ68JfMd8bWMScnh05PTwkWDAZthEIhCofDdHV1RePj45SV + lWXT0PjBIJYtAUwWUwdqaWmR4E7t+PiYsrOzjVoKxLIkgEkXYUzONDIyoqSd2+zsrFFLgVjyKmIJYM2a + HIX19XUlG7fp6WkaHBwUNjc3VW3c/H6/UUvjCyMJZDIpN5lAIKBko3Z7e2sb4t3dXdUaNSRQX19PXV1d + Fj8NxMxEAtg6TQ5CVVWVkoybz+ez+a2tranWqG1vb1Ntba2UW1tbbf6KOiQwkVBpoaenR0R0Gxsbs/gU + FRXRw8ODao3a6OgoNTc3S3lyctLirzGBBHCImBqFmZkZEdGtra3tqb2kpIQODw9VS9wqKipocXFRygsL + CxZNDR8SuE6otLCzsyMiuh0dHdHBwYH8Jj45bGhoiEpLS9U/Io/HY9RmrpFA0sMmPz+fIpGIknFmseV3 + cnKiaoja29tt2or7lAk0NDQoiT/b3t6ezHr000dta2vLpqshCSR9BRjKRJufn6fKykpqbGykpqYmCVpd + XU3FxcXU0dEh27JuaDNpK+QVJJ2EKysrSiZuEOzu7qa5uTmZ3VNTU7SxsWF8VSmGPoZMQuMyxNK6vLxU + UlE7Pz+nsrIyOXhSGYYdq8Ckm4AsQ+NGhKWWaEtLS1RTUyPlm5sb2SP6+vqov7+fBgYGZGQw+016SZCN + yLgVe71eCaRbb28vdXZ2Snl1ddXinwYhRrZigIPB4uB2uyXQ3d0dXVxc0NnZGRUWFtLy8rLUDw8PW/zT + 4OkwAjgabcdxXl4e5ebmUnl5ucwJDHXMsM0m+v8FiPWOcXYh0TcV2OPjIxUUFBh9HeJmJK6eAK5JuC7Z + Ouzv70tgvA4YTj6Tn0MQ4xVjSwA866U0xrNey2MgS+PrSBNoWZ48hq1CA59TmJhJL6sOQN+0Ps10sFxw + acXGYQpi4heDdS5LLRXGyiTgk/sD42G+MphQeEKAMurQBh+Hn+eujN8Y1hAMZdztIwAAAABJRU5ErkJg + gg== + + + + + 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 + GfCAU20aAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACH + EAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAo + z2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZ + xUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYT + ELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXn + FxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDg + v5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsMAAALDAE/QCLI + AAADNElEQVRYR8WXwUtbQRDGPbal/hVtISZVkgqCoAnm4sl6tCQXLzkYCHjxIGiQ5qLFHsQekrQX60Eb + vIl486yFpM1JBMUqiG0DnpJSqzidb9mE997O05dEcOBHktndbyZvd3b3dfh8Pq88ZcaYLLPL/GL+avAd + PrShD/pKGgai08Fz5iNTZcgj6IsxGCtpNhCdmkfMPHPJSEG8gLELDLSkGK4JPGO+MZJoK0BLfBqGg3nF + /GQkoXaAJrRt8Ww/GGT5m5EE7gNo256ENfhj5jtjGxSNRqlSqVChUKDo0JCtrauri7q7u9Wn1T88PEzb + 29t0fHxM/f39tjamzCCWkQAWi7MzLcwvUN1qtRqtra1RPp+nra0tKhaL9OPkhL7u7dHm5iZls1na2Nig + q6srPYJoenra0GQQy5YAFt0/xug8MzOjpZq3m5sbSqVShiaDWGoq6gmgZqWOFIvFtFxr9npkRNRlPjEq + gU5G3GR6e3upVCppqdZsZ2eHAoGAoc0gZicSwNYpdVDzdx82MTEh6jNjSCDvcDZYWlrSEu1ZOp0W9Zk8 + EsAhIjXSh+VlLdGezc3NifrMLhKoOJwNMm8zWqI9m5ycFPWZChJwPWzi8biWaN1QiqOjo6I+c3lrAgA7 + Wju2uvpZ1NWoBFynAKAUDw8PtVxzhhLu6ekRdTVqCsRFOD4+TqFQSH1HHU9NTdHp6amWdjF+3NfX13Rw + cECJRIL8fr+h60AtQrEMV1ZWqFwuUzAYNNoyGXlxJpNJo+8dqDJ03YhyuRwdHR2pabD6cTJK9n5x0dbP + A2ojct2KX/Kj39/fV+Lp2VmKx+L0ZX1d/Zbs/PycwuGwoeNCjVFbMcDBIHWiSCTieREigcHBQVFHoHEY + ARyN4nEMsAiRCC4fqOmLiwsd0m5nZ2c0MDAgajhArBfM3RcSJ7jtVKtVHdJuTUzBO0bFtSaAaxKuS9KA + BriiIRAMidSBYar6+vrEcRYQ4wljJAAe9FJa50Gv5XWQ5Z3T0QTQsv3zOobDAl6nsDBdq8MDGNvSq5kV + lAsurdg4pCASfxjUuSq12xCdLuCV+w2TY/YYLCj8Q4Dv8KENfTy+nvs6/gPPcHq613NeWQAAAABJRU5E + rkJggg== + + + - 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 + vp4Hxn4DLP3gQugK66gAAAAASUVORK5CYII= - - 904, 44 - - - Items can have custom icons and position. -They can also be hidden, accessible only -by pressing the SHIFT key. - -It can also create custom commands -for Run Dialog, making it easy to launch -any application only by typing your desired keyword. + + + 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 + 796, 44 @@ -749,7 +749,7 @@ any application only by typing your desired keyword. AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC0 - GgAAAk1TRnQBSQFMAgEBCQEAAQgBDwEIAQ8BIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA + GgAAAk1TRnQBSQFMAgEBCQEAASgBDwEoAQ8BIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA AwABYAMAAQEBAAEgBgABwP8A/wD/AP8A/wD/AP8A/wAeAANHAYB0//8AiQADRwGAdP//AIkAAyoBQANH AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANH AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGA/wD/AP8A diff --git a/Optimizer/Forms/SplashForm.cs b/Optimizer/Forms/SplashForm.cs index 8654adc0..73f8a252 100644 --- a/Optimizer/Forms/SplashForm.cs +++ b/Optimizer/Forms/SplashForm.cs @@ -13,7 +13,7 @@ public SplashForm() LoadingStatus.Font = FontHelper.Poppins15; - pictureBox2.BackColor = Options.CurrentOptions.Theme; + pictureBox2.BackColor = OptionsHelper.CurrentOptions.Theme; } } } diff --git a/Optimizer/Forms/StartupPreviewForm.cs b/Optimizer/Forms/StartupPreviewForm.cs index 299d73d2..c66a7395 100644 --- a/Optimizer/Forms/StartupPreviewForm.cs +++ b/Optimizer/Forms/StartupPreviewForm.cs @@ -10,17 +10,17 @@ public sealed partial class StartupPreviewForm : Form { string _token = string.Empty; - public StartupPreviewForm(List items) + public StartupPreviewForm(List items) { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); // translate UI elements - if (Options.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); + if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); - foreach (StartupBackupItem x in items) + foreach (BackupStartupItem x in items) { if (File.Exists(SanitizePath(x.FileLocation))) { @@ -37,9 +37,9 @@ public StartupPreviewForm(List items) private void Translate() { - this.Text = Options.TranslationList["StartupPreviewForm"]; + this.Text = OptionsHelper.TranslationList["StartupPreviewForm"]; - Dictionary translationList = Options.TranslationList.ToObject>(); + Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); Control element; diff --git a/Optimizer/Forms/StartupRestoreForm.cs b/Optimizer/Forms/StartupRestoreForm.cs index 92c9557e..e1bd6b75 100644 --- a/Optimizer/Forms/StartupRestoreForm.cs +++ b/Optimizer/Forms/StartupRestoreForm.cs @@ -17,10 +17,10 @@ public StartupRestoreForm() InitializeComponent(); CheckForIllegalCrossThreadCalls = false; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); // translate UI elements - if (Options.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); + if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); RefreshBackups(); } @@ -43,9 +43,9 @@ private void RefreshBackups() private void Translate() { - this.Text = Options.TranslationList["StartupRestoreForm"]; + this.Text = OptionsHelper.TranslationList["StartupRestoreForm"]; - Dictionary translationList = Options.TranslationList.ToObject>(); + Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); Control element; @@ -90,7 +90,7 @@ private void ShowPreview() { if (listRestoreItems.SelectedIndex > -1) { - List backup = JsonConvert.DeserializeObject>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex])); + List backup = JsonConvert.DeserializeObject>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex])); StartupPreviewForm f = new StartupPreviewForm(backup); f.ShowDialog(this); } @@ -111,12 +111,12 @@ private void button1_Click(object sender, EventArgs e) { if (listRestoreItems.SelectedIndex > -1) { - List backup = JsonConvert.DeserializeObject>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex])); + List backup = JsonConvert.DeserializeObject>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex])); string keyPath = string.Empty; RegistryKey hive = null; - foreach (StartupBackupItem x in backup) + foreach (BackupStartupItem x in backup) { if (x.RegistryLocation == StartupItemLocation.HKLM.ToString()) { diff --git a/Optimizer/Forms/SubForm.Designer.cs b/Optimizer/Forms/SubForm.Designer.cs index 30fc946d..14fe157a 100644 --- a/Optimizer/Forms/SubForm.Designer.cs +++ b/Optimizer/Forms/SubForm.Designer.cs @@ -50,7 +50,7 @@ private void InitializeComponent() this.txtInfo.ReadOnly = true; this.txtInfo.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; this.txtInfo.ShortcutsEnabled = false; - this.txtInfo.Size = new System.Drawing.Size(391, 372); + this.txtInfo.Size = new System.Drawing.Size(391, 321); this.txtInfo.TabIndex = 0; this.txtInfo.Text = ""; // @@ -62,7 +62,7 @@ private void InitializeComponent() this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(415, 396); + this.panel1.Size = new System.Drawing.Size(415, 345); this.panel1.TabIndex = 1; // // btnStart @@ -77,7 +77,7 @@ private void InitializeComponent() this.btnStart.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnStart.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnStart.ForeColor = System.Drawing.Color.White; - this.btnStart.Location = new System.Drawing.Point(336, 352); + this.btnStart.Location = new System.Drawing.Point(336, 301); this.btnStart.Margin = new System.Windows.Forms.Padding(2); this.btnStart.Name = "btnStart"; this.btnStart.Size = new System.Drawing.Size(67, 31); @@ -94,7 +94,7 @@ private void InitializeComponent() this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); this.CancelButton = this.btnStart; - this.ClientSize = new System.Drawing.Size(415, 396); + this.ClientSize = new System.Drawing.Size(415, 345); this.ControlBox = false; this.Controls.Add(this.panel1); this.DoubleBuffered = true; diff --git a/Optimizer/Forms/SubForm.cs b/Optimizer/Forms/SubForm.cs index d589c9c6..c7b1f80f 100644 --- a/Optimizer/Forms/SubForm.cs +++ b/Optimizer/Forms/SubForm.cs @@ -11,7 +11,7 @@ public SubForm() CheckForIllegalCrossThreadCalls = false; this.DoubleBuffered = true; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); btnStart.Focus(); btnStart.Select(); @@ -31,7 +31,7 @@ private void btnStart_Click(object sender, EventArgs e) private void SubForm_Load(object sender, EventArgs e) { - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); } } } diff --git a/Optimizer/Forms/UpdateForm.cs b/Optimizer/Forms/UpdateForm.cs index d5539336..39a92acb 100644 --- a/Optimizer/Forms/UpdateForm.cs +++ b/Optimizer/Forms/UpdateForm.cs @@ -10,17 +10,17 @@ public UpdateForm(string message, bool newUpdate, string changelog, string lates { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; - Options.ApplyTheme(this); + OptionsHelper.ApplyTheme(this); txtMessage.Text = message; if (newUpdate) { this.Size = new Size(600, 545); - btnOK.Text = Options.TranslationList["btnYes"].ToString(); - btnNo.Text = Options.TranslationList["btnNo"].ToString(); + btnOK.Text = OptionsHelper.TranslationList["btnYes"].ToString(); + btnNo.Text = OptionsHelper.TranslationList["btnNo"].ToString(); btnNo.Visible = true; - txtChanges.Text = Options.TranslationList["btnChangelog"].ToString(); + txtChanges.Text = OptionsHelper.TranslationList["btnChangelog"].ToString(); txtVersions.Text = $"{Program.GetCurrentVersionTostring()} → {latestVersion}"; txtVersions.Visible = true; @@ -34,7 +34,7 @@ public UpdateForm(string message, bool newUpdate, string changelog, string lates else { this.Size = new Size(600, 188); - btnOK.Text = Options.TranslationList["btnAbout"].ToString(); + btnOK.Text = OptionsHelper.TranslationList["btnAbout"].ToString(); btnNo.Visible = false; txtVersions.Visible = false; diff --git a/Optimizer/HostsHelper.cs b/Optimizer/HostsHelper.cs index d16ea919..7aa48f40 100644 --- a/Optimizer/HostsHelper.cs +++ b/Optimizer/HostsHelper.cs @@ -27,7 +27,7 @@ internal static void RestoreDefaultHosts() catch (Exception ex) { Logger.LogError("HostsHelper.RestoreDefaultHosts", ex.Message, ex.StackTrace); - MessageBox.Show(Options.TranslationList("dnsCacheM").ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -93,7 +93,7 @@ internal static void SaveHosts(string[] lines) catch (Exception ex) { Logger.LogError("HostsHelper.SaveHosts", ex.Message, ex.StackTrace); - MessageBox.Show(Options.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -124,7 +124,7 @@ internal static void AddEntry(string entry) catch (Exception ex) { Logger.LogError("HostsHelper.AddEntry", ex.Message, ex.StackTrace); - MessageBox.Show(Options.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -137,7 +137,7 @@ internal static void RemoveEntry(string entry) catch (Exception ex) { Logger.LogError("HostsHelper.RemoveEntry", ex.Message, ex.StackTrace); - MessageBox.Show(Options.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -165,7 +165,7 @@ internal static void RemoveAllEntries(List collection) catch (Exception ex) { Logger.LogError("HostsHelper.RemoveAllEntries", ex.Message, ex.StackTrace); - MessageBox.Show(Options.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -188,7 +188,6 @@ internal static bool GetReadOnly() } } - // edit read-only attibute internal static void ReadOnly(bool enable) { try diff --git a/Optimizer/IntegratorHelper.cs b/Optimizer/IntegratorHelper.cs index a7a44219..a86799a3 100644 --- a/Optimizer/IntegratorHelper.cs +++ b/Optimizer/IntegratorHelper.cs @@ -13,11 +13,6 @@ public static class IntegratorHelper { internal static string FolderDefaultIcon = @"%systemroot%\system32\imageres.dll,-112"; - private static T DirectCast(object o) - { - return (T)o; - } - internal static void CreateCustomCommand(string file, string keyword) { if (!keyword.EndsWith(".exe")) diff --git a/Optimizer/FeedApp.cs b/Optimizer/Models/AppInfo.cs similarity index 90% rename from Optimizer/FeedApp.cs rename to Optimizer/Models/AppInfo.cs index a895ee69..7277fceb 100644 --- a/Optimizer/FeedApp.cs +++ b/Optimizer/Models/AppInfo.cs @@ -1,6 +1,6 @@ namespace Optimizer { - public sealed class FeedApp + public sealed class AppInfo { public string Title { get; set; } public string Link64 { get; set; } diff --git a/Optimizer/Enums.cs b/Optimizer/Models/Enums.cs similarity index 89% rename from Optimizer/Enums.cs rename to Optimizer/Models/Enums.cs index 8f8a1273..5f48748a 100644 --- a/Optimizer/Enums.cs +++ b/Optimizer/Models/Enums.cs @@ -17,7 +17,8 @@ internal enum WindowsVersion public enum StartupItemLocation { - Folder, + LMStartupFolder, + CUStartupFolder, HKLM, HKLMWoW, HKCU @@ -107,17 +108,8 @@ public enum LanguageCode NL, // dutch UA, // ukrainian JA, // japanese - FA, //farsi - NE //nepali - } - - public enum KnownFolder - { - Contacts, - Downloads, - Favorites, - Links, - SavedGames, - SavedSearches + FA, // farsi + NE, // nepali + BG // bulgarian } } diff --git a/Optimizer/HardwareModel.cs b/Optimizer/Models/Hardware.cs similarity index 100% rename from Optimizer/HardwareModel.cs rename to Optimizer/Models/Hardware.cs diff --git a/Optimizer/Models/Options.cs b/Optimizer/Models/Options.cs new file mode 100644 index 00000000..638660f3 --- /dev/null +++ b/Optimizer/Models/Options.cs @@ -0,0 +1,102 @@ +using System; +using System.Drawing; + +namespace Optimizer +{ + [Serializable] + public sealed class Options + { + public Color Theme { get; set; } + public string AppsFolder { get; set; } + public bool EnableTray { get; set; } + public bool AutoStart { get; set; } + public string InternalDNS { get; set; } + public bool DisableIndicium { get; set; } + public bool DisableAppsTool { get; set; } + public bool DisableHostsEditor { get; set; } + public bool DisableUWPApps { get; set; } + public bool DisableStartupTool { get; set; } + public bool DisableCleaner { get; set; } + public bool DisableIntegrator { get; set; } + public bool DisablePinger { get; set; } + //public string TelemetryClientID { get; set; } + //public bool DisableOptimizerTelemetry { get; set; } + + public LanguageCode LanguageCode { get; set; } + + // universal + public bool EnablePerformanceTweaks { get; set; } + public bool DisableNetworkThrottling { get; set; } + public bool DisableWindowsDefender { get; set; } + public bool DisableSystemRestore { get; set; } + public bool DisablePrintService { get; set; } + public bool DisableMediaPlayerSharing { get; set; } + public bool DisableErrorReporting { get; set; } + public bool DisableHomeGroup { get; set; } + public bool DisableSuperfetch { get; set; } + public bool DisableTelemetryTasks { get; set; } + public bool DisableCompatibilityAssistant { get; set; } + public bool DisableFaxService { get; set; } + public bool DisableSmartScreen { get; set; } + public bool DisableCloudClipboard { get; set; } + public bool DisableStickyKeys { get; set; } + public bool DisableHibernation { get; set; } + public bool DisableSMB1 { get; set; } + public bool DisableSMB2 { get; set; } + public bool DisableNTFSTimeStamp { get; set; } + public bool DisableSearch { get; set; } + + // apps telemetry + public bool DisableOffice2016Telemetry { get; set; } + public bool DisableVisualStudioTelemetry { get; set; } + public bool DisableFirefoxTemeletry { get; set; } + public bool DisableChromeTelemetry { get; set; } + public bool DisableNVIDIATelemetry { get; set; } + + // edge + public bool DisableEdgeDiscoverBar { get; set; } + public bool DisableEdgeTelemetry { get; set; } + + // windows 8 + public bool DisableOneDrive { get; set; } + + // windows 10 + public bool EnableLegacyVolumeSlider { get; set; } + public bool DisableQuickAccessHistory { get; set; } + public bool DisableStartMenuAds { get; set; } + public bool UninstallOneDrive { get; set; } + public bool DisableMyPeople { get; set; } + public bool DisableAutomaticUpdates { get; set; } + public bool ExcludeDrivers { get; set; } + public bool DisableTelemetryServices { get; set; } + public bool DisablePrivacyOptions { get; set; } + public bool DisableCortana { get; set; } + public bool DisableSensorServices { get; set; } + public bool DisableWindowsInk { get; set; } + public bool DisableSpellingTyping { get; set; } + public bool DisableXboxLive { get; set; } + public bool DisableGameBar { get; set; } + public bool DisableInsiderService { get; set; } + public bool DisableStoreUpdates { get; set; } + public bool EnableLongPaths { get; set; } + public bool RemoveCastToDevice { get; set; } + public bool EnableGamingMode { get; set; } + public bool RestoreClassicPhotoViewer { get; set; } + + // windows 11 + public bool TaskbarToLeft { get; set; } + public bool DisableSnapAssist { get; set; } + public bool DisableWidgets { get; set; } + public bool DisableChat { get; set; } + public bool ClassicMenu { get; set; } + public bool DisableTPMCheck { get; set; } + public bool CompactMode { get; set; } + public bool DisableStickers { get; set; } + public bool DisableVBS { get; set; } + public bool DisableCoPilotAI { get; set; } + + // advanced + public bool DisableHPET { get; set; } + public bool EnableLoginVerbose { get; set; } + } +} diff --git a/Optimizer/SilentConfig.cs b/Optimizer/Models/SilentConfig.cs similarity index 99% rename from Optimizer/SilentConfig.cs rename to Optimizer/Models/SilentConfig.cs index 933db4a1..59a05dfd 100644 --- a/Optimizer/SilentConfig.cs +++ b/Optimizer/Models/SilentConfig.cs @@ -279,5 +279,6 @@ public sealed class Tweaks public bool? CompactMode { get; set; } public bool? DisableStickers { get; set; } public bool? DisableVirtualizationBasedTechnology { get; set; } + public bool? DisableCoPilotAI { get; set; } } } diff --git a/Optimizer/Models/StartupBackupItem.cs b/Optimizer/Models/StartupBackupItem.cs new file mode 100644 index 00000000..fa0de665 --- /dev/null +++ b/Optimizer/Models/StartupBackupItem.cs @@ -0,0 +1,21 @@ +using System; + +namespace Optimizer +{ + [Serializable] + public sealed class BackupStartupItem + { + public string Name { get; set; } + public string FileLocation { get; set; } + public string RegistryLocation { get; set; } + public string StartupType { get; set; } + + public BackupStartupItem(string name, string fileLocation, string registryLocation, string startupType) + { + Name = name; + FileLocation = fileLocation; + RegistryLocation = registryLocation; + StartupType = startupType; + } + } +} diff --git a/Optimizer/StartupItem.cs b/Optimizer/Models/StartupItem.cs similarity index 96% rename from Optimizer/StartupItem.cs rename to Optimizer/Models/StartupItem.cs index f62ef3b3..228ff27d 100644 --- a/Optimizer/StartupItem.cs +++ b/Optimizer/Models/StartupItem.cs @@ -17,7 +17,7 @@ internal virtual void LocateKey() { } public override string ToString() { - if (RegistryLocation == StartupItemLocation.Folder) return RegistryLocation.ToString(); + if (RegistryLocation == StartupItemLocation.LMStartupFolder) return RegistryLocation.ToString(); return string.Format("{0}:{1}", RegistryLocation, StartupType); } } diff --git a/Optimizer/TelemetryData.cs b/Optimizer/Models/TelemetryData.cs similarity index 100% rename from Optimizer/TelemetryData.cs rename to Optimizer/Models/TelemetryData.cs diff --git a/Optimizer/OptimizeHelper.cs b/Optimizer/OptimizeHelper.cs index 413ef2f1..814ac7c0 100644 --- a/Optimizer/OptimizeHelper.cs +++ b/Optimizer/OptimizeHelper.cs @@ -15,8 +15,21 @@ internal static void DisableTelemetryRunner() Utilities.PreventProcessFromRunning("DeviceCensus.exe"); } - internal static void EnablePerformanceTweaks() + internal static void EnablePerformanceTweaks(bool showAllTrayIcons = true, bool noDelayForMenus = true) { + // show all tray icons + if (showAllTrayIcons) + { + Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "EnableAutoTray", "0", RegistryValueKind.DWord); + } + + // no delay when menus showing up + if (noDelayForMenus) + { + Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "MenuShowDelay", "0"); + Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Mouse", "MouseHoverTime", "0"); + } + // enable auto-complete in Run Dialog Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete", "Append Completion", "yes", RegistryValueKind.String); Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete", "AutoSuggest", "yes", RegistryValueKind.String); @@ -24,9 +37,6 @@ internal static void EnablePerformanceTweaks() // reduce dump file size Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl", "CrashDumpEnabled", 3, RegistryValueKind.DWord); - // show all tray icons - //Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "EnableAutoTray", "0", RegistryValueKind.DWord); - // disable Remote Assistance Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Remote Assistance", "fAllowToGetHelp", "0", RegistryValueKind.DWord); @@ -38,10 +48,8 @@ internal static void EnablePerformanceTweaks() Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "AutoEndTasks", "1"); Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "HungAppTimeout", "1000"); - Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "MenuShowDelay", "0"); Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "WaitToKillAppTimeout", "2000"); Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "LowLevelHooksTimeout", "1000"); - Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Mouse", "MouseHoverTime", "0"); Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "NoLowDiskSpaceChecks", "00000001", RegistryValueKind.DWord); Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "LinkResolveIgnoreLinkInfo", "00000001", RegistryValueKind.DWord); Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "NoResolveSearch", "00000001", RegistryValueKind.DWord); @@ -94,7 +102,7 @@ internal static void DisablePerformanceTweaks() Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl", "CrashDumpEnabled", 7, RegistryValueKind.DWord); // hide tray icons - //Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer", true).DeleteValue("EnableAutoTray", false); + Utilities.TryDeleteRegistryValue(false, @"Software\Microsoft\Windows\CurrentVersion\Explorer", "EnableAutoTray"); // enable Remote Assistance Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Remote Assistance", "fAllowToGetHelp", "1", RegistryValueKind.DWord); @@ -929,8 +937,13 @@ internal static void EnableOffice2016Telemetry() Utilities.ImportRegistryScript(CoreHelper.ScriptsFolder + "EnableOfficeTelemetryTasks.reg"); } - internal static void EnhancePrivacy() + internal static void EnhancePrivacy(bool disableNewsAndInterest = true) { + if (disableNewsAndInterest) + { + Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds", "EnableFeeds", 0); + } + Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager", "RotatingLockScreenOverlayEnabled", "0", RegistryValueKind.DWord); Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager", "RotatingLockScreenEnabled", "0", RegistryValueKind.DWord); Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager", "DisableWindowsSpotlightFeatures", "1", RegistryValueKind.DWord); @@ -938,7 +951,6 @@ internal static void EnhancePrivacy() Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CloudContent", "DisableCloudOptimizedContent", 1); Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection", "DoNotShowFeedbackNotifications", 1); - Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds", "EnableFeeds", 0); Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo", "Enabled", 0); Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth", "AllowAdvertising", 0); @@ -1618,7 +1630,7 @@ internal static void DisableWidgets() internal static void EnableWidgets() { - Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "TaskbarDa", "1", RegistryValueKind.DWord); + Utilities.TryDeleteRegistryValue(false, @"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "TaskbarDa"); } internal static void DisableChat() @@ -1628,7 +1640,7 @@ internal static void DisableChat() internal static void EnableChat() { - Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "TaskbarMn", "1", RegistryValueKind.DWord); + Utilities.TryDeleteRegistryValue(false, @"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "TaskbarMn"); } // DEPRECATED @@ -1759,6 +1771,16 @@ internal static void EnableEdgeTelemetry() Utilities.TryDeleteRegistryValue(false, @"SOFTWARE\Policies\Microsoft\Edge", "SpotlightExperiencesAndRecommendationsEnabled"); } + internal static void DisableCoPilotAI() + { + Registry.SetValue(@"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\WindowsCopilot", "TurnOffWindowsCopilot", "1", RegistryValueKind.DWord); + } + + internal static void EnableCoPilotAI() + { + Utilities.TryDeleteRegistryValue(false, @"Software\Policies\Microsoft\Windows\WindowsCopilot", "TurnOffWindowsCopilot"); + } + /* Apps-specific tweaks */ // VISUAL STUDIO TELEMETRY diff --git a/Optimizer/Optimizer.csproj b/Optimizer/Optimizer.csproj index 14213118..778c6d22 100644 --- a/Optimizer/Optimizer.csproj +++ b/Optimizer/Optimizer.csproj @@ -112,6 +112,7 @@ ToggleCard.cs + @@ -134,7 +135,7 @@ - + @@ -146,7 +147,7 @@ Component - + Form @@ -177,7 +178,7 @@ UpdateForm.cs - + Form @@ -201,10 +202,11 @@ MainForm.cs + - + @@ -214,7 +216,7 @@ Resources.resx - + Form @@ -234,13 +236,12 @@ StartupRestoreForm.cs - + - - + + - - + @@ -303,6 +304,7 @@ True + @@ -379,6 +381,7 @@ + diff --git a/Optimizer/Options.cs b/Optimizer/OptionsHelper.cs similarity index 71% rename from Optimizer/Options.cs rename to Optimizer/OptionsHelper.cs index a04b17cb..a43d95c0 100644 --- a/Optimizer/Options.cs +++ b/Optimizer/OptionsHelper.cs @@ -8,123 +8,24 @@ namespace Optimizer { - [Serializable] - public sealed class SettingsJson + internal static class OptionsHelper { - public Color Theme { get; set; } - public string AppsFolder { get; set; } - public bool EnableTray { get; set; } - public bool AutoStart { get; set; } - public string InternalDNS { get; set; } - public bool DisableIndicium { get; set; } - public bool DisableAppsTool { get; set; } - public bool DisableHostsEditor { get; set; } - public bool DisableUWPApps { get; set; } - public bool DisableStartupTool { get; set; } - public bool DisableCleaner { get; set; } - public bool DisableIntegrator { get; set; } - public bool DisablePinger { get; set; } - //public string TelemetryClientID { get; set; } - //public bool DisableOptimizerTelemetry { get; set; } - - public LanguageCode LanguageCode { get; set; } - - // universal - public bool EnablePerformanceTweaks { get; set; } - public bool DisableNetworkThrottling { get; set; } - public bool DisableWindowsDefender { get; set; } - public bool DisableSystemRestore { get; set; } - public bool DisablePrintService { get; set; } - public bool DisableMediaPlayerSharing { get; set; } - public bool DisableErrorReporting { get; set; } - public bool DisableHomeGroup { get; set; } - public bool DisableSuperfetch { get; set; } - public bool DisableTelemetryTasks { get; set; } - public bool DisableCompatibilityAssistant { get; set; } - public bool DisableFaxService { get; set; } - public bool DisableSmartScreen { get; set; } - public bool DisableCloudClipboard { get; set; } - public bool DisableStickyKeys { get; set; } - public bool DisableHibernation { get; set; } - public bool DisableSMB1 { get; set; } - public bool DisableSMB2 { get; set; } - public bool DisableNTFSTimeStamp { get; set; } - public bool DisableSearch { get; set; } - - // apps telemetry - public bool DisableOffice2016Telemetry { get; set; } - public bool DisableVisualStudioTelemetry { get; set; } - public bool DisableFirefoxTemeletry { get; set; } - public bool DisableChromeTelemetry { get; set; } - public bool DisableNVIDIATelemetry { get; set; } - - // edge - public bool DisableEdgeDiscoverBar { get; set; } - public bool DisableEdgeTelemetry { get; set; } - - // windows 8 - public bool DisableOneDrive { get; set; } - - // windows 10 - public bool EnableLegacyVolumeSlider { get; set; } - public bool DisableQuickAccessHistory { get; set; } - public bool DisableStartMenuAds { get; set; } - public bool UninstallOneDrive { get; set; } - public bool DisableMyPeople { get; set; } - public bool DisableAutomaticUpdates { get; set; } - public bool ExcludeDrivers { get; set; } - public bool DisableTelemetryServices { get; set; } - public bool DisablePrivacyOptions { get; set; } - public bool DisableCortana { get; set; } - public bool DisableSensorServices { get; set; } - public bool DisableWindowsInk { get; set; } - public bool DisableSpellingTyping { get; set; } - public bool DisableXboxLive { get; set; } - public bool DisableGameBar { get; set; } - public bool DisableInsiderService { get; set; } - public bool DisableStoreUpdates { get; set; } - public bool EnableLongPaths { get; set; } - public bool RemoveCastToDevice { get; set; } - public bool EnableGamingMode { get; set; } - public bool RestoreClassicPhotoViewer { get; set; } - - // windows 11 - public bool TaskbarToLeft { get; set; } - public bool DisableSnapAssist { get; set; } - public bool DisableWidgets { get; set; } - public bool DisableChat { get; set; } - public bool ClassicMenu { get; set; } - public bool DisableTPMCheck { get; set; } - public bool CompactMode { get; set; } - public bool DisableStickers { get; set; } - public bool DisableVBS { get; set; } - - // advanced - public bool DisableHPET { get; set; } - public bool EnableLoginVerbose { get; set; } - } - - internal static class Options - { - const int CONTRAST_THRESHOLD = 149; - internal static Color ForegroundColor = Color.FromArgb(153, 102, 204); internal static Color ForegroundAccentColor = Color.FromArgb(134, 89, 179); internal static Color BackgroundColor = Color.FromArgb(10, 10, 10); internal static Color BackAccentColor = Color.FromArgb(40, 40, 40); internal static Color TextColor; - readonly static string _themeFlag = "themeable"; internal readonly static string SettingsFile = CoreHelper.CoreFolder + "\\Optimizer.json"; - internal static SettingsJson CurrentOptions = new SettingsJson(); + internal static Options CurrentOptions = new Options(); internal static dynamic TranslationList; internal static Color GetContrastColor(Color c) { double brightness = c.R * 0.299 + c.G * 0.587 + c.B * 0.114; - return brightness > CONTRAST_THRESHOLD ? Color.Black : Color.White; + return brightness > Constants.CONTRAST_THRESHOLD ? Color.Black : Color.White; } internal static void ApplyTheme(Form f) @@ -155,7 +56,7 @@ private static void SetTheme(Form f, Color c1, Color c2) if (x is LinkLabel) { - if ((string)c.Tag == _themeFlag) + if ((string)c.Tag == Constants.THEME_FLAG) { c.LinkColor = c1; c.VisitedLinkColor = c1; @@ -165,7 +66,7 @@ private static void SetTheme(Form f, Color c1, Color c2) if (x is CheckBox || x is RadioButton || x is Label) { - if ((string)c.Tag == _themeFlag) + if ((string)c.Tag == Constants.THEME_FLAG) { c.ForeColor = c1; } @@ -217,20 +118,19 @@ internal static void LoadSettings() // settings migration for new color picker if (File.Exists(SettingsFile) && File.ReadAllText(SettingsFile).Contains("\"Color\":")) { - SettingsJson tmpJson = JsonConvert.DeserializeObject(File.ReadAllText(SettingsFile)); + Options tmpJson = JsonConvert.DeserializeObject(File.ReadAllText(SettingsFile)); tmpJson.Theme = Color.FromArgb(153, 102, 204); CurrentOptions = tmpJson; } else { // DEFAULT OPTIONS - CurrentOptions.Theme = Color.FromArgb(153, 102, 204); - CurrentOptions.AppsFolder = Path.Combine(KnownFolders.GetPath(KnownFolder.Downloads), Constants.DOWNLOADS_FOLDER); - Directory.CreateDirectory(Options.CurrentOptions.AppsFolder); + CurrentOptions.AppsFolder = Path.Combine(Utilities.GetUserDownloadsFolder(), Constants.DOWNLOADS_FOLDER); + Directory.CreateDirectory(OptionsHelper.CurrentOptions.AppsFolder); CurrentOptions.EnableTray = false; CurrentOptions.AutoStart = false; - CurrentOptions.InternalDNS = Constants.InternalDNS; + CurrentOptions.InternalDNS = Constants.INTERNAL_DNS; CurrentOptions.DisableIndicium = false; CurrentOptions.DisableAppsTool = false; CurrentOptions.DisableHostsEditor = false; @@ -306,6 +206,7 @@ internal static void LoadSettings() CurrentOptions.CompactMode = false; CurrentOptions.DisableStickers = false; CurrentOptions.DisableVBS = false; + CurrentOptions.DisableCoPilotAI = false; CurrentOptions.DisableHPET = false; CurrentOptions.EnableLoginVerbose = false; @@ -323,7 +224,7 @@ internal static void LoadSettings() } else { - CurrentOptions = JsonConvert.DeserializeObject(File.ReadAllText(SettingsFile)); + CurrentOptions = JsonConvert.DeserializeObject(File.ReadAllText(SettingsFile)); } // prevent options from corruption @@ -369,6 +270,7 @@ internal static void LoadTranslation() if (CurrentOptions.LanguageCode == LanguageCode.JA) TranslationList = JObject.Parse(Properties.Resources.JA); if (CurrentOptions.LanguageCode == LanguageCode.FA) TranslationList = JObject.Parse(Properties.Resources.FA); if (CurrentOptions.LanguageCode == LanguageCode.NE) TranslationList = JObject.Parse(Properties.Resources.NE); + if (CurrentOptions.LanguageCode == LanguageCode.BG) TranslationList = JObject.Parse(Properties.Resources.BG); } catch (Exception ex) { diff --git a/Optimizer/PingerHelper.cs b/Optimizer/PingerHelper.cs index cab49064..c4cb28c3 100644 --- a/Optimizer/PingerHelper.cs +++ b/Optimizer/PingerHelper.cs @@ -154,7 +154,7 @@ internal static PingReply PingHost(string nameOrAddress) internal static bool IsInternetAvailable() { const int timeout = 1000; - string host = Options.CurrentOptions.InternalDNS ?? Constants.InternalDNS; + string host = OptionsHelper.CurrentOptions.InternalDNS ?? Constants.INTERNAL_DNS; var ping = new Ping(); var buffer = new byte[32]; diff --git a/Optimizer/Program.cs b/Optimizer/Program.cs index 1772d97b..7f526c94 100644 --- a/Optimizer/Program.cs +++ b/Optimizer/Program.cs @@ -13,7 +13,7 @@ static class Program /* VERSION PROPERTIES */ /* DO NOT LEAVE THEM EMPTY */ internal readonly static float Major = 15; - internal readonly static float Minor = 8; + internal readonly static float Minor = 9; internal readonly static bool EXPERIMENTAL_BUILD = false; /* END OF VERSION PROPERTIES */ @@ -30,7 +30,8 @@ internal static float GetCurrentVersion() internal static bool SILENT_MODE = false; internal static int DPI_PREFERENCE; - // Enables the corresponding Windows tab for Windows Server machines + // Enables the corresponding Windows tab for Windows Server machines, + // as well as the Advanced tweaks tab internal static bool UNSAFE_MODE = false; const string _jsonAssembly = @"Optimizer.Newtonsoft.Json.dll"; @@ -41,8 +42,6 @@ internal static float GetCurrentVersion() static string _adminMissingMessage = "Optimizer needs to be run as administrator!\nApp will now close..."; static string _unsupportedMessage = "Optimizer works with Windows 7 and higher!\nApp will now close..."; - //static string _renameAppMessage = "It's recommended to rename the app from '{0}' to 'Optimizer' for a better experience.\n\nApp will now close..."; - static string _confInvalidVersionMsg = "Windows version does not match!"; static string _confInvalidFormatMsg = "Config file is in invalid format!"; static string _confNotFoundMsg = "Config file does not exist!"; @@ -60,9 +59,8 @@ internal static float GetCurrentVersion() static void Main(string[] switches) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - - EmbeddedAssembly.Load(_jsonAssembly, _jsonAssembly.Replace("Optimizer.", string.Empty)); AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; + EmbeddedAssembly.Load(_jsonAssembly, _jsonAssembly.Replace("Optimizer.", string.Empty)); DPI_PREFERENCE = Convert.ToInt32(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "LastLoadedDPI", "96")); if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); @@ -261,7 +259,7 @@ static void Main(string[] switches) SILENT_MODE = true; LoadSettings(); SilentOps.ProcessAllActions(); - Options.SaveSettings(); + OptionsHelper.SaveSettings(); } } else @@ -279,15 +277,15 @@ private static void CurrentDomain_UnhandledException(object sender, UnhandledExc private static void LoadSettings() { // for backward compatibility (legacy) - Options.LegacyCheck(); + OptionsHelper.LegacyCheck(); // load settings, if there is no settings, load defaults try { // show FirstRunForm/Language Selector if app is running first time - if (!File.Exists(Options.SettingsFile)) + if (!File.Exists(OptionsHelper.SettingsFile)) { - Options.LoadSettings(); + OptionsHelper.LoadSettings(); if (!SILENT_MODE) { FirstRunForm frf = new FirstRunForm(); @@ -296,7 +294,7 @@ private static void LoadSettings() } else { - Options.LoadSettings(); + OptionsHelper.LoadSettings(); } //if (!Options.CurrentOptions.DisableOptimizerTelemetry) @@ -305,13 +303,13 @@ private static void LoadSettings() //} // ideal place to replace internal messages from translation list - _adminMissingMessage = Options.TranslationList["adminMissingMsg"]; - _unsupportedMessage = Options.TranslationList["unsupportedMsg"]; - _confInvalidFormatMsg = Options.TranslationList["confInvalidFormatMsg"]; - _confInvalidVersionMsg = Options.TranslationList["confInvalidVersionMsg"]; - _confNotFoundMsg = Options.TranslationList["confNotFoundMsg"]; - _argInvalidMsg = Options.TranslationList["argInvalidMsg"]; - _alreadyRunningMsg = Options.TranslationList["alreadyRunningMsg"]; + _adminMissingMessage = OptionsHelper.TranslationList["adminMissingMsg"]; + _unsupportedMessage = OptionsHelper.TranslationList["unsupportedMsg"]; + _confInvalidFormatMsg = OptionsHelper.TranslationList["confInvalidFormatMsg"]; + _confInvalidVersionMsg = OptionsHelper.TranslationList["confInvalidVersionMsg"]; + _confNotFoundMsg = OptionsHelper.TranslationList["confNotFoundMsg"]; + _argInvalidMsg = OptionsHelper.TranslationList["argInvalidMsg"]; + _alreadyRunningMsg = OptionsHelper.TranslationList["alreadyRunningMsg"]; } catch (Exception ex) { diff --git a/Optimizer/Properties/Resources.Designer.cs b/Optimizer/Properties/Resources.Designer.cs index 5f3af09a..b3b0551a 100644 --- a/Optimizer/Properties/Resources.Designer.cs +++ b/Optimizer/Properties/Resources.Designer.cs @@ -61,25 +61,25 @@ internal Resources() { } /// - /// Looks up a localized string similar to Windows Registry Editor Version 5.00 - /// - ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD] - ///@="Open Command Prompt here" - ///"Icon"="cmd.exe" - ///"NoWorkingDirectory"="" - /// - ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD\command] - ///@="cmd.exe /s /k pushd \"%V\"" - /// - ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD] - ///@="Open Command Prompt here" - ///"Icon"="cmd.exe" - ///"NoWorkingDirectory"="" - /// - ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD\command] - ///@="cmd.exe /s /k pushd \"%V\"" - /// - ///[HKEY_CLASSES_ROOT\D [rest of string was truncated]";. + /// Looks up a localized string similar to Windows Registry Editor Version 5.00 + /// + ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD] + ///@="Open Command Prompt here" + ///"Icon"="cmd.exe" + ///"NoWorkingDirectory"="" + /// + ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD\command] + ///@="cmd.exe /s /k pushd \"%V\"" + /// + ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD] + ///@="Open Command Prompt here" + ///"Icon"="cmd.exe" + ///"NoWorkingDirectory"="" + /// + ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD\command] + ///@="cmd.exe /s /k pushd \"%V\"" + /// + ///[HKEY_CLASSES_ROOT\Drive\shell\OpenWit [rest of string was truncated]";. /// internal static string AddOpenWithCMD { get { @@ -121,6 +121,31 @@ internal static System.Drawing.Bitmap banner { } } + /// + /// Looks up a localized string similar to { + /// "subSystem": "Система", + /// "subPrivacy": "Анонимност", + /// "subGaming": "Гейминг", + /// "subTouch": "Пипане", + /// "subTaskbar": "Лента за задачи", + /// "subExtras": "Екстри", + /// "btnAbout": "ОК", + /// "restartButton": "Рестартирай Сега", + /// "restartButton8": "Рестартирай Сега", + /// "restartButton10": "Рестартирай Сега", + /// "btnFind": "Намери", + /// "btnKill": "Убий", + /// "trayUnlocker": "Файлови Управители", + /// "restartAndApply": "Рестартирай, за да приложиш промените", + /// "txtVersion": "Версия: {VN}", + /// "txtBitness": "Работиш с [rest of string was truncated]";. + /// + internal static string BG { + get { + return ResourceManager.GetString("BG", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -131,6 +156,16 @@ internal static System.Drawing.Bitmap brazil { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bulgaria { + get { + object obj = ResourceManager.GetObject("bulgaria", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -278,13 +313,14 @@ internal static string DisableClassicPhotoViewer { } /// - /// Looks up a localized string similar to rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!! - /// - ///rem https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware - ///rem "DisableAntiSpyware" is discontinued and will be ignored on client devices, as of the August 2020 (version 4.18.2007.8) update to Microsoft Defender Antivirus. - /// - ///rem Disable Tamper Protection First !!!!! - ///rem https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-windows-defender-antivirus.ht [rest of string was truncated]";. + /// Looks up a localized string similar to rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!! + /// + ///rem https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware + ///rem "DisableAntiSpyware" is discontinued and will be ignored on client devices, as of the August 2020 (version 4.18.2007.8) update to Microsoft Defender Antivirus. + /// + ///rem Disable Tamper Protection First !!!!! + ///rem https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-windows-defender-antivirus.html + ///reg [rest of string was truncated]";. /// internal static string DisableDefenderSafeMode1903Plus { get { @@ -305,9 +341,9 @@ internal static string DisableDefenderSafeMode1903Plus { ///"visiosolution"=dword:00000001 ///"wdsolution"=dword:00000001 ///"xlsolution"=dword:00000001 - /// + /// ///[HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedsolutiontypes] - ///"agave" [rest of string was truncated]";. + ///"agave"= [rest of string was truncated]";. /// internal static string DisableOfficeTelemetry { get { @@ -316,14 +352,14 @@ internal static string DisableOfficeTelemetry { } /// - /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /disable - ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /disable - /// - ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /disable - ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgen [rest of string was truncated]";. + /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /disable + ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /disable + /// + ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /disable + ///schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" [rest of string was truncated]";. /// internal static string DisableOfficeTelemetryTasks { get { @@ -332,12 +368,12 @@ internal static string DisableOfficeTelemetryTasks { } /// - /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /disable - ///schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /disable - ///schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" - ///schtasks /change /tn "\Microsoft\ [rest of string was truncated]";. + /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /disable + ///schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /disable + ///schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" + ///schtasks /change /tn "\Microsoft\Windo [rest of string was truncated]";. /// internal static string DisableTelemetryTasks { get { @@ -346,10 +382,10 @@ internal static string DisableTelemetryTasks { } /// - /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTask" - ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /disable - ///schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" - ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /disable + /// Looks up a localized string similar to schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTask" + ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /disable + ///schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" + ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /disable ///. /// internal static string DisableXboxTasks { @@ -459,7 +495,7 @@ internal static string EnableDefenderSafeMode1903Plus { ///"visiosolution"=- ///"wdsolution"=- ///"xlsolution"=- - /// + /// ///[HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedsolutiontypes] ///"agave"=- ///"appaddins"=- @@ -475,14 +511,14 @@ internal static string EnableOfficeTelemetry { } /// - /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /enable - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /enable - /// - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /enable - ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" /enable - /// - ///reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 1 /f - ///reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail" /v "EnableLoggi [rest of string was truncated]";. + /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /enable + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /enable + /// + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /enable + ///schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" /enable + /// + ///reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 1 /f + ///reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail" /v "EnableLogging" /t [rest of string was truncated]";. /// internal static string EnableOfficeTelemetryTasks { get { @@ -491,12 +527,12 @@ internal static string EnableOfficeTelemetryTasks { } /// - /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /enable - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /enable - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /enable - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /enable - ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Uploader" /enable - ///schta [rest of string was truncated]";. + /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /enable + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /enable + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /enable + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /enable + ///schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Uploader" /enable + ///schtasks / [rest of string was truncated]";. /// internal static string EnableTelemetryTasks { get { @@ -505,8 +541,8 @@ internal static string EnableTelemetryTasks { } /// - /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /enable - ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /enable + /// Looks up a localized string similar to schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /enable + ///schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /enable ///. /// internal static string EnableXboxTasks { @@ -610,11 +646,11 @@ internal static System.Drawing.Bitmap germany { } /// - /// Looks up a localized string similar to @echo off - ///pushd "%~dp0" - ///dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt - ///dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt - ///for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" + /// Looks up a localized string similar to @echo off + ///pushd "%~dp0" + ///dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt + ///dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt + ///for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" ///. /// internal static string GPEditEnablerInHome { @@ -677,22 +713,22 @@ internal static System.Drawing.Bitmap hungary { } /// - /// Looks up a localized string similar to Windows Registry Editor Version 5.00 - /// - ///[HKEY_CLASSES_ROOT\*\shell\runas] - ///@="Take Ownership" - ///"NoWorkingDirectory"="" - /// - ///[HKEY_CLASSES_ROOT\*\shell\runas\command] - ///@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" - ///"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" - /// - ///[HKEY_CLASSES_ROOT\Directory\shell\runas] - ///@="Take Ownership" - ///"NoWorkingDirectory"="" - /// - ///[HKEY_CLASSES_ROOT\Directory\shell\runas\command] - ///@="cmd.exe /c takeown /f \"%1\" /r /d [rest of string was truncated]";. + /// Looks up a localized string similar to Windows Registry Editor Version 5.00 + /// + ///[HKEY_CLASSES_ROOT\*\shell\runas] + ///@="Take Ownership" + ///"NoWorkingDirectory"="" + /// + ///[HKEY_CLASSES_ROOT\*\shell\runas\command] + ///@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" + ///"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" + /// + ///[HKEY_CLASSES_ROOT\Directory\shell\runas] + ///@="Take Ownership" + ///"NoWorkingDirectory"="" + /// + ///[HKEY_CLASSES_ROOT\Directory\shell\runas\command] + ///@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"% [rest of string was truncated]";. /// internal static string InstallTakeOwnership { get { @@ -790,7 +826,7 @@ internal static System.Drawing.Bitmap japan { /// "subGaming": "게이밍", /// "subTouch": "터치", /// "subTaskbar": "작업 표시줄", - /// "subExtras": "추가", + /// "subExtras": "추가", /// "btnAbout": "확인", /// "restartButton": "지금 다시 시작", /// "restartButton8": "지금 다시 시작", @@ -803,7 +839,7 @@ internal static System.Drawing.Bitmap japan { /// "txtBitness": "{BITS}로 작업중 - 한국어: 비너스걸", /// "linkUpdate": "업데이트 가능", /// "lblLab": "실험 빌드\n(테스트 후 삭제)", - /// "performanceSw": [rest of string was truncated]";. + /// "performanceSw": " [rest of string was truncated]";. /// internal static string KO { get { @@ -837,8 +873,8 @@ internal static System.Drawing.Bitmap korea { /// "btnKill": "بیکوژە (دایبخە)", /// "trayUnlocker": "دەسکەکانی فایل", /// "restartAndApply": "ڕیستارتی ئەکەیتەوە بۆ بینینی گۆڕانکاریەکان", - /// "txtVersion": "وەشان : ", - /// " [rest of string was truncated]";. + /// "txtVersion": "وەشان :", + /// "t [rest of string was truncated]";. /// internal static string KU { get { @@ -1256,7 +1292,7 @@ internal static string TW { /// "subGaming": "Ігри", /// "subTouch": "Дотик", /// "subTaskbar": "Панель задач", - /// "subExtras": " Доповнення", + /// "subExtras": "Доповнення", /// "btnAbout": "OK", /// "restartButton": "Перезапустити зараз", /// "restartButton8": "Перезапустити зараз", @@ -1266,7 +1302,7 @@ internal static string TW { /// "trayUnlocker": "Дескриптор файлів", /// "restartAndApply": "Перезапустити для застосування змін", /// "txtVersion": "Версія: {VN}", - /// [rest of string was truncated]";. + /// " [rest of string was truncated]";. /// internal static string UA { get { diff --git a/Optimizer/Properties/Resources.resx b/Optimizer/Properties/Resources.resx index f6d5ae5b..8a57ec14 100644 --- a/Optimizer/Properties/Resources.resx +++ b/Optimizer/Properties/Resources.resx @@ -334,4 +334,10 @@ ..\Resources\Flags\nepal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\i18n\BG.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + ..\Resources\Flags\bulgaria.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Optimizer/Resources/Flags/bulgaria.png b/Optimizer/Resources/Flags/bulgaria.png new file mode 100644 index 00000000..4dc5fcad Binary files /dev/null and b/Optimizer/Resources/Flags/bulgaria.png differ diff --git a/Optimizer/Resources/i18n/AR.json b/Optimizer/Resources/i18n/AR.json index 0719fa0d..bf0d84d5 100644 --- a/Optimizer/Resources/i18n/AR.json +++ b/Optimizer/Resources/i18n/AR.json @@ -461,5 +461,9 @@ "btnRefreshFonts": "تحديث", "chkAllNics": "تعيين لجميع محولات الشبكة", "chkCustomDns": "قم بتعيين DNS المخصص", - "btnSetDns": "تعيين DNS" + "btnSetDns": "تعيين DNS", + "copilotSw": "تعطيل ميزة CoPilot AI تمامًا", + "copilotTip": "يعطل ميزة CoPilot AI تمامًا.", + "btnReinforce": "تعزيز السياسات", + "msgReinforce": "هل أنت متأكد من رغبتك في إعادة تطبيق السياسات الحالية؟" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/BG.json b/Optimizer/Resources/i18n/BG.json index 62991972..3b1e7def 100644 --- a/Optimizer/Resources/i18n/BG.json +++ b/Optimizer/Resources/i18n/BG.json @@ -461,5 +461,9 @@ "btnRefreshFonts": "Обнови", "chkAllNics": "Приложи за всички мрежови адаптери", "chkCustomDns": "Сложи персонализиран DNS", - "btnSetDns": "Сложи DNS" + "btnSetDns": "Сложи DNS", + "copilotSw": "Изключете CoPilot AI", + "copilotTip": "Изцяло изключва функцията CoPilot AI", + "btnReinforce": "Укрепете политиките", + "msgReinforce": "Сигурни ли сте, че искате да приложите отново текущите си политики?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/CN.json b/Optimizer/Resources/i18n/CN.json index 67aa7ad3..9e7d3d88 100644 --- a/Optimizer/Resources/i18n/CN.json +++ b/Optimizer/Resources/i18n/CN.json @@ -460,5 +460,9 @@ "btnRefreshFonts": "刷新", "chkAllNics": "为所有网络适配器设置", "chkCustomDns": "设置自定义 DNS", - "btnSetDns": "设置DNS" + "btnSetDns": "设置DNS", + "copilotSw": "禁用 CoPilot AI", + "copilotTip": "完全关闭 CoPilot AI 功能。", + "btnReinforce": "强化政策", + "msgReinforce": "您确定要重新应用当前的政策吗?" } diff --git a/Optimizer/Resources/i18n/CZ.json b/Optimizer/Resources/i18n/CZ.json index fae5d802..910951a2 100644 --- a/Optimizer/Resources/i18n/CZ.json +++ b/Optimizer/Resources/i18n/CZ.json @@ -461,5 +461,9 @@ Má to negativní vliv na výkon.", "btnRefreshFonts": "Obnovit", "chkAllNics": "Nastavení pro všechny síťové adaptéry", "chkCustomDns": "Nastavte vlastní DNS", - "btnSetDns": "Nastavte DNS" + "btnSetDns": "Nastavte DNS", + "copilotSw": "Vypnout funkci CoPilot AI", + "copilotTip": "Úplně vypne funkci CoPilot AI.", + "btnReinforce": "Posílit politiky", + "msgReinforce": "Opravdu si přejete znovu použít své stávající politiky?" } diff --git a/Optimizer/Resources/i18n/DE.json b/Optimizer/Resources/i18n/DE.json index ce080195..a02efe48 100644 --- a/Optimizer/Resources/i18n/DE.json +++ b/Optimizer/Resources/i18n/DE.json @@ -435,5 +435,9 @@ "btnRefreshFonts": "Aktualisieren", "chkAllNics": "Für alle Netzwerkadapter festgelegt", "chkCustomDns": "Legen Sie benutzerdefiniertes DNS fest", - "btnSetDns": "DNS einstellen" + "btnSetDns": "DNS einstellen", + "copilotSw": "CoPilot AI deaktivieren", + "copilotTip": "Deaktiviert die CoPilot AI-Funktion vollständig.", + "btnReinforce": "Richtlinien verstärken", + "msgReinforce": "Sind Sie sicher, dass Sie Ihre aktuellen Richtlinien erneut anwenden möchten?" } diff --git a/Optimizer/Resources/i18n/EL.json b/Optimizer/Resources/i18n/EL.json index 28eedd94..12f48e8a 100644 --- a/Optimizer/Resources/i18n/EL.json +++ b/Optimizer/Resources/i18n/EL.json @@ -456,5 +456,9 @@ "btnRefreshFonts": "Ανανέωση", "chkAllNics": "Εφαρμογή για όλους τους προσαρμογείς δικτύου", "chkCustomDns": "Ορισμός προσαρμοσμένου DNS", - "btnSetDns": "Εφαρμογή DNS" + "btnSetDns": "Εφαρμογή DNS", + "copilotSw": "Απενεργοποίηση CoPilot AI", + "copilotTip": "Απενεργοποιεί πλήρως το χαρακτηριστικό CoPilot AI.", + "btnReinforce": "Ενίσχυση των πολιτικών", + "msgReinforce": "Είστε σίγουροι ότι θέλετε να ξαναεφαρμόσετε τις τρέχουσες πολιτικές σας;" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/EN.json b/Optimizer/Resources/i18n/EN.json index ca716b0d..31b54620 100644 --- a/Optimizer/Resources/i18n/EN.json +++ b/Optimizer/Resources/i18n/EN.json @@ -171,7 +171,7 @@ "lblUpdateDisabled": "Disabled in experimental builds", "lblTroubleshoot": "Troubleshooting", "btnViewLog": "View errors", - "btnOpenConf": "Show config folder", + "btnOpenConf": "Show configuration folder", "btnResetConfig": "Repair", "integrator1": "Integrator is able to add fully-customized\nitems in Desktop right-click menu:", "integrator2": "• Any program", @@ -461,5 +461,9 @@ It has negative effect on performance.", "btnRefreshFonts": "Refresh", "chkAllNics": "Set for all network adapters", "chkCustomDns": "Set custom DNS", - "btnSetDns": "Set DNS" + "btnSetDns": "Set DNS", + "copilotSw": "Disable CoPilot AI", + "copilotTip": "Completely turns off CoPilot AI feature.", + "btnReinforce": "Reinforce policies", + "msgReinforce": "Are you sure you want to re-apply your current policies?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/ES.json b/Optimizer/Resources/i18n/ES.json index cbb954ac..9670997e 100644 --- a/Optimizer/Resources/i18n/ES.json +++ b/Optimizer/Resources/i18n/ES.json @@ -458,5 +458,9 @@ Tiene un efecto negativo en el rendimiento.", "btnRefreshFonts": "Actualizar", "chkAllNics": "Configurado para todos los adaptadores de red.", "chkCustomDns": "Establecer DNS personalizado", - "btnSetDns": "Establecer DNS" + "btnSetDns": "Establecer DNS", + "copilotSw": "Desactivar CoPilot AI", + "copilotTip": "Desactiva por completo la función de CoPilot AI.", + "btnReinforce": "Reforzar Políticas", + "msgReinforce": "¿Estás seguro de que deseas volver a aplicar tus políticas actuales?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/FA.json b/Optimizer/Resources/i18n/FA.json index 573ae20c..cba3ca1a 100644 --- a/Optimizer/Resources/i18n/FA.json +++ b/Optimizer/Resources/i18n/FA.json @@ -448,5 +448,9 @@ "btnRefreshFonts": "بارگذاری مجدد", "chkAllNics": "تنظیم برای همه آداپتورهای شبکه", "chkCustomDns": "DNS سفارشی را تنظیم کنید", - "btnSetDns": "DNS را تنظیم کنید" + "btnSetDns": "DNS را تنظیم کنید", + "copilotSw": "غیرفعال کردن ویژگی CoPilot AI به طور کامل", + "copilotTip": "ویژگی CoPilot AI به طور کامل غیرفعال می‌شود.", + "btnReinforce": "تقویت سیاست‌ها", + "msgReinforce": "آیا مطمئن هستید که می‌خواهید سیاست‌های فعلی را مجدداً اعمال کنید؟" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/FR.json b/Optimizer/Resources/i18n/FR.json index c170e1b7..b15401a5 100644 --- a/Optimizer/Resources/i18n/FR.json +++ b/Optimizer/Resources/i18n/FR.json @@ -435,5 +435,9 @@ Necessite l'ouverture d'un compte Microsoft.", "btnRefreshFonts": "Rafraichir", "chkAllNics": "Définir pour toutes les cartes réseau", "chkCustomDns": "Définir un DNS personnalisé", - "btnSetDns": "Définir le DNS" + "btnSetDns": "Définir le DNS", + "copilotSw": "Désactiver CoPilot AI", + "copilotTip": "Désactive complètement la fonctionnalité CoPilot AI.", + "btnReinforce": "Renforcer les politiques", + "msgReinforce": "Êtes-vous sûr de vouloir réappliquer vos politiques actuelles?" } diff --git a/Optimizer/Resources/i18n/HU.json b/Optimizer/Resources/i18n/HU.json index 64c329e8..24e20764 100644 --- a/Optimizer/Resources/i18n/HU.json +++ b/Optimizer/Resources/i18n/HU.json @@ -461,5 +461,9 @@ Negatív hatással van a teljesítményre.", "btnRefreshFonts": "Frissítés", "chkAllNics": "Minden hálózati adapterhez beállítva", "chkCustomDns": "Állítsa be az egyéni DNS", - "btnSetDns": "Állítsa be a DNS" + "btnSetDns": "Állítsa be a DNS", + "copilotSw": "CoPilot AI kikapcsolása", + "copilotTip": "Teljesen kikapcsolja a CoPilot AI funkciót.", + "btnReinforce": "Iránypontok erősítése", + "msgReinforce": "Biztos vagy benne, hogy újra alkalmazod az aktuális iránypontokat?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/IT.json b/Optimizer/Resources/i18n/IT.json index 338087da..3ba17b91 100644 --- a/Optimizer/Resources/i18n/IT.json +++ b/Optimizer/Resources/i18n/IT.json @@ -455,5 +455,9 @@ Ha un effetto negativo sulle prestazioni.", "btnRefreshFonts": "Aggiorna", "chkAllNics": "Impostato per tutti gli adattatori di rete", "chkCustomDns": "Imposta DNS personalizzati", - "btnSetDns": "Imposta DNS" + "btnSetDns": "Imposta DNS", + "copilotSw": "Disabilita CoPilot AI", + "copilotTip": "Disattiva completamente la funzionalità CoPilot AI.", + "btnReinforce": "Rafforzare le Politiche", + "msgReinforce": "Sei sicuro di voler riapplicare le tue attuali politiche?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/JA.json b/Optimizer/Resources/i18n/JA.json index 509ea6a7..2105cd4b 100644 --- a/Optimizer/Resources/i18n/JA.json +++ b/Optimizer/Resources/i18n/JA.json @@ -452,5 +452,9 @@ SMBv3に置き換えられており、そちらのほうがより安全です。 "btnRefreshFonts": "更新", "chkAllNics": "すべてのネットワークアダプターに設定", "chkCustomDns": "カスタムDNSを設定する", - "btnSetDns": "DNSの設定" + "btnSetDns": "DNSの設定", + "copilotSw": "CoPilot AI を無効にする", + "copilotTip": "CoPilot AI の機能を完全に無効にします.", + "btnReinforce": "ポリシーを強化する", + "msgReinforce": "現在のポリシーを再適用してもよろしいですか?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/KO.json b/Optimizer/Resources/i18n/KO.json index ba5a9bdb..70f804f2 100644 --- a/Optimizer/Resources/i18n/KO.json +++ b/Optimizer/Resources/i18n/KO.json @@ -463,5 +463,9 @@ Microsoft 계정 로그인이 필요합니다.", "btnRefreshFonts": "새로 고침", "chkAllNics": "모든 네트워크 어댑터에 대해 설정", "chkCustomDns": "맞춤 DNS 설정", - "btnSetDns": "DNS 설정" + "btnSetDns": "DNS 설정", + "copilotSw": "CoPilot AI 기능 완전히 비활성화", + "copilotTip": "CoPilot AI 기능을 완전히 비활성화합니다.", + "btnReinforce": "정책 강화", + "msgReinforce": "현재 정책을 다시 적용하시겠습니까?" } diff --git a/Optimizer/Resources/i18n/KU.json b/Optimizer/Resources/i18n/KU.json index 02818b85..b8c69d2c 100644 --- a/Optimizer/Resources/i18n/KU.json +++ b/Optimizer/Resources/i18n/KU.json @@ -460,5 +460,9 @@ "btnRefreshFonts": "ڕیفرێش", "chkAllNics": "بۆ هەموو ئەداپتەرەکانی تۆڕ ڕێکبخە", "chkCustomDns": "DNS تایبەت بەخۆت دابنێ", - "btnSetDns": "DNS دابنێ" + "btnSetDns": "DNS دابنێ", + "copilotSw": "CoPilot AI تایبه‌تییه‌کرن", + "copilotTip": "ویژگی CoPilot AI تایبه‌تییه‌کرنەوەکی ته‌مامی.", + "btnReinforce": "سیاسهٔ بیشکوچین", + "msgReinforce": "داکۆ پێشەنگەتیە پێوستییە کرییە مە یانو دابەزەکیی نو رە بکە؟" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/NE.json b/Optimizer/Resources/i18n/NE.json index 84084d7d..fbb25673 100644 --- a/Optimizer/Resources/i18n/NE.json +++ b/Optimizer/Resources/i18n/NE.json @@ -411,5 +411,9 @@ "btnRefreshFonts": "रिफ्रेस गर्नुहोस्", "chkAllNics": "सबै नेटवर्क एडेप्टरहरूको लागि सेट गर्नुहोस्", "chkCustomDns": "अनुकूलन DNS सेट गर्नुहोस्", - "btnSetDns": "DNS सेट गर्नुहोस्" + "btnSetDns": "DNS सेट गर्नुहोस्", + "copilotSw": "CoPilot AI बिल्कुल बन्द गर्दछ।", + "copilotTip": "CoPilot AI कुरा पूरा बन्द गर्दछ।", + "btnReinforce": "नीत", + "msgReinforce": "तपाईंले आफ्ना हालका नीत" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/NL.json b/Optimizer/Resources/i18n/NL.json index 43479b4b..a66203ba 100644 --- a/Optimizer/Resources/i18n/NL.json +++ b/Optimizer/Resources/i18n/NL.json @@ -412,5 +412,9 @@ Het heeft een negatief effect op de prestaties.", "btnRefreshFonts": "Ververs", "chkAllNics": "Instellen voor alle netwerkadapters", "chkCustomDns": "Aangepaste DNS instellen", - "btnSetDns": "DNS instellen" + "btnSetDns": "DNS instellen", + "copilotSw": "Schakel CoPilot AI uit", + "copilotTip": "Schakelt de CoPilot AI-functie volledig uit.", + "btnReinforce": "Beleid versterken", + "msgReinforce": "Weet u zeker dat u uw huidige beleid opnieuw wilt toepassen?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/PL.json b/Optimizer/Resources/i18n/PL.json index 750b17df..06bf7d85 100644 --- a/Optimizer/Resources/i18n/PL.json +++ b/Optimizer/Resources/i18n/PL.json @@ -430,5 +430,9 @@ "btnRefreshFonts": "Odśwież", "chkAllNics": "Ustaw dla wszystkich kart sieciowych", "chkCustomDns": "Ustaw niestandardowy DNS", - "btnSetDns": "Ustaw DNS" + "btnSetDns": "Ustaw DNS", + "copilotSw": "Wyłącz funkcję CoPilot AI", + "copilotTip": "Całkowicie wyłącza funkcję CoPilot AI.", + "btnReinforce": "Wzmocnienie polityk", + "msgReinforce": "Czy na pewno chcesz ponownie zastosować obecne polityki?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/PT.json b/Optimizer/Resources/i18n/PT.json index 23bcbccb..bd64b5e1 100644 --- a/Optimizer/Resources/i18n/PT.json +++ b/Optimizer/Resources/i18n/PT.json @@ -458,5 +458,9 @@ Tem efeito negativo no desempenho.", "btnRefreshFonts": "Atualizar", "chkAllNics": "Definido para todos os adaptadores de rede", "chkCustomDns": "Definir DNS personalizado", - "btnSetDns": "Definir DNS" + "btnSetDns": "Definir DNS", + "copilotSw": "Desativar CoPilot AI", + "copilotTip": "Desativa completamente a funcionalidade CoPilot AI.", + "btnReinforce": "Reforçar Políticas", + "msgReinforce": "Tem certeza de que deseja reaplicar suas políticas atuais?" } diff --git a/Optimizer/Resources/i18n/RO.json b/Optimizer/Resources/i18n/RO.json index f68274c2..8a30bb62 100644 --- a/Optimizer/Resources/i18n/RO.json +++ b/Optimizer/Resources/i18n/RO.json @@ -443,5 +443,9 @@ "btnRefreshFonts": "Reîmprospăteaza", "chkAllNics": "Setați pentru toate adaptoarele de rețea", "chkCustomDns": "Setați DNS personalizat", - "btnSetDns": "Setați DNS" + "btnSetDns": "Setați DNS", + "copilotSw": "Dezactivează funcția CoPilot AI", + "copilotTip": "Dezactivează complet funcționalitatea CoPilot AI.", + "btnReinforce": "Consolidarea politicilor", + "msgReinforce": "Sunteți sigur că doriți să reaplicați politicile actuale?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/RU.json b/Optimizer/Resources/i18n/RU.json index 8dbde1f2..4d86d4cf 100644 --- a/Optimizer/Resources/i18n/RU.json +++ b/Optimizer/Resources/i18n/RU.json @@ -431,5 +431,9 @@ "btnRefreshFonts": "Обновить", "chkAllNics": "Установить для всех сетевых адаптеров", "chkCustomDns": "Установить собственный DNS", - "btnSetDns": "Установить DNS" + "btnSetDns": "Установить DNS", + "copilotSw": "Отключить CoPilot AI", + "copilotTip": "Полностью отключает функцию CoPilot AI.", + "btnReinforce": "Укрепить политику", + "msgReinforce": "Вы уверены, что хотите повторно применить текущие политики?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/TR.json b/Optimizer/Resources/i18n/TR.json index 7067a718..ce21bf94 100644 --- a/Optimizer/Resources/i18n/TR.json +++ b/Optimizer/Resources/i18n/TR.json @@ -459,5 +459,9 @@ Performansa olumsuz etkisi vardır.", "btnRefreshFonts": "Yenile", "chkAllNics": "Tüm ağ bağdaştırıcıları için ayarla", "chkCustomDns": "Özel DNS ayarla", - "btnSetDns": "DNS ayarla" + "btnSetDns": "DNS ayarla", + "copilotSw": "CoPilot AI'yı Devre Dışı Bırak", + "copilotTip": "CoPilot AI özelliğini tamamen kapatır.", + "btnReinforce": "Politikaları Güçlendir", + "msgReinforce": "Şu anki politikalarınızı tekrar uygulamak istediğinizden emin misiniz?" } \ No newline at end of file diff --git a/Optimizer/Resources/i18n/TW.json b/Optimizer/Resources/i18n/TW.json index 95734978..6aee8523 100644 --- a/Optimizer/Resources/i18n/TW.json +++ b/Optimizer/Resources/i18n/TW.json @@ -457,5 +457,9 @@ "btnRefreshFonts": "重新整理", "chkAllNics": "為所有網絡適配器設置", "chkCustomDns": "設置自定義 DNS", - "btnSetDns": "設置DNS" + "btnSetDns": "設置DNS", + "copilotSw": "停用 CoPilot AI", + "copilotTip": "完全關閉 CoPilot AI 功能。", + "btnReinforce": "加強政策", + "msgReinforce": "您確定要重新應用目前的政策嗎?" } diff --git a/Optimizer/Resources/i18n/UA.json b/Optimizer/Resources/i18n/UA.json index 403ed11c..c75823f4 100644 --- a/Optimizer/Resources/i18n/UA.json +++ b/Optimizer/Resources/i18n/UA.json @@ -462,5 +462,9 @@ "btnRefreshFonts": "Оновити", "chkAllNics": "Набір для всіх мережевих адаптерів", "chkCustomDns": "Встановити спеціальний DNS", - "btnSetDns": "Встановити DNS" + "btnSetDns": "Встановити DNS", + "copilotSw": "Повністю вимкнути функцію CoPilot AI", + "copilotTip": "Повністю вимикає функцію CoPilot AI.", + "btnReinforce": "Підсилити політику", + "msgReinforce": "Ви впевнені, що хочете повторно застосувати поточну політику?" } \ No newline at end of file diff --git a/Optimizer/SilentOps.cs b/Optimizer/SilentOps.cs index 5984de09..3a4554f0 100644 --- a/Optimizer/SilentOps.cs +++ b/Optimizer/SilentOps.cs @@ -26,7 +26,7 @@ internal static SilentConfig GetSilentConfig(string path) internal static void ProcessAllActions() { - Logger.InitSilentReport(); + Logger.InitializeSilentReport(); if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7) { @@ -358,7 +358,7 @@ internal static void ProcessAdvancedTweaks() { Utilities.EnableHPET(); } - Options.CurrentOptions.DisableHPET = CurrentSilentConfig.AdvancedTweaks.DisableHPET.Value; + OptionsHelper.CurrentOptions.DisableHPET = CurrentSilentConfig.AdvancedTweaks.DisableHPET.Value; } if (CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.HasValue) @@ -371,7 +371,7 @@ internal static void ProcessAdvancedTweaks() { Utilities.DisableLoginVerbose(); } - Options.CurrentOptions.EnableLoginVerbose = CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.Value; + OptionsHelper.CurrentOptions.EnableLoginVerbose = CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.Value; } } @@ -389,7 +389,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.DisablePerformanceTweaks(); } - Options.CurrentOptions.EnablePerformanceTweaks = CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value; + OptionsHelper.CurrentOptions.EnablePerformanceTweaks = CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value; } if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.HasValue) @@ -402,7 +402,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableNetworkThrottling(); } - Options.CurrentOptions.DisableNetworkThrottling = CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value; + OptionsHelper.CurrentOptions.DisableNetworkThrottling = CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value; } if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.HasValue) @@ -415,7 +415,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableDefender(); } - Options.CurrentOptions.DisableWindowsDefender = CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value; + OptionsHelper.CurrentOptions.DisableWindowsDefender = CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value; } if (CurrentSilentConfig.Tweaks.DisableSystemRestore.HasValue) @@ -428,7 +428,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSystemRestore(); } - Options.CurrentOptions.DisableSystemRestore = CurrentSilentConfig.Tweaks.DisableSystemRestore.Value; + OptionsHelper.CurrentOptions.DisableSystemRestore = CurrentSilentConfig.Tweaks.DisableSystemRestore.Value; } if (CurrentSilentConfig.Tweaks.DisablePrintService.HasValue) @@ -441,7 +441,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnablePrintService(); } - Options.CurrentOptions.DisablePrintService = CurrentSilentConfig.Tweaks.DisablePrintService.Value; + OptionsHelper.CurrentOptions.DisablePrintService = CurrentSilentConfig.Tweaks.DisablePrintService.Value; } if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.HasValue) @@ -454,7 +454,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableMediaPlayerSharing(); } - Options.CurrentOptions.DisableMediaPlayerSharing = CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value; + OptionsHelper.CurrentOptions.DisableMediaPlayerSharing = CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value; } if (CurrentSilentConfig.Tweaks.DisableErrorReporting.HasValue) @@ -467,7 +467,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableErrorReporting(); } - Options.CurrentOptions.DisableErrorReporting = CurrentSilentConfig.Tweaks.DisableErrorReporting.Value; + OptionsHelper.CurrentOptions.DisableErrorReporting = CurrentSilentConfig.Tweaks.DisableErrorReporting.Value; } if (CurrentSilentConfig.Tweaks.DisableHomeGroup.HasValue) @@ -480,7 +480,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableHomeGroup(); } - Options.CurrentOptions.DisableHomeGroup = CurrentSilentConfig.Tweaks.DisableHomeGroup.Value; + OptionsHelper.CurrentOptions.DisableHomeGroup = CurrentSilentConfig.Tweaks.DisableHomeGroup.Value; } if (CurrentSilentConfig.Tweaks.DisableSuperfetch.HasValue) @@ -493,7 +493,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSuperfetch(); } - Options.CurrentOptions.DisableSuperfetch = CurrentSilentConfig.Tweaks.DisableSuperfetch.Value; + OptionsHelper.CurrentOptions.DisableSuperfetch = CurrentSilentConfig.Tweaks.DisableSuperfetch.Value; } if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.HasValue) @@ -506,7 +506,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableTelemetryTasks(); } - Options.CurrentOptions.DisableTelemetryTasks = CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value; + OptionsHelper.CurrentOptions.DisableTelemetryTasks = CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value; } if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.HasValue) @@ -519,7 +519,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableOffice2016Telemetry(); } - Options.CurrentOptions.DisableOffice2016Telemetry = CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value; + OptionsHelper.CurrentOptions.DisableOffice2016Telemetry = CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value; } if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.HasValue) @@ -532,7 +532,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableCompatibilityAssistant(); } - Options.CurrentOptions.DisableCompatibilityAssistant = CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value; + OptionsHelper.CurrentOptions.DisableCompatibilityAssistant = CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value; } if (CurrentSilentConfig.Tweaks.DisableFaxService.HasValue) @@ -545,7 +545,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableFaxService(); } - Options.CurrentOptions.DisableFaxService = CurrentSilentConfig.Tweaks.DisableFaxService.Value; + OptionsHelper.CurrentOptions.DisableFaxService = CurrentSilentConfig.Tweaks.DisableFaxService.Value; } if (CurrentSilentConfig.Tweaks.DisableSmartScreen.HasValue) @@ -558,7 +558,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSmartScreen(); } - Options.CurrentOptions.DisableSmartScreen = CurrentSilentConfig.Tweaks.DisableSmartScreen.Value; + OptionsHelper.CurrentOptions.DisableSmartScreen = CurrentSilentConfig.Tweaks.DisableSmartScreen.Value; } if (CurrentSilentConfig.Tweaks.DisableStickyKeys.HasValue) @@ -571,7 +571,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableStickyKeys(); } - Options.CurrentOptions.DisableStickyKeys = CurrentSilentConfig.Tweaks.DisableStickyKeys.Value; + OptionsHelper.CurrentOptions.DisableStickyKeys = CurrentSilentConfig.Tweaks.DisableStickyKeys.Value; } if (CurrentSilentConfig.Tweaks.DisableHibernation.HasValue) @@ -584,7 +584,7 @@ internal static void ProcessTweaksGeneral() { Utilities.EnableHibernation(); } - Options.CurrentOptions.DisableHibernation = CurrentSilentConfig.Tweaks.DisableHibernation.Value; + OptionsHelper.CurrentOptions.DisableHibernation = CurrentSilentConfig.Tweaks.DisableHibernation.Value; } if (CurrentSilentConfig.Tweaks.DisableSMB1.HasValue) @@ -597,7 +597,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSMB("1"); } - Options.CurrentOptions.DisableSMB1 = CurrentSilentConfig.Tweaks.DisableSMB1.Value; + OptionsHelper.CurrentOptions.DisableSMB1 = CurrentSilentConfig.Tweaks.DisableSMB1.Value; } if (CurrentSilentConfig.Tweaks.DisableSMB2.HasValue) @@ -610,7 +610,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSMB("2"); } - Options.CurrentOptions.DisableSMB2 = CurrentSilentConfig.Tweaks.DisableSMB2.Value; + OptionsHelper.CurrentOptions.DisableSMB2 = CurrentSilentConfig.Tweaks.DisableSMB2.Value; } if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.HasValue) @@ -623,7 +623,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableNTFSTimeStamp(); } - Options.CurrentOptions.DisableNTFSTimeStamp = CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value; + OptionsHelper.CurrentOptions.DisableNTFSTimeStamp = CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value; } if (CurrentSilentConfig.Tweaks.DisableSearch.HasValue) @@ -636,7 +636,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableSearch(); } - Options.CurrentOptions.DisableSearch = CurrentSilentConfig.Tweaks.DisableSearch.Value; + OptionsHelper.CurrentOptions.DisableSearch = CurrentSilentConfig.Tweaks.DisableSearch.Value; } if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.HasValue) @@ -649,7 +649,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableChromeTelemetry(); } - Options.CurrentOptions.DisableChromeTelemetry = CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value; + OptionsHelper.CurrentOptions.DisableChromeTelemetry = CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value; } if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.HasValue) @@ -662,7 +662,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableFirefoxTelemetry(); } - Options.CurrentOptions.DisableFirefoxTemeletry = CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value; + OptionsHelper.CurrentOptions.DisableFirefoxTemeletry = CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value; } if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.HasValue) @@ -675,7 +675,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableVisualStudioTelemetry(); } - Options.CurrentOptions.DisableVisualStudioTelemetry = CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value; + OptionsHelper.CurrentOptions.DisableVisualStudioTelemetry = CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value; } if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.HasValue) @@ -688,7 +688,7 @@ internal static void ProcessTweaksGeneral() { OptimizeHelper.EnableNvidiaTelemetry(); } - Options.CurrentOptions.DisableNVIDIATelemetry = CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value; + OptionsHelper.CurrentOptions.DisableNVIDIATelemetry = CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value; } } #endregion @@ -706,7 +706,7 @@ internal static void ProcessTweaksWindows8() { OptimizeHelper.EnableOneDrive(); } - Options.CurrentOptions.DisableOneDrive = CurrentSilentConfig.Tweaks.DisableOneDrive.Value; + OptionsHelper.CurrentOptions.DisableOneDrive = CurrentSilentConfig.Tweaks.DisableOneDrive.Value; } } #endregion @@ -724,7 +724,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.DisableGamingMode(); } - Options.CurrentOptions.EnableGamingMode = CurrentSilentConfig.Tweaks.EnableGamingMode.Value; + OptionsHelper.CurrentOptions.EnableGamingMode = CurrentSilentConfig.Tweaks.EnableGamingMode.Value; } if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.HasValue) @@ -737,7 +737,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.DisableLegacyVolumeSlider(); } - Options.CurrentOptions.EnableLegacyVolumeSlider = CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value; + OptionsHelper.CurrentOptions.EnableLegacyVolumeSlider = CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value; } if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.HasValue) @@ -750,7 +750,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableQuickAccessHistory(); } - Options.CurrentOptions.DisableQuickAccessHistory = CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value; + OptionsHelper.CurrentOptions.DisableQuickAccessHistory = CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value; } if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.HasValue) @@ -763,7 +763,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableStartMenuAds(); } - Options.CurrentOptions.DisableStartMenuAds = CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value; + OptionsHelper.CurrentOptions.DisableStartMenuAds = CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value; } if (CurrentSilentConfig.Tweaks.UninstallOneDrive.HasValue) @@ -776,7 +776,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.InstallOneDrive(); } - Options.CurrentOptions.UninstallOneDrive = CurrentSilentConfig.Tweaks.UninstallOneDrive.Value; + OptionsHelper.CurrentOptions.UninstallOneDrive = CurrentSilentConfig.Tweaks.UninstallOneDrive.Value; } if (CurrentSilentConfig.Tweaks.DisableMyPeople.HasValue) @@ -789,7 +789,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableMyPeople(); } - Options.CurrentOptions.DisableMyPeople = CurrentSilentConfig.Tweaks.DisableMyPeople.Value; + OptionsHelper.CurrentOptions.DisableMyPeople = CurrentSilentConfig.Tweaks.DisableMyPeople.Value; } if (CurrentSilentConfig.Tweaks.EnableLongPaths.HasValue) @@ -802,7 +802,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.DisableLongPaths(); } - Options.CurrentOptions.EnableLongPaths = CurrentSilentConfig.Tweaks.EnableLongPaths.Value; + OptionsHelper.CurrentOptions.EnableLongPaths = CurrentSilentConfig.Tweaks.EnableLongPaths.Value; } if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.HasValue) @@ -815,7 +815,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableAutomaticUpdates(); } - Options.CurrentOptions.DisableAutomaticUpdates = CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value; + OptionsHelper.CurrentOptions.DisableAutomaticUpdates = CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value; } if (CurrentSilentConfig.Tweaks.ExcludeDrivers.HasValue) @@ -828,7 +828,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.IncludeDrivers(); } - Options.CurrentOptions.ExcludeDrivers = CurrentSilentConfig.Tweaks.ExcludeDrivers.Value; + OptionsHelper.CurrentOptions.ExcludeDrivers = CurrentSilentConfig.Tweaks.ExcludeDrivers.Value; } if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.HasValue) @@ -841,7 +841,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableTelemetryServices(); } - Options.CurrentOptions.DisableTelemetryServices = CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value; + OptionsHelper.CurrentOptions.DisableTelemetryServices = CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value; } if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.HasValue) @@ -854,7 +854,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.CompromisePrivacy(); } - Options.CurrentOptions.DisablePrivacyOptions = CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value; + OptionsHelper.CurrentOptions.DisablePrivacyOptions = CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value; } if (CurrentSilentConfig.Tweaks.DisableCortana.HasValue) @@ -867,7 +867,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableCortana(); } - Options.CurrentOptions.DisableCortana = CurrentSilentConfig.Tweaks.DisableCortana.Value; + OptionsHelper.CurrentOptions.DisableCortana = CurrentSilentConfig.Tweaks.DisableCortana.Value; } if (CurrentSilentConfig.Tweaks.DisableSensorServices.HasValue) @@ -880,7 +880,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableSensorServices(); } - Options.CurrentOptions.DisableSensorServices = CurrentSilentConfig.Tweaks.DisableSensorServices.Value; + OptionsHelper.CurrentOptions.DisableSensorServices = CurrentSilentConfig.Tweaks.DisableSensorServices.Value; } if (CurrentSilentConfig.Tweaks.DisableWindowsInk.HasValue) @@ -893,7 +893,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableWindowsInk(); } - Options.CurrentOptions.DisableWindowsInk = CurrentSilentConfig.Tweaks.DisableWindowsInk.Value; + OptionsHelper.CurrentOptions.DisableWindowsInk = CurrentSilentConfig.Tweaks.DisableWindowsInk.Value; } if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.HasValue) @@ -906,7 +906,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableSpellingAndTypingFeatures(); } - Options.CurrentOptions.DisableSpellingTyping = CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value; + OptionsHelper.CurrentOptions.DisableSpellingTyping = CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value; } if (CurrentSilentConfig.Tweaks.DisableXboxLive.HasValue) @@ -919,7 +919,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableXboxLive(); } - Options.CurrentOptions.DisableXboxLive = CurrentSilentConfig.Tweaks.DisableXboxLive.Value; + OptionsHelper.CurrentOptions.DisableXboxLive = CurrentSilentConfig.Tweaks.DisableXboxLive.Value; } if (CurrentSilentConfig.Tweaks.DisableGameBar.HasValue) @@ -932,7 +932,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableGameBar(); } - Options.CurrentOptions.DisableGameBar = CurrentSilentConfig.Tweaks.DisableGameBar.Value; + OptionsHelper.CurrentOptions.DisableGameBar = CurrentSilentConfig.Tweaks.DisableGameBar.Value; } if (CurrentSilentConfig.Tweaks.DisableInsiderService.HasValue) @@ -945,7 +945,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableInsiderService(); } - Options.CurrentOptions.DisableInsiderService = CurrentSilentConfig.Tweaks.DisableInsiderService.Value; + OptionsHelper.CurrentOptions.DisableInsiderService = CurrentSilentConfig.Tweaks.DisableInsiderService.Value; } if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.HasValue) @@ -958,7 +958,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableStoreUpdates(); } - Options.CurrentOptions.DisableStoreUpdates = CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value; + OptionsHelper.CurrentOptions.DisableStoreUpdates = CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value; } if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.HasValue) @@ -971,7 +971,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableCloudClipboard(); } - Options.CurrentOptions.DisableCloudClipboard = CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value; + OptionsHelper.CurrentOptions.DisableCloudClipboard = CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value; } if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.HasValue) @@ -984,7 +984,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.AddCastToDevice(); } - Options.CurrentOptions.RemoveCastToDevice = CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value; + OptionsHelper.CurrentOptions.RemoveCastToDevice = CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value; } if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.HasValue) @@ -997,7 +997,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableEdgeTelemetry(); } - Options.CurrentOptions.DisableEdgeTelemetry = CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value; + OptionsHelper.CurrentOptions.DisableEdgeTelemetry = CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value; } if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.HasValue) @@ -1010,7 +1010,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.EnableEdgeDiscoverBar(); } - Options.CurrentOptions.DisableEdgeDiscoverBar = CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value; + OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar = CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value; } if (CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.HasValue) @@ -1023,7 +1023,7 @@ internal static void ProcessTweaksWindows10() { OptimizeHelper.DisableClassicPhotoViewer(); } - Options.CurrentOptions.RestoreClassicPhotoViewer = CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.Value; + OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer = CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.Value; } } #endregion @@ -1041,7 +1041,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.AlignTaskbarToCenter(); } - Options.CurrentOptions.TaskbarToLeft = CurrentSilentConfig.Tweaks.TaskbarToLeft.Value; + OptionsHelper.CurrentOptions.TaskbarToLeft = CurrentSilentConfig.Tweaks.TaskbarToLeft.Value; } if (CurrentSilentConfig.Tweaks.DisableStickers.HasValue) @@ -1054,7 +1054,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableStickers(); } - Options.CurrentOptions.DisableStickers = CurrentSilentConfig.Tweaks.DisableStickers.Value; + OptionsHelper.CurrentOptions.DisableStickers = CurrentSilentConfig.Tweaks.DisableStickers.Value; } if (CurrentSilentConfig.Tweaks.CompactMode.HasValue) @@ -1067,7 +1067,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.DisableFilesCompactMode(); } - Options.CurrentOptions.CompactMode = CurrentSilentConfig.Tweaks.CompactMode.Value; + OptionsHelper.CurrentOptions.CompactMode = CurrentSilentConfig.Tweaks.CompactMode.Value; } if (CurrentSilentConfig.Tweaks.DisableSnapAssist.HasValue) @@ -1080,7 +1080,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableSnapAssist(); } - Options.CurrentOptions.DisableSnapAssist = CurrentSilentConfig.Tweaks.DisableSnapAssist.Value; + OptionsHelper.CurrentOptions.DisableSnapAssist = CurrentSilentConfig.Tweaks.DisableSnapAssist.Value; } if (CurrentSilentConfig.Tweaks.DisableWidgets.HasValue) @@ -1093,7 +1093,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableWidgets(); } - Options.CurrentOptions.DisableWidgets = CurrentSilentConfig.Tweaks.DisableWidgets.Value; + OptionsHelper.CurrentOptions.DisableWidgets = CurrentSilentConfig.Tweaks.DisableWidgets.Value; } if (CurrentSilentConfig.Tweaks.DisableChat.HasValue) @@ -1106,22 +1106,20 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableChat(); } - Options.CurrentOptions.DisableChat = CurrentSilentConfig.Tweaks.DisableChat.Value; + OptionsHelper.CurrentOptions.DisableChat = CurrentSilentConfig.Tweaks.DisableChat.Value; } if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.HasValue) { if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value) { - MessageBox.Show("no vbs"); - // OptimizeHelper.DisableVirtualizationBasedSecurity(); + OptimizeHelper.DisableVirtualizationBasedSecurity(); } else { - MessageBox.Show("OK vbs"); - //OptimizeHelper.EnableVirtualizationBasedSecurity(); + OptimizeHelper.EnableVirtualizationBasedSecurity(); } - Options.CurrentOptions.DisableVBS = CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value; + OptionsHelper.CurrentOptions.DisableVBS = CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value; } if (CurrentSilentConfig.Tweaks.ClassicMenu.HasValue) @@ -1134,7 +1132,7 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableShowMoreOptions(); } - Options.CurrentOptions.ClassicMenu = CurrentSilentConfig.Tweaks.ClassicMenu.Value; + OptionsHelper.CurrentOptions.ClassicMenu = CurrentSilentConfig.Tweaks.ClassicMenu.Value; } if (CurrentSilentConfig.Tweaks.DisableTPMCheck.HasValue) @@ -1147,7 +1145,20 @@ internal static void ProcessTweaksWindows11() { OptimizeHelper.EnableTPMCheck(); } - Options.CurrentOptions.DisableTPMCheck = CurrentSilentConfig.Tweaks.DisableTPMCheck.Value; + OptionsHelper.CurrentOptions.DisableTPMCheck = CurrentSilentConfig.Tweaks.DisableTPMCheck.Value; + } + + if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.HasValue) + { + if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.Value) + { + OptimizeHelper.DisableCoPilotAI(); + } + else + { + OptimizeHelper.EnableCoPilotAI(); + } + OptionsHelper.CurrentOptions.DisableCoPilotAI = CurrentSilentConfig.Tweaks.DisableCoPilotAI.Value; } } #endregion diff --git a/Optimizer/StartupBackupItem.cs b/Optimizer/StartupBackupItem.cs deleted file mode 100644 index 5c28c386..00000000 --- a/Optimizer/StartupBackupItem.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; - -namespace Optimizer -{ - [Serializable] - public sealed class StartupBackupItem - { - public string Name { get; set; } - public string FileLocation { get; set; } - public string RegistryLocation { get; set; } - public string StartupType { get; set; } - - public StartupBackupItem(string n, string fl, string rl, string st) - { - Name = n; - FileLocation = fl; - RegistryLocation = rl; - StartupType = st; - } - } -} diff --git a/Optimizer/StartupHelper.cs b/Optimizer/StartupHelper.cs index dae46b8a..d803ca9b 100644 --- a/Optimizer/StartupHelper.cs +++ b/Optimizer/StartupHelper.cs @@ -100,7 +100,7 @@ private static void GetRegistryStartupItemsHelper(ref List list, St } } - private static void GetFolderStartupItemsHelper(ref List list, string[] files, string[] shortcuts) + private static void GetFolderStartupItemsHelper(ref List list, IEnumerable files, IEnumerable shortcuts, StartupItemLocation folderOrigin) { foreach (string file in files) { @@ -110,7 +110,7 @@ private static void GetFolderStartupItemsHelper(ref List list, stri item.Name = Path.GetFileNameWithoutExtension(file); item.FileLocation = file; item.Shortcut = file; - item.RegistryLocation = StartupItemLocation.Folder; + item.RegistryLocation = folderOrigin; list.Add(item); } @@ -128,7 +128,7 @@ private static void GetFolderStartupItemsHelper(ref List list, stri item.Name = Path.GetFileNameWithoutExtension(shortcut); item.FileLocation = Utilities.GetShortcutTargetFile(shortcut); item.Shortcut = shortcut; - item.RegistryLocation = StartupItemLocation.Folder; + item.RegistryLocation = folderOrigin; list.Add(item); } @@ -157,18 +157,22 @@ internal static List GetStartupItems() if (Directory.Exists(CurrentUserStartupFolder)) { - string[] currentUserFiles = Directory.EnumerateFiles(CurrentUserStartupFolder, "*.*", SearchOption.AllDirectories) - .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat")).ToArray(); - string[] currentUserShortcuts = Directory.GetFiles(CurrentUserStartupFolder, "*.lnk", SearchOption.AllDirectories); - GetFolderStartupItemsHelper(ref startupItems, currentUserFiles, currentUserShortcuts); + IEnumerable currentUserFiles = Directory.EnumerateFiles(CurrentUserStartupFolder, "*.*", SearchOption.AllDirectories) + .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat") || s.EndsWith(".cmd")); + + IEnumerable currentUserShortcuts = Directory.GetFiles(CurrentUserStartupFolder, "*.lnk", SearchOption.AllDirectories); + + GetFolderStartupItemsHelper(ref startupItems, currentUserFiles, currentUserShortcuts, StartupItemLocation.CUStartupFolder); } if (Directory.Exists(LocalMachineStartupFolder)) { - string[] localMachineFiles = Directory.EnumerateFiles(LocalMachineStartupFolder, "*.*", SearchOption.AllDirectories) - .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat")).ToArray(); - string[] localMachineShortcuts = Directory.GetFiles(LocalMachineStartupFolder, "*.lnk", SearchOption.AllDirectories); - GetFolderStartupItemsHelper(ref startupItems, localMachineFiles, localMachineShortcuts); + IEnumerable localMachineFiles = Directory.EnumerateFiles(LocalMachineStartupFolder, "*.*", SearchOption.AllDirectories) + .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat") || s.EndsWith(".cmd")); + + IEnumerable localMachineShortcuts = Directory.GetFiles(LocalMachineStartupFolder, "*.lnk", SearchOption.AllDirectories); + + GetFolderStartupItemsHelper(ref startupItems, localMachineFiles, localMachineShortcuts, StartupItemLocation.LMStartupFolder); } return startupItems; diff --git a/Optimizer/TokenPrivilege.cs b/Optimizer/TokenPrivilegeHelper.cs similarity index 89% rename from Optimizer/TokenPrivilege.cs rename to Optimizer/TokenPrivilegeHelper.cs index 8bf04340..71fda3f1 100644 --- a/Optimizer/TokenPrivilege.cs +++ b/Optimizer/TokenPrivilegeHelper.cs @@ -7,7 +7,7 @@ namespace Optimizer /* * Allows clients to obtain a Windows token privilege for a well-defined scope simply by "using" an instance of this class. */ - sealed class TokenPrivilege : IDisposable + sealed class TokenPrivilegeHelper : IDisposable { private enum PrivilegeAction : uint { @@ -15,13 +15,13 @@ private enum PrivilegeAction : uint Enable = 0x2 } - public static TokenPrivilege Backup => new TokenPrivilege("SeBackupPrivilege"); - public static TokenPrivilege Restore => new TokenPrivilege("SeRestorePrivilege"); - public static TokenPrivilege TakeOwnership => new TokenPrivilege("SeTakeOwnershipPrivilege"); + public static TokenPrivilegeHelper Backup => new TokenPrivilegeHelper("SeBackupPrivilege"); + public static TokenPrivilegeHelper Restore => new TokenPrivilegeHelper("SeRestorePrivilege"); + public static TokenPrivilegeHelper TakeOwnership => new TokenPrivilegeHelper("SeTakeOwnershipPrivilege"); private readonly string privilegeName; - private TokenPrivilege(string privilegeName) + private TokenPrivilegeHelper(string privilegeName) { this.privilegeName = privilegeName; Apply(PrivilegeAction.Enable); diff --git a/Optimizer/UserFoldersHelper.cs b/Optimizer/UserFoldersHelper.cs deleted file mode 100644 index ed424e31..00000000 --- a/Optimizer/UserFoldersHelper.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace Optimizer -{ - internal static class KnownFolders - { - private static readonly Dictionary _guids = new Dictionary - { - [KnownFolder.Contacts] = new Guid("56784854-C6CB-462B-8169-88E350ACB882"), - [KnownFolder.Downloads] = new Guid("374DE290-123F-4565-9164-39C4925E467B"), - [KnownFolder.Favorites] = new Guid("1777F761-68AD-4D8A-87BD-30B759FA33DD"), - [KnownFolder.Links] = new Guid("BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968"), - [KnownFolder.SavedGames] = new Guid("4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4"), - [KnownFolder.SavedSearches] = new Guid("7D1D3A04-DEBB-4115-95CF-2F29DA2920DA") - }; - - internal static string GetPath(KnownFolder knownFolder) - { - return SHGetKnownFolderPath(_guids[knownFolder], 0); - } - - [DllImport("shell32", - CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] - private static extern string SHGetKnownFolderPath( - [MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, - uint hToken = 0); - } -} diff --git a/Optimizer/Utilities.cs b/Optimizer/Utilities.cs index 0d9f4679..d5dd42fb 100644 --- a/Optimizer/Utilities.cs +++ b/Optimizer/Utilities.cs @@ -1,5 +1,4 @@ using Microsoft.Win32; -using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Diagnostics; @@ -10,7 +9,6 @@ using System.Security.AccessControl; using System.Security.Principal; using System.ServiceProcess; -using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -236,7 +234,7 @@ internal static void ImportRegistryScript(string scriptFile) internal static void Reboot() { - Options.SaveSettings(); + OptionsHelper.SaveSettings(); Process.Start("shutdown.exe", "/r /t 0"); } @@ -511,7 +509,7 @@ internal static void TryDeleteRegistryValueDefaultUsers(string path, string valu internal static void DisableProtectedService(string serviceName) { - using (TokenPrivilege.TakeOwnership) + using (TokenPrivilegeHelper.TakeOwnership) { using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services")) { @@ -558,7 +556,7 @@ internal static void DisableProtectedService(string serviceName) internal static void EnableProtectedService(string serviceName) { - using (TokenPrivilege.TakeOwnership) + using (TokenPrivilegeHelper.TakeOwnership) { using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services")) { @@ -840,23 +838,111 @@ internal static void PreventProcessFromRunning(string pName) } } - // for debugging purposes - internal static void FindDiffInTwoJsons() + internal static string GetUserDownloadsFolder() { - JObject file1 = JObject.Parse(Properties.Resources.EN); - JObject file2 = JObject.Parse(Properties.Resources.NE); - - var p1 = file1.Properties().ToList(); - var p2 = file2.Properties().ToList(); - - var missingProps = p1.Where(expected => p2.Where(actual => actual.Name == expected.Name).Count() == 0); - - StringBuilder sb = new StringBuilder(); - foreach (var x in missingProps) + try + { + return Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "{374DE290-123F-4565-9164-39C4925E467B}", string.Empty).ToString(); + } + catch (Exception ex) { - sb.Append(x.Name + Environment.NewLine); + Logger.LogError("Utilities.GetUserDownloadsFolder", ex.Message, ex.StackTrace); + return string.Empty; + } + } + + internal static void ReinforceCurrentTweaks() + { + SilentConfig silentConfig = new SilentConfig(); + #region Windows General + silentConfig.Tweaks.EnablePerformanceTweaks = OptionsHelper.CurrentOptions.EnablePerformanceTweaks; + silentConfig.Tweaks.DisableNetworkThrottling = OptionsHelper.CurrentOptions.DisableNetworkThrottling; + silentConfig.Tweaks.DisableWindowsDefender = OptionsHelper.CurrentOptions.DisableWindowsDefender; + silentConfig.Tweaks.DisableSystemRestore = OptionsHelper.CurrentOptions.DisableSystemRestore; + silentConfig.Tweaks.DisablePrintService = OptionsHelper.CurrentOptions.DisablePrintService; + silentConfig.Tweaks.DisableMediaPlayerSharing = OptionsHelper.CurrentOptions.DisableMediaPlayerSharing; + silentConfig.Tweaks.DisableErrorReporting = OptionsHelper.CurrentOptions.DisableErrorReporting; + silentConfig.Tweaks.DisableHomeGroup = OptionsHelper.CurrentOptions.DisableHomeGroup; + silentConfig.Tweaks.DisableSuperfetch = OptionsHelper.CurrentOptions.DisableSuperfetch; + silentConfig.Tweaks.DisableTelemetryTasks = OptionsHelper.CurrentOptions.DisableTelemetryTasks; + silentConfig.Tweaks.DisableOffice2016Telemetry = OptionsHelper.CurrentOptions.DisableOffice2016Telemetry; + silentConfig.Tweaks.DisableCompatibilityAssistant = OptionsHelper.CurrentOptions.DisableCompatibilityAssistant; + silentConfig.Tweaks.DisableHibernation = OptionsHelper.CurrentOptions.DisableHibernation; + silentConfig.Tweaks.DisableSMB1 = OptionsHelper.CurrentOptions.DisableSMB1; + silentConfig.Tweaks.DisableSMB2 = OptionsHelper.CurrentOptions.DisableSMB2; + silentConfig.Tweaks.DisableNTFSTimeStamp = OptionsHelper.CurrentOptions.DisableNTFSTimeStamp; + silentConfig.Tweaks.DisableFaxService = OptionsHelper.CurrentOptions.DisableFaxService; + silentConfig.Tweaks.DisableSmartScreen = OptionsHelper.CurrentOptions.DisableSmartScreen; + silentConfig.Tweaks.DisableStickyKeys = OptionsHelper.CurrentOptions.DisableStickyKeys; + silentConfig.Tweaks.DisableVisualStudioTelemetry = OptionsHelper.CurrentOptions.DisableVisualStudioTelemetry; + silentConfig.Tweaks.DisableFirefoxTemeletry = OptionsHelper.CurrentOptions.DisableFirefoxTemeletry; + silentConfig.Tweaks.DisableChromeTelemetry = OptionsHelper.CurrentOptions.DisableChromeTelemetry; + silentConfig.Tweaks.DisableNVIDIATelemetry = OptionsHelper.CurrentOptions.DisableNVIDIATelemetry; + silentConfig.Tweaks.DisableSearch = OptionsHelper.CurrentOptions.DisableSearch; + #endregion + #region Windows 8.1 + silentConfig.Tweaks.DisableOneDrive = OptionsHelper.CurrentOptions.DisableOneDrive; + #endregion + #region Windows 10 + silentConfig.Tweaks.DisableCloudClipboard = OptionsHelper.CurrentOptions.DisableCloudClipboard; + silentConfig.Tweaks.EnableLegacyVolumeSlider = OptionsHelper.CurrentOptions.EnableLegacyVolumeSlider; + silentConfig.Tweaks.DisableQuickAccessHistory = OptionsHelper.CurrentOptions.DisableQuickAccessHistory; + silentConfig.Tweaks.DisableStartMenuAds = OptionsHelper.CurrentOptions.DisableStartMenuAds; + silentConfig.Tweaks.UninstallOneDrive = OptionsHelper.CurrentOptions.UninstallOneDrive; + silentConfig.Tweaks.DisableMyPeople = OptionsHelper.CurrentOptions.DisableMyPeople; + silentConfig.Tweaks.DisableAutomaticUpdates = OptionsHelper.CurrentOptions.DisableAutomaticUpdates; + silentConfig.Tweaks.ExcludeDrivers = OptionsHelper.CurrentOptions.ExcludeDrivers; + silentConfig.Tweaks.DisableTelemetryServices = OptionsHelper.CurrentOptions.DisableTelemetryServices; + silentConfig.Tweaks.DisablePrivacyOptions = OptionsHelper.CurrentOptions.DisablePrivacyOptions; + silentConfig.Tweaks.DisableCortana = OptionsHelper.CurrentOptions.DisableCortana; + silentConfig.Tweaks.DisableSensorServices = OptionsHelper.CurrentOptions.DisableSensorServices; + silentConfig.Tweaks.DisableWindowsInk = OptionsHelper.CurrentOptions.DisableWindowsInk; + silentConfig.Tweaks.DisableSpellingTyping = OptionsHelper.CurrentOptions.DisableSpellingTyping; + silentConfig.Tweaks.DisableXboxLive = OptionsHelper.CurrentOptions.DisableXboxLive; + silentConfig.Tweaks.DisableGameBar = OptionsHelper.CurrentOptions.DisableGameBar; + silentConfig.Tweaks.DisableInsiderService = OptionsHelper.CurrentOptions.DisableInsiderService; + silentConfig.Tweaks.DisableStoreUpdates = OptionsHelper.CurrentOptions.DisableStoreUpdates; + silentConfig.Tweaks.EnableLongPaths = OptionsHelper.CurrentOptions.EnableLongPaths; + silentConfig.Tweaks.RemoveCastToDevice = OptionsHelper.CurrentOptions.RemoveCastToDevice; + silentConfig.Tweaks.EnableGamingMode = OptionsHelper.CurrentOptions.EnableGamingMode; + silentConfig.Tweaks.DisableTPMCheck = OptionsHelper.CurrentOptions.DisableTPMCheck; + silentConfig.Tweaks.DisableVirtualizationBasedTechnology = OptionsHelper.CurrentOptions.DisableVBS; + silentConfig.Tweaks.DisableEdgeDiscoverBar = OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar; + silentConfig.Tweaks.DisableEdgeTelemetry = OptionsHelper.CurrentOptions.DisableEdgeTelemetry; + silentConfig.Tweaks.RestoreClassicPhotoViewer = OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer; + #endregion + #region Windows 11 + silentConfig.Tweaks.TaskbarToLeft = OptionsHelper.CurrentOptions.TaskbarToLeft; + silentConfig.Tweaks.DisableStickers = OptionsHelper.CurrentOptions.DisableStickers; + silentConfig.Tweaks.CompactMode = OptionsHelper.CurrentOptions.CompactMode; + silentConfig.Tweaks.DisableSnapAssist = OptionsHelper.CurrentOptions.DisableSnapAssist; + silentConfig.Tweaks.DisableWidgets = OptionsHelper.CurrentOptions.DisableWidgets; + silentConfig.Tweaks.DisableChat = OptionsHelper.CurrentOptions.DisableChat; + silentConfig.Tweaks.ClassicMenu = OptionsHelper.CurrentOptions.ClassicMenu; + silentConfig.Tweaks.DisableCoPilotAI = OptionsHelper.CurrentOptions.DisableCoPilotAI; + #endregion + SilentOps.CurrentSilentConfig = silentConfig; + + if (CurrentWindowsVersion == WindowsVersion.Windows7) + { + SilentOps.ProcessTweaksGeneral(); + } + if (CurrentWindowsVersion == WindowsVersion.Windows8) + { + SilentOps.ProcessTweaksGeneral(); + SilentOps.ProcessTweaksWindows8(); + } + if (CurrentWindowsVersion == WindowsVersion.Windows10) + { + SilentOps.ProcessTweaksGeneral(); + SilentOps.ProcessTweaksWindows10(); + } + if (CurrentWindowsVersion == WindowsVersion.Windows11) + { + SilentOps.ProcessTweaksGeneral(); + SilentOps.ProcessTweaksWindows10(); + SilentOps.ProcessTweaksWindows11(); } - MessageBox.Show(sb.ToString()); } } } diff --git a/README.md b/README.md index 6e51fc34..0bdfc161 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

- +
@@ -20,13 +20,14 @@ Welcome to Optimizer, an advanced configuration utility designed to enhance your

🏗️ Key Features:

-- Full multilingual support (22 languages available) +- Full multilingual support (24 languages available) - Enhance system and network performance - Disable unnecessary Windows services - Turn off Windows telemetry, Cortana, and more - Disable Office telemetry (works with Office 2016 or newer) - Stop automatic Windows 10 updates - Download multiple useful apps quickly +- Disable CoPilot AI in Windows 11 - Uninstall UWP apps - Clean system drive and browser profiles - Fix common registry issues @@ -104,8 +105,8 @@ Learn about our security measures in the [Security Policy](https://github.com/he

📊 Details

-- Latest version: 15.8 (Released: August 26, 2023) -- SHA256: 2839B3E6F7BD5B3F530C2C4283CA5B16F6231358660A3AC05066FD432EAB9BC9 +- Latest version: 15.9 (Released: October 14, 2023) +- SHA256: 3708EC060E9DAF200F8B97950D210467951FC6FEAB214E679B4FE59601F14811

☕ Buy me a delicious espresso

@@ -153,6 +154,8 @@ We'd like to extend our gratitude to the following contributors for their transl - Hungarian: Zan - Farsi: MjavadH - Nepali: chapagetti +- Hellenic +- Bulgarian

❤️ Contribute with a translation

diff --git a/templates/template-windows11.json b/templates/template-windows11.json index 1529bc9b..e14db3ee 100644 --- a/templates/template-windows11.json +++ b/templates/template-windows11.json @@ -134,6 +134,7 @@ "DisableSearch": null, "DisableEdgeDiscoverBar": null, "DisableEdgeTelemetry": null, + "DisableCoPilotAI": null, "RestoreClassicPhotoViewer": null } } \ No newline at end of file diff --git a/version.txt b/version.txt index e754ab7c..fa097308 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -15.8 \ No newline at end of file +15.9 \ No newline at end of file