diff --git a/.vs/FirewallBlocker/v17/.suo b/.vs/FirewallBlocker/v17/.suo new file mode 100644 index 0000000..a3344f1 Binary files /dev/null and b/.vs/FirewallBlocker/v17/.suo differ diff --git a/App.config b/App.config index 54a3dfa..7b319ad 100644 --- a/App.config +++ b/App.config @@ -1,6 +1,10 @@ - + - - - + + + + + + + \ No newline at end of file diff --git a/FirewallBlocker.csproj b/FirewallBlocker.csproj index ac534fa..418cdd3 100644 --- a/FirewallBlocker.csproj +++ b/FirewallBlocker.csproj @@ -7,13 +7,14 @@ {1A97060C-6709-47AF-A5D5-4B73E94C07D4} WinExe FirewallBlocker - Firewall Blocker + FirewallBlocker v4.7.2 512 true true + false publish\ - true + false Disk false Foreground @@ -22,10 +23,12 @@ false false true + true + publish.htm 0 1.0.0.%2a - false false + true true @@ -56,10 +59,24 @@ false + + 065A5A488BBBA567AE16A4791B9573FD14826559 + + + FirewallBlocker_TemporaryKey.pfx + + + false + + + LocalIntranet + + + @@ -79,6 +96,17 @@ + + True + True + strings.resx + + + Form1.cs + + + Form1.cs + Form1.cs @@ -92,6 +120,11 @@ Resources.resx True + + ResXFileCodeGenerator + strings.Designer.cs + + SettingsSingleFileGenerator diff --git a/Form1.Designer.cs b/Form1.Designer.cs index 739119b..ba56013 100644 --- a/Form1.Designer.cs +++ b/Form1.Designer.cs @@ -41,131 +41,99 @@ private void InitializeComponent() this.pathTitleLabel = new System.Windows.Forms.Label(); this.inoutCheckbox = new System.Windows.Forms.CheckBox(); this.mainPanel = new System.Windows.Forms.Panel(); - this.button1 = new System.Windows.Forms.Button(); + this.translationIcon = new System.Windows.Forms.PictureBox(); + this.langSelectBox = new System.Windows.Forms.ComboBox(); + this.githubButton = new System.Windows.Forms.Button(); this.titleBackgroundPanel = new System.Windows.Forms.Panel(); this.minimizeButton = new System.Windows.Forms.Button(); this.closeButton = new System.Windows.Forms.Button(); this.mainPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.translationIcon)).BeginInit(); this.titleBackgroundPanel.SuspendLayout(); this.SuspendLayout(); // // AppPathTextBox // + resources.ApplyResources(this.AppPathTextBox, "AppPathTextBox"); this.AppPathTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(34)))), ((int)(((byte)(40)))), ((int)(((byte)(49))))); this.AppPathTextBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.AppPathTextBox.Location = new System.Drawing.Point(12, 85); this.AppPathTextBox.Name = "AppPathTextBox"; - this.AppPathTextBox.Size = new System.Drawing.Size(282, 21); - this.AppPathTextBox.TabIndex = 0; // // ipListRichText // + resources.ApplyResources(this.ipListRichText, "ipListRichText"); this.ipListRichText.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(34)))), ((int)(((byte)(40)))), ((int)(((byte)(49))))); this.ipListRichText.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.ipListRichText.Location = new System.Drawing.Point(12, 147); this.ipListRichText.Name = "ipListRichText"; - this.ipListRichText.Size = new System.Drawing.Size(282, 172); - this.ipListRichText.TabIndex = 1; - this.ipListRichText.Text = ""; // // selectAppButton // - this.selectAppButton.Font = new System.Drawing.Font("Segoe UI", 11.25F); + resources.ApplyResources(this.selectAppButton, "selectAppButton"); this.selectAppButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(28)))), ((int)(((byte)(44))))); - this.selectAppButton.Location = new System.Drawing.Point(376, 78); this.selectAppButton.Name = "selectAppButton"; - this.selectAppButton.Size = new System.Drawing.Size(100, 35); - this.selectAppButton.TabIndex = 2; - this.selectAppButton.Text = "Selecionar"; this.selectAppButton.UseVisualStyleBackColor = true; this.selectAppButton.Click += new System.EventHandler(this.selectAppButton_Click); // // createRuleButton // - this.createRuleButton.Font = new System.Drawing.Font("Segoe UI", 10.25F); + resources.ApplyResources(this.createRuleButton, "createRuleButton"); this.createRuleButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(28)))), ((int)(((byte)(44))))); - this.createRuleButton.Location = new System.Drawing.Point(376, 195); this.createRuleButton.Name = "createRuleButton"; - this.createRuleButton.Size = new System.Drawing.Size(100, 35); - this.createRuleButton.TabIndex = 3; - this.createRuleButton.Text = "Criar Regra"; this.createRuleButton.UseVisualStyleBackColor = true; this.createRuleButton.Click += new System.EventHandler(this.createRuleButton_Click); // // titleLabel // - this.titleLabel.AutoSize = true; + resources.ApplyResources(this.titleLabel, "titleLabel"); this.titleLabel.BackColor = System.Drawing.Color.Transparent; - this.titleLabel.Font = new System.Drawing.Font("Verdana", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.titleLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.titleLabel.Location = new System.Drawing.Point(150, 0); this.titleLabel.Name = "titleLabel"; - this.titleLabel.Size = new System.Drawing.Size(228, 32); - this.titleLabel.TabIndex = 4; - this.titleLabel.Text = "Firewall Blocker"; this.titleLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.titleLabel_MouseDown); // // openFileDialog1 // this.openFileDialog1.FileName = "openFileDialog1"; + resources.ApplyResources(this.openFileDialog1, "openFileDialog1"); // // appHelpButton // + resources.ApplyResources(this.appHelpButton, "appHelpButton"); this.appHelpButton.BackColor = System.Drawing.Color.Transparent; - this.appHelpButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; this.appHelpButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(62)))), ((int)(((byte)(70))))); this.appHelpButton.FlatAppearance.BorderSize = 0; this.appHelpButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent; this.appHelpButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; - this.appHelpButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.appHelpButton.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold); this.appHelpButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.appHelpButton.Location = new System.Drawing.Point(463, 303); this.appHelpButton.Name = "appHelpButton"; - this.appHelpButton.Size = new System.Drawing.Size(82, 23); - this.appHelpButton.TabIndex = 5; - this.appHelpButton.Text = "Ajuda?"; this.appHelpButton.UseVisualStyleBackColor = false; this.appHelpButton.Click += new System.EventHandler(this.appHelpButton_Click_1); // // ipListLabel // - this.ipListLabel.AutoSize = true; - this.ipListLabel.Font = new System.Drawing.Font("Verdana", 12.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + resources.ApplyResources(this.ipListLabel, "ipListLabel"); this.ipListLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.ipListLabel.Location = new System.Drawing.Point(91, 124); this.ipListLabel.Name = "ipListLabel"; - this.ipListLabel.Size = new System.Drawing.Size(100, 20); - this.ipListLabel.TabIndex = 7; - this.ipListLabel.Text = "Lista de IP"; // // pathTitleLabel // - this.pathTitleLabel.AutoSize = true; - this.pathTitleLabel.Font = new System.Drawing.Font("Verdana", 12.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + resources.ApplyResources(this.pathTitleLabel, "pathTitleLabel"); this.pathTitleLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.pathTitleLabel.Location = new System.Drawing.Point(99, 62); this.pathTitleLabel.Name = "pathTitleLabel"; - this.pathTitleLabel.Size = new System.Drawing.Size(93, 20); - this.pathTitleLabel.TabIndex = 9; - this.pathTitleLabel.Text = "Aplicativo"; // // inoutCheckbox // - this.inoutCheckbox.AutoSize = true; - this.inoutCheckbox.Font = new System.Drawing.Font("Verdana", 8F); + resources.ApplyResources(this.inoutCheckbox, "inoutCheckbox"); this.inoutCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.inoutCheckbox.Location = new System.Drawing.Point(310, 172); this.inoutCheckbox.Name = "inoutCheckbox"; - this.inoutCheckbox.Size = new System.Drawing.Size(211, 17); - this.inoutCheckbox.TabIndex = 11; - this.inoutCheckbox.Text = "Criar regra de entrada e saída ?"; this.inoutCheckbox.UseVisualStyleBackColor = true; // // mainPanel // + resources.ApplyResources(this.mainPanel, "mainPanel"); this.mainPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(62)))), ((int)(((byte)(70))))); - this.mainPanel.Controls.Add(this.button1); + this.mainPanel.Controls.Add(this.translationIcon); + this.mainPanel.Controls.Add(this.langSelectBox); + this.mainPanel.Controls.Add(this.githubButton); this.mainPanel.Controls.Add(this.titleBackgroundPanel); this.mainPanel.Controls.Add(this.selectAppButton); this.mainPanel.Controls.Add(this.appHelpButton); @@ -175,90 +143,82 @@ private void InitializeComponent() this.mainPanel.Controls.Add(this.inoutCheckbox); this.mainPanel.Controls.Add(this.AppPathTextBox); this.mainPanel.Controls.Add(this.ipListLabel); - this.mainPanel.Location = new System.Drawing.Point(2, 2); this.mainPanel.Name = "mainPanel"; - this.mainPanel.Size = new System.Drawing.Size(561, 332); - this.mainPanel.TabIndex = 13; this.mainPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.mainPanel_Paint); this.mainPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.mainPanel_MouseDown); // - // button1 - // - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(62)))), ((int)(((byte)(70))))); - this.button1.FlatAppearance.BorderSize = 0; - this.button1.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent; - this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; - this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.button1.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold); - this.button1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); - this.button1.Location = new System.Drawing.Point(301, 303); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(166, 23); - this.button1.TabIndex = 14; - this.button1.Text = "Código no Github"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); + // translationIcon + // + resources.ApplyResources(this.translationIcon, "translationIcon"); + this.translationIcon.Name = "translationIcon"; + this.translationIcon.TabStop = false; + // + // langSelectBox + // + resources.ApplyResources(this.langSelectBox, "langSelectBox"); + this.langSelectBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.langSelectBox.FormattingEnabled = true; + this.langSelectBox.Items.AddRange(new object[] { + resources.GetString("langSelectBox.Items"), + resources.GetString("langSelectBox.Items1")}); + this.langSelectBox.Name = "langSelectBox"; + this.langSelectBox.TabStop = false; + this.langSelectBox.SelectedIndexChanged += new System.EventHandler(this.langSelectBox_SelectedIndexChanged); + // + // githubButton + // + resources.ApplyResources(this.githubButton, "githubButton"); + this.githubButton.BackColor = System.Drawing.Color.Transparent; + this.githubButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(62)))), ((int)(((byte)(70))))); + this.githubButton.FlatAppearance.BorderSize = 0; + this.githubButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent; + this.githubButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.githubButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238))))); + this.githubButton.Name = "githubButton"; + this.githubButton.UseVisualStyleBackColor = false; + this.githubButton.Click += new System.EventHandler(this.button1_Click); // // titleBackgroundPanel // + resources.ApplyResources(this.titleBackgroundPanel, "titleBackgroundPanel"); this.titleBackgroundPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(34)))), ((int)(((byte)(40)))), ((int)(((byte)(49))))); this.titleBackgroundPanel.Controls.Add(this.minimizeButton); this.titleBackgroundPanel.Controls.Add(this.closeButton); this.titleBackgroundPanel.Controls.Add(this.titleLabel); - this.titleBackgroundPanel.Location = new System.Drawing.Point(0, 0); this.titleBackgroundPanel.Name = "titleBackgroundPanel"; - this.titleBackgroundPanel.Size = new System.Drawing.Size(570, 36); - this.titleBackgroundPanel.TabIndex = 13; this.titleBackgroundPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.titleBackgroundPanel_MouseDown); // // minimizeButton // + resources.ApplyResources(this.minimizeButton, "minimizeButton"); this.minimizeButton.FlatAppearance.BorderSize = 0; - this.minimizeButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.minimizeButton.Font = new System.Drawing.Font("Verdana", 15F); this.minimizeButton.ForeColor = System.Drawing.Color.White; - this.minimizeButton.Location = new System.Drawing.Point(435, 0); this.minimizeButton.Name = "minimizeButton"; - this.minimizeButton.Size = new System.Drawing.Size(54, 36); - this.minimizeButton.TabIndex = 7; - this.minimizeButton.Text = "-"; - this.minimizeButton.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.minimizeButton.UseVisualStyleBackColor = true; this.minimizeButton.Click += new System.EventHandler(this.minimizeButton_Click); // // closeButton // + resources.ApplyResources(this.closeButton, "closeButton"); this.closeButton.FlatAppearance.BorderSize = 0; - this.closeButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.closeButton.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.closeButton.ForeColor = System.Drawing.Color.White; - this.closeButton.Location = new System.Drawing.Point(494, 0); this.closeButton.Name = "closeButton"; - this.closeButton.Size = new System.Drawing.Size(54, 37); - this.closeButton.TabIndex = 6; - this.closeButton.Text = "X"; this.closeButton.UseVisualStyleBackColor = true; this.closeButton.Click += new System.EventHandler(this.closeButton_Click); // // Form1 // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(550, 332); this.Controls.Add(this.mainPanel); - this.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Firewall Blocker"; this.Load += new System.EventHandler(this.Form1_Load); this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint_1); this.mainPanel.ResumeLayout(false); this.mainPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.translationIcon)).EndInit(); this.titleBackgroundPanel.ResumeLayout(false); this.titleBackgroundPanel.PerformLayout(); this.ResumeLayout(false); @@ -281,7 +241,9 @@ private void InitializeComponent() private System.Windows.Forms.Panel titleBackgroundPanel; private System.Windows.Forms.Button minimizeButton; private System.Windows.Forms.Button closeButton; - private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button githubButton; + private System.Windows.Forms.ComboBox langSelectBox; + private System.Windows.Forms.PictureBox translationIcon; } } diff --git a/Form1.cs b/Form1.cs index 915be02..5639a3b 100644 --- a/Form1.cs +++ b/Form1.cs @@ -1,9 +1,12 @@ using System; +using System.Configuration; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; +using System.IO; using System.Net; using System.Runtime.InteropServices; +using System.Threading; using System.Windows.Forms; namespace FirewallBlocker @@ -15,15 +18,37 @@ public partial class Form1 : Form private int borderSize = 2; private Color borderColor = Color.FromArgb(57, 62, 70); + private string langCode = ConfigurationManager.AppSettings["langCode"]; public Form1() { - InitializeComponent(); + var configFile = File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); + if (configFile == true) + { + try + { + Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(langCode); + } + catch + { + MessageBox.Show("langCode inválido. Código Ex1", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + Application.Exit(); + System.Environment.Exit(1); + } - this.FormBorderStyle = FormBorderStyle.None; - this.Padding = new Padding(borderSize); - this.mainPanel.BackColor = borderColor; - this.BackColor = borderColor; + InitializeComponent(); + + this.FormBorderStyle = FormBorderStyle.None; + this.Padding = new Padding(borderSize); + this.mainPanel.BackColor = borderColor; + this.BackColor = borderColor; + } + else + { + MessageBox.Show("Arquivo de configuração inválido. Código Ex2", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + Application.Exit(); + System.Environment.Exit(1); + } } private void Form1_Load(object sender, EventArgs e) @@ -58,7 +83,6 @@ private void createRuleButton_Click(object sender, EventArgs e) String Program = AppPathTextBox.Text; String IPs = ipListRichText.Text; bool InOutRule = false; - bool shouldCreate = false; if (inoutCheckbox.Checked) { @@ -67,24 +91,22 @@ private void createRuleButton_Click(object sender, EventArgs e) if (string.IsNullOrEmpty(Program) || Program.Substring(Program.Length - 4) != ".exe") { - MessageBox.Show("Você não selecionou um aplicativo. Inclua o executável terminando em .exe", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(Properties.strings.notValidExe, Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (string.IsNullOrEmpty(ipListRichText.Text)) { - DialogResult dialogResult = MessageBox.Show("Você deixou a lista de IPs em branco. O app irá block TODOS os IPs para o processo selecionado. Deseja prosseguir?", "Aviso!", MessageBoxButtons.YesNo); + DialogResult dialogResult = MessageBox.Show(Properties.strings.emptyIPList, Properties.strings.Alert, MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { - shouldCreate = true; + createRule(Program, IPs, InOutRule); } else if (dialogResult == DialogResult.No) { - shouldCreate = false; } } - - if (shouldCreate == true) + else { createRule(Program, IPs, InOutRule); } @@ -116,7 +138,7 @@ private void createRule(String App, String IPs, bool InOutRule) } else { - MessageBox.Show($"Um dos IPs é inválido: {line}", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show($"{Properties.strings.invalidIP} {line}", Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); ipIsOk = false; break; } @@ -127,7 +149,7 @@ private void createRule(String App, String IPs, bool InOutRule) block = block.Remove(block.Length - 1); var cmdCommand = "netsh advfirewall firewall add rule name=\"" + name + "\" ^ dir =in interface=any action = block remoteip=\"" + block + "\"" + " program=\"" + program + "\""; System.Diagnostics.Process.Start("CMD.exe", "/c" + cmdCommand); - MessageBox.Show("Regra criada", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(Properties.strings.ruleCreated, Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); } } else @@ -136,7 +158,7 @@ private void createRule(String App, String IPs, bool InOutRule) { var cmdCommand = "netsh advfirewall firewall add rule name=\"" + name + "\" ^ dir =in interface=any action = block program=\"" + program + "\""; System.Diagnostics.Process.Start("CMD.exe", "/c" + cmdCommand); - MessageBox.Show("Regra criada", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(Properties.strings.ruleCreated, Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -155,7 +177,7 @@ private void createRule(String App, String IPs, bool InOutRule) } else { - MessageBox.Show($"Um dos IPs é inválido: {line}", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show($"{Properties.strings.invalidIP} {line}", Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); ipIsOk = false; break; } @@ -168,7 +190,7 @@ private void createRule(String App, String IPs, bool InOutRule) var blockIn = "netsh advfirewall firewall add rule name=\"" + name + "\" ^ dir =in interface=any action = block remoteip=\"" + block + "\"" + " program=\"" + program + "\""; System.Diagnostics.Process.Start("CMD.exe", "/c" + blockOut); System.Diagnostics.Process.Start("CMD.exe", "/c" + blockIn); - MessageBox.Show("Regra criada", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(Properties.strings.ruleCreated, Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); } } else @@ -179,7 +201,7 @@ private void createRule(String App, String IPs, bool InOutRule) var blockIn = "netsh advfirewall firewall add rule name=\"" + name + "\" ^ dir =in interface=any action = block program=\"" + program + "\""; System.Diagnostics.Process.Start("CMD.exe", "/c" + blockOut); System.Diagnostics.Process.Start("CMD.exe", "/c" + blockIn); - MessageBox.Show("Regra criada", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(Properties.strings.ruleCreated, Properties.strings.Alert, MessageBoxButtons.OK, MessageBoxIcon.Information); } } @@ -208,7 +230,7 @@ private void closeButton_Click(object sender, EventArgs e) private void appHelpButton_Click_1(object sender, EventArgs e) { - DialogResult dialogResult = MessageBox.Show("Ao continuar irá abrir uma aba no navegador com a página de ajuda. Deseja prosseguir?", "Aviso!", MessageBoxButtons.YesNo); + DialogResult dialogResult = MessageBox.Show(Properties.strings.openHelpWarning, Properties.strings.Alert, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dialogResult == DialogResult.Yes) { Process.Start("https://github.com/kurxz/FirewallBlocker/wiki/Help-Page"); @@ -386,5 +408,64 @@ private void dragArround() ReleaseCapture(); SendMessage(this.Handle, 0x112, 0xf012, 0); } + + private void langSelectBox_SelectedIndexChanged(object sender, EventArgs e) + { + Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + switch (langSelectBox.SelectedIndex) + { + case 0: + + AddUpdateAppSettings("langCode", "pt"); + Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("pt"); + + applyTranslations(); + + break; + + case 1: + + AddUpdateAppSettings("langCode", "en"); + Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en"); + + applyTranslations(); + + break; + } + } + + private void applyTranslations() + { + pathTitleLabel.Text = Properties.strings.pathTitleLabel; + ipListLabel.Text = Properties.strings.ipListLabel; + selectAppButton.Text = Properties.strings.selectAppButton; + createRuleButton.Text = Properties.strings.createRuleButton; + githubButton.Text = Properties.strings.githubButton; + appHelpButton.Text = Properties.strings.appHelpButton; + inoutCheckbox.Text = Properties.strings.inoutCheckbox; + } + + public static void AddUpdateAppSettings(string key, string value) + { + try + { + var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + var settings = configFile.AppSettings.Settings; + if (settings.Count == 0 | settings[key] == null) + { + settings.Add(key, value); + } + else + { + settings[key].Value = value; + } + configFile.Save(ConfigurationSaveMode.Modified); + ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); + } + catch (ConfigurationErrorsException exc) + { + MessageBox.Show("Falha ao salvar Ex3", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } \ No newline at end of file diff --git a/Form1.en.resx b/Form1.en.resx new file mode 100644 index 0000000..06a3c74 --- /dev/null +++ b/Form1.en.resx @@ -0,0 +1,535 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Select + + + Create Rule + + + Help? + + + + 104, 124 + + + 63, 20 + + + IP List + + + 104, 62 + + + 87, 20 + + + App Path + + + 165, 17 + + + Create In and Out Rule? + + + + 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 + + + \ No newline at end of file diff --git a/Form1.pt-BR.resx b/Form1.pt-BR.resx new file mode 100644 index 0000000..7ccbb67 --- /dev/null +++ b/Form1.pt-BR.resx @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/Form1.resx b/Form1.resx index dfbebee..8331e13 100644 --- a/Form1.resx +++ b/Form1.resx @@ -117,10 +117,314 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - + + 550, 332 + + + titleBackgroundPanel + + + + 13 + + + mainPanel + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAA + TgAAAE4Bsc0fMwAAA1FJREFUaEPtl8tqFEEUhhNNjA9gDG5cuIiK0URFFwous5QQF+JC8BGiG1HEuHFr + FARfQo36AiK41YiiKLoR8X4BFyLe/U7VPzXTNd0z0z09mQzMBz/01H9O1emZnlNdA3369GmPfxEa7h1U + d0DDvYPqDmi4d1DdAQ0vP1q/a6iM4mierqEyiqN5uobKKI7m6RoqY2VBXYPomavQ8xmNyF75UOy0K7vK + ZVm9AQVf93UH9spa+VDsBPrjyvY8lLX8sPgxX0PgqqxMiLnhQwOHZS0/LD6EXrgyqkzLrgNvH/rrojxP + 0CrZ3YECjrpSqjxFa2QHGBtBjy2ghiOyuwdFWEu868qpMi87wNh5bwXuoEHZ3YVCptAvq0r8RuFR4voA + qvW/o3HZqeDbnDFTssuHyc/6NQJf0Ca0Eb23gRpOKy0TYhZ8aIIF2eXD5KtR/CjdR/f8ZeA2GlJaKvjD + 6IMFR9jYsMLKh8k3oFe2UgYv0ajCMyFmxkWnM6OwzsACu9A3t1QSe+73KKwhxC26jHQWFdYZWGAcvXVL + JXmHGv5xDWJG0U9LEPbY1D5O5jX9FQvBxJvRa1slA7uJbQpPBX/ORVa5iC75y8CcwsuDSbegRsVXsI40 + obQ68JZcVJWdyB7LWpYUXg5MuBW9cVMnmUcn/WUCu4ntSg8wFvf+R7LMe+CHAuXsCUw0idJaXtiNuU67 + CcvZoRAHn+Pef1yWeSf8UKD9PYFJ7Of95KZLck4hARvzVoIrss2Pe7/9Wcdkmz+msQoWW3xPIDmr+Lr3 + oAp48S+xX5Z5ce+/KSvA2C1vBYrtCSTan8rOsTGZxVcgpnITz1F4meM67v2zsgKMHfJWIP+eQNJuVKj4 + CsTaTZzRR/sc9/7UQz5ja9BHCxD59gSC7UDy1TIj6p75ZpCzVpd2Hff+PLS+JxB8yuckyF18DHPEvT8P + +fYEEmr/iC0/NlkwR9p7f17y7QkkWEts+5s3mCftvT8vnTsnNIKF497/A62TnQkx61F5e0JRWDTu/ddk + NYXYcvaEdmDRuPcflNUUYmd9SqCz54QYFox7v73gtfwYEGt7Qvzq0ZlzQhosFvf+C7Jahhw7K9RS/jkh + CxaLe/+krJYhJ27B5Z4T+vTpWQYG/gOSQLRJJHvl1QAAAABJRU5ErkJggg== + + + + 2 + + + 5 + + + - + + + Segoe UI, 10.25pt + + + X + + + TopCenter + + + 99, 124 + + + 2, 2 + + + + + + 282, 21 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + mainPanel + + + mainPanel + + + langSelectBox + + + Verdana, 20.25pt + + + 54, 37 + + + Aplicativo + + + True + + + + Zoom + + + 11 + + + 54, 36 + + + System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + minimizeButton + + + 2 + + + 310, 172 + + + 4 + + + openFileDialog1 + + + Form1 + + + Português Brasil + + + Flat + + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + English + + + 82, 23 + + + titleBackgroundPanel + + + mainPanel + + + 121, 21 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 211, 17 + + + CenterScreen + + + mainPanel + + + 10 + + + mainPanel + + + ipListLabel + + + Verdana, 8pt + + + 3 + + + 494, 0 + + + 2 + + + Verdana, 12pt + + + 9 + + + 376, 78 + + + Verdana, 8.25pt + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 8 + + + 31, 28 + + + Zoom + + + 0 + + + 227, 32 + + + Lista de IP + + + Firewall Blocker + + + Flat + + + 1 + + + 12, 85 + + + Criar regra de entrada e saída ? + + + 7 + + + Selecionar + + + 100, 20 + + + titleBackgroundPanel + + + 7, 13 + + + 463, 303 + + + 13 + + + mainPanel + + + System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Zoom + + + mainPanel + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Firewall Blocker + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Verdana, 15pt + + + 6 + + + 6 + + + True + + + 570, 36 + + + True + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 166, 23 + + + 380, 39 + AAABAAEA/PYAAAEAIACMUwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAD8AAAA9ggGAAAA8jDqAQAAAAFz @@ -482,4 +786,193 @@ 6PNQ4vCJEu0QJcAnSrRDlACfKNEOUQJ8okQ7RP8fLDeVZsjdIisAAAAASUVORK5CYII= + + 7 + + + translationIcon + + + 11 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9 + + + inoutCheckbox + + + Flat + + + Verdana, 12.75pt + + + mainPanel + + + 1 + + + Verdana, 8.25pt, style=Bold + + + 415, 42 + + + Código no Github + + + 282, 172 + + + ipListRichText + + + 14 + + + 5 + + + 3 + + + 435, 0 + + + createRuleButton + + + closeButton + + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 376, 195 + + + Segoe UI, 11.25pt + + + mainPanel + + + 100, 35 + + + titleBackgroundPanel + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + githubButton + + + appHelpButton + + + AppPathTextBox + + + True + + + mainPanel + + + selectAppButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + titleLabel + + + mainPanel + + + 16 + + + mainPanel + + + 99, 62 + + + pathTitleLabel + + + 4 + + + $this + + + 100, 35 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 301, 303 + + + 7 + + + Criar Regra + + + 15 + + + 150, 0 + + + Verdana, 12.75pt + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 93, 20 + + + Verdana, 8.25pt, style=Bold + + + 0 + + + 1 + + + Flat + + + Ajuda? + + + 561, 332 + + + 12, 147 + + + True + + + 17, 17 + \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index d15b2ad..435b430 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("github.com/kurxz/")] [assembly: AssemblyProduct("https://github.com/kurxz/firewallblocker")] -[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,6 +32,6 @@ // É possível especificar todos os valores ou usar como padrão os Números de Build e da Revisão // usando o "*" como mostrado abaixo: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1")] -[assembly: AssemblyFileVersion("1.1")] -[assembly: NeutralResourcesLanguage("pt-BR")] \ No newline at end of file +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] +[assembly: NeutralResourcesLanguage("pt")] \ No newline at end of file diff --git a/Properties/strings.Designer.cs b/Properties/strings.Designer.cs new file mode 100644 index 0000000..3ab47ab --- /dev/null +++ b/Properties/strings.Designer.cs @@ -0,0 +1,180 @@ +//------------------------------------------------------------------------------ +// +// O código foi gerado por uma ferramenta. +// Versão de Tempo de Execução:4.0.30319.42000 +// +// As alterações ao arquivo poderão causar comportamento incorreto e serão perdidas se +// o código for gerado novamente. +// +//------------------------------------------------------------------------------ + +namespace FirewallBlocker.Properties { + using System; + + + /// + /// Uma classe de recurso de tipo de alta segurança, para pesquisar cadeias de caracteres localizadas etc. + /// + // Essa classe foi gerada automaticamente pela classe StronglyTypedResourceBuilder + // através de uma ferramenta como ResGen ou Visual Studio. + // Para adicionar ou remover um associado, edite o arquivo .ResX e execute ResGen novamente + // com a opção /str, ou recrie o projeto do VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal strings() { + } + + /// + /// Retorna a instância de ResourceManager armazenada em cache usada por essa classe. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FirewallBlocker.Properties.strings", typeof(strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Substitui a propriedade CurrentUICulture do thread atual para todas as + /// pesquisas de recursos que usam essa classe de recurso de tipo de alta segurança. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Alerta!. + /// + internal static string Alert { + get { + return ResourceManager.GetString("Alert", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Ajuda?. + /// + internal static string appHelpButton { + get { + return ResourceManager.GetString("appHelpButton", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Criar Regra. + /// + internal static string createRuleButton { + get { + return ResourceManager.GetString("createRuleButton", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Você deixou a lista de IPs em branco. O app irá block TODOS os IPs para o processo selecionado. Deseja prosseguir?. + /// + internal static string emptyIPList { + get { + return ResourceManager.GetString("emptyIPList", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Código no Github. + /// + internal static string githubButton { + get { + return ResourceManager.GetString("githubButton", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Criar regra de entrada e saída?. + /// + internal static string inoutCheckbox { + get { + return ResourceManager.GetString("inoutCheckbox", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Um dos IPs é inválido. + /// + internal static string invalidIP { + get { + return ResourceManager.GetString("invalidIP", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Lista de IP. + /// + internal static string ipListLabel { + get { + return ResourceManager.GetString("ipListLabel", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Você não selecionou um aplicativo. Inclua o caminho do executável terminando em .exe. + /// + internal static string notValidExe { + get { + return ResourceManager.GetString("notValidExe", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Ao continuar irá abrir uma aba no navegador com a página de ajuda. Deseja prosseguir?. + /// + internal static string openHelpWarning { + get { + return ResourceManager.GetString("openHelpWarning", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Aplicativo. + /// + internal static string pathTitleLabel { + get { + return ResourceManager.GetString("pathTitleLabel", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Regra Criada. + /// + internal static string ruleCreated { + get { + return ResourceManager.GetString("ruleCreated", resourceCulture); + } + } + + /// + /// Consulta uma cadeia de caracteres localizada semelhante a Selecionar. + /// + internal static string selectAppButton { + get { + return ResourceManager.GetString("selectAppButton", resourceCulture); + } + } + } +} diff --git a/Properties/strings.en.resx b/Properties/strings.en.resx new file mode 100644 index 0000000..4ffb691 --- /dev/null +++ b/Properties/strings.en.resx @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Alert + + + Help? + + + Create Rule + + + You left the IP list blank. The app will block ALL IPs for the selected process. Do you want to proceed? + + + Github Code + + + Create In and Out Rule? + + + Create In and Out rule? + + + One of the IPs is invalid + + + IP List + + + You have not selected an application. Include the executable path ending in .exe + + + Continuing will open a tab in the browser with the help page. Do you want to proceed? + + + App Path + + + Rule Created + + + Select + + \ No newline at end of file diff --git a/Properties/strings.resx b/Properties/strings.resx new file mode 100644 index 0000000..a86772e --- /dev/null +++ b/Properties/strings.resx @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Alerta! + + + Ajuda? + + + Criar Regra + + + Você deixou a lista de IPs em branco. O app irá block TODOS os IPs para o processo selecionado. Deseja prosseguir? + + + Código no Github + + + Criar regra de entrada e saída? + + + Um dos IPs é inválido + + + Lista de IP + + + Você não selecionou um aplicativo. Inclua o caminho do executável terminando em .exe + + + Ao continuar irá abrir uma aba no navegador com a página de ajuda. Deseja prosseguir? + + + Aplicativo + + + Regra Criada + + + Selecionar + + \ No newline at end of file diff --git a/app.manifest b/app.manifest index 8ab7c73..80c16dc 100644 --- a/app.manifest +++ b/app.manifest @@ -1,76 +1,70 @@  - + - - + + + + + - - - - - - - - - - - - - - - + \ No newline at end of file