diff --git a/App.config b/App.config index a203aac..eb9e0dc 100644 --- a/App.config +++ b/App.config @@ -20,9 +20,6 @@ - - True - False diff --git a/MainWindow.Designer.cs b/MainWindow.Designer.cs index f21c1db..706cc88 100644 --- a/MainWindow.Designer.cs +++ b/MainWindow.Designer.cs @@ -42,18 +42,21 @@ namespace MeetingClock this.labelBluetoothStateTitle = new System.Windows.Forms.Label(); this.groupBoxApplicationSettings = new System.Windows.Forms.GroupBox(); this.checkBoxEnableBluetooth = new System.Windows.Forms.CheckBox(); - this.checkBoxCheckForUpdates = new System.Windows.Forms.CheckBox(); this.checkBoxStartMinimized = new System.Windows.Forms.CheckBox(); this.checkBoxAutostart = new System.Windows.Forms.CheckBox(); this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components); this.timerEnableBalloon = new System.Windows.Forms.Timer(this.components); this.groupBoxAppointmentSettings = new System.Windows.Forms.GroupBox(); + this.label2 = new System.Windows.Forms.Label(); this.checkBoxIgnoreTentativeAppointments = new System.Windows.Forms.CheckBox(); + this.numericUpDownReminderTime = new System.Windows.Forms.NumericUpDown(); + this.labelStartReminderTitle = new System.Windows.Forms.Label(); this.checkBoxIgnoreOutOfOfficeAppointments = new System.Windows.Forms.CheckBox(); this.checkBoxIgnoreFreeAppointments = new System.Windows.Forms.CheckBox(); this.checkBoxIgnoreCancelledAppointments = new System.Windows.Forms.CheckBox(); this.checkBoxIgnoreAllDayAppointments = new System.Windows.Forms.CheckBox(); this.groupBoxClockSettings = new System.Windows.Forms.GroupBox(); + this.buttonResetDefault = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.numericUpDownScrollWait = new System.Windows.Forms.NumericUpDown(); this.labelScrollWaitTitle = new System.Windows.Forms.Label(); @@ -73,15 +76,12 @@ namespace MeetingClock this.labelTimeIntervalTitle = new System.Windows.Forms.Label(); this.checkBoxDateEnabled = new System.Windows.Forms.CheckBox(); this.timerScrollDemo = new System.Windows.Forms.Timer(this.components); - this.buttonResetDefault = new System.Windows.Forms.Button(); this.timerAdjustClock = new System.Windows.Forms.Timer(this.components); this.timerGetAppointment = new System.Windows.Forms.Timer(this.components); - this.label2 = new System.Windows.Forms.Label(); - this.numericUpDownReminderTime = new System.Windows.Forms.NumericUpDown(); - this.labelStartReminderTitle = new System.Windows.Forms.Label(); this.groupBoxState.SuspendLayout(); this.groupBoxApplicationSettings.SuspendLayout(); this.groupBoxAppointmentSettings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownReminderTime)).BeginInit(); this.groupBoxClockSettings.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownScrollWait)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarScrollSpeed)).BeginInit(); @@ -89,7 +89,6 @@ namespace MeetingClock ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTemperatureInterval)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDateInterval)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeInterval)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownReminderTime)).BeginInit(); this.SuspendLayout(); // // groupBoxState @@ -195,12 +194,11 @@ namespace MeetingClock this.groupBoxApplicationSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBoxApplicationSettings.Controls.Add(this.checkBoxEnableBluetooth); - this.groupBoxApplicationSettings.Controls.Add(this.checkBoxCheckForUpdates); this.groupBoxApplicationSettings.Controls.Add(this.checkBoxStartMinimized); this.groupBoxApplicationSettings.Controls.Add(this.checkBoxAutostart); this.groupBoxApplicationSettings.Location = new System.Drawing.Point(12, 118); this.groupBoxApplicationSettings.Name = "groupBoxApplicationSettings"; - this.groupBoxApplicationSettings.Size = new System.Drawing.Size(560, 116); + this.groupBoxApplicationSettings.Size = new System.Drawing.Size(560, 95); this.groupBoxApplicationSettings.TabIndex = 1; this.groupBoxApplicationSettings.TabStop = false; this.groupBoxApplicationSettings.Text = "Application Settings"; @@ -208,7 +206,7 @@ namespace MeetingClock // checkBoxEnableBluetooth // this.checkBoxEnableBluetooth.AutoSize = true; - this.checkBoxEnableBluetooth.Location = new System.Drawing.Point(6, 91); + this.checkBoxEnableBluetooth.Location = new System.Drawing.Point(6, 66); this.checkBoxEnableBluetooth.Name = "checkBoxEnableBluetooth"; this.checkBoxEnableBluetooth.Size = new System.Drawing.Size(172, 17); this.checkBoxEnableBluetooth.TabIndex = 3; @@ -216,17 +214,6 @@ namespace MeetingClock this.checkBoxEnableBluetooth.UseVisualStyleBackColor = true; this.checkBoxEnableBluetooth.CheckedChanged += new System.EventHandler(this.checkBoxEnableBluetooth_CheckedChanged); // - // checkBoxCheckForUpdates - // - this.checkBoxCheckForUpdates.AutoSize = true; - this.checkBoxCheckForUpdates.Location = new System.Drawing.Point(6, 67); - this.checkBoxCheckForUpdates.Name = "checkBoxCheckForUpdates"; - this.checkBoxCheckForUpdates.Size = new System.Drawing.Size(180, 17); - this.checkBoxCheckForUpdates.TabIndex = 2; - this.checkBoxCheckForUpdates.Text = "Automatically Check for Updates"; - this.checkBoxCheckForUpdates.UseVisualStyleBackColor = true; - this.checkBoxCheckForUpdates.CheckedChanged += new System.EventHandler(this.checkBoxCheckForUpdates_CheckedChanged); - // // checkBoxStartMinimized // this.checkBoxStartMinimized.AutoSize = true; @@ -277,13 +264,22 @@ namespace MeetingClock this.groupBoxAppointmentSettings.Controls.Add(this.checkBoxIgnoreFreeAppointments); this.groupBoxAppointmentSettings.Controls.Add(this.checkBoxIgnoreCancelledAppointments); this.groupBoxAppointmentSettings.Controls.Add(this.checkBoxIgnoreAllDayAppointments); - this.groupBoxAppointmentSettings.Location = new System.Drawing.Point(12, 241); + this.groupBoxAppointmentSettings.Location = new System.Drawing.Point(12, 219); this.groupBoxAppointmentSettings.Name = "groupBoxAppointmentSettings"; this.groupBoxAppointmentSettings.Size = new System.Drawing.Size(560, 166); this.groupBoxAppointmentSettings.TabIndex = 2; this.groupBoxAppointmentSettings.TabStop = false; this.groupBoxAppointmentSettings.Text = "Appointment Settings"; // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(227, 142); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(188, 13); + this.label2.TabIndex = 22; + this.label2.Text = "Minutes Before the Appointment Starts"; + // // checkBoxIgnoreTentativeAppointments // this.checkBoxIgnoreTentativeAppointments.AutoSize = true; @@ -295,6 +291,38 @@ namespace MeetingClock this.checkBoxIgnoreTentativeAppointments.UseVisualStyleBackColor = true; this.checkBoxIgnoreTentativeAppointments.CheckedChanged += new System.EventHandler(this.checkBoxIgnoreTentativeAppointments_CheckedChanged); // + // numericUpDownReminderTime + // + this.numericUpDownReminderTime.Location = new System.Drawing.Point(162, 138); + this.numericUpDownReminderTime.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.numericUpDownReminderTime.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownReminderTime.Name = "numericUpDownReminderTime"; + this.numericUpDownReminderTime.Size = new System.Drawing.Size(63, 20); + this.numericUpDownReminderTime.TabIndex = 21; + this.numericUpDownReminderTime.Value = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDownReminderTime.ValueChanged += new System.EventHandler(this.numericUpDownReminderTime_ValueChanged); + // + // labelStartReminderTitle + // + this.labelStartReminderTitle.AutoSize = true; + this.labelStartReminderTitle.Location = new System.Drawing.Point(6, 142); + this.labelStartReminderTitle.Name = "labelStartReminderTitle"; + this.labelStartReminderTitle.Size = new System.Drawing.Size(149, 13); + this.labelStartReminderTitle.TabIndex = 20; + this.labelStartReminderTitle.Text = "Show Appointment Reminders"; + // // checkBoxIgnoreOutOfOfficeAppointments // this.checkBoxIgnoreOutOfOfficeAppointments.AutoSize = true; @@ -341,8 +369,7 @@ namespace MeetingClock // // groupBoxClockSettings // - this.groupBoxClockSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) + this.groupBoxClockSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBoxClockSettings.Controls.Add(this.buttonResetDefault); this.groupBoxClockSettings.Controls.Add(this.label1); @@ -364,13 +391,24 @@ namespace MeetingClock this.groupBoxClockSettings.Controls.Add(this.labelTimeIntervalTitle); this.groupBoxClockSettings.Controls.Add(this.checkBoxDateEnabled); this.groupBoxClockSettings.Enabled = false; - this.groupBoxClockSettings.Location = new System.Drawing.Point(12, 413); + this.groupBoxClockSettings.Location = new System.Drawing.Point(12, 391); this.groupBoxClockSettings.Name = "groupBoxClockSettings"; this.groupBoxClockSettings.Size = new System.Drawing.Size(560, 200); this.groupBoxClockSettings.TabIndex = 3; this.groupBoxClockSettings.TabStop = false; this.groupBoxClockSettings.Text = "Clock Settings"; // + // buttonResetDefault + // + this.buttonResetDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonResetDefault.Location = new System.Drawing.Point(392, 18); + this.buttonResetDefault.Name = "buttonResetDefault"; + this.buttonResetDefault.Size = new System.Drawing.Size(162, 43); + this.buttonResetDefault.TabIndex = 19; + this.buttonResetDefault.Text = "Reset All to Default"; + this.buttonResetDefault.UseVisualStyleBackColor = true; + this.buttonResetDefault.Click += new System.EventHandler(this.buttonResetDefault_Click); + // // label1 // this.label1.AutoSize = true; @@ -598,17 +636,6 @@ namespace MeetingClock this.timerScrollDemo.Interval = 10000; this.timerScrollDemo.Tick += new System.EventHandler(this.timerScrollDemo_Tick); // - // buttonResetDefault - // - this.buttonResetDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonResetDefault.Location = new System.Drawing.Point(392, 18); - this.buttonResetDefault.Name = "buttonResetDefault"; - this.buttonResetDefault.Size = new System.Drawing.Size(162, 43); - this.buttonResetDefault.TabIndex = 19; - this.buttonResetDefault.Text = "Reset All to Default"; - this.buttonResetDefault.UseVisualStyleBackColor = true; - this.buttonResetDefault.Click += new System.EventHandler(this.buttonResetDefault_Click); - // // timerAdjustClock // this.timerAdjustClock.Enabled = true; @@ -621,59 +648,18 @@ namespace MeetingClock this.timerGetAppointment.Interval = 60000; this.timerGetAppointment.Tick += new System.EventHandler(this.timerGetAppointment_Tick); // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(227, 142); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(188, 13); - this.label2.TabIndex = 22; - this.label2.Text = "Minutes Before the Appointment Starts"; - // - // numericUpDownReminderTime - // - this.numericUpDownReminderTime.Location = new System.Drawing.Point(162, 138); - this.numericUpDownReminderTime.Maximum = new decimal(new int[] { - 60, - 0, - 0, - 0}); - this.numericUpDownReminderTime.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDownReminderTime.Name = "numericUpDownReminderTime"; - this.numericUpDownReminderTime.Size = new System.Drawing.Size(63, 20); - this.numericUpDownReminderTime.TabIndex = 21; - this.numericUpDownReminderTime.Value = new decimal(new int[] { - 10, - 0, - 0, - 0}); - this.numericUpDownReminderTime.ValueChanged += new System.EventHandler(this.numericUpDownReminderTime_ValueChanged); - // - // labelStartReminderTitle - // - this.labelStartReminderTitle.AutoSize = true; - this.labelStartReminderTitle.Location = new System.Drawing.Point(6, 142); - this.labelStartReminderTitle.Name = "labelStartReminderTitle"; - this.labelStartReminderTitle.Size = new System.Drawing.Size(149, 13); - this.labelStartReminderTitle.TabIndex = 20; - this.labelStartReminderTitle.Text = "Show Appointment Reminders"; - // // MainWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(584, 641); + this.ClientSize = new System.Drawing.Size(584, 606); this.Controls.Add(this.groupBoxClockSettings); this.Controls.Add(this.groupBoxAppointmentSettings); this.Controls.Add(this.groupBoxApplicationSettings); this.Controls.Add(this.groupBoxState); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximumSize = new System.Drawing.Size(800, 800); - this.MinimumSize = new System.Drawing.Size(600, 680); + this.MinimumSize = new System.Drawing.Size(600, 645); this.Name = "MainWindow"; this.Text = "Meeting Clock"; this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainWindow_FormClosed); @@ -685,6 +671,7 @@ namespace MeetingClock this.groupBoxApplicationSettings.PerformLayout(); this.groupBoxAppointmentSettings.ResumeLayout(false); this.groupBoxAppointmentSettings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownReminderTime)).EndInit(); this.groupBoxClockSettings.ResumeLayout(false); this.groupBoxClockSettings.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownScrollWait)).EndInit(); @@ -693,7 +680,6 @@ namespace MeetingClock ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTemperatureInterval)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDateInterval)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeInterval)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownReminderTime)).EndInit(); this.ResumeLayout(false); } @@ -711,7 +697,6 @@ namespace MeetingClock private System.Windows.Forms.Button buttonWebsite; private System.Windows.Forms.GroupBox groupBoxApplicationSettings; private System.Windows.Forms.CheckBox checkBoxEnableBluetooth; - private System.Windows.Forms.CheckBox checkBoxCheckForUpdates; private System.Windows.Forms.CheckBox checkBoxStartMinimized; private System.Windows.Forms.CheckBox checkBoxAutostart; private System.Windows.Forms.NotifyIcon notifyIcon; diff --git a/MainWindow.cs b/MainWindow.cs index ea0c528..3c072b8 100644 --- a/MainWindow.cs +++ b/MainWindow.cs @@ -10,7 +10,6 @@ namespace MeetingClock public partial class MainWindow : Form { private readonly string LINK_URL = "https://zechert.net/meeting-clock"; - private readonly string LINK_URL_UPDATE = "https://zechert.net/meeting-clock/update.txt"; private BluetoothManager bluetoothManager; private MeetingClockManager meetingClockManager; @@ -33,7 +32,6 @@ namespace MeetingClock this.clockSettingsCanBeChanged = false; this.checkBoxAutostart.Checked = this.settings.Autostart; this.checkBoxStartMinimized.Checked = this.settings.StartMinimized; - this.checkBoxCheckForUpdates.Checked = this.settings.CheckForUpdates; this.checkBoxEnableBluetooth.Checked = this.settings.StartBluetooth; this.checkBoxIgnoreAllDayAppointments.Checked = this.settings.IgnoreAllDayAppointments; this.checkBoxIgnoreCancelledAppointments.Checked = this.settings.IgnoreCancelledAppointments; @@ -47,11 +45,6 @@ namespace MeetingClock this.WindowState = FormWindowState.Minimized; } - if (this.settings.CheckForUpdates) - { - this.CheckForUpdate(); - } - this.bluetoothManager = new BluetoothManager(); this.bluetoothManager.StateChanged += BluetoothManager_StateChanged; @@ -265,36 +258,6 @@ namespace MeetingClock this.notifyIcon.Icon = newIcon; } - private async void CheckForUpdate() - { - HttpResponseMessage response = await this.client.GetAsync(LINK_URL_UPDATE); - if (response.StatusCode == System.Net.HttpStatusCode.OK) - { - string responseBody = await response.Content.ReadAsStringAsync(); - string[] versions = responseBody.Split('\n'); - Debug.WriteLine(String.Format("Versions available:\n{0}", responseBody)); - - if (versions.Length >= 2) - { - string winVersion = versions[0].Trim(); - this.clockVersion = versions[1].Trim(); - - if (winVersion != Properties.Settings.Default.Version) - { - DialogResult result = MessageBox.Show("A new version of this software is available.\n\n" + - "Do you want to open " + LINK_URL + " to download the new version now?", "New Version Available", MessageBoxButtons.YesNo, MessageBoxIcon.Information); - if (result == DialogResult.Yes) - { - System.Diagnostics.Process.Start(LINK_URL); - } - } - } - } else - { - Debug.WriteLine(String.Format("Check for update failed: {0}", response.StatusCode)); - } - } - private void MainWindow_FormClosed(object sender, FormClosedEventArgs e) { Debug.WriteLine(String.Format("Form was closed because of {0}", e.CloseReason.ToString())); @@ -312,11 +275,6 @@ namespace MeetingClock this.settings.StartMinimized = this.checkBoxStartMinimized.Checked; } - private void checkBoxCheckForUpdates_CheckedChanged(object sender, EventArgs e) - { - this.settings.CheckForUpdates = this.checkBoxCheckForUpdates.Checked; - } - private void checkBoxEnableBluetooth_CheckedChanged(object sender, EventArgs e) { this.settings.StartBluetooth = this.checkBoxEnableBluetooth.Checked; diff --git a/Meeting-Clock.csproj b/Meeting-Clock.csproj index 4aa8736..f28f5b4 100644 --- a/Meeting-Clock.csproj +++ b/Meeting-Clock.csproj @@ -14,32 +14,37 @@ true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + true + publish\release\x64\ + true + Web + true + Background + 7 + Days + false + false + false + https://www.zechert.net/meeting-clock/release/x64/ + https://www.zechert.net/meeting-clock + https://www.zechert.net/meeting-clock + en + Meeting-Clock + Frank Zechert + publish.htm + false + 0 + 1.0.0.0 + false + true + true + true MeetingClock.MeetingClock - - + icons\icon-neutral.ico true @@ -61,25 +66,31 @@ prompt true - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - 7.3 - prompt - true + + 56FE5054BD39BE64B22752DF38DA4743A6D5E324 - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - 7.3 - prompt - true + + + + + + true + + + false + + + false + + + + + + + Properties\app.manifest + + + Custom @@ -123,6 +134,7 @@ Resources.resx True + SettingsSingleFileGenerator Settings.Designer.cs @@ -159,5 +171,20 @@ + + + False + Microsoft .NET Framework 4.7.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + \ No newline at end of file diff --git a/Meeting-Clock.csproj.user b/Meeting-Clock.csproj.user new file mode 100644 index 0000000..068576b --- /dev/null +++ b/Meeting-Clock.csproj.user @@ -0,0 +1,16 @@ + + + + publish\release\x64\|publish\release\x86\ + https://www.zechert.net/meeting-clock/release/x64/|https://www.zechert.net/meeting-clock/release/x86/ + https://www.zechert.net/meeting-clock + + + https://www.zechert.net/meeting-clock + en-US + false + + + false + + \ No newline at end of file diff --git a/Meeting-Clock.sln b/Meeting-Clock.sln index c7a42df..c9d3e3d 100644 --- a/Meeting-Clock.sln +++ b/Meeting-Clock.sln @@ -7,26 +7,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Meeting-Clock", "Meeting-Cl EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|Any CPU.Build.0 = Debug|Any CPU {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|x64.ActiveCfg = Debug|x64 {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|x64.Build.0 = Debug|x64 - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|x86.ActiveCfg = Debug|x86 - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Debug|x86.Build.0 = Debug|x86 - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|Any CPU.ActiveCfg = Release|Any CPU - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|Any CPU.Build.0 = Release|Any CPU {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|x64.ActiveCfg = Release|x64 {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|x64.Build.0 = Release|x64 - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|x86.ActiveCfg = Release|x86 - {97CA08CF-C8F9-4D6C-8C15-77695A995169}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MeetingClockManager.cs b/MeetingClockManager.cs index 14d0956..1a2339f 100644 --- a/MeetingClockManager.cs +++ b/MeetingClockManager.cs @@ -77,8 +77,8 @@ namespace MeetingClock this.serialPort.DataBits = 8; this.serialPort.StopBits = StopBits.One; this.serialPort.Encoding = Encoding.GetEncoding("iso8859-1"); - this.serialPort.ReadTimeout = 1000; - this.serialPort.WriteTimeout = 1000; + this.serialPort.ReadTimeout = 5000; + this.serialPort.WriteTimeout = 5000; } } diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index cf6eef9..dd76ba5 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -32,18 +32,6 @@ namespace MeetingClock.Properties { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool CheckForUpdates { - get { - return ((bool)(this["CheckForUpdates"])); - } - set { - this["CheckForUpdates"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("False")] diff --git a/Properties/Settings.settings b/Properties/Settings.settings index 46d7fbd..b196c4f 100644 --- a/Properties/Settings.settings +++ b/Properties/Settings.settings @@ -5,9 +5,6 @@ v. 1.0.0 - - True - False diff --git a/Properties/app.manifest b/Properties/app.manifest new file mode 100644 index 0000000..60eec77 --- /dev/null +++ b/Properties/app.manifest @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Settings.cs b/Settings.cs index 5f4b574..0e941bd 100644 --- a/Settings.cs +++ b/Settings.cs @@ -54,19 +54,6 @@ namespace MeetingClock } } - public bool CheckForUpdates - { - get - { - return Properties.Settings.Default.CheckForUpdates; - } - set - { - Properties.Settings.Default.CheckForUpdates = value; - Properties.Settings.Default.Save(); - } - } - public bool StartBluetooth { get diff --git a/certificate.txt b/certificate.txt new file mode 100644 index 0000000..fb95937 --- /dev/null +++ b/certificate.txt @@ -0,0 +1,8 @@ +cd codesign +New-SelfSignedCertificate -DnsName frank@zechert.net -Type CodeSigning -CertStoreLocation "Cert:\CurrentUser\My" +Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing_frank_zechert.crt + + + +Import-Certificate -FilePath code_signing_frank_zechert.crt -Cert Cert:\CurrentUser\TrustedPublisher +Import-Certificate -FilePath code_signing_frank_zechert.crt -Cert Cert:\CurrentUser\Root \ No newline at end of file diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.application b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.application new file mode 100644 index 0000000..8fae71b --- /dev/null +++ b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.application @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + S0d0e2SPjw7wP/I9hOIxqRRTtU3+lPFQAPQ2glVlxJk= + + + +x/InnQyS4N+xbg5skmw/8wf2ikO7WXrsVcuCHf1lQL8=c/H/VkpAD8EXjiHRE8PBO+0KJs+6OQuE2O+auV1cl84LwMbvpq+aY8Yx6/0d8HXh2/IGhz0W2YcLtzfpb6AC4ewOXMLpX8S4R8Hj4VnswURMYBZll0h2Rax7FMT3kzEIeROw7xC5DeuHKrlCfFG7wN385e1mB226BWWxMdTytQtf9acv3dSNR5t1h//bsZwR9XyILOdboqt7OnNR3V6RoftDDGboVVRcRis6xiDi0O/M4J799wtkibm+yl+QDhU6siUQvFHYLXAdBpW8dnxw52pFCKX24sX2cmVmPJfUyYtIBCOWgi3PwZEqjLg0iqC86sWryWmeenH19l6KGAYsTQ==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABCN=frank@zechert.netHRVXV1f2dTzF6TBDbgjLaarmuXLYj1aWjxNRfihxLVw=piICvcB7Lv6NxbZmFCD+4NPJq7uaq6gfQM7UHtKdZ1pFJnfU9Tj948LgHt5NIremDU7z/uFlo948tP6U50CpT3K0qvnnbyxEUEo9m0nIilCJ/xQcoAu4omsENrDxSdSSbi30032zvgn7FzmbFteFoXguX2S6OPChXrJ5pVHx06hVEj3EsY/fQqX/nTzOdRNNDSgjdWLngj/d9XBIjhimrmVyT9D7GMBhBPSXpqnnK8RZei7GM3UY6rMSgAkqA9oZJwHglXPvEhESknRalmphRCsHtNeQFxzzLfnCDh0bCKWCIRFrsEMvp+ZDGDE51K4YTMjpfrYWrGUlXTAJkkT08A==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABMIIDJjCCAg6gAwIBAgIQQ/CGq8+PG7pDuyTJpPVJaDANBgkqhkiG9w0BAQsFADAcMRowGAYDVQQDDBFmcmFua0B6ZWNoZXJ0Lm5ldDAeFw0yMDEyMTgwMjU1MjVaFw0yMTEyMTgwMzE1MjVaMBwxGjAYBgNVBAMMEWZyYW5rQHplY2hlcnQubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQIDAQABo2QwYjAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHAYDVR0RBBUwE4IRZnJhbmtAemVjaGVydC5uZXQwHQYDVR0OBBYEFCUfwYGbXFNtcuWXGxH94RnqvBoXMA0GCSqGSIb3DQEBCwUAA4IBAQAl5Bu37BGhmElxYJzusWgh8LfVY5hcO+U/eHhZCmLBM5FkfouhaHFhvRMf72AHtLRZ+8+crfIjIYjcSid4DmRn2egaeuuBmTdwN5EKa7Ss//rhu+TqWGfkRxWDqsOQUjouXGt9m9GinxnADG68PnumOqEzc2d3vkX6sqCo92ko/7Gr6mafvppbUpjaPA8NIabiyeNI84igPGlwET+uOKg2ajyPR0RlgKNSofXup/H660AfErJcpWkuRiUWe8ATSCx4WDMflWcFILvBqKJZTPI018mwLsQNXbEe5kfMHdXolsP3fATjAJTYP+R7DSC1U/nSVGyV9D49TMBCLy9Q9oHT \ No newline at end of file diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe new file mode 100644 index 0000000..72560b9 Binary files /dev/null and b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe differ diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.config b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.config new file mode 100644 index 0000000..eb9e0dc --- /dev/null +++ b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.config @@ -0,0 +1,49 @@ + + + + +
+ + +
+ + + + + + + + + v. 1.0.0 + + + + + + + False + + + False + + + True + + + True + + + False + + + False + + + False + + + 10 + + + + \ No newline at end of file diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.manifest b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.manifest new file mode 100644 index 0000000..507b5a3 --- /dev/null +++ b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/Meeting Clock.exe.manifest @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + kfghGRCWEkh3gmiwjsePR3juLY6ChBFmVld4j4cwZA0= + + + + + + + + + + mg8MWNLjsfczc5OqXFl+0Pa/c5LhW6xoEF3n62NW97o= + + + + + + + + + CLQoqlmtvsajAsTmP2lUEkzbptIyvxOJBQjAGcu01S0= + + + + + + + + + u+BS4Dii1y71Jx/EUpKYZ4LhMYOq1OtnyURfcQeC2+k= + + + + + + + + + + + + + + + + + +PWHFP92LIIhAn6SRs7vmecKxdeEGF/1+ZyWw+PVxmsc=Qw0Q/PM/EPQYSIN167zFYvcNGkjIbrWkXIgtMpFSgJX/xDeGuWu932GMZms+Zi/8zTid7NMFxS6l0arSay/lMmcMx32rC3xIxeusDJ9bpqXKH06xBPiPnVgxECXxiNLff9Pndei8oCns1zO15HXFIKllSfaYElZE3oX8zunYJMVABm4RWYVVz+TnJtntRNZXe8PpBXIiFPwPHJhkeAjAOqWikMI98q1we8WJFmaMB+jF5Vt6gNIaVzDkG41dq8+yW7GjbnWOL1dWt6ZDoICkGz+38IJ1ImD55lj6XCG8OnC0bu2XaDRFA3fTl7LfujYYHSDwsGmb5fZd6AkRDpDnVg==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABCN=frank@zechert.net5URxICSHsjIQTASb8lWlPdJn2LSbCZK5N7hfAci6wkw=DDOYbhJzmVGZXczmIwG/f9h6W8VLkyhAWOIUwgDBbI/AlGJDymQAZe/ljYbnb7kW2pGHPrJw0hWZb6wRgELMTvPzMR5JMgKndRM9DxNk/xZ8Q9qvxiPscfuxokQW2VqfdEsgmV3I1wqSj+Bg1jXydh9loIN6F/TSUHORSpAWt/riVPk47EGyWSU64c80tkjpuGwhjVodL8Vob9hs63e0kXBURjZQsGgJ2+fdQyj+OocssiXxA7BXAI8kqwvjsgbyNscsPioK4cmkO59EjrwYhdWt/uTSTEFFBWPeldq+ZYMgFyLGnA4o82197dedtA3qTkp8dMypAOTotj4UpX+2uQ==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABMIIDJjCCAg6gAwIBAgIQQ/CGq8+PG7pDuyTJpPVJaDANBgkqhkiG9w0BAQsFADAcMRowGAYDVQQDDBFmcmFua0B6ZWNoZXJ0Lm5ldDAeFw0yMDEyMTgwMjU1MjVaFw0yMTEyMTgwMzE1MjVaMBwxGjAYBgNVBAMMEWZyYW5rQHplY2hlcnQubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQIDAQABo2QwYjAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHAYDVR0RBBUwE4IRZnJhbmtAemVjaGVydC5uZXQwHQYDVR0OBBYEFCUfwYGbXFNtcuWXGxH94RnqvBoXMA0GCSqGSIb3DQEBCwUAA4IBAQAl5Bu37BGhmElxYJzusWgh8LfVY5hcO+U/eHhZCmLBM5FkfouhaHFhvRMf72AHtLRZ+8+crfIjIYjcSid4DmRn2egaeuuBmTdwN5EKa7Ss//rhu+TqWGfkRxWDqsOQUjouXGt9m9GinxnADG68PnumOqEzc2d3vkX6sqCo92ko/7Gr6mafvppbUpjaPA8NIabiyeNI84igPGlwET+uOKg2ajyPR0RlgKNSofXup/H660AfErJcpWkuRiUWe8ATSCx4WDMflWcFILvBqKJZTPI018mwLsQNXbEe5kfMHdXolsP3fATjAJTYP+R7DSC1U/nSVGyV9D49TMBCLy9Q9oHT \ No newline at end of file diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/certificate.txt b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/certificate.txt new file mode 100644 index 0000000..fb95937 --- /dev/null +++ b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/certificate.txt @@ -0,0 +1,8 @@ +cd codesign +New-SelfSignedCertificate -DnsName frank@zechert.net -Type CodeSigning -CertStoreLocation "Cert:\CurrentUser\My" +Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing_frank_zechert.crt + + + +Import-Certificate -FilePath code_signing_frank_zechert.crt -Cert Cert:\CurrentUser\TrustedPublisher +Import-Certificate -FilePath code_signing_frank_zechert.crt -Cert Cert:\CurrentUser\Root \ No newline at end of file diff --git a/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/icons/icon-neutral.ico b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/icons/icon-neutral.ico new file mode 100644 index 0000000..e8d2ff2 Binary files /dev/null and b/publish/release/x64/Application Files/Meeting Clock_1_0_0_0/icons/icon-neutral.ico differ diff --git a/publish/release/x64/Meeting Clock.application b/publish/release/x64/Meeting Clock.application new file mode 100644 index 0000000..8fae71b --- /dev/null +++ b/publish/release/x64/Meeting Clock.application @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + S0d0e2SPjw7wP/I9hOIxqRRTtU3+lPFQAPQ2glVlxJk= + + + +x/InnQyS4N+xbg5skmw/8wf2ikO7WXrsVcuCHf1lQL8=c/H/VkpAD8EXjiHRE8PBO+0KJs+6OQuE2O+auV1cl84LwMbvpq+aY8Yx6/0d8HXh2/IGhz0W2YcLtzfpb6AC4ewOXMLpX8S4R8Hj4VnswURMYBZll0h2Rax7FMT3kzEIeROw7xC5DeuHKrlCfFG7wN385e1mB226BWWxMdTytQtf9acv3dSNR5t1h//bsZwR9XyILOdboqt7OnNR3V6RoftDDGboVVRcRis6xiDi0O/M4J799wtkibm+yl+QDhU6siUQvFHYLXAdBpW8dnxw52pFCKX24sX2cmVmPJfUyYtIBCOWgi3PwZEqjLg0iqC86sWryWmeenH19l6KGAYsTQ==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABCN=frank@zechert.netHRVXV1f2dTzF6TBDbgjLaarmuXLYj1aWjxNRfihxLVw=piICvcB7Lv6NxbZmFCD+4NPJq7uaq6gfQM7UHtKdZ1pFJnfU9Tj948LgHt5NIremDU7z/uFlo948tP6U50CpT3K0qvnnbyxEUEo9m0nIilCJ/xQcoAu4omsENrDxSdSSbi30032zvgn7FzmbFteFoXguX2S6OPChXrJ5pVHx06hVEj3EsY/fQqX/nTzOdRNNDSgjdWLngj/d9XBIjhimrmVyT9D7GMBhBPSXpqnnK8RZei7GM3UY6rMSgAkqA9oZJwHglXPvEhESknRalmphRCsHtNeQFxzzLfnCDh0bCKWCIRFrsEMvp+ZDGDE51K4YTMjpfrYWrGUlXTAJkkT08A==0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQ==AQABMIIDJjCCAg6gAwIBAgIQQ/CGq8+PG7pDuyTJpPVJaDANBgkqhkiG9w0BAQsFADAcMRowGAYDVQQDDBFmcmFua0B6ZWNoZXJ0Lm5ldDAeFw0yMDEyMTgwMjU1MjVaFw0yMTEyMTgwMzE1MjVaMBwxGjAYBgNVBAMMEWZyYW5rQHplY2hlcnQubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0o7MrEX10FwagbiRqHXXWsPAt5CpXiFhox84l8UOmQKgvPSyhpQE4SSMtlxuKRX50UzbTdu9EAloeE2vlA8RiQiU0ZD/+EAc224Gx6/trHDQdYy4k4brKnxBWyp8ahoyHiFcQpeVMRiDcjvhe+iuVJ2tqLqKyOb5F5KMKSapk2RM+imaaNKsDt+AgbLvBiqTo44hImKXzxVT4zWpf9+Q3CrSPgTcTmlBtS2rkO/WPbzi9HUIaCZA3xYtFXUwPLoB/R8zpBbjo+PSmKmPxDAZp9GXsO1QUYkywOb+xILA0ZxIh7QKKhhldZcDNu5SyzmoRbACjwCYYz1wKoY0rwEtHQIDAQABo2QwYjAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHAYDVR0RBBUwE4IRZnJhbmtAemVjaGVydC5uZXQwHQYDVR0OBBYEFCUfwYGbXFNtcuWXGxH94RnqvBoXMA0GCSqGSIb3DQEBCwUAA4IBAQAl5Bu37BGhmElxYJzusWgh8LfVY5hcO+U/eHhZCmLBM5FkfouhaHFhvRMf72AHtLRZ+8+crfIjIYjcSid4DmRn2egaeuuBmTdwN5EKa7Ss//rhu+TqWGfkRxWDqsOQUjouXGt9m9GinxnADG68PnumOqEzc2d3vkX6sqCo92ko/7Gr6mafvppbUpjaPA8NIabiyeNI84igPGlwET+uOKg2ajyPR0RlgKNSofXup/H660AfErJcpWkuRiUWe8ATSCx4WDMflWcFILvBqKJZTPI018mwLsQNXbEe5kfMHdXolsP3fATjAJTYP+R7DSC1U/nSVGyV9D49TMBCLy9Q9oHT \ No newline at end of file diff --git a/publish/release/x64/setup.exe b/publish/release/x64/setup.exe new file mode 100644 index 0000000..4576be4 Binary files /dev/null and b/publish/release/x64/setup.exe differ