Merge pull request #150 from gnh1201/envform
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled

Add the user variables editor and update related files
This commit is contained in:
Namhyeon Go 2024-10-04 15:11:17 +09:00 committed by GitHub
commit 2e334ec12e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 957 additions and 1003 deletions

View File

@ -0,0 +1,253 @@
namespace WelsonJS.Launcher
{
partial class EnvForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.checkDeleteVariable = new System.Windows.Forms.CheckBox();
this.btnOk = new System.Windows.Forms.Button();
this.btnOpenFile = new System.Windows.Forms.Button();
this.btnOpenDirectory = new System.Windows.Forms.Button();
this.textSetValue = new System.Windows.Forms.TextBox();
this.textSetName = new System.Windows.Forms.TextBox();
this.labelSetValue = new System.Windows.Forms.Label();
this.labelSetName = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.btnExport = new System.Windows.Forms.Button();
this.btnImport = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.listView1);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(419, 170);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "User-defined variables";
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2});
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(16, 26);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(386, 129);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.SelectedIndexChanged += new System.EventHandler(this.ListView1_SelectedIndexChanged);
//
// columnHeader1
//
this.columnHeader1.Text = "Name";
//
// columnHeader2
//
this.columnHeader2.Text = "Value";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.checkDeleteVariable);
this.groupBox2.Controls.Add(this.btnOk);
this.groupBox2.Controls.Add(this.btnOpenFile);
this.groupBox2.Controls.Add(this.btnOpenDirectory);
this.groupBox2.Controls.Add(this.textSetValue);
this.groupBox2.Controls.Add(this.textSetName);
this.groupBox2.Controls.Add(this.labelSetValue);
this.groupBox2.Controls.Add(this.labelSetName);
this.groupBox2.Location = new System.Drawing.Point(12, 188);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(419, 229);
this.groupBox2.TabIndex = 1;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Update the user-defined variable";
//
// checkDeleteVariable
//
this.checkDeleteVariable.AutoSize = true;
this.checkDeleteVariable.Location = new System.Drawing.Point(31, 88);
this.checkDeleteVariable.Name = "checkDeleteVariable";
this.checkDeleteVariable.Size = new System.Drawing.Size(131, 16);
this.checkDeleteVariable.TabIndex = 7;
this.checkDeleteVariable.Text = "Delete this variable";
this.checkDeleteVariable.UseVisualStyleBackColor = true;
//
// btnOk
//
this.btnOk.Image = global::WelsonJS.Launcher.Properties.Resources.icon_check_32;
this.btnOk.Location = new System.Drawing.Point(303, 123);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(86, 86);
this.btnOk.TabIndex = 6;
this.btnOk.Text = "Ok";
this.btnOk.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.btnOk.UseVisualStyleBackColor = true;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// btnOpenFile
//
this.btnOpenFile.Image = global::WelsonJS.Launcher.Properties.Resources.icon_file_32;
this.btnOpenFile.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnOpenFile.Location = new System.Drawing.Point(31, 169);
this.btnOpenFile.Name = "btnOpenFile";
this.btnOpenFile.Size = new System.Drawing.Size(201, 40);
this.btnOpenFile.TabIndex = 5;
this.btnOpenFile.Text = "Open the file...";
this.btnOpenFile.UseVisualStyleBackColor = true;
this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click);
//
// btnOpenDirectory
//
this.btnOpenDirectory.Image = global::WelsonJS.Launcher.Properties.Resources.icon_directory_32;
this.btnOpenDirectory.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnOpenDirectory.Location = new System.Drawing.Point(31, 123);
this.btnOpenDirectory.Name = "btnOpenDirectory";
this.btnOpenDirectory.Size = new System.Drawing.Size(201, 40);
this.btnOpenDirectory.TabIndex = 4;
this.btnOpenDirectory.Text = "Open the directory...";
this.btnOpenDirectory.UseVisualStyleBackColor = true;
this.btnOpenDirectory.Click += new System.EventHandler(this.btnOpenDirectory_Click);
//
// textSetValue
//
this.textSetValue.Location = new System.Drawing.Point(98, 55);
this.textSetValue.Name = "textSetValue";
this.textSetValue.Size = new System.Drawing.Size(291, 21);
this.textSetValue.TabIndex = 3;
//
// textSetName
//
this.textSetName.Location = new System.Drawing.Point(98, 28);
this.textSetName.Name = "textSetName";
this.textSetName.Size = new System.Drawing.Size(291, 21);
this.textSetName.TabIndex = 2;
//
// labelSetValue
//
this.labelSetValue.AutoSize = true;
this.labelSetValue.Location = new System.Drawing.Point(29, 59);
this.labelSetValue.Name = "labelSetValue";
this.labelSetValue.Size = new System.Drawing.Size(61, 12);
this.labelSetValue.TabIndex = 1;
this.labelSetValue.Text = "Set value:";
//
// labelSetName
//
this.labelSetName.AutoSize = true;
this.labelSetName.Location = new System.Drawing.Point(29, 31);
this.labelSetName.Name = "labelSetName";
this.labelSetName.Size = new System.Drawing.Size(63, 12);
this.labelSetName.TabIndex = 0;
this.labelSetName.Text = "Set name:";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.btnExport);
this.groupBox3.Controls.Add(this.btnImport);
this.groupBox3.Location = new System.Drawing.Point(12, 423);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(419, 89);
this.groupBox3.TabIndex = 2;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Import and export";
//
// btnExport
//
this.btnExport.Image = global::WelsonJS.Launcher.Properties.Resources.icon_export_32;
this.btnExport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnExport.Location = new System.Drawing.Point(213, 29);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(176, 40);
this.btnExport.TabIndex = 6;
this.btnExport.Text = "Export";
this.btnExport.UseVisualStyleBackColor = true;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// btnImport
//
this.btnImport.Image = global::WelsonJS.Launcher.Properties.Resources.icon_import_32;
this.btnImport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnImport.Location = new System.Drawing.Point(31, 29);
this.btnImport.Name = "btnImport";
this.btnImport.Size = new System.Drawing.Size(176, 40);
this.btnImport.TabIndex = 5;
this.btnImport.Text = "Import";
this.btnImport.UseVisualStyleBackColor = true;
this.btnImport.Click += new System.EventHandler(this.btnImport_Click);
//
// EnvForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(447, 529);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = global::WelsonJS.Launcher.Properties.Resources.favicon;
this.MaximizeBox = false;
this.Name = "EnvForm";
this.Text = "User-defined variables editor";
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox textSetValue;
private System.Windows.Forms.TextBox textSetName;
private System.Windows.Forms.Label labelSetValue;
private System.Windows.Forms.Label labelSetName;
private System.Windows.Forms.Button btnOk;
private System.Windows.Forms.Button btnOpenFile;
private System.Windows.Forms.Button btnOpenDirectory;
private System.Windows.Forms.CheckBox checkDeleteVariable;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Button btnImport;
private System.Windows.Forms.Button btnExport;
}
}

View File

@ -0,0 +1,285 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace WelsonJS.Launcher
{
public partial class EnvForm : Form
{
private Dictionary<string, string> userVariables = new Dictionary<string, string>();
private string tempFilePath;
public EnvForm()
{
InitializeComponent();
InitializeListView();
// Set the variable file path in the temporary folder
tempFilePath = Path.Combine(Path.GetTempPath(), "welsonjs_default.env");
LoadUserVariables(); // Load variables
}
// Initialize ListView
private void InitializeListView()
{
listView1.View = View.Details;
listView1.FullRowSelect = true;
listView1.Columns[0].Width = 150;
listView1.Columns[1].Width = 220;
listView1.SelectedIndexChanged += ListView1_SelectedIndexChanged;
}
// Load user-defined variables from the temporary folder in .env format
private void LoadUserVariables()
{
if (File.Exists(tempFilePath))
{
try
{
string fileContent = File.ReadAllText(tempFilePath);
// Split based on new line characters
string[] keyValuePairs = fileContent.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
userVariables = new Dictionary<string, string>();
foreach (string pair in keyValuePairs)
{
// Split by the first occurrence of '='
int indexOfEquals = pair.IndexOf('=');
if (indexOfEquals != -1)
{
string key = pair.Substring(0, indexOfEquals).Trim();
string value = pair.Substring(indexOfEquals + 1).Trim();
// Remove surrounding quotes if present
if (value.StartsWith("\"") && value.EndsWith("\""))
{
value = value.Substring(1, value.Length - 2); // Remove the first and last character
}
// Unescape double quotes in the value
value = value.Replace("\\\"", "\"");
userVariables[key] = value;
}
else
{
MessageBox.Show($"Error parsing line: '{pair}'.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
catch (Exception ex)
{
MessageBox.Show($"Error loading variable file: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
userVariables = new Dictionary<string, string>();
}
}
else
{
userVariables = new Dictionary<string, string>();
}
UpdateListView();
}
// Update ListView with current variables
private void UpdateListView()
{
listView1.Items.Clear();
foreach (var variable in userVariables)
{
var item = new ListViewItem(variable.Key);
item.SubItems.Add(variable.Value);
listView1.Items.Add(item);
}
}
// Handle ListView selection change
private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
var selectedItem = listView1.SelectedItems[0];
textSetName.Text = selectedItem.Text;
textSetValue.Text = selectedItem.SubItems[1].Text;
checkDeleteVariable.Checked = false;
}
}
// Handle OK button click
private void btnOk_Click(object sender, EventArgs e)
{
var name = textSetName.Text.Trim();
var value = textSetValue.Text.Trim();
if (string.IsNullOrEmpty(name))
{
MessageBox.Show("Please enter a variable name.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (checkDeleteVariable.Checked)
{
if (userVariables.ContainsKey(name))
{
userVariables.Remove(name);
MessageBox.Show("Variable deleted.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Variable not found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
userVariables[name] = value;
MessageBox.Show("Variable saved.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
UpdateListView();
SaveUserVariables(); // Save variables
ClearInputFields();
}
// Save user-defined variables to the temporary folder in .env format
private void SaveUserVariables()
{
try
{
List<string> lines = new List<string>();
foreach (var variable in userVariables)
{
// Escape double quotes in the value
string value = variable.Value.Replace("\"", "\\\"");
// Enclose the value in double quotes if it contains spaces
if (value.Contains(" "))
{
value = $"\"{value}\"";
}
// Create the line in the format: KEY=VALUE
string line = $"{variable.Key}={value}";
lines.Add(line);
}
// Write lines to the file
File.WriteAllLines(tempFilePath, lines);
}
catch (Exception ex)
{
MessageBox.Show($"Error saving variable file: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
// Clear input fields
private void ClearInputFields()
{
textSetName.Clear();
textSetValue.Clear();
checkDeleteVariable.Checked = false;
}
// Handle "Open Directory" button click
private void btnOpenDirectory_Click(object sender, EventArgs e)
{
var folderDialog = new FolderBrowserDialog();
if (folderDialog.ShowDialog() == DialogResult.OK)
{
textSetValue.Text = folderDialog.SelectedPath;
}
}
// Handle "Open File" button click
private void btnOpenFile_Click(object sender, EventArgs e)
{
var fileDialog = new OpenFileDialog();
if (fileDialog.ShowDialog() == DialogResult.OK)
{
textSetName.Text = Path.GetFileName(fileDialog.FileName);
textSetValue.Text = fileDialog.FileName;
}
}
private void btnImport_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Env files (*.env)|*.env|All files (*.*)|*.*";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
// Load variables from the selected file
string filePath = openFileDialog.FileName;
string[] lines = File.ReadAllLines(filePath);
foreach (string line in lines)
{
// Skip empty lines
if (string.IsNullOrWhiteSpace(line)) continue;
int indexOfEquals = line.IndexOf('=');
if (indexOfEquals != -1)
{
string key = line.Substring(0, indexOfEquals).Trim();
string value = line.Substring(indexOfEquals + 1).Trim();
// Remove surrounding quotes if present
if (value.StartsWith("\"") && value.EndsWith("\""))
{
value = value.Substring(1, value.Length - 2);
}
// Unescape double quotes in the value
value = value.Replace("\\\"", "\"");
// Update or add the key-value pair
userVariables[key] = value;
}
}
// Save the updated variables to the file
SaveUserVariables();
UpdateListView(); // Refresh the display
}
catch (Exception ex)
{
MessageBox.Show($"Error importing variable file: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void btnExport_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Env files (*.env)|*.env|All files (*.*)|*.*";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
// Save the current variables to the selected file
string filePath = saveFileDialog.FileName;
List<string> lines = new List<string>();
foreach (var variable in userVariables)
{
// Escape double quotes in the value
string value = variable.Value.Replace("\"", "\\\"");
// Enclose the value in double quotes if it contains spaces
if (value.Contains(" "))
{
value = $"\"{value}\"";
}
lines.Add($"{variable.Key}={value}");
}
File.WriteAllLines(filePath, lines);
}
catch (Exception ex)
{
MessageBox.Show($"Error exporting variable file: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -28,7 +28,6 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
@ -36,12 +35,16 @@
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.checkBox2 = new System.Windows.Forms.CheckBox();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.userdefinedVariablesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// button1
//
this.button1.Image = global::WelsonJS.Launcher.Properties.Resources.icon_zip_128;
this.button1.Location = new System.Drawing.Point(24, 49);
this.button1.Location = new System.Drawing.Point(24, 67);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(200, 200);
this.button1.TabIndex = 0;
@ -53,7 +56,7 @@
// button2
//
this.button2.Image = global::WelsonJS.Launcher.Properties.Resources.icon_link_128;
this.button2.Location = new System.Drawing.Point(230, 49);
this.button2.Location = new System.Drawing.Point(230, 67);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(200, 200);
this.button2.TabIndex = 1;
@ -65,7 +68,7 @@
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(24, 23);
this.label1.Location = new System.Drawing.Point(24, 41);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(312, 12);
this.label1.TabIndex = 2;
@ -74,7 +77,7 @@
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(24, 327);
this.linkLabel1.Location = new System.Drawing.Point(24, 345);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(219, 12);
this.linkLabel1.TabIndex = 3;
@ -85,7 +88,7 @@
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(26, 263);
this.checkBox1.Location = new System.Drawing.Point(26, 281);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(184, 16);
this.checkBox1.TabIndex = 4;
@ -96,7 +99,7 @@
// textBox1
//
this.textBox1.Enabled = false;
this.textBox1.Location = new System.Drawing.Point(214, 260);
this.textBox1.Location = new System.Drawing.Point(214, 278);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(110, 21);
this.textBox1.TabIndex = 5;
@ -104,18 +107,43 @@
// checkBox2
//
this.checkBox2.AutoSize = true;
this.checkBox2.Location = new System.Drawing.Point(26, 287);
this.checkBox2.Location = new System.Drawing.Point(26, 305);
this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(254, 16);
this.checkBox2.TabIndex = 6;
this.checkBox2.Text = "This is an Interactive Service Application";
this.checkBox2.UseVisualStyleBackColor = true;
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.settingsToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(461, 24);
this.menuStrip1.TabIndex = 7;
this.menuStrip1.Text = "menuStrip1";
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.userdefinedVariablesToolStripMenuItem});
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(62, 20);
this.settingsToolStripMenuItem.Text = "Settings";
//
// userdefinedVariablesToolStripMenuItem
//
this.userdefinedVariablesToolStripMenuItem.Name = "userdefinedVariablesToolStripMenuItem";
this.userdefinedVariablesToolStripMenuItem.Size = new System.Drawing.Size(192, 22);
this.userdefinedVariablesToolStripMenuItem.Text = "User-defined variables";
this.userdefinedVariablesToolStripMenuItem.Click += new System.EventHandler(this.userdefinedVariablesToolStripMenuItem_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(461, 362);
this.ClientSize = new System.Drawing.Size(461, 382);
this.Controls.Add(this.checkBox2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.checkBox1);
@ -123,11 +151,15 @@
this.Controls.Add(this.label1);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.menuStrip1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Icon = global::WelsonJS.Launcher.Properties.Resources.favicon;
this.MainMenuStrip = this.menuStrip1;
this.MaximizeBox = false;
this.Name = "MainForm";
this.Text = "WelsonJS.Launcher";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -142,6 +174,9 @@
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox checkBox2;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem userdefinedVariablesToolStripMenuItem;
}
}

View File

@ -208,5 +208,13 @@ namespace WelsonJS.Launcher
{
System.Diagnostics.Process.Start("https://github.com/gnh1201/welsonjs");
}
private void userdefinedVariablesToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var envForm = new EnvForm())
{
envForm.Show();
}
}
}
}

View File

@ -117,968 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD//wA/4AMAAP//
AD/gAwAA//wAB+ADAAAAQAABg+AAAIBgAAGD4AAAgCAAAP/gAADAMBAA/+AAAMAwEAB/4AAA4BAYAH8D
AADgGAgAPwMAAPAIDAA8HwAA8AwEBBwfAAD4BAYEHB8AAPgGAgYA/wAA+AICAgD/AAD8AwECA/8AAPwB
AQMD/wAA/gGAAQP/AAD+AIABg+AAAP8AwACD4AAA/wBAAIADAAD/gGAAQAMAAP+AIABgAwAA/8AgMCD/
AAD/wDAQMH8AAP/gEBgQfwAA/+AYCBg/AAD/8AgMCD8AAP/wDAQMPwAA//AEBgQfAAD/+AYCBB8AAP/4
AgMGDwAA//wDAQIPAAD//AEBgwcAAP/+AYGBBwAA//4BgIGDAAD///////8AAP///////wAA////////
AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAMEAAQEBAAHx0cAAAjMAAgICAAMDAwAD87NAAAL0AAMFJfACNbbwBAQEAAVFxgAGBg
YABoeW0Af39/AM96AADOfw0Aj3BHAACCMAAAmjkAAKU9AA2dQwAAvUYAV5huAGuFdAAQwVEAIMVdADDK
aABAznMAS8V4AO+NAAD/lgAA/5wQAM+ONAD/oyAA/6kwAK+LVwCOiH0A/7BAAP+2UADOo2cA3rFvAP++
YAD/xHAA/8l/AAltjwAkc48AADH/ABA9/wAgSv8AMFf/AEBk/wBQcv8AYH//AACCrwBns4MAQpKuAFDR
gABg1YwAf9yiAACazwA0ps8AKrHfAAC9/wBns84AcIz/AH+X/wAQwf8AIMX/AEDO/wBQ0f8AcNn/AH/c
/wBR/4cAcf+dAJH/sgCx/8kA0f/fAP///wAAAAAAAi8AAARQAAAGcAAACJAAAAqwAAALzwAADvAAACD/
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
CgQwBAQQhj5BAFyBAIaAAMLQJwiAKxDAEBBAGPSyXt9IPYgAaAEspB5ERy6pHxnt12Z8h8i6kvIhIAAA
CgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBg
IAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYCAKBgIAAACgYC
AKBgIAAACgYCAKBgIAAACgYCAKBg/h+1RmVpkPBkawAAAABJRU5ErkJggigAAABAAAAAgAAAAAEAIAAA
AAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
AADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3wAAAO8AAADvAAAA7wAAAO8A
AADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAA7wAAAJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACPAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACfAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAAnwAAAAAAAAAAAAAAAAAw/2AAMP9wADD/cAAw/3AAMP9wADD/cAAw/3AAMP9wADD/cAAw/3AA
MP9gAAAAAAAAAAAAvUVgAL1HcAC9R3AAvUdwAL1HcAA5FbcAORW3ADkVtwAYCdsAAAD/AAAA/wQCAPNO
LgC3Ti4At04uALdOLgC3Ti4At04uALclFgDNAAAA/wAAAP8AAAD/ADlOtwA5TrcAOU63AHuniwC9/3AA
u/9AAAAAAAAAAAAAAAAwAAAAgAAAAIAAAACAAAAA7wAAAP8AAAD/AAAArwAAAIAAAACAAAAAgAAAAIAA
AACAAAAAgAAAAN8AAAD/AAAA/wAAAM8AAACAAAAAgAAAAIAAMP+AADH//wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAw/1AAAAAAALtGgAC9Rv8AvUb/AL1G/wC9Rv8ADAT/AAAA/wAAAP8A
AAD/AAAA/wAAAP8RCgDe/5YA//+WAP//lgD//5YA//+WAP//lgD/n14A/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wB2n/8Avf//AL7/zwAAAAAAAAAAAAAAYAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ADD/IAAx/+8A
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf+/AAAAAAC/QBAAvUbvAL1G/wC9Rv8A
vUb/AAwE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAz/+WAM//lgD//5YA//+WAP//lgD//5YA/59eAP8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8Adp//AL3//wC9//8AvP9QAAAAAAAAAGAAAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAP8AAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvwAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAAAAMv+PADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAw/0AA
AAAAALtGgAC9Rv8AvUb/AL1G/wAMBP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAM//lQBg/5YA//+WAP//
lgD//5YA//+WAP+fXgD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AHaf/wC9//8Avf//AL3/rwAAAAAA
AABgAAAA3wAAAN8AAADfAAAA3wAAAN8AAADfAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAADD/MAAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMv+vAAAAAAC/SCAAvUbvAL1G/wC9Rv8ADAT/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AADP/48AEP+WAN//lgD//5YA//+WAP//lgD/n14A/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wB2n/8A
vf//AL3//wC9//8Au/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAMv+vADH//wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAw/0AAAAAAAL1GjwC9Rv8AvUb/AAwE/wAAAP8A
AAD/AAAA/wAAAP8AAAD/AA0F3gAAAAD/lQCA/5YA//+WAP//lgD//5YA/59eAP8AAAD/AAAA/wAAAP8A
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
AAD/AAAAYAC8/1AAvf//AL3//wC9//8Avf//AL3//wC9/+8Av/8QAAAAAAAAAAAAAAAAAAAAjwAAAP8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAw/xAAMf/fADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH/3wAw/xAA
AAAAAL5GzwC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUbvAL9AEAAAAAD/lgCvn14A/wAAAP8A
AAD/AAAA/wAAAP8AAAD/AAAA/xgOAGoAv/8QAL7/zwC9//8Avf//AL3//wC9//8Avf//ALv/gAAAAAAA
AAAAAAAAAAAAAI8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD/gAAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMP9gAAAAAAC9RWAAvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC7RoAA
AAAA/5YAUJ9eAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iOQCcAAAAAAC9/3AAvf//AL3//wC9//8A
vf//AL3//wC9/98AAQLhAAAA7wAAAO8AAAD/AAAA/wAAAP8AAADfAAAAEAAAABAAAAAQAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/xAAMf/vADH//wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH/zwAAAAAAv0AQAL1G3wC9Rv8AvUb/AL1G/wC9Rv8A
vUb/AL1G/wC9Rv8AvUbvAL9AEAAAAACNUwDXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/klYA4QAAAAAA
v/8QAL3/3wC9//8Avf//AL3//wC9//8Avf//AAQG9QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAw/1AAMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADL/jwAAAAAA
ukUwAL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G/wB2LP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+f
XgD//5YA//+WAP//lgD//5UAgAAAAGAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AaIv2AL//IAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAvwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH/vwAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx/+8AMP8gAAAAAAC9Rq8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8Adiz/AAAA/wAAAP8A
AAD/AAAA/wAAAP8AAAD/n14A//+WAP//lgD//5YA//+WAO9OLAAuAAAAQACDsM8Ajr//AAwQ/wAAAP8A
AAD/ABgg/wAaJd8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAO8AAAD/AAAA/wAAAL8AAABAAAAAQAAAAEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/1AAMf//ADH//wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADD/gAAAAAAAvEZQAL1G/wC9Rv8AvUb/AL1G/wC9Rv8A
vUb/AHYs/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/59eAP//lgD//5YA//+WAP//lgD//5UAgAAAAAAA
vP9QAL3//wAMEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAADH/zwAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx/+8AMP8QAAAAAAC+Rb8A
vUb/AL1G/wC9Rv8AvUb/AL1G/wB2LP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+fXgD//5YA//+WAP//
lgD//5YA//+WAO//jwAQAAAAAAC+/78ADBD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAP8AAAD/AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAw/2AAMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8A
Mf//ADD/gAAAAAAAvEZQAL1G/wC9Rv8AvUb/AL1G/wC9Rv8AjjT/AEca/wBHGv8AKxDPAAAAnxoQALFg
OAD/v3AA//+WAP//lgD//5YA//+WAP//lgD//5UAgAAAAAAAvP9QAFNw/wBHYP8AR2D/AEdg/wBHYP8A
RFz5AAYJpQAAAJ8AAACfAAAAnwAAAJ8AAACfAAAAnwAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP8QADH/3wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAx/98AMP8QAAAAAAC+Rs8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8A
vUb/AL1G7wC/SCAAAAAA/5YAr/+WAP//lgD//5YA//+WAP//lgD//5YA//+WAN//jwAQAAAAAAC+/88A
vf//AL3//wC9//8Avf//AL3//wC7/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/4AA
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADD/cAAAAAAAvUVgAL1G/wC9Rv8A
vUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8Au0aAAAAAAP+TAED/lgD//5YA//+WAP//lgD//5YA//+WAP//
lgD//5UAYAAAAAAAvf9gAL3//wC9//8Avf//AL3//wC9//8Avf/fAL//EAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMP8QADH/7wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx/88A
AAAAAL9AEAC9Rt8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G7wC/QBAAAAAA/5YAv/+WAP//
lgD//5YA//+WAP//lgD//5YA//+WAM8AAAAAAL//EAC9/98Avf//AL3//wC9//8Avf//AL3//wC9/2AA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/4AAMf//ADH//wAx//8AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMf//ADD/UAAAAAAAu0aAAL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8A
u0aAAAAAAP+WAFD/lgD//5YA//+WAP//lgD//5YA//+WAP//lgD//5YAUAAAAAAAu/+AAL3//wC9//8A
vf//AL3//wC9//8Avv/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP8QADH/7wAx//8A
Mf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx/78AAAAAAL9AEAC9Ru8AvUb/AL1G/wC9Rv8A
vUb/AL1G/wC9Rv8AvUb/AL1G3wC/QBAAAAAA/5YAz/+WAP//lgD//5YA//+WAP//lgD//5YA//+WAL8A
AAAAAL//EAC9/+8Avf//AL3//wC9//8Avf//AL3//wC8/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAw/4AAMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADH//wAx//8AMf//ADD/QAAAAAAA
u0aAAL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUb/AL1G/wC9Rv8AvUVgAAAAAP+WAFD/lgD//5YA//+WAP//
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP+AADH/3wAx/98AMf/fADH/3wAx/98AMf/fADH/3wAx/98A
Mf/fADH/3wAw/1AAAAAAALxGUAC9Rt8AvUbfAL1G3wC9Rt8AvUbfAL1G3wC9Rt8AvUbfAL1FYAAAAAD/
kwBA/5YA3/+WAN//lgDf/5YA3/+WAN//lgDf/5YA3/+TAEAAAAAAAL3/YAC9/98Avf/fAL3/3wC9/98A
vf/fAL7/vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////
////////////////////////////////////////////+AAf/gAH///4AB/+AAf///gAH/4ABwAYAAAA
YAAAAAgAAABgH4AACAAAACAfgIAEAAAAIB+AgAQAAAAf/4DAAgBAAB//gMACAEAAD/+A4AEAIAAP+ADg
AQAgAAf4B/AAgBAAB/gH8ACAEAADwAf4AEAIAAPAP/gAQAgAAcA/+AAgBAABwD/8ACAEAQAAf/wAIAIB
AAP//gAQAgCAA//+ABAAAIAD//8ACAAAQB///wAIAABAH///gAQAACAfgP+ABAAAIB+A/8ACAAAAH4D/
wAIAAAAPgP/gAQAAAAAA/+ABAAAIAAf/8ACAAAQAB//wAIAABAAH//AAQAgCA///+ABACAIB///4AEAE
AgH///wAIAQBAf///AAgAgEA///+ABACAID///4AEAIAgH///wAIAQBAf///AAgBAEA///+ABACAID//
/4AEAIAgH///wAIAQBAf///AAgBAEA///+ABACAID///4AEAIAgH///gAIAQBAf///AAgBAEB///////
//////////////////////////////////////////////////////////////////////////////8o
AAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8A
AADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACfAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAA7wAAAO8AAADvAAAAgAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAAgAAAAAAAAAAAADD/QAAw/1AAMP9QADD/UAAw/1AAMP9QADD/UAAw/1AAMP8QAL9AEAC8RlAA
vEZQALxGUABsKXEAQRiSAEEYkgACAfIAAAD/CQYA5ygYAL0oGAC9KBgAvSgYAL0UCwDPAAAA/wAAAP8A
JTKyAEFXkgBNaIcAvP9QAL//IAAAAAAAAAAQAAAAYAAAAGAAAADPAAAA/wAAAO8AAACfAAAAnwAAAJ8A
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
AAAA/5UAgP+WAN//lgDf/5YA3/+WAN//lgDf/5UAMAC//yAAvf/fAL3/3wC9/98Avf/fAL3/jwAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA////////AAD///////8AAP//////
/wAA//8AH+ADAAD//wAf4AMAAAAAAAEAAAAAAEAAAQPAAAAAAAAAA8AAAIAgAAADwAAAgAAAAH/AAADA
ABAAfwAAAMAAAAA/AwAA4AAIAD8DAADgCAAAGAMAAPAABAAYHwAA8AQABAAfAADwAAIAAH8AAPgCAAAA
fwAA+AAAAAB/AAD8AQAAA/8AAPwAAAED4AAA/gCAAAPAAAD+AAAAAcAAAP8AQAAAAAAA/wAAAEADAAD/
gAAAAAMAAP+AAAAgfwAA/8AAEAB/AAD/wBAAED8AAP/gAAgAPwAA/+AIAAgfAAD/4AAEAB8AAP/wBAAA
HwAA//AAAgAPAAD/+AIAAA8AAP/4AAECBwAA//wBAAAHAAD//AAAAQMAAP/+AICAAwAA////////AAD/
//////8AAP///////wAA////////AAD///////8AAP///////wAAKAAAACgAAABQAAAAAQAgAAAAAABA
GgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8AAADvAAAA7wAAAO8AAADvAAAA7wAAAO8A
AADvAAAA3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAA7wAAAO8AAADvAAAA7wAAAO8A
AADvAAAA7wAAAN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACfAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAN8AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAjwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAAAAAAAAA
Mv+PADH/vwAx/78AMf+/ADH/vwAx/78AMv+vADD/EAC7RoAAvkW/AL5FvwBGGuMAHArzAAAA/wAAAP87
IgDPw3IAy8NyAMvDcgDLjVMA1wAAAP8ABAX0ABwm8wAcJvMAvv+/ALz/UAAAAAAAAACAAAAAzwAAAO8A
AAD/AAAArwAAADAAAAAwAAAAMAAAAGAAAAD/AAAA7wAAAM8AAADPADD/YAAx//8AMf//ADH//wAx//8A
Mf//ADH//wAw/2AAu0RAAL1G/wC9Rv8ALxH/AAAA/wAAAP8AAAD/PSMAp/+WAP//lgD//5YA/79wAP8A
AAD/AAAA/wAAAP8AAAD/AL3//wC+/88AAAAAAAAArwAAAP8AAAD/AAAA/wAAAI8AAAAAAAAAAAAAAAAA
AABAAAAA/wAAAP8AAAD/AAAA/wAw/xAAMf/fADH//wAx//8AMf//ADH//wAx//8AMf/PAAAAAAC+Rb8A
vUb/AC8R/wAAAP8AAAD/AAAA/wAAAID/lgC//5YA//+WAP+/cAD/AAAA/wAAAP8AAAD/AAAA/wC9//8A
vf//ALz/UAAAAEAAAABQAAAAUAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAQAAAAP8AAAD/AAAA/wAAAP8A
AAAAADD/gAAx//8AMf//ADH//wAx//8AMf//ADH//wAw/1AAvEZQAL1G/wAvEf8AAAD/AAAA/wAAAP8A
LBGn/5YAUP+WAP//lgD/v3AA/wAAAP8AAAD/AAAA/wAAAP8Avf//AL3//wC+/78AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAD/AAAA/wAAAP8AAAD/AAAAAAAw/xAAMf/vADH//wAx//8A
Mf//ADH//wAx//8AMf+/AAAAAAC+Rb8Adiz/AGon/wBqJ/8Aaif/AI40vgAAAAD/lgDP/5YA/79wAP8A
AAD/AAAA/wAAAP8AAAD/AL3//wC9//8Avf//ALv/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAI8A
AACvAAAA/wAAAO8AAABwAAAAcAAAAAAAAAAAADD/gAAx//8AMf//ADH//wAx//8AMf//ADH//wAw/0AA
vEZQAL1G/wC9Rv8AvUb/AL1G/wC9Rv8Au0RA/5UAYP+WAP+/cAD/AAAA/wAAAP8AAAD/AAAA/wC9//8A
vf//AL3//wC9/68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAD/AAAA/wAAAP8AAADfAAAAAAAAAAAA
AAAAAAAAAAAw/xAAMf/vADH//wAx//8AMf//ADH//wAx//8AMv+vAAAAAAC+Rs8AvUb/AL1G/wC9Rv8A
vUb/AL1Gr/+PABD/lgDfv3AA/wAAAP8AAAD/AAAA/wAAAP8Avv+/AL3//wC9//8Avf//ALv/QAAAAAAA
AAAAAAAAMAAAAIAAAACfAAAA/wAAAN8AAACAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAADD/gAAx//8A
Mf//ADH//wAx//8AMf//ADH//wAw/0AAvUVgAL1G/wC9Rv8AvUb/AL1G/wC9Rv8AukUw/5UAgL9wAP8A
AAD/AAAA/wAAAP8AAAD/ALz/UAC9//8Avf//AL3//wC9/68AAAAAAAAAAAAAAHAAAAD/AAAA/wAAAP8A
AAC/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/yAAMf/vADH//wAx//8AMf//ADH//wAx//8A
Mv+vAL9AEAC9Rt8AvUb/AL1G/wC9Rv8AvUb/AL1Hn/+PABC8bwDzAAAA/wAAAP8AAAD/AAAA/wAAAAAA
vv+/AL3//wC9//8Avf/vADRGWAAAAGAAAACvAAAA/wAAAN8AAACfAAAAcAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADL/nwAx//8AMf//ADH//wAx//8AMf//ADH//wAw/zAAu0aAAL1G/wC9Rv8A
vUb/AL1G/wC9Ru8Av0ggmVkAoAAAAP8AAAD/AAAA/wAAAP//kwBAALz/UAC9//8Avf//AL3//wA5Ts4A
AAD/AAAA/wAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/zAA
Mf//ADH//wAx//8AMf//ADH//wAx//8AMv+fAL9AEAC9Ru8AvUb/AL1G/wC9Rv8AvUb/ALtGgCgXAEwA
AAD/AAAA/wAAAP8AAAD//5YArwC//xAAvf/fAKXf/wCOv/8AOEz6AAAA/wAAAO8AAAC/AAAAgAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADL/rwAx//8AMf//ADH//wAx//8A
Mf//ADH/7wAw/yAAu0aAAL1G/wC9Rv8AvUb/AL1G/wC9Ru8AHgpMAAAA/wAAAP8AAAD/AAAA//+WAP//
kwBAALv/gAA7UP8AAAD/AAAA/wAAAP8AAACPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAw/1AAMf//ADH//wAx//8AMf//ADH//wAx//8AMP+AAL9IIAC9Ru8A
vUb/AL1G/wC9Rv8AvUb/AHApoAAAAP8AAAD/AAAA/wAAAP//lgD//5YArwC//xAANkn1AAAA/wAAAP8A
AAD/AAgMlgAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAADH/vwAx//8AMf//ADH//wAx//8AMf//ADH/7wAw/xAAvUaPAL1G/wC9Rv8AvUb/AL1G/wCMM/MA
AAD/AAAA/wAAAP8AAAD//5YA//+WAO//lwAgACIv1wAAAP8AAAD/AAAA/wA1SMcAAAAAAAAAAAAAAAAA
AABAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/1AAMf//ADH//wAx//8A
Mf//ADH//wAx//8AMP+AAL9IIAC9Rv8AvUb/AL1G/wC9Rv8AjjT/AAAA/wAAAP8AAAD/AAAA//+WAP//
lgD//5UAgAAGB7QAAAD/AAAA/wAAAP8ATGjxAL//EAAAAAAAAAAAAAAAQAAAAP8AAAD/AAAA/wAAAP8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH/zwAx//8AMf//ADH//wAx//8AMf//ADH/3wAw/xAA
vUavAL1G/wC9Rv8AvUb/AI40/wAAAP8AAAD/AAAA/wAAAP//lgD//5YA//+WAO//lwAgALv/gABTcP8A
AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAw/2AAMf//ADH//wAx//8AMf//ADH//wAx//8AMP9wALtEQAC9Rv8AvUb/AL1G/wCONP8A
AAD/AAAA/wAAAP8AAAD//5YA//+WAP//lgD//5UAgAC//yAAT2z4AAAA/wAAAP8AAAD/AAAA/wAAAP8A
AAD/AAAA/wAAAN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP8QADH/3wAx//8A
Mf//ADH//wAx//8AMf//ADH/3wAw/xAAvkW/AL1G/wC9Rv8AsUL/AKU9/wCiPNUAAAAg1n4Ax/+WAP//
lgD//5YA//+WAO//jwAQAKzmpQCl3/8Apd//AKXf/wCCr2YAAAAgAAAAIAAAACAAAAAQAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/4AAMf//ADH//wAx//8AMf//ADH//wAx//8A
MP9gALxGUAC9Rv8AvUb/AL1G/wC9Rv8AvUb/ALxGUP+WAFD/lgD//5YA//+WAP//lgD//5UAgAC6/zAA
vf//AL3//wC9//8Avv+/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMP8QADH/7wAx//8AMf//ADH//wAx//8AMf//ADH/vwAAAAAAvkW/AL1G/wC9Rv8A
vUb/AL1G/wC+Rb8AAAAA/5YAz/+WAP//lgD//5YA//+WAN//jwAQAL3/rwC9//8Avf//AL3//wC7/0AA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/4AA
Mf//ADH//wAx//8AMf//ADH//wAx//8AMP9AALxGUAC9Rv8AvUb/AL1G/wC9Rv8AvUb/ALtEQP+WAFD/
lgD//5YA//+WAP//lgD//5UAYAC7/0AAvf//AL3//wC9//8Avf+vAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP8QADH/7wAx//8AMf//ADH//wAx//8A
Mf//ADL/rwAAAAAAvkbPAL1G/wC9Rv8AvUb/AL1G/wC9Rq//jwAQ/5YA3/+WAP//lgD//5YA//+WAM8A
AAAAAL7/vwC9//8Avf//AL3//wC7/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAw/4AAMf//ADH//wAx//8AMf//ADH//wAx//8AMP9AAL1FYAC9Rv8A
vUb/AL1G/wC9Rv8AvUb/ALtEQP+VAID/lgD//5YA//+WAP//lgD//5YAUAC8/1AAvf//AL3//wC9//8A
vf+vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
MP8gADH/7wAx//8AMf//ADH//wAx//8AMf//ADL/rwC/QBAAvUbfAL1G/wC9Rv8AvUb/AL1G/wC9Rq//
jwAQ/5YA3/+WAP//lgD//5YA//+WAL8AAAAAAL7/vwC9//8Avf//AL3//wC6/zAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy/58AMf//ADH//wAx//8A
Mf//ADH//wAx//8AMP8wALtGgAC9Rv8AvUb/AL1G/wC9Rv8AvUbvAL9IIP+VAID/lgD//5YA//+WAP//
lgD//5MAQAC8/1AAvf//AL3//wC9//8Avf+fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP8wADH//wAx//8AMf//ADH//wAx//8AMf//ADL/nwC/QBAA
vUbvAL1G/wC9Rv8AvUb/AL1G/wC7RoD/jwAQ/5YA7/+WAP//lgD//5YA//+WAK8Av/8QAL7/zwC9//8A
vf//AL3/7wC//yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAy/68AMf//ADH//wAx//8AMf//ADH//wAx/+8AMP8gALtGgAC9Rv8AvUb/AL1G/wC9Rv8A
vUbvAL9AEP+VAID/lgD//5YA//+WAP//lgD//5MAQAC9/3AAvf//AL3//wC9//8Au/+AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP9AADH/7wAx/+8A
Mf/vADH/7wAx/+8AMf/vADD/cAC/QBAAvUbvAL1G7wC9Ru8AvUbvAL1G7wC9R3D/lwAg/5YA7/+WAO//
lgDv/5YA7/+XAJ8Av/8QAL3/3wC9/+8Avf/vAL3/3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
/////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA//gD+AMAAAD/+AP4AwAAAAAAACAA
AAAAAAAAIOAAAAAAgAAA4AAAAIAAAB/gAAAAgECAD4AAAADAAAAPgwAAAMAgAAYDAAAA4AAABg8AAADg
AACADwAAAPAAAAA/AAAA8AAAAD8AAAD4AAAA/wAAAPgAAADwAAAA/AAAAOAAAAD8AAAAYAAAAP4AAAAD
AAAA/gAAAAMAAAD+AAAAAwAAAP8AAAA/AAAA/wCBAB8AAAD/gAAAHwAAAP+AQAIPAAAA/8AAAA8AAAD/
wAABBwAAAP/gAAAHAAAA/+AAAAMAAAD/8AAAAwAAAP/wAAADAAAA//////8AAAD//////wAAAP//////
AAAA//////8AAAD//////wAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAAAAAAAAAAAAAAAAAAA
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
lQAwAL7/vwC9//8Avf//ALv/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAADD/UAAx//8AMf//ADH//wAx//8AMf//ADD/MAC+Rb8AvUb/AL1G/wC9Rv8AvUav/5UAMP+WAP//
lgD//5YA//+XAJ8AvP9QAL3//wC9//8Avf/fAL//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADH/vwAx/+8AMf/vADH/7wAx/+8AMv+PALxGUAC9Ru8AvUbvAL1G7wC9Ru8A
ukUw/5YAv/+WAO//lgDv/5YA3/+PABAAvv+/AL3/7wC9/+8AvP9QAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA///////////////////////APgECAAQAAAAAMAAAADCAAAPwgAABwMAAAYHA
AACH4AAAB+AAAB/gAAAf8AAAOPAAADD4AAAA+AAAAfwAAAH8AAAP/gAAD/4AAAf/AAAH/wAAA/+AAAP/
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
</value>
</data>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -60,6 +60,66 @@ namespace WelsonJS.Launcher.Properties {
}
}
/// <summary>
/// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Icon favicon {
get {
object obj = ResourceManager.GetObject("favicon", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icon_check_32 {
get {
object obj = ResourceManager.GetObject("icon_check_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icon_directory_32 {
get {
object obj = ResourceManager.GetObject("icon_directory_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icon_export_32 {
get {
object obj = ResourceManager.GetObject("icon_export_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icon_file_32 {
get {
object obj = ResourceManager.GetObject("icon_file_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icon_import_32 {
get {
object obj = ResourceManager.GetObject("icon_import_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>

View File

@ -112,16 +112,34 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="icon_link_128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_link_128.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_zip_128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_zip_128.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="favicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_directory_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_directory_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_file_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_file_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_check_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_check_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_export_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_export_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_import_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_import_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

View File

@ -70,6 +70,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="EnvForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="EnvForm.Designer.cs">
<DependentUpon>EnvForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
@ -78,25 +84,28 @@
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="EnvForm.resx">
<DependentUpon>EnvForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
@ -110,7 +119,13 @@
<None Include="Resources\icon_zip_128.png" />
</ItemGroup>
<ItemGroup>
<Content Include="favicon.ico" />
<None Include="favicon.ico" />
<None Include="Resources\favicon.ico" />
<None Include="Resources\icon_check_32.png" />
<None Include="Resources\icon_directory_32.png" />
<None Include="Resources\icon_file_32.png" />
<None Include="Resources\icon_export_32.png" />
<None Include="Resources\icon_import_32.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -75,7 +75,7 @@ namespace WelsonJS.Service
try
{
clamAvConenctionString = this.parent.GetSettingsFileHandler().Read("CLAMAV_HOST", "Service");
clamAvConenctionString = this.parent.GetSettingsHandler().Read("CLAMAV_HOST", "Service");
}
catch (Exception ex)
{

View File

@ -16,7 +16,7 @@ namespace WelsonJS.Service
{
private readonly HeartbeatService.HeartbeatServiceClient _client;
private readonly GrpcChannel _channel;
private const int HeartbeatInterval = 2000; // 2 seconds
private int HeartbeatInterval;
private ServiceMain _parent;
private string clientId;
private string serverAddress;
@ -25,9 +25,11 @@ namespace WelsonJS.Service
{
_parent = (ServiceMain)parent;
HeartbeatInterval = int.Parse(_parent.GetSettingsHandler().Read("HEARTBEAT_INTERVAL", "Service") ?? "2000");
try
{
serverAddress = _parent.GetSettingsFileHandler().Read("GRPC_HOST", "Service");
serverAddress = _parent.GetSettingsHandler().Read("GRPC_HOST", "Service");
if (String.IsNullOrEmpty(serverAddress))
{
throw new Exception("The server address could not be empty.");
@ -69,7 +71,7 @@ namespace WelsonJS.Service
await call.RequestStream.CompleteAsync();
_parent.Log("Sent heartbeat");
await Task.Delay(HeartbeatInterval); // HeartbeatInterval 동안 대기
await Task.Delay(HeartbeatInterval); // Wait for HeartbeatInterval
}
catch (Exception ex)

View File

@ -160,8 +160,8 @@ public class ScreenMatch
string screen_time_params;
try
{
screen_time_mode = this.parent.GetSettingsFileHandler().Read("SCREEN_TIME_MODE", "Service");
screen_time_params = this.parent.GetSettingsFileHandler().Read("SCREEN_TIME_PARAMS", "Service");
screen_time_mode = this.parent.GetSettingsHandler().Read("SCREEN_TIME_MODE", "Service");
screen_time_params = this.parent.GetSettingsHandler().Read("SCREEN_TIME_PARAMS", "Service");
}
catch (Exception ex)
{
@ -312,7 +312,21 @@ public class ScreenMatch
foreach (var file in files)
{
string filename = Path.GetFileName(file);
Bitmap bitmap = new Bitmap(file)
string realpath;
string altpath = parent.GetUserVariablesHandler().GetValue(filename);
if (!String.IsNullOrEmpty(altpath))
{
realpath = altpath;
parent.Log($"Use the alternative image: {realpath}");
}
else
{
realpath = file;
parent.Log($"Use the default image: {realpath}");
}
Bitmap bitmap = new Bitmap(realpath)
{
Tag = filename
};

View File

@ -34,6 +34,7 @@ using System.Collections.Generic;
using WelsonJS.TinyINIController;
using System.Collections;
using System.Threading.Tasks;
using System.Linq;
namespace WelsonJS.Service
{
@ -45,7 +46,7 @@ namespace WelsonJS.Service
private string scriptFilePath;
private string scriptText;
private ScriptControl scriptControl;
private readonly string logFilePath = Path.Combine(Path.GetTempPath(), "WelsonJS.Service.Log.txt");
private readonly string logFilePath = Path.Combine(Path.GetTempPath(), "welsonjs_service.log");
private readonly string appName = "WelsonJS";
private string[] args;
private bool disabledHeartbeat = false;
@ -53,7 +54,8 @@ namespace WelsonJS.Service
private bool disabledFileMonitor = false;
private ScreenMatch screenMatcher;
private FileEventMonitor fileEventMonitor;
private IniFile settingsFileHandler;
private IniFile settingsHandler;
private UserVariables userVariablesHandler;
[DllImport("user32.dll")]
private static extern int GetSystemMetrics(int nIndex);
@ -95,6 +97,10 @@ namespace WelsonJS.Service
}
}
// load the user variables
userVariablesHandler = new UserVariables(this);
userVariablesHandler.Load();
// set timers
timers = new List<Timer>();
@ -118,11 +124,11 @@ namespace WelsonJS.Service
{
try
{
settingsFileHandler = new IniFile(settingsFilePath);
settingsHandler = new IniFile(settingsFilePath);
}
catch (Exception)
{
settingsFileHandler = null;
settingsHandler = null;
}
}
else
@ -131,7 +137,7 @@ namespace WelsonJS.Service
}
// read configrations from settings.ini
if (settingsFileHandler != null)
if (settingsHandler != null)
{
string[] configNames = new string[]
{
@ -143,7 +149,7 @@ namespace WelsonJS.Service
{
try
{
if ("true" == GetSettingsFileHandler().Read(configName, "Service"))
if ("true" == GetSettingsHandler().Read(configName, "Service"))
{
switch (configName)
{
@ -211,9 +217,14 @@ namespace WelsonJS.Service
Log(appName + " Service Loaded");
}
public IniFile GetSettingsFileHandler()
public IniFile GetSettingsHandler()
{
return settingsFileHandler;
return settingsHandler;
}
public UserVariables GetUserVariablesHandler()
{
return userVariablesHandler;
}
internal void TestStartupAndStop()
@ -246,15 +257,27 @@ namespace WelsonJS.Service
// make the start arguments
string[] startArguments;
string[] _args;
if (Environment.UserInteractive)
{
startArguments = new string[args.Length + 1];
args.CopyTo(startArguments, 0);
startArguments[args.Length] = "--user-interactive";
_args = new string[]
{
$"--user-variables-file={userVariablesHandler.GetEnvFilePath()}",
"--user-interactive"
};
}
else
{
startArguments = args;
_args = new string[]
{
$"--user-variables-file={userVariablesHandler.GetEnvFilePath()}"
};
}
startArguments = new string[args.Length + _args.Length];
args.CopyTo(startArguments, 0);
for (int i = 0; i < _args.Length; i++)
{
startArguments[args.Length + i] = _args[i];
}
// initialize

View File

@ -0,0 +1,81 @@
using System.Collections.Generic;
using System;
using System.IO;
using System.ServiceProcess;
namespace WelsonJS.Service
{
public class UserVariables
{
private ServiceMain parent;
private Dictionary<string, string> userVariables;
private readonly string envFilePath = Path.Combine(Path.GetTempPath(), "welsonjs_default.env");
public UserVariables(ServiceBase parent)
{
this.parent = (ServiceMain)parent;
}
// Load user-defined variables from the temporary folder in .env format
public void Load()
{
if (File.Exists(envFilePath))
{
try
{
string fileContent = File.ReadAllText(envFilePath);
// Split based on new line characters
string[] keyValuePairs = fileContent.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
userVariables = new Dictionary<string, string>();
foreach (string pair in keyValuePairs)
{
// Split by the first occurrence of '='
int indexOfEquals = pair.IndexOf('=');
if (indexOfEquals != -1)
{
string key = pair.Substring(0, indexOfEquals).Trim();
string value = pair.Substring(indexOfEquals + 1).Trim();
// Remove surrounding quotes if present
if (value.StartsWith("\"") && value.EndsWith("\""))
{
value = value.Substring(1, value.Length - 2); // Remove the first and last character
}
// Unescape double quotes in the value
value = value.Replace("\\\"", "\"");
userVariables[key] = value;
}
else
{
parent.Log($"Error parsing line: '{pair}'.");
}
}
}
catch (Exception ex)
{
parent.Log($"Error loading variable file: {ex.Message}");
userVariables = new Dictionary<string, string>();
}
}
else
{
userVariables = new Dictionary<string, string>();
}
}
public string GetValue(string name)
{
userVariables.TryGetValue(name, out string value);
return value;
}
public string GetEnvFilePath()
{
return envFilePath;
}
}
}

View File

@ -203,6 +203,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ScreenMatch.cs" />
<Compile Include="Model\ScreenMatchResult.cs" />
<Compile Include="UserVariables.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="MSScriptControl">