diff --git a/src/DesktopPet_Portable.csproj b/src/DesktopPet_Portable.csproj new file mode 100644 index 0000000..54dee70 --- /dev/null +++ b/src/DesktopPet_Portable.csproj @@ -0,0 +1,293 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {87663C46-C416-4AED-971B-7A16624C1F1D} + WinExe + Properties + DesktopPet + DesktopPet + 512 + false + v4.7 + + false + true + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + true + publish.htm + 0 + 1.2.0.%2a + false + true + false + + + x86 + true + full + false + ..\build\DesktopPetPortable\bin\Debug\ + ..\build\DesktopPet\obj\ + TRACE;DEBUG;PORTABLE + prompt + 4 + false + + + x86 + pdbonly + true + ..\build\DesktopPetPortable\bin\Release\x86\ + ..\build\DesktopPet\obj\ + TRACE;PORTABLE + prompt + 4 + ..\build\DesktopPetPortable\bin\Release\eSheep.xml + false + + + icon.ico + + + E5C82D9887B1D997FCD9E686720A4263D2F75B7E + + + + + + + true + + + LocalIntranet + + + Properties\app.manifest + + + false + + + false + + + http://time.certum.pl/ + + + + + + + false + + + + + + + true + ..\build\DesktopPetPortable\bin\Debug\ + ..\build\DesktopPet\obj\ + TRACE;DEBUG;PORTABLE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + ..\build\DesktopPetPortable\bin\Release\x64\ + ..\build\DesktopPet\obj\ + TRACE;PORTABLE + ..\build\DesktopPetPortable\bin\Release\eSheep.xml + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + + packages\NAudio.1.8.5\lib\net35\NAudio.dll + + + + + + False + C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll + + + + + + + + + + + C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd + + + + + + + + + + Form + + + AboutBox.cs + + + Form + + + FormHelp.cs + + + Form + + + FormOptions.cs + + + Form + + + Install.cs + + + + True + True + Resources.resx + + + + Form + + + FormPet.cs + + + Form + + + FormDebug.cs + + + + + True + True + Settings.settings + + + + + + FormPet.cs + + + FormDebug.cs + + + AboutBox.cs + + + FormHelp.cs + + + FormOptions.cs + + + Install.cs + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + Designer + + + + + Designer + + + Designer + SettingsSingleFileGenerator + Settings1.Designer.cs + + + Designer + + + + + + + + + + + + + + Designer + + + + + False + .NET Framework 3.5 SP1 + false + + + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + True + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/DesktopPet_Portable.sln b/src/DesktopPet_Portable.sln new file mode 100644 index 0000000..60e8cee --- /dev/null +++ b/src/DesktopPet_Portable.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.329 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopPet_Portable", "DesktopPet_Portable.csproj", "{87663C46-C416-4AED-971B-7A16624C1F1D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {87663C46-C416-4AED-971B-7A16624C1F1D}.Debug|x64.ActiveCfg = Debug|x64 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Debug|x64.Build.0 = Debug|x64 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Debug|x86.ActiveCfg = Debug|x86 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Debug|x86.Build.0 = Debug|x86 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Release|x64.ActiveCfg = Release|x64 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Release|x64.Build.0 = Release|x64 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Release|x86.ActiveCfg = Release|x86 + {87663C46-C416-4AED-971B-7A16624C1F1D}.Release|x86.Build.0 = Release|x86 + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Debug|x64.ActiveCfg = Debug|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Debug|x64.Build.0 = Debug|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Debug|x86.ActiveCfg = Debug|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Debug|x86.Build.0 = Debug|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Release|x64.ActiveCfg = Release|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Release|x64.Build.0 = Release|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Release|x86.ActiveCfg = Release|Any CPU + {E95D998F-DF30-4C58-8FE7-EF10374D8AC5}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F3D4D82E-8E80-4B9C-9B7D-C4175B9C30FA} + EndGlobalSection +EndGlobal diff --git a/src/LocalData/Class1.cs b/src/LocalData/Class1.cs index 833433b..7886161 100644 --- a/src/LocalData/Class1.cs +++ b/src/LocalData/Class1.cs @@ -139,9 +139,9 @@ public void SetXml(string newXml, string folder) Xml = newXml; var buffer = Encoding.UTF8.GetBytes(newXml); - File.Delete(LocalFolder.Path + "\\animation.xml"); + File.Delete(LocalFolder.Path + "\\animations.xml"); - var f = File.Create(LocalFolder.Path + "\\animation.xml"); + var f = File.Create(LocalFolder.Path + "\\animations.xml"); f.Write(buffer, 0, buffer.Length); f.Close(); @@ -162,13 +162,13 @@ public string GetXml() public void LoadXML() { var buffer = new Byte[1024 * 64]; - if (!File.Exists(LocalFolder.Path + "\\animation.xml")) + if (!File.Exists(LocalFolder.Path + "\\animations.xml")) { - var fs = File.Create(LocalFolder.Path + "\\animation.xml"); + var fs = File.Create(LocalFolder.Path + "\\animations.xml"); fs.Close(); } Xml = ""; - var f = File.OpenRead(LocalFolder.Path + "\\animation.xml"); + var f = File.OpenRead(LocalFolder.Path + "\\animations.xml"); var bytesRead = 0; do { @@ -296,7 +296,7 @@ the renaming of files or directories. */ watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // Only watch text files. - watcher.Filter = "animation.xml"; + watcher.Filter = "animations.xml"; // Add event handlers. watcher.Changed += new FileSystemEventHandler(f); diff --git a/src/Portable/AboutBox.cs b/src/Portable/AboutBox.cs new file mode 100644 index 0000000..da3393b --- /dev/null +++ b/src/Portable/AboutBox.cs @@ -0,0 +1,105 @@ +using System; +using System.Diagnostics; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Information about application and current XML animation file + /// + public partial class AboutBox : Form + { + /// + /// Initialize form and get application version + /// + public AboutBox() + { + InitializeComponent(); + + string version = ""; + version = Application.ProductVersion; + Text = Text.Replace("XXX", version); + } + + /// + /// Called from parent to fill all labels on the form + /// + /// Author of the XML animation + /// Title of the animation (got from XML file) + /// Animation version (got from XML file) + /// Animation infos (got from XML file). Contains author and copyright information. + /// In the info, you can't use HTML tags. But you can use: + /// [br] to add a line break + /// [link:http:/...] to add a line break + /// + public void FillData(string author, string title, string version, string info) + { + while (info.IndexOf("[br]") > 0) + { + info = info.Replace("[br]", "\n"); + } + while(info.IndexOf("[link:")>0) + { + int iPos = info.IndexOf("[link:"); + string link = info.Substring(iPos + 6, info.IndexOf("]", iPos + 5) - iPos - 6); + info = info.Substring(0, iPos) + link + info.Substring(info.IndexOf("]", iPos+5) + 1); + } + + label_author.Text = author; + label_title.Text = title; + label_version.Text = version; + richTextBox1.Text = info; + } + + /// + /// OK was pressed. Close About dialog. + /// + /// Caller object + /// Events + private void button_ok_Click(object sender, EventArgs e) + { + Close(); + } + + /// + /// http://esheep.petrucci.ch was pressed, a webpage with this link will be opened + /// + /// Caller object + /// Information about the link click event + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("http://esheep.petrucci.ch"); + } + + /// + /// Cancel was pressed. Synchronize pets and close about dialog. + /// + /// Caller object + /// Click events + private void button2_Click(object sender, EventArgs e) + { + Program.Mainthread.SyncSheeps(); + Close(); + } + + /// + /// https://github.com/Adrianotiger/desktopPet was pressed, a webpage with this link will be opened + /// + /// Caller object + /// Information about the link click event + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("https://github.com/Adrianotiger/desktopPet"); + } + + /// + /// Link on the richTextbox was pressed. Open it in the browser. + /// + /// Caller as object + /// Information about the link click event + private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) + { + Process.Start(e.LinkText); + } + } +} diff --git a/src/Portable/AboutBox.designer.cs b/src/Portable/AboutBox.designer.cs new file mode 100644 index 0000000..80594d9 --- /dev/null +++ b/src/Portable/AboutBox.designer.cs @@ -0,0 +1,427 @@ +namespace DesktopPet +{ + partial class AboutBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.button_ok = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.button2 = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label6 = new System.Windows.Forms.Label(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.label10 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label_author = new System.Windows.Forms.Label(); + this.label_title = new System.Windows.Forms.Label(); + this.label_version = new System.Windows.Forms.Label(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.flowLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.SuspendLayout(); + // + // button_ok + // + this.button_ok.Location = new System.Drawing.Point(83, 437); + this.button_ok.Name = "button_ok"; + this.button_ok.Size = new System.Drawing.Size(92, 27); + this.button_ok.TabIndex = 0; + this.button_ok.Text = "&Ok"; + this.button_ok.UseVisualStyleBackColor = true; + this.button_ok.Click += new System.EventHandler(this.button_ok_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Location = new System.Drawing.Point(65, 5); + this.label1.Margin = new System.Windows.Forms.Padding(3, 5, 3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(266, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Original concept and artwork by Tatsutoshi Nomura"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.Location = new System.Drawing.Point(65, 20); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(266, 13); + this.label2.TabIndex = 2; + this.label2.Text = "C# Application code by Adriano Petrucci"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // pictureBox1 + // + this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.esheep; + this.pictureBox1.Location = new System.Drawing.Point(9, 3); + this.pictureBox1.Name = "pictureBox1"; + this.tableLayoutPanel1.SetRowSpan(this.pictureBox1, 2); + this.pictureBox1.Size = new System.Drawing.Size(44, 46); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Location = new System.Drawing.Point(3, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(328, 13); + this.label3.TabIndex = 4; + this.label3.Text = "System Tray implementation by Sergi Fumanya Grunwaldt"; + this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Top; + this.label4.Location = new System.Drawing.Point(3, 55); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(328, 13); + this.label4.TabIndex = 5; + this.label4.Text = "For more information, please visit:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel1.Location = new System.Drawing.Point(3, 70); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(328, 13); + this.linkLabel1.TabIndex = 6; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "http://esheep.petrucci.ch"; + this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(194, 437); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(92, 27); + this.button2.TabIndex = 7; + this.button2.Text = "&Cancel"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Dock = System.Windows.Forms.DockStyle.Top; + this.label5.Location = new System.Drawing.Point(3, 85); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(328, 13); + this.label5.TabIndex = 8; + this.label5.Text = "Open Source project is hosted on:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel2.Location = new System.Drawing.Point(3, 98); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(328, 13); + this.linkLabel2.TabIndex = 9; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "https://github.com/Adrianotiger/desktopPet"; + this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel1); + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel2); + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel3); + this.flowLayoutPanel1.Location = new System.Drawing.Point(12, 4); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(337, 427); + this.flowLayoutPanel1.TabIndex = 10; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.58108F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 81.41892F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(334, 57); + this.tableLayoutPanel1.TabIndex = 4; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.label11, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.linkLabel3, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.label4, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.label6, 0, 7); + this.tableLayoutPanel2.Controls.Add(this.linkLabel1, 0, 4); + this.tableLayoutPanel2.Controls.Add(this.label5, 0, 5); + this.tableLayoutPanel2.Controls.Add(this.linkLabel2, 0, 6); + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 66); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 8; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(334, 180); + this.tableLayoutPanel2.TabIndex = 6; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(3, 163); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(328, 17); + this.label6.TabIndex = 9; + this.label6.Text = "Informations about the current pet:"; + this.label6.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.46707F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.53294F)); + this.tableLayoutPanel3.Controls.Add(this.label10, 0, 3); + this.tableLayoutPanel3.Controls.Add(this.label7, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.label8, 0, 2); + this.tableLayoutPanel3.Controls.Add(this.label9, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.label_author, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.label_title, 1, 1); + this.tableLayoutPanel3.Controls.Add(this.label_version, 1, 2); + this.tableLayoutPanel3.Controls.Add(this.richTextBox1, 1, 3); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 252); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 4; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.Size = new System.Drawing.Size(334, 175); + this.tableLayoutPanel3.TabIndex = 7; + // + // label10 + // + this.label10.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(3, 111); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(28, 13); + this.label10.TabIndex = 13; + this.label10.Text = "Info:"; + // + // label7 + // + this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(3, 3); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(41, 13); + this.label7.TabIndex = 10; + this.label7.Text = "Author:"; + // + // label8 + // + this.label8.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(3, 43); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(45, 13); + this.label8.TabIndex = 11; + this.label8.Text = "Version:"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(3, 23); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(30, 13); + this.label9.TabIndex = 12; + this.label9.Text = "Title:"; + // + // label_author + // + this.label_author.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_author.AutoSize = true; + this.label_author.Location = new System.Drawing.Point(58, 3); + this.label_author.Name = "label_author"; + this.label_author.Size = new System.Drawing.Size(43, 13); + this.label_author.TabIndex = 14; + this.label_author.Text = "Adriano"; + // + // label_title + // + this.label_title.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_title.AutoSize = true; + this.label_title.Location = new System.Drawing.Point(58, 23); + this.label_title.Name = "label_title"; + this.label_title.Size = new System.Drawing.Size(70, 13); + this.label_title.TabIndex = 15; + this.label_title.Text = "eSheep 64bit"; + // + // label_version + // + this.label_version.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_version.AutoSize = true; + this.label_version.Location = new System.Drawing.Point(58, 43); + this.label_version.Name = "label_version"; + this.label_version.Size = new System.Drawing.Size(22, 13); + this.label_version.TabIndex = 16; + this.label_version.Text = "1.0"; + // + // richTextBox1 + // + this.richTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(220))))); + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Location = new System.Drawing.Point(58, 63); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(273, 109); + this.richTextBox1.TabIndex = 17; + this.richTextBox1.Text = ""; + this.richTextBox1.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBox1_LinkClicked); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Dock = System.Windows.Forms.DockStyle.Top; + this.label11.Location = new System.Drawing.Point(3, 25); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(328, 13); + this.label11.TabIndex = 10; + this.label11.Text = "Sounds played through NAudio (Open Source):"; + this.label11.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel3.Location = new System.Drawing.Point(3, 40); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(328, 13); + this.linkLabel3.TabIndex = 11; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "https://naudio.codeplex.com/"; + this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // AboutBox + // + this.AcceptButton = this.button_ok; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(361, 476); + this.Controls.Add(this.flowLayoutPanel1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button_ok); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutBox"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "About eSheep / deskopPet - Version XXX"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.flowLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button_ok; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label_author; + private System.Windows.Forms.Label label_title; + private System.Windows.Forms.Label label_version; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.LinkLabel linkLabel3; + } +} \ No newline at end of file diff --git a/src/Portable/AboutBox.resx b/src/Portable/AboutBox.resx new file mode 100644 index 0000000..7189a2e --- /dev/null +++ b/src/Portable/AboutBox.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////ASAnMplCYpn/CA8awwAAAB////8B////AQkQ + Hq1CV3r/FytMzf///wH///8B////Af///wH///8B////Af///wEqOlWZYZz//x85Zv8AAAAzAAAAPQAA + AGcSIj3/XIXM/ydIf83///8B////Af///wH///8B////Af///wEAAAAVNVJV1z1eYf81UlT/NVJU/1aE + iP9ooKX/XpGV/z1eYf86WVzrHCsscf///wH///8B////AQAAAFMnSH/NLEZS4Wigpf9rpar/Z56j/2ee + o/9zsbb/bqqv/26qr/9ooKX/c7G2/2efpP8iNDZ7////AQsUJElFetb/VZP//zpfgP9zsrj/b6uw/3S0 + uv9+x87/drm//4LQ1/99xcv/fcXL/4HO1f99xcv/crzC/xQjJEk5WZDrcKX//3On//9hk+r/SnaL/3q8 + wv+E1dz/h97m/4vo8P+J4+v/jOry/4HO1f+F19//jOry/4LQ1/87XF/DR2WZ/5K7//+hxP//krv//0pr + jP+BztX/h97m/4vq8v+I5Oz/j/L7/4/x+v+P8fr/j/H6/4vo8P+R9v//U4qP/1pqhdekxf//ocT//6HE + //94lL//eMzT/3S/xf9PUG//Rx9T/0pgcf+K5/D/kfb//5H2//+R9v//kfb//2KUmf8AAAAVb3+ZzYOe + zP9qbXL/dICS/1p1lP81GT7/UwBT/1MAU/99AH3/UW6A/4/y+/+R9v//kfb//5n2//98lpn/////AQAA + ABUSFBjXPT09/7Ozs/99msz/RW+3/yILMf91AHX/XgBe/3Imef+A19//kfb//5H2///F+v//fISF1/// + /wH///8BAAAAhSgoKP+SmaX/lLTq/0BOZv9abY7/Qx9S/0UARf+ZMJn/dMTM/5H2//+/+f//2t/g/zg4 + OF3///8B////AQAAAB9ncoXrmrjq/2Zll/83ADf/cABw/34Afv9iAGL/qFix/3/Y4P+W9v//0Pv//7Gx + sesAAAAf////Af///wH///8BOD5Ij3aRmf9iRHj/vDq8/4Engf+KK4r/3FLc/1Jsgv+W9v//t/n///L+ + //9xcXG3////Af///wH///8B////AQAAABWCm53XnOTq/3Bsk/+TRJP/dyt3/2pnjf+r5er/3/z//+Tq + 6v+FhYXXAAAAFf///wH///8B////Af///wH///8BAAAAFWBwcbecyMz/kMfM/5DHzP+tycz/m6Gi4Soq + KnsAAABT////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAMwAAADMAAAAzAAAAMwAA + ABX///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEAAAAzDA8U/xojM/8RHTP/AAAA1wAA + ADMAAAAV////Af///wH///8B////Af///wEAAAAzAAAAhRMXHv8ZIjP/DBco/wAAAJn///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAADNATmb/hrP//1aU + //8GCxT/EiI9/wAAAGf///8B////Af///wH///8B////AQYLFP8SIj3/YHWZ/32t//8/c8z/AAAAmf// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAM0BO + Zv+Gs///VpT//w8cM/8vVpn/AAAAZ////wH///8B////Af///wH///8BDxwz/y9Wmf9gdZn/fa3//z9z + zP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAAAzJj1m/1qX//9QkP//Dxwz/y9Wmf8AAABn////AQAAACkAAADNAAAAzQAAAM0DBQr/CREe/zlc + mf9Ylf//P3PM/wAAAJn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQsREl0UHyD/FB8g/xQfIP8UHyD/DBIT/wwSE/8UHyD/JTg6/2eeo/9nnqP/Z56j/2ee + o/9Ga27/FB8g/xQfIP8UHyD/EhscrQAAADMAAAAL////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEAAABTNVJU/2eeo/9nnqP/Z56j/2eeo/9OeHv/Tnh7/2eeo/9nnqP/Z56j/2ul + qv9ooKX/Z56j/2eeo/9nnqP/Z56j/2eeo/9OeHv/KT9B/w8YGYX///8B////Af///wH///8B////Af// + /wH///8B////AQAAAJkAAACZAAAAmTVSVetnnqP/Z56j/2eeo/9nnqP/Z56j/2eeo/9nnqP/Z56j/3Kw + tf9ysLX/dre9/2qkqf9nnqP/Z56j/2eeo/9nnqP/aaGm/3Kwtf9rpar/Rmtu/wAAAHv///8B////Af// + /wH///8B////AQAAAHsAAADNP3PM/z9zzP8ZLlH/Un6C/2eeo/9tp6z/dra7/2qip/9nnqP/Z56j/2ee + o/9nnqP/baiu/3q8wv9wrbP/Z5+k/3a2u/92trv/baes/2eeo/92t73/erzC/3e4vv92trv/RGls9QAA + AHv///8B////Af///wEAAABnL1aZ/0+Q//9PkP//T5D//x85Zv9ekZb/dre9/3i5v/9tp6z/aqKn/2qk + qf9wrbP/erzC/3q8wv9qpKn/cK2z/3q8wv99xcv/fcXL/3q8wv96vML/fcXL/33Fy/96vML/erzC/3q8 + wv9+x87/S3d7/wAAAGf///8BAAAAFRMkP6M8bcH/W5f//16Z//9Ylf//Mlyj/zdXYv9qpKn/dbS6/26q + r/93uL7/erzC/33Fy/+D09r/g9Pa/4HO1f99xcv/g9Pa/47v9/+F19//erzC/3q8wv+F19//ju/3/3/J + 0P9/ydD/g9Pa/5H2//9uusH/JD0/owAAABUNGS2tRXPB/2We//9xpv//daj//26k//9lnv//OmSt/zlY + Wv96vML/erzC/3q8wv96vML/fcXL/4PT2v+D09r/j/H6/4vo8P+R9v//hdrh/4fe5v+H3ub/h97m/3zC + yf+F2uH/jez1/43s9f+F2uH/g9Pa/4PT2v80VFf/AAAAMxUgM/9wpf//daj//3Wo//91qP//daj//3Wo + //9upP//N2Oq/z9hZP96vML/erzC/4zq8v+M6vL/jOry/4zq8v+C0Nf/kfb//4Xa4f+J4+v/kfb//5H2 + //+F2uH/er7E/3q+xP+F2uH/kfb//43s9f+I4en/erzC/2ulqv8XIyTXFyEz/3Wo//96q///mb///6HE + //+hxP//i7b//32t//9dhsz/MEtN/3q8wv+I4en/fsfO/37Hzv+J4+v/kfb//5H2//+R9v//kfb//5H2 + //+R9v//iePr/4nj6/+R9v//kfb//4nj6/9+x87/jez1/5H2//+R9v//hdrh/xknKf8XITP/fKz//5a9 + //+hxP//ocT//6HE//+hxP//ocT//2uPzP8wS03/f8nQ/4PT2v+R9v//kfb//5H2//+D2eH/gNLa/4DS + 2v+K5/D/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//HTEz/yEn + M/+kxf//ocT//6HE//+hxP//ocT//6HE//+hxP//lLTq/01kev9qsbj/kfb//5H2//+G4Oj/d8HH/zhZ + XP8pP0H/KT9B/1iNkf93wcf/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //8dMTP/FhgcXWRwhP+ty///ocT//6HE//+hxP//ocT//6HE//+hxP//YHWZ/1eTmf+R9v//b6+1/0t2 + ef8UHyD/dgZ5/1wAXP9wAHD/RRJM/xQfIP92vcT/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //+R9v//s/j//ygyM/////8BAAAAU2dyheumw/T/ocT//5S06v9SXXD/Kioq/zpASf+NrOD/U2WE/0hs + cv9GZWz/OwA7/2UAZf9cAFz/ZgBm/4MAg/9zAHP/fQB9/xstL/+L6/P/kfb//5H2//+R9v//kfb//5H2 + //+R9v//kfb//5b2///B+v//KzIz/////wH///8BAAAAXWdyheugvOr/OUZb/1tbW//S0tL/s7Oz/1dg + bv+HpNb/RVyE/w0ADf9FAEX/RgBG/0cAR/8uAC7/NwA3/28Ab/+WAJb/RRJM/1iNkf+K5/D/kfb//5H2 + //+R9v//kfb//5H2//+R9v//rfj//9n8//8rMjP/////Af///wH///8BAAAAUz9GUf8AAAD/AAAA/1FR + Uf/k5OT/enp6/2B1mf+Su///RmSZ/yo8W/8qACr/RwBH/5EAkf9vAG//VQBV/2oAav9wAHD/KT9B/4DS + 2v+R9v//kfb//5H2//+R9v//kfb//5n2///H+v//5v3//y8yM/////8B////Af///wH///8BAAAAXQAA + AP96enr/KCgo//T09P96enr/YHWZ/6HE//9WlP//TYfq/xkuUf8AAAD/PQA9/5YAlv8zADP/hACE/60T + rf+CR4f/X6Cm/5H2//+R9v//kfb//5H2//+R9v//zfv//+X8//+BhIT/HBwcXf///wH///8B////Af// + /wEAAAAzAAAA/wAAAP8oKCj/7Ozs/25xdv9tha3/ocT//yAnM/8gJzP/bYWt/4ek1v9nfaP/LgAu/3MA + c/8XABf/jxiP/5lJmf9Xk5n/kfb//5H2//+R9v//mfb//837///m/f//6urq/1xcXOEAAAAp////Af// + /wH///8B////AQAAAB8AAADDAAAA/3p6ev+Hio7/Z32j/6HE//+hxP//YHWZ/2B1mf9gdZn/Exce/y4A + Lv9JAEn/cwBz/xcAF/+jGKP/mUmZ/1eTmf+R9v//kfb//5H2//+8+f//2fz///////+ZmZn/AAAAZ/// + /wH///8B////Af///wH///8B////AQAAAGdHT1v/d4SZ/22Frf+hxP//ocT//1NlhP8NAA3/RQBF/1wA + XP9MAEz/kQCR/3MAc/9JAEn/XwBf/+ZS5v+ZSZn/V5OZ/5H2//+R9v//kfb//7z5///Z/P///////5mZ + mf8AAABn////Af///wH///8B////Af///wH///8BAAAAFSMmLa2nuNb/udP//6HE//9TZYT/UAdT/04A + Tv87ADv/mQCZ/38Af/+HAIf/bABs/18AX/+CAIL/1mbW/01dcP+F4ur/kfb//5H2//+o9///0/v//9n8 + ///W1tb/LS0trQAAABX///8B////Af///wH///8B////Af///wH///8BAAAAe4SSqvWIlq3/JTEz/wsT + FP+bE5v/mRiZ/6dJp/8sDiz/JgQm/yYEJv95NXn/83Dz/84rzv9PCVP/S3+E/5H2//+R9v//k/b//7b5 + ///d/P//+P7//8zMzP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAzXCD + hP+8+f//XJ2j/4ZOjv/aP9r/1knW/9ZJ1v/aP9r/rRit/91c3f+7P7v/83Dz/x0xM/+R9v//kfb//6j3 + //+2+f//3/z///X+////////hYWF6wAAAF3///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAABTcIOE/837//+i9///Yqet/2YwZv+MOoz/6Gbo//96//+PGI///3r//4Ewgf9aJ1r/Yqet/6L3 + //+8+f//0/v//+/9///1/v///////4SEhP8AAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEYHBxdcIOE/9D7//+c9v//dMTM/1p/jv8zGDP/Mxgz/xwEHP8zGDP/Wn+O/3TE + zP/K+v//3Pz///f+///3/v///////62trf8zMzP/HBwcXf///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAABTcYOF663JzP/N+///n/f//5/3//+f9///n/f//5/3 + ///B+v//3/z//9zy9P/MzMz/XFxc4QAAAM0AAADNAAAAe////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAABdAAAAmYKXmf+Cl5n/gpeZ/4KX + mf+Cl5n/gpeZ/4KXmf+UmJn/hYWF6wAAAJkAAAA9////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAZwAA + AGcAAABnAAAAZwAAAGcAAABnAAAAZwAAAGcAAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/src/Portable/FormHelp.cs b/src/Portable/FormHelp.cs new file mode 100644 index 0000000..67cd0ee --- /dev/null +++ b/src/Portable/FormHelp.cs @@ -0,0 +1,18 @@ +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Help Form (simple form with a Browser component, directing to eheep.petrucci.ch to display a webpage. + /// + public partial class FormHelp : Form + { + /// + /// Constructor. Initialize components. + /// + public FormHelp() + { + InitializeComponent(); + } + } +} diff --git a/src/Portable/FormHelp.designer.cs b/src/Portable/FormHelp.designer.cs new file mode 100644 index 0000000..3939aa7 --- /dev/null +++ b/src/Portable/FormHelp.designer.cs @@ -0,0 +1,65 @@ +namespace DesktopPet +{ + partial class FormHelp + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHelp)); + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(0, 0); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(721, 430); + this.webBrowser1.TabIndex = 0; + this.webBrowser1.Url = new System.Uri("http://esheep.petrucci.ch/Help.html", System.UriKind.Absolute); + // + // FormHelp + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(721, 430); + this.Controls.Add(this.webBrowser1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.Name = "FormHelp"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Help"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser1; + } +} \ No newline at end of file diff --git a/src/Portable/FormHelp.resx b/src/Portable/FormHelp.resx new file mode 100644 index 0000000..4f9aba6 --- /dev/null +++ b/src/Portable/FormHelp.resx @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAABAQAAABACAAaAQAAN4lAAAgIAAAAQAgAKgQAABGKgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAEgsAABILAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAAihYAAIkV + AACIEwAAiBIAAIcRAACGEAAAhQ4AIoMLAF+BCACPfwYAtoAHANSDCQDohAoA8IMJAPCCBwDsfwMA23wA + AMB9AACefgEAc38CADl/AgAGfwIAAH8BAAB/AQAAfgEAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwa + AACKGAAAihYAAIkVAACIEwAAiBIAAYYQAEeCCwCiggsA8owVA/+bJQr/pzEP/7M+E/+8Rxb/v0kW/75I + FP+7RRP/sjoP/6YtC/+bIQf/ixAD/38CAPx7AADJfgEAZn8BABJ/AQAAfgEAAH4AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0c + AACNHAAAjRwAAIwaAACKGAAAihYAAIkVAACIEgA3gw4As4YQAP+bJgv/tkMX/9BfI//XZiX/2mkl/9ln + JP/YZSL/1mMg/9VhH//UXx3/1F4b/9NdGf/PWBb/yVIT/7U8Df+bHwb/hAcB/3sAANp+AABhfgEABX4A + AAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0c + AACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAAihYACIcTAH+GEAD2mykL/8RUIP/bbSv/33At/9pr + Kv/WZiT/0F8e/8lYF//FVBP/wlEQ/8FPD//ATxD/wlAR/8VSE//KVRX/zVcW/9BZFf/NVhP/vkUO/5of + Bv+BBAH/ewAAu34AACh+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP// + /wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAmhhIAwpAdBf/AUSD/3nEw/+J1 + Mv/cby3/0mIg/8VSD/+8SQX/t0QB/7NCAP+xQAD/rz8A/60+AP+sPQD/qz0A/6o9AP+rPQL/sUIG/7xK + Df/JUhL/zlYU/8xUEf+7Qgz/kxcE/3oAAOt9AABffgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP// + /wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIsZADOGEwDcmSgK/9Rn + Lf/lejb/4HU0/9ZmI//HUgz/vUgA/7pEAP+5RQD/t0MA/7ZAAP+1PgD/sz8A/7BAAP+vQAD/rj8A/6s+ + AP+qPQD/pzoA/6U6AP+qPQP/ukgL/8pTE//NVRL/yE4P/50iBv98AAD/fQAAb34AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRsAL4YU + AOKgMA7/3HEz/+d9Ov/gdTT/0F0W/8JKAf+/SAD/v0gA/71IAP+7RQD/xksA/9dsIP/dgDz/1GcY/75E + AP+wPwD/r0AA/64/AP+sPgD/qj0A/6k7AP+mOgD/ozkA/60/Bf/CTQ//zFMS/8pRD/+mKwf/fQAA+n0A + AGd+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0dAACNHQAAjR0AAI4d + AACOHQAaiBcAzqQ1Ef/hdzj/6IA+/95yLv/OVw3/xEoA/8NLAP/DSwD/wUoA/75HAP/LUwX/7baM//rz + 7f/49vX/+u7l/+mjcP/CSwL/sD8A/69AAP+uPwD/rD4A/6s9AP+pPAD/pjsA/6M5AP+lOgL/uUcL/8tS + Ef/LUw//pSkH/3sAAPh9AABZfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI4e + AACOHgAAjh4AAI4eAAKKGgCznS8M/+N7O//rhEH/4nYz/81UB//ITAD/yE4A/8ZNAP/FTAD/wkoA/8NG + AP/mn2r//P///+rt7//o6uv/7PDz//3////ehUX/tj4A/7BAAP+vQAD/rj8A/6w+AP+rPQD/qTwA/6c7 + AP+kOQD/ojgA/7lHCv/LUhH/ylEP/50hBf96AADxfgAAMX4AAAB+AAAAfgAAAP///wD///8A////AP// + /wD///8A////AI8gAACPIAAAjyAAAI0eAG2OHgH/0mkx/++JRf/mfDn/0lkL/8xOAP/LUAD/yk8A/8hO + AP/GTQD/wkoA/8hOAP/xzK//8/v//+jo6P/p6en/6Ojo//j////qrID/uj4A/7FBAP+yQQD/sEAA/64/ + AP+sPgD/qz0A/6k8AP+nOwD/pDkA/6M5AP+7SAv/y1MS/8ZNDv+OEgP/ewAAxH4BAAR+AQAAfgEAAP// + /wD///8A////AP///wD///8A////AI8hAACPIQAAjyEAFYoaAOe6TyD/74tH/+qDQv/YYhP/zk8A/89R + AP/NUAD/y1AA/8lPAP/HTgD/xUsA/8dLAP/vxab/9v3//+jo6P/q6ur/6enp//r////mpXf/uj4A/7RC + AP+zQgD/sUEA/69AAP+uPwD/rD4A/6o9AP+oPAD/pzsA/6Q5AP+kOQH/wUwP/81VEv+4Pwz/gQQA/34A + AFZ/AQAAfwEAAP///wD///8A////AP///wD///8A////AJAiAACQIgAAjh8Afp0wCv/og0L/74tK/+Bt + Iv/TUgD/0lMA/9BTAP/OUgD/zVAA/8pQAP/KTwD/x00A/8VHAP/Wejr//Pn1//P4/P/s7vD/9vz///rv + 5//QaSP/uEEA/7ZEAP+0QwD/s0IA/7FBAP+vQAD/rj8A/6s+AP+rPQD/qDwA/6c7AP+jOAD/rT8F/8lS + Ev/MVBL/oygI/3wAAN1/AQARfwIAAP///wD///8A////AP///wD///8A////AJEkAACRIwAYjB8A6cli + LP/0kk//6oA7/9hYA//VVAD/1VUA/9JUAP/QUwD/z1IA/81QAP/LUAD/yU8A/8dNAP/FSAD/2YZN//Td + zP/68ev/8tO+/9NzM/+9QwD/uUYA/7hFAP+3RAD/tUMA/7NCAP+xQQD/sEAA/64/AP+sPgD/qj0A/6k8 + AP+nOwD/ozgA/7pIC//OVRT/wEgP/4QHAf9+AQBefwIAAP///wD///8A////AP///wD///8A////AJIl + AACPIgBgmCsG/+iERf/ykU//428g/9hUAP/YVgD/1lYA/9RVAP/SVAD/0FMA/85RAP/NUAD/y1AA/8lP + AP/HTQD/xUsA/8pbDf/MYhf/yVgH/8FHAP+8RwD/vEcA/7pGAP+4RQD/tkQA/7VDAP+zQgD/sUEA/69A + AP+uPwD/rD4A/6o9AP+pPAD/pjoA/6s+A//KUxP/zFQT/5gcBf97AADDfwMABP///wD///8A////AP// + /wD///8A////AJImAAKMHwC6sUga//STUP/wi0f/318J/9tXAP/aWAD/2FcA/9ZWAP/VVQD/0lQA/9BT + AP/OUgD/zVEA/8tQAP/HSgD/z24s//PczP/03s//68Kl/8RPA/+/RgD/vkgA/7xHAP+6RgD/uEUA/7dE + AP+1QwD/s0IA/7FBAP+vQAD/rj8A/6w+AP+rPQD/qDwA/6U5AP+9Sw3/0FgV/7Q6DP9/AgD9fwMANP// + /wD///8A////AP///wD///8A////AJImACOPIgD4z2oy//mZV//rfDD/3VgA/91ZAP/bWQD/2VgA/9hX + AP/WVgD/1FUA/9JUAP/RUwD/z1IA/81RAP/ISQD/0XU3//v9/v/3////897Q/8NQBf/ARwD/v0kA/71I + AP+7RwD/ukYA/7hFAP+3RAD/tUMA/7JCAP+yQQD/sEAA/64/AP+sPgD/qz0A/6Y6AP+yQwb/zVcW/8lR + E/+KDwL/fwIAb////wD///8A////AP///wD///8A////AJEmAFGYLQT/6olJ//aWVP/nbxz/31gA/95a + AP/cWgD/21kA/9lYAP/YVwD/1lYA/9RUAP/TVAD/0FMA/85RAP/KSQD/0HM1//r49//1+/7/8drJ/8NP + A//CSAD/wUkA/75IAP+9SAD/u0cA/7pGAP+4RQD/t0QA/7VDAP+zQgD/sUEA/7BAAP+uPwD/rD4A/6k8 + AP+rPgL/ylUW/85XFv+ZHwb/fAAAnf///wD///8A////AP///wD///8A////AJAlAHWlPQ//9JRS//WU + Uf/mZw//4VsA/99cAP/fWwD/3FoA/9tYAP/ZWAD/11cA/9VVAP/UVAD/0lEA/9BRAP/MTAL/0HM2//r4 + 9//1+/7/8drL/8BNAf/AQwD/xE0E/8RPCf/ASwP/vUgA/7pFAP+5RQD/uEUA/7ZEAP+0QwD/s0IA/7FB + AP+vQAD/rj8A/6w+AP+qPAD/w1AR/9NdGv+lLAr/fAAAv////wD///8A////AP///wD///8A////AI8k + AJqySxr/+JlX//WSTv/mYQb/4lwA/+JdAP/gXAD/3lsA/9xZAP/bWQD/2VYA/9ZTAP/WVwT/2Wcf/913 + Ov/bdjz/0ntF//n29P/19/n//Pbz/+rIsP/epID/ymkt/8RQDv/OXB//zV0h/8ZTEv++SQT/uUUA/7dE + AP+2RAD/tEMA/7NCAP+xQQD/r0AA/64/AP+qPAD/vUsN/9ReG/+yOg//fwQA2////wD///8A////AP// + /wD///8A////AI8kALO6VCH//J9c//WORv/nYAL/5V4A/+NeAP/iXQD/4FwA/95aAP/cVQD/21wH/+B2 + M//kilX/5ZFh/+SPYP/fgk7/0XxH//n39f/y8/T/9PX2//n+///8////+fLs/+O2mf/EXyH/yVUV/9Rk + Lf/OXSL/x1QU/71JBf+3QwD/tkQA/7VDAP+zQgD/sUEA/69AAP+rPQD/u0oL/9ReHP+7RRL/ggcA7P// + /wD///8A////AP///wD///8A////AI8kALm9VyP//aJf//WMQ//pYQH/5l8A/+VfAP/kXgD/4VoA/99Z + AP/jcSf/6JNf/+qdcf/omGr/5pNj/+WQX//ghE//0H1I//v59//z9PX/8fHx//Hx8f/x8fL/9ff4//3/ + ///05dr/ynY//8hUFP/TZCz/0F8l/81aHv/EUBD/uUYC/7VCAP+1QwD/s0IA/7FBAP+uPgD/u0oL/9Rg + Hv++SRX/gwkA8f///wD///8A////AP///wD///8A////AI8mALq9WCP//6Nh//eORf/qYgH/6GAA/+dg + AP/lWwD/5GIK/+qMT//upXr/7aJ4/+udb//qmWv/55Zn/+eTZP/hh1T/zXlF//r39P/8/////P////f7 + /f/z8/P/8vLy//Ly8v/5/v//+O/p/8RnLf/LWRz/0mMq/9BeJf/PXCL/yVQY/7xIBv+2QwD/tEMA/7NC + AP+vPwD/vEsM/9ViH/+/SRb/gwkA8f///wD///8A////AP///wD///8A////AJAnAK+7ViL//6Rh//mU + Tf/sZAL/6mEA/+hcAP/paRL/8J5q//KwiP/wqX3/7qR3/+2hc//rnXD/6Zlr/+iWaP/lkF//xmQo/8l3 + Rv/TkGj/3a2R//He0//+////9vf3//Pz8//z8/P//P///+rOvP+/URH/02Qr/9FiKf/QXyX/z1wh/8xX + G//ASwn/tUMA/7RDAP+xQAD/wE4O/9dlIv+8SBb/gwkA6v///wD///8A////AP///wD///8A////AJIo + AJO0Thv//aJf//ucV//vaAj/610A/+xrFP/zqHb/9beQ//OuhP/xq4D/8Kh8/+6kd//toXT/651v/+mZ + a//olmf/5I9d/9+DT//WdDv/ymIn/79XHP/ZooH//fv6//b39//09PT/9fb3///////Jekr/ylgb/9Rm + Lv/RYSn/z18k/85bIP/NVxz/v0sJ/7VDAP+yQQD/xFMS/9poJP+1PxP/gAcA1////wD///8A////AP// + /wD///8A////AJQrAHGnQRD/+6Be//2hXf/xbg//7mgM//areP/4vpn/9rWM//SxiP/yroT/8ap///Cn + e//upHf/7KFz/+ucb//qmWv/6ZZo/+eUY//mkWH/5o9f/+CEUf/AUxP/26qN//7////19fX/9PT0//7/ + ///bq47/wlER/9ZqM//SZSz/0WEo/89eJP/OWyD/zFYa/71IBv+1QgD/zVsa/9ppJf+pNA//fwYAvP// + /wD///8A////AP///wD///8A////AJUuAEibMwP/75JS//+mZP/1eyP/959g//vGo//5vJX/97mQ//W1 + jP/0soj/8q6E//Grf//wqHz/76d7//Cmef/vonb/7Jxu/+iWZ//mk2P/5Y9e/+SNXP/fgU3/xWo2//r2 + 8//3+fr/9fX1//v+///r1Mb/wVgd/9dsNf/UaTH/0mUs/9BiKP/QXiT/z1sh/8pVGf++Swj/1WQj/9dm + Jf+dJgr/gAgAlP///wD///8A////AP///wD///8A////AJcwABqSKgDy0XE3//+pZP/9qWz//ceh//zE + nv/6wJn/+LyV//e5kP/2tY3/9LKI//KuhP/0r4X/45Ni/81vOf/MbTb/3INQ/+ycb//pl2j/5pNj/+WP + Xv/kjFv/xWMs//Hi2f/6/f7/9/f3//r9/v/z5t7/wVwi/9dvN//WbDX/1Gkx/9JlLP/RYin/0F4k/81a + IP/TXB3/2mkn/9JiI/+OFwT/gwsAZf///wD///8A////AP///wD///8A////AJgxAACTKgCutVEb//+p + aP//xZr//8um//7Hof/8w53/+sCY//i8lP/3uJD/9bWM//e3jv/ZhFH/vms6/9mrkf/Zq5H/xHhM/8hn + L//rnG3/6JZn/+aTYv/nkGD/xWUu/+zYzP/8////+Pj4//v+/v/x49v/wFwk/9lyPP/XcDn/1Ww1/9Rp + MP/SZSz/0WEo/85dJP/wZiD/7m8m/7pKGv+DCwD7hQ4ALP///wD///8A////AP///wD///8A////AJgx + AACXLwBUnTUD//KfZ///zqj//8qk///Kpf/+x6H//MOd//rAmP/5vJX/+buT/+ymef+9ZjT/9Onj//// + /////////Pn3/8aCWv/Td0P/7J1w/+iWZ//nkmL/w2Yx//Pn4f/7/f7/+Pj4//7////lyLf/wFkg/9x4 + Q//Zcz3/13A5/9VsNf/UaTH/0GQs/9pkKP//byP/9W4k/50qDP+CCwC0hg8AAv///wD///8A////AP// + /wD///8A////AJgyAACYMgANkysA2s1sMv//yp3//8yo///Lpv//y6X//seh//zEnf/6wJn//MKb/9uJ + WP/LjWr///////n5+f/5+fn//////+XKu//BYiv/7aBy/+ubbf/lkF7/wm9B//v39v/6+/z/+fn5//// + ///Qm3z/xFof/95+Sf/adkL/2HQ9/9dwOf/VbDX/02gw//JvK///dSn/2F8j/4gTAf+GEABMhxEAAP// + /wD///8A////AP///wD///8A////AJkyAACZMgAAlzAAZ583BP/zpGv//9Cr///Lpv//y6b//8ul//7H + of/8xJ3//sag/9iGVP/Nk3P///////r6+v/6+vr//////+DAr//FaDL/86l9//Cidf/HZS3/zpZ3//// + ///6+vr//Pz9//38/P+6Zzr/03E6/95/S//cekb/2nZB/9hyPf/Ubzn/43A0//94L//5dy//qTgT/4MN + AMmHEgAIhxIAAP///wD///8A////AP///wD///8A////AJkyAACZMgAAmTIADpMsAN7AXiT//8KS///O + q///y6b//8um///Kpf/+x6H//seh/+ehdP+9cUj///////z9/v/6+vr//////9eslP+2Uh//03xM/8Nm + Nf+9b0X/9evm//39/f/7+/z//////9Wqk/+9WCD/4odU/9+ATf/dfkn/23pF/9h2Qf/cdD3/+Xo3//9/ + Nf/OWyT/hxMB/4cSAEiIEwAAiBMAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJgy + AE+VLAD92n9F///Opf//zKn//8um///Lpv//y6X//seh//3GoP/Fbjz/0KGJ///////9/v///f39//fv + 6v/gvq7/2rOh/+XLvv/8+/r//v////z+/v//////5cu//7RUIP/fhFH/44pY/+CEUv/egU7/3H5K/917 + Rf/3fz///4M8/+NwMP+UIgf/hhIAq4kVAACJFAAAiRQAAP///wD///8A////AP///wD///8A////AJkz + AACZMwAAmTMAAJkzAACWMACTojsH/++cYv//z6j//8yo///Lpv//y6b//8ql///KpP/2u5L/u2Ew/9Gj + i//9/Pr///////////////////////////////////////79/f/Wrpr/sVMi/9yDUP/nk2L/44ta/+GI + Vv/fhFL/34FO//WER///iET/8X07/6IzEP+FEQDdihYAG4oWAACKFgAAihYAAP///wD///8A////AP// + /wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAJlC4AvapDDf/0pGv//9Cq///Nqf//y6b//8um///K + pf//y6b/97yV/8NtPf+2aUX/0qaR/+/j3f/38vD/+PTy//fy8P/v4t3/06mU/7ZpRf+7XCr/4Yxb/+qZ + av/mkmL/5I9e/+GLWv/kiVX/94pP//+NTP/4h0T/sUMZ/4USAPOKFwA+ihcAAIoXAACKFwAAihcAAP// + /wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAIZQtAMeqQw7/6pdf///N + pP//zqv//8um///Lpv//yqX//8qk///Hof/moHb/yndK/8FvRP/BdEz/wXVN/8BxSP+/aj7/xmw8/9uH + Wf/vonb/7aBy/+mZav/nlWf/5pJi/+6RXf/7kVf//5NU//GERP+zRBr/iRcA7IoYAE6LFwAAihcAAIoX + AACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + ABiULgC/nzcE/+GHTf//xpf//9Cr///Lp///yqX//8qk//7Iov/+yKL//8eg//q8lP/0son/8a6D//Cr + gf/0r4T/9rCG//Krf//upHj/66Bz/+udb//vmmn/+Zlj//+aYP//mlv/6YBD/6U3Ef+HFQDuixoATIsZ + AACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkz + AACZMwAAmTMAAJkzAACZMwANljAAnpgwAP/HZSv/9614///OpP//zqr//8mk///Hof/+xZ///MKc//vA + mf/5vZb/97qS//a2jv/0son/8q6D//Krf//yqHr/9KV1//uicP//o23//6Jo//uWWP/SaTP/misJ/4kY + ANONHAA6jBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkz + AACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJgxAG6TKwDkqEIN/9p/Rf/4sHz//8ec///L + o///yKH//8Wd///AmP/9vpT//LqR//u4jf/7tIn//LKE//6vgf//rn3//6x4//+qcv/6m2H/3nlA/6xB + Fv+MHQD7ixsAp44eABaNHAAAjBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP// + /wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAblS4AhZUs + APCkPAj/v14o/+ONVf/6rXb//7iF///Akv//xJb//8KT//+/kP//vYz//7aD//+rdf/5n2b/6otR/8Vf + LP+mOhH/kCIA/oscAK+OIAA8jx8AAI4eAACNHAAAjBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP// + /wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + AACZMwAAmTIAAJcyACSWLgBzkikAzpcuAPykOwn/tU8a/8JfKv/KaTP/zm44/85tN//KaDP/wVwp/7VO + Hf+mOw7/likC/4wfAOmNHwCWkCIAP5AiAACPIQAAjx8AAI4eAACNHAAAjBsAAIsZAACKFwAAihcAAIoX + AACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + AACZMwAAmTMAAJkzAACZMwAAmTIAAJgyAACYMQAAmDEACJYvADqULQBqkikAmpAmAMePJQDlkCYA8JAl + APCOIwDrjSIA0Y4jAKmQJAB6kSUATZIlABeRJAAAkSMAAJAiAACPIQAAjx8AAI4eAACNHAAAjBsAAIsZ + AACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///////wAA////////AAD///////8AAP//gAD//wAA//wAAD//AAD/+AAAD/8AAP/g + AAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPwAAAAAHwAA+AAAAAAf + AAD4AAAAAA8AAPAAAAAADwAA8AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAA + AAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAH + AADgAAAAAAcAAPAAAAAABwAA8AAAAAAHAADwAAAAAA8AAPgAAAAADwAA+AAAAAAfAAD8AAAAAD8AAP4A + AAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+AAAAB/wAA/8AAAAP/AAD/8AAAB/8AAP/4AAAf/wAA//4AAH// + AAD//4AB//8AAP///////wAA////////AAD///////8AACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABIL + AAASCwAAAAAAAAAAAACGFQAAhhUAAIgVAQCBDAALgQoBWpEbCcmkMBD0rjkR+q02EPqiKAr1jhIE03oC + AWx3AAASdgAAAHgAAAB6AAAAhhQAAIYVAACCDgAjkh8Js71NIP/QYiD/y1MM/8FFAP++Sgj/wlEN/8FN + Dv+yOAz/ixAEyHMAAC94AAAAegAAAIkaAACCEQAimysP1tdsL//YZRr/wEcE/8hjKf/YkGT/ulEY/6c4 + AP+qPwL/uEoJ/8JLDv+SGAbldgAAM3oAAACIGgAKkyULrdxzNf/aZRb/xEYA/8RHBf/ry7P/+P/+/+Ot + jP+uMwD/rD0A/6U5AP+vQgX/wUoO/4sQA812AAAUix0BRcRdLP/odSb/z08A/8tPAP/GSAD/3594/+/f + 0P/VhVb/tDsA/7FBAP+sPgD/pTkA/7dJCP+yOAz/fAIAapkvDa/mfTr/4mAL/9VUAP/SVQD/yEQA/85m + Kf/lsIn/vkIA/7lEAP+1RAD/skEA/6w9AP+qPgH/wEwP/40SBdKvSh7o84M2/+BYAP/ZVwD/1VEA/89H + AP/ZhVf/9O/p/8lgJP++QQD/u0YB/7RDAP+xQQD/qjwA/8BPDv+iJwv2vFko9PiEMf/iVgD/31kC/+F1 + M//hfkP/35lv//f49v/07uj/36aD/8tYGv/ETg3/tkUC/60+AP+/Tgz/rjUP+r1cKfT7gi3/6F8I/+6X + YP/vqX7/65ts/96NXf/isJP/8OPc//z////epoX/z1kc/8pVGf+1QgL/wVEM/644EPqyThzm/JJE//im + bv/2u5f/8q2B/+qba//jiVb/4H1F/9Z/Tv/17ef/8uTa/89pM//TYCX/x1MW/81cFv+kLw/0nTMHqO+p + df//1bP/+8CY//GsgP/fpIL/3amM/+WUZf/fhE//7NHC//bw7P/Sd0P/0mgu/9hlKf/jZSP/khsHzpIn + AD7KeEr//9m0///Lpv/ppXr/6c/B//b19P/WiFz/24hb//fx7f/nyrn/03E6/9d0Pv/uejj/z1Ed/4IK + AGOQJgAImjIJo+ioev//3Lj/9b6V/96rjv/w5uP/5cq7/+zZ0f/q2tL/1Ide/92BTv/tilD/7HY2/5Mg + CMN9BgARkysAAI0jAB6lQBTL6ah7///euP/2wZr/4KWD/+a7pP/ir5T/2o5k/+yZZ//5oGj/7IFG/6Eu + EN5+CgAtgw8AAJMtAACULgAAjyQAHpwzCa3OfU7/9LyR///Im//9vY7//bWF//+zgP/0nWj/0Gk4/5kq + C7yBDwAogg4AAIMPAACTLQAAky0AAJQrAACOIgAJjyUASqA5Dra3WCrvxGk7+sNmOPq3UibxnTANxIcY + AFmFFAAOiBYBAIIOAACDDwAA4AcAAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIABAADAAwAA4AcAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wCOHgAAjh4AAI4eAACNHAAAixkAAIoXAACHEwAAiBIAAIUN + ABGACABTggkAmIcOA8OPFwXilRwG75QbBu+OFATmhQoCyn8CAKV7AABmfQAAH38BAAB+AQAAfgAAAH0A + AAB9AAAAfgAAAH4BAAB+AQAA////AP///wD///8A////AI4eAACOHgAAjh4AAI0cAACLGQAAihcAAIYS + AASCDABmiRIC0qIuD//AThz/zVsg/9NgIf/UYSD/014d/89ZGv/IUBX/vEMQ/6EmCP+GCQHhegAAhXwA + ABN+AAAAfQAAAH0AAAB+AAAAfgEAAH4BAAD///8A////AP///wD///8Ajh4AAI4eAACOHgAAjRwAAIsZ + AACHFAApiBQBvKg2Ev/SZSn/33Et/9ZmIv/NWxj/w1IQ/75ODP+7Swv/vEwM/8BPDv/HUxL/z1gU/8hP + Ev+kKQj/gwgB23oAAEx9AAAAfQAAAH4AAAB+AQAAfgEAAP///wD///8A////AP///wCOHgAAjh4AAI4e + AACOHAAAhxQAR44bBOjJXCf/5ns3/9hoJP/FUgz/ukYC/7Q+AP+yOAD/sDgA/6w6AP+rPQD/qTwA/6g7 + AP+sPwT/vksN/9BZE//BRg7/ixED+nkAAHN9AAAAfgAAAH4BAAB+AQAA////AP///wD///8A////AI4e + AACOHgAAjh4AAIkXAECUIwjz1mox/+h+Of/QXhf/wUgA/75IAP+8QwD/y1wW/+Wdav/kmWP/xFIQ/689 + AP+tPwD/qz0A/6c7AP+jOQD/rkAG/8hSEP/ITg//kRYE/3kAAG1+AAAAfgEAAH4BAAD///8A////AP// + /wD///8Ajh4AAI4eAACLGwAhkSEF4NtyN//pgTz/zlgN/8ZLAP/FTAD/wUcA/8lUEP/z1bv/8/3///T+ + ///xyan/vUcG/649AP+uPwD/rD4A/6k8AP+jOQD/pToC/8RPDv/ITQ//ixAD+XoAAFB+AQAAfgEAAP// + /wD///8A////AP///wCPIQAAjiAAAIoaAbLJXyv/8YtG/9VeEf/LTAD/y08A/8hOAP/BRAD/1XM0//f7 + +v/o6uz/6O3w//ny6P/JXCD/sDsA/7FAAP+uPwD/rD0A/6k8AP+kOQD/pjsC/8hSEP++RA3/gQUA430A + AA9+AQAA////AP///wD///8A////AJAiAACLHABDqz8V//GOTP/gayH/0FAA/89SAP/NUQD/yVAA/8ZJ + AP/LVxH/89/O//L8///0////8tO6/79KCf+0QQD/s0IA/7BBAP+uPwD/qj4A/6k8AP+kOAD/rT8G/89X + E/+nLAn/ewAAg38BAAD///8A////AP///wD///8AkSQAA44gAbbdeT7/74Y//9dVAP/VVAD/0lQA/89S + AP/NUAD/y1AA/8VIAP/OZSP/5rOP/+Wuh//JWxn/uUIA/7lFAP+2QwD/skIA/7BAAP+uPwD/rD0A/6k8 + AP+jOQD/vksN/8lQEv+FCQLjfQEAG////wD///8A////AP///wCOIgAsojcO7/OTUv/lbyH/2VQA/9hX + AP/VVgD/0lQA/89SAP/NUQD/yU0A/8lZE//krIX/351u/8FJAP++RwD/u0cA/7hFAP+2RAD/s0IA/7BB + AP+uPwD/qz4A/6c7AP+tPwX/z1cU/58kCP97AABj////AP///wD///8A////AIwfAG7DXSr/+JRO/+Ff + Cv/cWAD/2lgA/9hXAP/VVQD/01QA/9BUAP/LSwD/z2or//v////06uH/xE4F/8BIAP+8SAD/u0YA/7hF + AP+2QwD/s0IA/7FAAP+uPwD/qz0A/6c7Af/IVBL/ukIQ/34CAKT///8A////AP///wD///8AkCUAmdt6 + P//1jEP/4VwB/95aAP/cWgD/2lgA/9dXAP/UUgD/0lEA/81MAP/QaSr/+Pv8//Hi2P/CSwL/wEMA/8FI + AP++SgL/uUUA/7dEAP+1RAD/s0IA/7BBAP+tPwD/qDwA/79NDv/HUBX/hQkCyv///wD///8A////AP// + /wCWLAS854lL//SGOf/jWgD/4l0A/99bAP/cWAD/2VQA/9leD//ccS7/331E/9Z9R//29PL/+Pb2/+3U + wf/doHr/ymIm/8pVFf/JVhj/vkoG/7dEAP+1QwD/s0IA/7FAAP+rPQD/uEcJ/89YGf+PFATm////AP// + /wD///8A////AJkvB8vtkFH/9YMy/+ZcAP/kXwD/4VgA/99cBf/jfDr/6JVl/+eXaf/kjVz/1oJO//n7 + +v/z9/r/9fv+//n////z5dv/0YFP/81XGf/RYCf/xlIT/7pGA/+0QgD/s0IA/64/AP+3SAj/0l0c/5Qc + BvD///8A////AP///wD///8AmTAGy+6RU//3hjT/6V4A/+ZbAP/naxn/7Z1p/++nff/sn3L/6Zhq/+eS + Y//ReEP/6c6+//Ln3//5/f//9Pb4//X6/f/5+PX/zHVB/89cIP/SYSj/zVgd/75KCf+1QwD/sUAA/7pJ + Cf/TYB//lBwG7////wD///8A////AP///wCYLwS4649R//uPP//qWQD/7HIh//Sugf/zsYr/8Kh7/+2i + df/rnW//6Zhq/96GUv/UdT7/z3I9/9OOZv/17Ob/9vj5//n+///qzLr/xlYZ/9NiKv/QXyX/zloe/8BL + C/+xQQD/v04N/9NhIf+QGAXj////AP///wD///8A////AJMqAJXhg0j//pZJ//BxF//4t4z/97uV//Sx + iP/yrIH/76d7/+6ld//vonb/7Z1w/+eTYv/ljVv/1nA2/9CGWv/7/fz/9vj6//bx7f/Jbjn/02Mq/9Fj + Kv/PXiT/zlkd/7xHBv/KWBX/zlsg/4gQAsf///8A////AP///wD///8AkSgAZ8VjLf//pV7/+7OA//zG + o//4vJT/9reO//SyiP/0sIb/6Jpr/9V8SP/bgk7/6phq/+eUZP/nkWD/zm87//Lp4v/4+/3/+////9GG + W//UZiv/1Gkx/9FjKv/QXiT/zFcb/9lnI//BTxz/ggoAnv///wD///8A////AP///wCULAAmpz8M6/6z + fP//zqv//sei//vCmv/5vJT/+LqS/+mfcf/Nhl3/48Kw/9ini//Pd0P/6plq/+qXZ//Qcz7/8OHZ//v/ + ///7/f3/zoNZ/9ZrM//Wbjf/1Gkw/89iKv/cYSP/93Al/6QxEP+BCABd////AP///wD///8A////AJgx + AAKUKwCq45Rf///Tr///yqb//seh//vCm//7wJj/04JS/+vXzP///////////9Kbe//hilf/755v/812 + Rv/38e///P////Xr5v/GbDn/23U//9hzPf/Wbjf/0Wgw//RwKv/taST/ihUD3IUOABT///8A////AP// + /wD///8AmDIAAJQsADawSxb+/cSW///PrP//y6X//seh//7Enf/Rg1T/7+DY//3////+////0Jd4/9l9 + SP/WeET/0JV0//7/////////3ryp/8llLf/gf0v/23hD/9VyPf/kcjb//34z/7ZBF/+BDAB1hxIAAP// + /wD///8A////AP///wCZMgAAmTEAAJMrAKHReEL//9Su///MqP//yqX//8ym/+Secf/QnIH///////// + ///lyLf/0pl8/9yynP/69fP//////+7g2f/CbDz/4YVR/+CEUf/afUr/4XpC//+FPv/ZYyn/iBUC14UQ + AAqHEgAA////AP///wD///8A////AJkyAACZMgAAljAAF5kwANLml2H//9Su///MqP//y6b//82m/9eL + Xv/OmoD/7d7Y//////////////////by8P/dvK3/wW1B/+CHVP/lkF//34dW/+SET//+jEr/7Hg5/5Eg + B/WGEgA8ihYAAIoWAAD///8A////AP///wD///8AmTMAAJkzAACZMwAAlS8AMp83BuTjlGD//9St///P + q///y6f//82n/+Sdcv/LgFj/0JV2/9Odgv/RmHv/yX9Z/852SP/pmGj/6Zpr/+WRYv/tkFz//5ZX/+p9 + P/+eLg36hRIAXYoXAACKFgAAihYAAP///wD///8A////AP///wCZMwAAmTMAAJkzAACZMwAAlS8AMpgu + ANbVfkj//8ib///Sr///zKf//8um//7EnP/0s4n/76p//+6ne//yqn7/8qt//+6kd//wnW7/+59q//+e + YP/dczv/lSUI74YVAFmKGAAAihYAAIoWAACKFgAA////AP///wD///8A////AJkzAACZMwAAmTMAAJkz + AACZMwAAljAAG5QqAK+3VB//6qFs///Gmv//zqb//8qj///Fnf/+wZj//LyS//y2iv/+soT//7B8//+o + b//ujFP/uk8h/40eAtCLGQA4jBsAAIoYAACKFgAAihYAAIoWAAD///8A////AP///wD///8AmTMAAJkz + AACZMwAAmTMAAJkzAACXMQAAlzEAAJIqAEqXLgC+rUgW9tJ4Q//ol2L/8ah3//Ste//0qnf/8aFt/+mO + WP/Wcz7/rkUa/5MlAs+IGQBmihsAB44dAACMGgAAihgAAIoWAACKFgAAihYAAP///wD///8A////AP// + /wCZMwAAmTMAAJkzAACZMwAAmTMAAJcxAACYMgAAljAAAJYwAAKTKwA4kSgAfpYsAK+cMQfboDYK7582 + C/CaLwfhkygBuY0gAIuLHQBLjiAADYweAACMHQAAjh0AAIwaAACKGAAAihYAAIoWAACKFgAA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////////////wAP//wAA//4AAH/8AAA/+AAAH/AAAA/wAAAH4AAAB8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA+AAAAfwAAAH8AAAD/gA + AB/8AAA//gAAf/+AAP//wAP///////////8= + + + \ No newline at end of file diff --git a/src/Portable/FormOptions.cs b/src/Portable/FormOptions.cs new file mode 100644 index 0000000..0c623e9 --- /dev/null +++ b/src/Portable/FormOptions.cs @@ -0,0 +1,138 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Application options. Need a redesign, so it is not documented. + /// + /// + public partial class FormOptions : Form + { + /// + /// Constructor + /// + public FormOptions() + { + InitializeComponent(); + } + + /// + /// Restore default animation. Will restore the animation delivered with the app. + /// + /// Caller object. + /// Click event values. + private void button1_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Retry; + Close(); + } + + /// + /// New page was loaded. Check if page starts with the -XML- key. If so, the page will be converted to an xml. + /// + /// Caller as object. + /// Webpage event values. + private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) + { + WebBrowser web = (WebBrowser)sender; + string s = web.DocumentText; + if(s.Substring(0, 5) == "-XML-") + { + Program.MyData.SetXml(s.Substring(5), ""); + Program.Mainthread.LoadNewXMLFromString(s.Substring(5)); + Close(); + } + } + + private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) + { + Graphics g = e.Graphics; + Brush _textBrush; + + // Get the item from the collection. + TabPage _tabPage = tabControl1.TabPages[e.Index]; + + // Use our own font. + Font _tabFont; + + + if (e.State == DrawItemState.Selected) + { + // Draw a different background colour, and don't paint a focus rectangle. + _textBrush = new SolidBrush(Color.Black); + g.FillRectangle(Brushes.White, e.Bounds); + _tabFont = new Font(tabControl1.TabPages[e.Index].Font.FontFamily.ToString(), (float)11.0, FontStyle.Bold, GraphicsUnit.Pixel); + } + else + { + _textBrush = new SolidBrush(Color.Black); + g.FillRectangle(Brushes.LightGray, e.Bounds); + _tabFont = new Font(tabControl1.TabPages[e.Index].Font.FontFamily.ToString(), (float)10.0, FontStyle.Regular, GraphicsUnit.Pixel); + } + + // Draw string. Center the text. + StringFormat _stringFlags = new StringFormat(); + _stringFlags.Alignment = StringAlignment.Center; + _stringFlags.LineAlignment = StringAlignment.Center; + g.DrawString(_tabPage.Text, _tabFont, _textBrush, tabControl1.GetTabRect(e.Index), _stringFlags); + } + + private void FormOptions_Load(object sender, EventArgs e) + { + // Set up audio values + checkBox1.Checked = (Program.MyData.GetVolume() > 0.0); + trackBar1.Value = (int)(Program.MyData.GetVolume() * 10); + trackBar1.Enabled = checkBox1.Checked; + label2.Text = Program.Mainthread.ErrorMessages.AudioErrorMessage; + if (label2.Text.Length > 1) + { + trackBar1.Enabled = false; + checkBox1.Enabled = false; + } + checkBox2.Checked = Program.MyData.GetWindowForeground(); + trackBar2.Value = Program.MyData.GetAutoStartPets(); + label5.Text = trackBar2.Value.ToString(); + label2.Text = trackBar1.Value.ToString(); + checkBox3.Checked = Program.MyData.GetMultiscreen(); + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + trackBar1.Enabled = checkBox1.Checked; + if(!trackBar1.Enabled) + { + trackBar1.Value = 0; + trackBar1_Scroll(sender, e); + } + } + + private void trackBar1_Scroll(object sender, EventArgs e) + { + Program.MyData.SetVolume((float)(trackBar1.Value / 10.0)); + if(Program.MyData.GetVolume() < 0.1f) + { + trackBar1.Enabled = false; + checkBox1.Checked = false; + } + label2.Text = trackBar1.Value.ToString(); + } + + private void checkBox2_Click(object sender, EventArgs e) + { + Program.MyData.SetWindowForeground(checkBox2.Checked); + } + + private void trackBar2_Scroll(object sender, EventArgs e) + { + Program.MyData.SetAutoStartPets(trackBar2.Value); + label5.Text = trackBar2.Value.ToString(); + } + + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + Program.MyData.SetMultiscreen(checkBox3.Checked); + } + } +} diff --git a/src/Portable/FormOptions.designer.cs b/src/Portable/FormOptions.designer.cs new file mode 100644 index 0000000..d833699 --- /dev/null +++ b/src/Portable/FormOptions.designer.cs @@ -0,0 +1,384 @@ +namespace DesktopPet +{ + partial class FormOptions + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormOptions)); + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.button1 = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label4 = new System.Windows.Forms.Label(); + this.trackBar2 = new System.Windows.Forms.TrackBar(); + this.label5 = new System.Windows.Forms.Label(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.label2 = new System.Windows.Forms.Label(); + this.trackBar1 = new System.Windows.Forms.TrackBar(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.label7 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.tabPage4.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(3, 3); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(351, 327); + this.webBrowser1.TabIndex = 1; + this.webBrowser1.Url = new System.Uri("http://esheep.petrucci.ch/pets.php", System.UriKind.Absolute); + this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); + // + // button1 + // + this.button1.AutoSize = true; + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(3, 3); + this.button1.Name = "button1"; + this.tableLayoutPanel1.SetRowSpan(this.button1, 2); + this.button1.Size = new System.Drawing.Size(134, 64); + this.button1.TabIndex = 0; + this.button1.Text = "Restore pet"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; + this.tabControl1.ItemSize = new System.Drawing.Size(40, 120); + this.tabControl1.Location = new System.Drawing.Point(0, 1); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(485, 341); + this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + this.tabControl1.TabIndex = 2; + this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem); + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.webBrowser1); + this.tabPage1.Location = new System.Drawing.Point(124, 4); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(357, 333); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Online pets"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.tableLayoutPanel1); + this.tabPage2.Location = new System.Drawing.Point(124, 4); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(357, 333); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Animation options"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 40F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60F)); + this.tableLayoutPanel1.Controls.Add(this.label7, 1, 4); + this.tableLayoutPanel1.Controls.Add(this.checkBox3, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.checkBox2, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.label3, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.checkBox1, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 5); + this.tableLayoutPanel1.Controls.Add(this.trackBar1, 1, 6); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 10; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(351, 327); + this.tableLayoutPanel1.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(143, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(205, 20); + this.label1.TabIndex = 1; + this.label1.Text = "Restore the pet to the original one:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pictureBox1 + // + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.esheep; + this.pictureBox1.Location = new System.Drawing.Point(143, 23); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(205, 44); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.checkBox2.Location = new System.Drawing.Point(3, 73); + this.checkBox2.Name = "checkBox2"; + this.tableLayoutPanel1.SetRowSpan(this.checkBox2, 2); + this.checkBox2.Size = new System.Drawing.Size(134, 64); + this.checkBox2.TabIndex = 3; + this.checkBox2.Text = "Window foreground"; + this.checkBox2.UseVisualStyleBackColor = true; + this.checkBox2.Click += new System.EventHandler(this.checkBox2_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Location = new System.Drawing.Point(143, 70); + this.label3.Name = "label3"; + this.tableLayoutPanel1.SetRowSpan(this.label3, 2); + this.label3.Size = new System.Drawing.Size(205, 70); + this.label3.TabIndex = 4; + this.label3.Text = "The original eSheep was able to bring in front the collided window. It will decre" + + "ase your productivity, so it is disabled by default."; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.tableLayoutPanel2); + this.tabPage4.Location = new System.Drawing.Point(124, 4); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(357, 333); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "Application"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.label4, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.trackBar2, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.label5, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 10; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 23.83721F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 76.16279F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 133F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(357, 333); + this.tableLayoutPanel2.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Location = new System.Drawing.Point(181, 14); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(173, 45); + this.label4.TabIndex = 2; + this.label4.Text = "How many pets start with application"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // trackBar2 + // + this.trackBar2.Dock = System.Windows.Forms.DockStyle.Fill; + this.trackBar2.Location = new System.Drawing.Point(3, 17); + this.trackBar2.Maximum = 16; + this.trackBar2.Minimum = 1; + this.trackBar2.Name = "trackBar2"; + this.trackBar2.Size = new System.Drawing.Size(172, 39); + this.trackBar2.TabIndex = 3; + this.trackBar2.Value = 1; + this.trackBar2.Scroll += new System.EventHandler(this.trackBar2_Scroll); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(3, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(30, 13); + this.label5.TabIndex = 1; + this.label5.Text = "ERR"; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.checkBox1.Location = new System.Drawing.Point(3, 193); + this.checkBox1.Name = "checkBox1"; + this.tableLayoutPanel1.SetRowSpan(this.checkBox1, 2); + this.checkBox1.Size = new System.Drawing.Size(134, 64); + this.checkBox1.TabIndex = 5; + this.checkBox1.Text = "Allow sounds"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label2.Location = new System.Drawing.Point(143, 197); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(205, 13); + this.label2.TabIndex = 6; + this.label2.Text = "ERR"; + this.label2.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // trackBar1 + // + this.trackBar1.Dock = System.Windows.Forms.DockStyle.Fill; + this.trackBar1.Enabled = false; + this.trackBar1.Location = new System.Drawing.Point(143, 213); + this.trackBar1.Name = "trackBar1"; + this.trackBar1.Size = new System.Drawing.Size(205, 44); + this.trackBar1.TabIndex = 7; + this.trackBar1.TickFrequency = 2; + this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.TopLeft; + this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll); + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.checkBox3.Location = new System.Drawing.Point(3, 143); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(134, 44); + this.checkBox3.TabIndex = 8; + this.checkBox3.Text = "Allow Multiscreen"; + this.checkBox3.UseVisualStyleBackColor = true; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Location = new System.Drawing.Point(143, 140); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(205, 50); + this.label7.TabIndex = 9; + this.label7.Text = "If you have more than 1 monitor, the sheep can spawn also on other screens."; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // FormOptions + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(485, 342); + this.Controls.Add(this.tabControl1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormOptions"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Options"; + this.TopMost = true; + this.Load += new System.EventHandler(this.FormOptions_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.tabPage4.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.WebBrowser webBrowser1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TrackBar trackBar2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TrackBar trackBar1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.CheckBox checkBox3; + } +} diff --git a/src/Portable/FormOptions.resx b/src/Portable/FormOptions.resx new file mode 100644 index 0000000..07cf71a --- /dev/null +++ b/src/Portable/FormOptions.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////ASAnMplCYpn/CA8awwAAAB////8B////AQkQ + Hq1CV3r/FytMzf///wH///8B////Af///wH///8B////Af///wEqOlWZYZz//x85Zv8AAAAzAAAAPQAA + AGcSIj3/XIXM/ydIf83///8B////Af///wH///8B////Af///wEAAAAVNVJV1z1eYf81UlT/NVJU/1aE + iP9ooKX/XpGV/z1eYf86WVzrHCsscf///wH///8B////AQAAAFMnSH/NLEZS4Wigpf9rpar/Z56j/2ee + o/9zsbb/bqqv/26qr/9ooKX/c7G2/2efpP8iNDZ7////AQsUJElFetb/VZP//zpfgP9zsrj/b6uw/3S0 + uv9+x87/drm//4LQ1/99xcv/fcXL/4HO1f99xcv/crzC/xQjJEk5WZDrcKX//3On//9hk+r/SnaL/3q8 + wv+E1dz/h97m/4vo8P+J4+v/jOry/4HO1f+F19//jOry/4LQ1/87XF/DR2WZ/5K7//+hxP//krv//0pr + jP+BztX/h97m/4vq8v+I5Oz/j/L7/4/x+v+P8fr/j/H6/4vo8P+R9v//U4qP/1pqhdekxf//ocT//6HE + //94lL//eMzT/3S/xf9PUG//Rx9T/0pgcf+K5/D/kfb//5H2//+R9v//kfb//2KUmf8AAAAVb3+ZzYOe + zP9qbXL/dICS/1p1lP81GT7/UwBT/1MAU/99AH3/UW6A/4/y+/+R9v//kfb//5n2//98lpn/////AQAA + ABUSFBjXPT09/7Ozs/99msz/RW+3/yILMf91AHX/XgBe/3Imef+A19//kfb//5H2///F+v//fISF1/// + /wH///8BAAAAhSgoKP+SmaX/lLTq/0BOZv9abY7/Qx9S/0UARf+ZMJn/dMTM/5H2//+/+f//2t/g/zg4 + OF3///8B////AQAAAB9ncoXrmrjq/2Zll/83ADf/cABw/34Afv9iAGL/qFix/3/Y4P+W9v//0Pv//7Gx + sesAAAAf////Af///wH///8BOD5Ij3aRmf9iRHj/vDq8/4Engf+KK4r/3FLc/1Jsgv+W9v//t/n///L+ + //9xcXG3////Af///wH///8B////AQAAABWCm53XnOTq/3Bsk/+TRJP/dyt3/2pnjf+r5er/3/z//+Tq + 6v+FhYXXAAAAFf///wH///8B////Af///wH///8BAAAAFWBwcbecyMz/kMfM/5DHzP+tycz/m6Gi4Soq + KnsAAABT////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAMwAAADMAAAAzAAAAMwAA + ABX///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEAAAAzDA8U/xojM/8RHTP/AAAA1wAA + ADMAAAAV////Af///wH///8B////Af///wEAAAAzAAAAhRMXHv8ZIjP/DBco/wAAAJn///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAADNATmb/hrP//1aU + //8GCxT/EiI9/wAAAGf///8B////Af///wH///8B////AQYLFP8SIj3/YHWZ/32t//8/c8z/AAAAmf// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAM0BO + Zv+Gs///VpT//w8cM/8vVpn/AAAAZ////wH///8B////Af///wH///8BDxwz/y9Wmf9gdZn/fa3//z9z + zP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAAAzJj1m/1qX//9QkP//Dxwz/y9Wmf8AAABn////AQAAACkAAADNAAAAzQAAAM0DBQr/CREe/zlc + mf9Ylf//P3PM/wAAAJn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQsREl0UHyD/FB8g/xQfIP8UHyD/DBIT/wwSE/8UHyD/JTg6/2eeo/9nnqP/Z56j/2ee + o/9Ga27/FB8g/xQfIP8UHyD/EhscrQAAADMAAAAL////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEAAABTNVJU/2eeo/9nnqP/Z56j/2eeo/9OeHv/Tnh7/2eeo/9nnqP/Z56j/2ul + qv9ooKX/Z56j/2eeo/9nnqP/Z56j/2eeo/9OeHv/KT9B/w8YGYX///8B////Af///wH///8B////Af// + /wH///8B////AQAAAJkAAACZAAAAmTVSVetnnqP/Z56j/2eeo/9nnqP/Z56j/2eeo/9nnqP/Z56j/3Kw + tf9ysLX/dre9/2qkqf9nnqP/Z56j/2eeo/9nnqP/aaGm/3Kwtf9rpar/Rmtu/wAAAHv///8B////Af// + /wH///8B////AQAAAHsAAADNP3PM/z9zzP8ZLlH/Un6C/2eeo/9tp6z/dra7/2qip/9nnqP/Z56j/2ee + o/9nnqP/baiu/3q8wv9wrbP/Z5+k/3a2u/92trv/baes/2eeo/92t73/erzC/3e4vv92trv/RGls9QAA + AHv///8B////Af///wEAAABnL1aZ/0+Q//9PkP//T5D//x85Zv9ekZb/dre9/3i5v/9tp6z/aqKn/2qk + qf9wrbP/erzC/3q8wv9qpKn/cK2z/3q8wv99xcv/fcXL/3q8wv96vML/fcXL/33Fy/96vML/erzC/3q8 + wv9+x87/S3d7/wAAAGf///8BAAAAFRMkP6M8bcH/W5f//16Z//9Ylf//Mlyj/zdXYv9qpKn/dbS6/26q + r/93uL7/erzC/33Fy/+D09r/g9Pa/4HO1f99xcv/g9Pa/47v9/+F19//erzC/3q8wv+F19//ju/3/3/J + 0P9/ydD/g9Pa/5H2//9uusH/JD0/owAAABUNGS2tRXPB/2We//9xpv//daj//26k//9lnv//OmSt/zlY + Wv96vML/erzC/3q8wv96vML/fcXL/4PT2v+D09r/j/H6/4vo8P+R9v//hdrh/4fe5v+H3ub/h97m/3zC + yf+F2uH/jez1/43s9f+F2uH/g9Pa/4PT2v80VFf/AAAAMxUgM/9wpf//daj//3Wo//91qP//daj//3Wo + //9upP//N2Oq/z9hZP96vML/erzC/4zq8v+M6vL/jOry/4zq8v+C0Nf/kfb//4Xa4f+J4+v/kfb//5H2 + //+F2uH/er7E/3q+xP+F2uH/kfb//43s9f+I4en/erzC/2ulqv8XIyTXFyEz/3Wo//96q///mb///6HE + //+hxP//i7b//32t//9dhsz/MEtN/3q8wv+I4en/fsfO/37Hzv+J4+v/kfb//5H2//+R9v//kfb//5H2 + //+R9v//iePr/4nj6/+R9v//kfb//4nj6/9+x87/jez1/5H2//+R9v//hdrh/xknKf8XITP/fKz//5a9 + //+hxP//ocT//6HE//+hxP//ocT//2uPzP8wS03/f8nQ/4PT2v+R9v//kfb//5H2//+D2eH/gNLa/4DS + 2v+K5/D/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//HTEz/yEn + M/+kxf//ocT//6HE//+hxP//ocT//6HE//+hxP//lLTq/01kev9qsbj/kfb//5H2//+G4Oj/d8HH/zhZ + XP8pP0H/KT9B/1iNkf93wcf/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //8dMTP/FhgcXWRwhP+ty///ocT//6HE//+hxP//ocT//6HE//+hxP//YHWZ/1eTmf+R9v//b6+1/0t2 + ef8UHyD/dgZ5/1wAXP9wAHD/RRJM/xQfIP92vcT/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //+R9v//s/j//ygyM/////8BAAAAU2dyheumw/T/ocT//5S06v9SXXD/Kioq/zpASf+NrOD/U2WE/0hs + cv9GZWz/OwA7/2UAZf9cAFz/ZgBm/4MAg/9zAHP/fQB9/xstL/+L6/P/kfb//5H2//+R9v//kfb//5H2 + //+R9v//kfb//5b2///B+v//KzIz/////wH///8BAAAAXWdyheugvOr/OUZb/1tbW//S0tL/s7Oz/1dg + bv+HpNb/RVyE/w0ADf9FAEX/RgBG/0cAR/8uAC7/NwA3/28Ab/+WAJb/RRJM/1iNkf+K5/D/kfb//5H2 + //+R9v//kfb//5H2//+R9v//rfj//9n8//8rMjP/////Af///wH///8BAAAAUz9GUf8AAAD/AAAA/1FR + Uf/k5OT/enp6/2B1mf+Su///RmSZ/yo8W/8qACr/RwBH/5EAkf9vAG//VQBV/2oAav9wAHD/KT9B/4DS + 2v+R9v//kfb//5H2//+R9v//kfb//5n2///H+v//5v3//y8yM/////8B////Af///wH///8BAAAAXQAA + AP96enr/KCgo//T09P96enr/YHWZ/6HE//9WlP//TYfq/xkuUf8AAAD/PQA9/5YAlv8zADP/hACE/60T + rf+CR4f/X6Cm/5H2//+R9v//kfb//5H2//+R9v//zfv//+X8//+BhIT/HBwcXf///wH///8B////Af// + /wEAAAAzAAAA/wAAAP8oKCj/7Ozs/25xdv9tha3/ocT//yAnM/8gJzP/bYWt/4ek1v9nfaP/LgAu/3MA + c/8XABf/jxiP/5lJmf9Xk5n/kfb//5H2//+R9v//mfb//837///m/f//6urq/1xcXOEAAAAp////Af// + /wH///8B////AQAAAB8AAADDAAAA/3p6ev+Hio7/Z32j/6HE//+hxP//YHWZ/2B1mf9gdZn/Exce/y4A + Lv9JAEn/cwBz/xcAF/+jGKP/mUmZ/1eTmf+R9v//kfb//5H2//+8+f//2fz///////+ZmZn/AAAAZ/// + /wH///8B////Af///wH///8B////AQAAAGdHT1v/d4SZ/22Frf+hxP//ocT//1NlhP8NAA3/RQBF/1wA + XP9MAEz/kQCR/3MAc/9JAEn/XwBf/+ZS5v+ZSZn/V5OZ/5H2//+R9v//kfb//7z5///Z/P///////5mZ + mf8AAABn////Af///wH///8B////Af///wH///8BAAAAFSMmLa2nuNb/udP//6HE//9TZYT/UAdT/04A + Tv87ADv/mQCZ/38Af/+HAIf/bABs/18AX/+CAIL/1mbW/01dcP+F4ur/kfb//5H2//+o9///0/v//9n8 + ///W1tb/LS0trQAAABX///8B////Af///wH///8B////Af///wH///8BAAAAe4SSqvWIlq3/JTEz/wsT + FP+bE5v/mRiZ/6dJp/8sDiz/JgQm/yYEJv95NXn/83Dz/84rzv9PCVP/S3+E/5H2//+R9v//k/b//7b5 + ///d/P//+P7//8zMzP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAzXCD + hP+8+f//XJ2j/4ZOjv/aP9r/1knW/9ZJ1v/aP9r/rRit/91c3f+7P7v/83Dz/x0xM/+R9v//kfb//6j3 + //+2+f//3/z///X+////////hYWF6wAAAF3///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAABTcIOE/837//+i9///Yqet/2YwZv+MOoz/6Gbo//96//+PGI///3r//4Ewgf9aJ1r/Yqet/6L3 + //+8+f//0/v//+/9///1/v///////4SEhP8AAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEYHBxdcIOE/9D7//+c9v//dMTM/1p/jv8zGDP/Mxgz/xwEHP8zGDP/Wn+O/3TE + zP/K+v//3Pz///f+///3/v///////62trf8zMzP/HBwcXf///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAABTcYOF663JzP/N+///n/f//5/3//+f9///n/f//5/3 + ///B+v//3/z//9zy9P/MzMz/XFxc4QAAAM0AAADNAAAAe////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAABdAAAAmYKXmf+Cl5n/gpeZ/4KX + mf+Cl5n/gpeZ/4KXmf+UmJn/hYWF6wAAAJkAAAA9////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAZwAA + AGcAAABnAAAAZwAAAGcAAABnAAAAZwAAAGcAAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/src/Portable/Install.cs b/src/Portable/Install.cs new file mode 100644 index 0000000..6f35928 --- /dev/null +++ b/src/Portable/Install.cs @@ -0,0 +1,475 @@ +using Microsoft.Win32; +using System; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Window form for the installer/Repair/Uninstaller. Will add shortcuts to windows. + /// + /// + public partial class Install : Form + { + /// + /// Path where the application is located. + /// + string appPath; + /// + /// Path where the application can be installed. + /// + string installPath; + /// + /// Path to the user desktop location. + /// + string desktopPath; + /// + /// Path to the user start menu location. + /// + string startMenuPath; + /// + /// Path to the start-up location. + /// + string autostartPath; + /// + /// Webpage for this application. + /// + string webpage = "http://esheep.petrucci.ch"; + /// + /// Application Name. + /// + string appName = "DesktopPet"; + /// + /// Name of the uninstall batch file. + /// + string uninstallBatch = "uninstall.cmd"; + + /// + /// Constructor. Set the path of the different locations and start the update-check process. + /// + public Install() + { + InitializeComponent(); + + appPath = Application.StartupPath; + installPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), appName); + desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); + startMenuPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu), "Programs"); + autostartPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup); + // Check updates only if the application is installed (so downloads from other page will not notify an update after download) + if(Program.IsApplicationInstalled()) + CheckUpdates(); + } + + /// + /// Form was loaded. + /// + /// Caller as object. + /// Arguments values. + private void Install_Load(object sender, EventArgs e) + { + Text = "Install " + Animations.Xml.AnimationXML.Header.Title; + label1.Text = "Install " + Animations.Xml.AnimationXML.Header.Petname; + } + + /// + /// Open the form window. Allows the user to install or uninstall this application. + /// + public void ShowInstallation() + { + if (!Program.IsApplicationInstalled()) + { + string msg = "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" "; + msg += "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE "; + msg += "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE "; + msg += "DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE "; + msg += "FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL "; + msg += "DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR "; + msg += "SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER "; + msg += "CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, "; + msg += "OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE "; + msg += "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. "; + + textBox1.Text = msg; + textBox1.Visible = true; + button1.Text = "Accept"; + button2.Visible = false; + button3.Visible = false; + } + else + { + button1.Visible = false; + button2.Visible = true; + button3.Visible = true; + textBox1.Visible = false; + checkBox1.Visible = true; + checkBox2.Visible = true; + checkBox3.Visible = true; + button2.Enabled = false; + + checkBox1.Checked = File.Exists(Path.Combine(startMenuPath, $"{appName}.url")); + checkBox2.Checked = File.Exists(Path.Combine(desktopPath, $"{appName}.url")); + checkBox3.Checked = File.Exists(Path.Combine(autostartPath, $"{appName}.url")); + } + + Show(); + } + + /// + /// Install was pressed. The application will be installed on the AppData folder. + /// + /// Caller as object. + /// Mouse event values. + private void button1_Click(object sender, EventArgs e) + { + if (button1.Text == "Accept") + { + button1.Text = "Install"; + button2.Visible = false; + textBox1.Visible = false; + checkBox1.Visible = true; + checkBox2.Visible = true; + checkBox3.Visible = true; + progressBar1.Visible = true; + } + else if(button1.Text == "Install") + { + checkBox1.Enabled = false; + checkBox2.Enabled = false; + checkBox3.Enabled = false; + button1.Enabled = false; + Application.DoEvents(); + progressBar1.Value = 100; + InstallApplication(); + } + else + { + Application.Exit(); + } + } + + /// + /// Application will be installed. Exe will be copied to the install path, icons will be created and registry will be updated.
+ /// A uninstall.cmd will also be created for the uninstall process. + ///
+ private void InstallApplication() + { + string sDestExe = installPath + "\\" + appName + ".exe"; + bool bPersonalIcon = true; + if (!Directory.Exists(installPath)) + { + Directory.CreateDirectory(installPath); + } + try + { + File.Copy(Application.ExecutablePath, sDestExe, true); + } + catch(Exception ex) + { + MessageBox.Show("Error: " + ex.Message); + progressBar1.Value = 0; + return; + } + + try + { + FileStream fs = File.OpenWrite(installPath + "\\installpet.xml"); + fs.Write(System.Text.Encoding.UTF8.GetBytes(Animations.Xml.AnimationXMLString), 0, Animations.Xml.AnimationXMLString.Length); + fs.Close(); + + fs = File.OpenWrite(installPath + "\\icon.ico"); + byte[] sIco = Animations.Xml.bitmapIcon.ToArray(); + fs.Write(sIco, 0, sIco.Length); + fs.Close(); + } + catch(Exception) + { + bPersonalIcon = false; + } + + string contents; + + if (bPersonalIcon) + { + contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={installPath+"\\icon.ico"} +IconIndex=0 + "; + } + else + { + contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={sDestExe.Replace('\\', '/')} +IconIndex=0 + "; + } + + // add to start menu + if (checkBox1.Checked) + { + string file = Path.Combine(startMenuPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // add to desktop + if (checkBox2.Checked) + { + string file = Path.Combine(desktopPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // add to auto start + if (checkBox3.Checked) + { + string file = Path.Combine(autostartPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // Create an uninstall.cmd script + string UninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall"; + string keyName = $@"{UninstallKey}\{appName}"; + + // Generate the commands to remove the shortcuts + var deletions = $@"del ""{Path.Combine(startMenuPath, $"{appName}.url")}""{Environment.NewLine}"; + deletions += $@"del ""{Path.Combine(desktopPath, $"{appName}.url")}""{Environment.NewLine}"; + deletions += $@"del ""{Path.Combine(autostartPath, $"{appName}.url")}""{Environment.NewLine}"; + string script = $@" +@echo on +setlocal +cd %~dp0\.. +:: Remove running application +taskkill /IM {appName}.exe /f +:: Delete the shortcuts +{deletions} +:: Use start to finish before we're deleted +start /min """" cmd /c +%= Use reg to delete the app key =% +reg delete ""HKCU\{keyName}"" /f +%= Remove the app's root folder =% +rd /s /q ""{appName}"" + "; + + string scriptPath = Path.Combine(installPath, uninstallBatch); + File.WriteAllText(scriptPath, script); + + using (var key = Registry.CurrentUser.CreateSubKey(keyName)) + { + // strings + string path = installPath + "\\" + appName + ".exe"; + key.SetValue("DisplayIcon", path); + key.SetValue("DisplayName", appName); + key.SetValue("DisplayVersion", Application.ProductVersion); + key.SetValue("InstallDate", DateTime.Now.ToString("yyyymmdd")); + key.SetValue("InstallLocation", installPath); + key.SetValue("Publisher", Application.CompanyName); + key.SetValue("QuietUninstallString", scriptPath); + key.SetValue("UninstallString", scriptPath); // TODO: Show GIF of some sort? + key.SetValue("URLInfoAbout", webpage); + key.SetValue("URLUpdateInfo", webpage); + // DWords + key.SetValue("EstimatedSize", 1500); + key.SetValue("NoModify", 1); + key.SetValue("NoRepair", 1); + key.SetValue("Language", 0x0409); // English locale + } + + button1.Text = "Installed"; + + Process petProcess = new Process(); + petProcess.StartInfo.FileName = installPath + "\\" + appName + ".exe"; + petProcess.Start(); + + Hide(); + Application.DoEvents(); + Application.Exit(); + } + + /// + /// Update was pressed. Application icons will be created or removed. + /// + /// Caller as object. + /// Mouse event values. + private void button2_Click(object sender, EventArgs e) + { + string sDestExe = installPath + "\\" + appName + ".exe"; + + string contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={sDestExe.Replace('\\', '/')} +IconIndex=0 + "; + + if (checkBox1.Checked != File.Exists(Path.Combine(startMenuPath, $"{appName}.url"))) + { + string file = Path.Combine(startMenuPath, $"{appName}.url"); + + if (checkBox1.Checked) // add to start menu + File.WriteAllText(file, contents); + else // remove from start menu + File.Delete(file); + } + if(checkBox2.Checked != File.Exists(Path.Combine(desktopPath, $"{appName}.url"))) + { + string file = Path.Combine(desktopPath, $"{appName}.url"); + if (checkBox2.Checked) // add to desktop + File.WriteAllText(file, contents); + else // remove from desktop + File.Delete(file); + } + if(checkBox3.Checked != File.Exists(Path.Combine(autostartPath, $"{appName}.url"))) + { + string file = Path.Combine(autostartPath, $"{appName}.url"); + if (checkBox3.Checked) // add to auto start + File.WriteAllText(file, contents); + else // remove from auto start + File.Delete(file); + } + + button2.Enabled = false; + } + + /// + /// Uninstall was pressed. The uninstall batch file will be executed. + /// + /// Caller as object. + /// Mouse event values. + private void button3_Click(object sender, EventArgs e) + { + Process uninstallProcess = new Process(); + uninstallProcess.StartInfo.FileName = installPath + "\\" + uninstallBatch; + uninstallProcess.Start(); + } + + /// + /// Closing form. If it is visible, hide the window so that functions are still available. + /// + /// Caller as sender. + /// Closing event values. + private void Install_FormClosing(object sender, FormClosingEventArgs e) + { + if (Visible) + { + Hide(); + e.Cancel = true; + } + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// Check for updates. If an update is present, will replace this application with the new one. + /// + private void CheckUpdates() + { + string sExeFile = appPath + "\\" + appName + ".exe"; + string sOldFile = appPath + "\\" + appName + "_old.exe"; + try + { + if (File.Exists(sOldFile)) + { + File.Delete(sOldFile); + } + } + catch(Exception) + { + } + WebRequest request = WebRequest.Create(webpage + "/version.php"); + WebResponse response = request.GetResponse(); + Stream data = response.GetResponseStream(); + string versionWeb = string.Empty; + string versionApp = Application.ProductVersion; + using (StreamReader sr = new StreamReader(data)) + { + versionWeb = sr.ReadToEnd(); + } + if(versionApp != versionWeb) + { + WebRequest requestChangelog = WebRequest.Create(webpage + "/version.php?changelog"); + + WebResponse responseChangelog = requestChangelog.GetResponse(); + Stream dataChangelog = responseChangelog.GetResponseStream(); + string changeLog = Application.ProductVersion; + using (StreamReader sr = new StreamReader(dataChangelog)) + { + changeLog = sr.ReadToEnd(); + changeLog = changeLog.Substring(changeLog.IndexOf("")); + changeLog = changeLog.Replace("
  • ", " - "); + } + + if (MessageBox.Show("A newer version was found on the web: " + versionWeb + "\n==========================\nCHANGELOG:\n" + changeLog + "\n========================== \nDo you want install it now?", appName + " version: " + versionApp, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + var webClient = new WebClient(); + webClient.DownloadFileCompleted += WebClient_DownloadFileCompleted; + File.Move(sExeFile, sOldFile); + + webClient.DownloadFileAsync( + new Uri(webpage + "/download.php?exe"), + $@"{sExeFile}"); + } + } + } + + /// + /// Exe was downloaded successfully. Application can be closed. + /// + /// Caller as object. + /// Download event values. + private void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) + { + string sExeFile = appPath + "\\" + appName + ".exe"; + string sOldFile = appPath + "\\" + appName + "_old.exe"; + + try + { + Process petProcess = new Process(); + petProcess.StartInfo.FileName = sExeFile; + petProcess.Start(); + + Hide(); + MessageBox.Show("Application was updated."); + Application.Exit(); + } + catch (Exception ex) + { + File.Move(sOldFile, sExeFile); + MessageBox.Show("Unable to update: " + ex.Message); + } + } + } +} diff --git a/src/Portable/Install.designer.cs b/src/Portable/Install.designer.cs new file mode 100644 index 0000000..36502ed --- /dev/null +++ b/src/Portable/Install.designer.cs @@ -0,0 +1,196 @@ +namespace DesktopPet +{ + partial class Install + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Install)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button3 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.install; + this.pictureBox1.Location = new System.Drawing.Point(12, 32); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(128, 128); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(202, 18); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(152, 20); + this.label1.TabIndex = 1; + this.label1.Text = "Install Application"; + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(12, 166); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(398, 23); + this.progressBar1.TabIndex = 2; + this.progressBar1.Visible = false; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Checked = true; + this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox1.Location = new System.Drawing.Point(174, 61); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(153, 17); + this.checkBox1.TabIndex = 3; + this.checkBox1.Text = "Add shortcut to Start Menu"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.Visible = false; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(174, 84); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(143, 17); + this.checkBox2.TabIndex = 4; + this.checkBox2.Text = "Add Shortcut to Desktop"; + this.checkBox2.UseVisualStyleBackColor = true; + this.checkBox2.Visible = false; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Checked = true; + this.checkBox3.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox3.Location = new System.Drawing.Point(174, 107); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(102, 17); + this.checkBox3.TabIndex = 5; + this.checkBox3.Text = "Add to Autostart"; + this.checkBox3.UseVisualStyleBackColor = true; + this.checkBox3.Visible = false; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(247, 137); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 6; + this.button1.Text = "Accept"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(160, 137); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 7; + this.button2.Text = "Update"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(160, 41); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox1.Size = new System.Drawing.Size(250, 90); + this.textBox1.TabIndex = 8; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(335, 137); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 23); + this.button3.TabIndex = 9; + this.button3.Text = "Uninstall"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // Install + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(422, 201); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.textBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Install"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Install"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Install_FormClosing); + this.Load += new System.EventHandler(this.Install_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button3; + } +} \ No newline at end of file diff --git a/src/Portable/Install.resx b/src/Portable/Install.resx new file mode 100644 index 0000000..7404b58 --- /dev/null +++ b/src/Portable/Install.resx @@ -0,0 +1,1787 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAAEBAAAABACAAKEIAAL4EAAAgIAAAAQAgAKgQAADmRgAAMDAAAAEA + IACoJQAAjlcAAICAAAABACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAASCwAAEgsAAAAA + AAAAAAAA48PDGu3Ly3jw0NCZ8dXVhOnU1HTczc10yLu7j7qqqrOWiYnKXV9YsGx4X4KhlYybtaSjeLeo + qCKbiogBnY2LAOfExBzxysp348LCmsaxsZjJurqk28fHvce1tdyrnZ3xh3x8+lZbUfV4f2jur5+Z9cO0 + s+fCtbSMdWxqHQAAAAHqy8sV17m5YpqLi72hm5vo2c/P9PDb2/zdycf+0cC0/piOh/5ZXFT+kIh8/sCq + qP7QwL//zb69wmRbWj4AAAAP69PTDrampkyHg4PIubi4/+Xh4f/l29v+5NXO/vHdzv6vpaD+ZGJe/qaT + kP7NtLT+1MTC/9rKybqGencwAAAADOTa2guvqqpDmpeYxMXAxP/X1df/z87O/+Ld2v/z6ef/says/25o + aP+4oKD/2L69/9bFxP/j09Gy2sjDHP///wDj398Mvby8SbWrtsjYytj/3Nvc/9fa2f/b3uT/4+To/6em + pv9ja3L/oKi4/9bEx//Yx8b/5dTTsOvY0xrq19EA5ePjEM3MzFrBur7R3N7Z/9vu3/7k6uf+19zi/s7S + 2f+hoaH/V29+/2Chzf+vv9P/0cLC/97OzbHn1NAa5tPOAOnn5w7ExMRXnZ2c0ai3qv3G18r9z9HQ/ry+ + vv6xuLv/nKqx/2uTqf9Xqt3/lLvZ/8a6u//TxMKx4M7KGuDOyQD///8AeXl5G2VlZX97gHu2oaae6amv + pf+lr6H/oLm4/5fE1v+CwuH/d7/r/7DC1v/Ft7f/zcC+sd7MxxrezMYARkZGAEdHRwJpamoQv7u3Q9PS + ys7Q1cn/zNXF/9Hc1f7J3+n/tNbp/7/S5P/ay8//xra2/8u+vbDcy8Ya3MrFAAAAAAD/8/AA6t7bAPLm + 4zDt5OHK5N7Z/9fSy/7Yzsn+2MrJ/9TDxP/Yv8D/1bm4/8Wvr//Ou7q128XCHtvFwQAAAAAA3MPCANXC + vwDYw8Eu0by7x7+rqf23o6L8vqmp/siwsP/Tt7f/3729/+fAwP7euLj/07S00tm9vTzgvb0AAAAAAMKl + pQDbvr0A1rm4JNW5uLjOtLTh2cjI7uLV1f/p2Nj/8NfX//XU1P73z8/98MXF/eO8vNbevr5FpdraAAAA + AAC7np4A5MfIAOLGxhDjxsdh4MXGfOXS0rjl1dXX5NHRy+bOzr/nysqy5sbGo+PCwpXevLxm17W1Fdar + qwAAAAAAAAAAAOHJyQDiysoA4MbHB9vAwRHdw8Mz3cXFOtzExC7bwcEk28HBG9nAwBTUvr4Nzbm5Bo6H + hwCDfn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAgAEAAIABAADgAQAA4AEAAOAB + AADgAQAA8AMAAP//AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAAASCwAAEgsAAAAAAAAAAAAAAAAAAAAA + AAC0qKgAsKWlBce2tivRvLxK1L6+T9C+vk/FublQv7W1UcS5uVDOwMBP08LCTdPDw03TxMRN08XFTNPG + xkzSx8dL0sjIS9LIyErSyMhK0cnJStHJyUrRyMhK0cjIStDHx0rJwsJMwLq6Tr+6uk7IwMBN0sTES9PD + w0vSwsJM08LCTcCyskxybW1OPz8/ZF5eXmyKiYo7mpmaDYWAiACGgYkAAAAAAGBmTQBsaFgCf2poCI12 + dROfioUco5CKE4h5dAP//fMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAwrS0ALywsA/fx8do7M7OsPDR0bvu0tK75tHRveLPz73l0tK87NbWtu/X + 17Lv2Niw79raru7b26vu3Nyp7d3dpu3e3qTt39+i7ODgoOzg4J7s4OCd7ODgnezf35zs39+d59zco+DW + 1qrg1dWt5dfXrOjV1avk0NCx4MrKvN/JycPLubnGeHJyyEFBQdZdXV3Ze3t7pXFxcUQwMzAQQVc1CGeE + VhBthlshf4JrOY58eFiXgIB9qpaSkrGinXSfj442d2JkDD8lJgBoUlQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGwsAC6rKwR5MXFc/XOzr770dHI+tLSxvnX + 18j42dnI+NrawvnZ2bf52dmw+draqvnb26T43d2d+N/flvjg4I/34eGI9uPjgvbk5H325eV59uTkd/bl + 5XX35OR09eLidvDe3oLo2NiZ4M/Pq9XBwbbMtrbFx7Gx2sStre3Frq74t6Sk+3JsbPxCQkL9U1NU/V9f + X+RQVU2SQVE4YF13T2Fuil59dIxjoImKdMCbh4TZoYqK67KfnPO+sK3jtaenr6STk2SJdHQjUTk5BUcw + MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+q6sAt6enEePB + wWv3y8uv/c3Ntv3Pz7H90tKu/dXVq/3W1qT91dWa/dbWkv3Y2Ir92dmC/dvbef3d3XD9399n/eLiXv3l + 5VX96OhO/erqSPfl5Ubo19dK1cTEV8Ozs2u3qKiIsKKiqqucnMejkpLaoZCQ6qeUlPaqlpb7rpiY/aWS + kv5sZmb/QkJC/1BPUP5RU1D2SVVC21FnRdJmgVfdc45i636Ra/aWkYD8pZCO/aiRkP62o6D/wrSx/sK0 + tPa/r6/WsqCglJiEhEZkUlISAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvqurALinpxHjwsJq98zMqv3Pz6/+0NCp/tLSo/7U1Jz+1dWW/tbWjv7Y2IX+2dl9/tvbdP7d + 3Wr+4OBg/uPjV/zk5E/04OBJ3tDQSsG4uFWrpaVqn5qahpqUlKaZkZHDlo6O25OLi+uSiIj1kISE+5GD + g/2XiIj+nYyM/qSQkP6ejY3+amVl/0JCQv9QUFD+TVFM/UlYQfxVa0j8aYNZ/neRZv6JlHb/o5aN/6uU + k/+slJT/uKSi/76wrf+8rq7+xLW2/Mm6uuzBsbG8qZiYb3hpaSknISEHAAAAAAcGBQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6srAC3p6cQ4sLCZ/bNzaX90NCo/tHRoP/T05n/1dWS/9bWiv/Y + 2IH/2tp4/tzcbv3d3WX63d1d79bWWdnGxl2+srJoqaGhfaOcnJeqoqK0s6iozrqqquK7qKjwt6Sk+Kud + nf2ek5P+lo2N/pGJif+Rhob+k4aG/peHh/+djIz/moyM/2lkZP9CQkL/UFBQ/k1RS/5IVkD+U2pH/2mD + Wf99k2v/mZiD/66Zlv+wl5f/r5eX/7unpP/CtLH/vbCv/76xsv/Iu7v+0sTE+NLCwte/rq2NhHZzNxMQ + DgsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9q6sAtqenEOHCwmT2zs6e/dHRnv7T + 05b/1NSO/9fXhf/Y2Hz92Nh099bWberOzmvWv79xvq6uf6idnZSYkZGtmJKSxqqhodzEt7fr2cvL9ebS + 0vvszs7+7svL/ufHx//Xvb3/xLO0/7Gnp/+gmJf/mZCQ/5aMjP+ViYn/m46O/5iMjP9pZGT/QkJC/1BQ + UP9NUUv/SFdA/1RqSP9qhFv/iJV0/6ickP+2nZz/tJqa/7Kamf++qqb/yLm2/8i8u//Iu7v/yLu7/83B + wv/YzMv71MXD1ZiJhXUcFxUpAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuqqqALSm + phHfw8Nh9c/Plf3T05T+1NSL/NTUgvXR0X3oycl91bq6hb2pqZapmpqrm5CQwY6GhtWHgYHmlY+P8res + rPnZyMj87dnZ/vfl5f765OT/+9ra//vV1f/xz8//4MjI/9HCw//Curr/tq6u/66jo/+hl5f/mpGR/5uQ + kP+XjIz/aGRk/0JCQv9QUFD/TVFL/0hXQf9Ua0j/b4Ze/5eagf+1oZv/uqCg/7ednf+2nZ3/wKyo/8q7 + uP/OwcD/08XF/9bIyP/Vycn/2M3M/tXGw+SUhoGMFhMSRgAAAC0AAAAWAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALqqqgCzpaUQ38TEXfXQ0Iv91NSH+tPTf96+vou/qKimq5mZvJyPj9GSh4fjh39/7353 + d/d9eXn7lpGR/cO6uv7m19f/9eDg//nj4//76en//Obm//za2v/41NT/683N/9rHx//LwsL/wbu7/8e8 + vP/OvLv/v6+p/6acmP+dlJT/lY2N/2hkZP9CQkL/UFBQ/01RTP9JWEH/VmxJ/3mJZ/+ooJD/vqWj/76j + o/+7oKH/uqCg/8Kuqv/KvLn/zcHB/9XIyP/dz8//4tTU/+bY1/7czMnjlYaBjBQRD00AAAA/AAAALwAA + ABsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAC5qqoAs6WlEN3ExFj00NCA/tfXefPQ0HW3n5+glYaG3op/ + f/WBeHj6fHR0/nZxcf54dHT/l5OT/8vExP/s4eH/9ufn//fk5P/45OT/+unp//zm5v/729v/9tTU/+XM + zP/Txsb/xsDA/8S9vf/TxMP/5M7C/+XLs//BsKH/pJyZ/5WOjv9nZGT/QkJC/1BQUP9NUUz/SVhC/1lt + TP+HjnP/t6Wd/8Spqf/Bpqb/vaOj/7yjov/Er6z/yry5/83Bwf/WyMj/3s/P/+bX1//t3t7+49LP45qM + hogVERBIAAAAQAAAADkAAAAsAAAAHAAAAAwAAAADAAAAAAAAAAAAAAAAuKmpALKlpRDbw8NT89HRdP/Y + 2Gvvzs5oo5CQooF3d+x8dHT/d3Bw/3Jtbf9zcHD/k5CQ/8rHx//t5+f/9ezs//bp6f/25eX/+OXl//rp + 6f/85+f/+tvb//LS0v/fy8v/zsXF/8W/v//Pw8L/4s7D//PYuv/53LL/4Mqs/7Sqov+XkpL/ZmRk/0JC + Qv9QUFD/TVFM/0pZQv9fb1D/lpKB/8Gqp//IrK3/xaqq/8Gnp//ApqX/xrGu/8q8uf/NwcH/1sjI/97P + z//m19f/7t/e/uXU0OGgkIuEFxMSQQAAADoAAAA3AAAAMAAAACcAAAAbAAAADgAAAAUAAAAAAAAAALeo + qACxpaUQ2sLCTvPS0mj/2tpd7M3NW5eIiJp3b2/qdW9v/3Nubv9wbW3/h4WF/7++vv/p5+f/9PDw//Tt + 7f/16ur/9+fn//jm5v/66ur//Ojo//nb2//t0dH/2MrK/8rDw//MwsH/383E//HYvf/737X//eO4//Lc + u//Hu63/nJiX/2ZlZf9CQUH/UFBQ/01RS/9LWUP/Z3BY/6KWjP/Irq3/zLCw/8mtrf/Fqqr/xKmp/8m0 + sP/LvLr/zcHB/9bIyP/ez8//5tfX/+7f3f7m1dHgppWQfxoVFDoAAAAzAAAAMAAAACwAAAAnAAAAIgAA + ABgAAAAOAAAAAAAAAAC2qKgAsaWlD9fBwUny0tJc/9zcUOjNzU+MgICTcGlp6XBsbP9vbGz/eHd3/6qp + qf/b29v/7Ozs//Hw8P/z8PD/9ezs//bp6f/45+f/+uvr//vo6P/329v/58/P/9LIyP/MxMP/28vE/+/W + v//637j//eS7//3mxP/44sr/2Mm//6Ofnv9oZmf/QkFC/1BQUP9NUUz/TVpF/3FxYf+rl5T/zbGy/8+0 + tP/MsLD/yays/8isq//LtrL/y727/83Bwf/WyMj/3s/P/+bX1//u397+59bS362blnodGBczAAAALAAA + ACkAAAAlAAAAIgAAACEAAAAbAAAAEgAAAAAAAAAAtKenALCkpA/UwcFE8NPTUf/g4ETjzc1Eg3p6jWtn + Z+htamr/cG5u/5CPj//Gxsb/4ODg/+bm5v/s7Oz/8fDw//Tv7//27Oz/9ujo//Tm5v/y4+P/7tnZ/97P + z//Rycj/2MrE/+3Wwf/64Lz//OTA//zlyf/85dP/+uTb/+LT0P+qpqb/aWho/0JCQv9QUFD/TVFM/1Na + Sv97c2r/sZqa/9G0tf/Ut7f/z7S0/8ywsP/Lr6//zbe0/8y9u//NwcH/1sjI/97Pz//m19f/7t/d/unX + 0960opx2Ih0bLAAAACUAAAAjAAAAHgAAABsAAAAaAAAAFAAAAA0AAAAAAAAAALKmpgCuo6MP0cDAQO7V + 1Uj/5eU5387OPH13d4loZmbna2pq/3p6ev+qqqr/0NDQ/9nZ2f/e3t7/5ebm/+3s7P/y7+//8evr/+fe + 3v/e19f/39jY/9/Z2f/a1dX/2dDN/+rWxP/54MD//OTF//zmz//75dr/++bi//rn5v/p29r/says/2pp + af9CQkL/UFBQ/09STf9bXFH/g3Zy/7aenf/UuLj/17q6/9O3t//QtLT/zrKy/8+4tv/Mvrv/zcHB/9bI + yP/ez8//5tfX/+7f3f7p2NTdvaukcCokIiMAAAAaAAAAFwAAABIAAAAOAAAACwAAAAcAAAAEAAAAAAAA + AACxpaUAraKiD8/AwDzs2NhA/+vrM9zS0jh6d3eHZ2Zm525ubv+QkJD/vr6+/9DQ0P/T09P/19fX/93d + 3f/l5OT/6unp/+Ti4v/Y1tb/1tbW/9zc3P/f4OD/397e/+Da1f/w3sv//OXM//zm1v/65t//+ufm//rp + 6f/66ur/69/f/7WwsP9ramr/QkJC/1BQUP9SU1D/ZF5a/4l5d/+5oKH/2Lu7/9u9vf/Xurr/07e3/9G1 + tf/Rurj/zb67/83Bwf/WyMj/3s/P/+bX1//t393+7NrW2866smZKPzsUAAAACwAAAAgAAAAFAAAAAwAA + AAEAAAAAAAAAAAAAAAAAAAAAsKWlAK2iog/NwcE669zcPP/z8zDb19c2enp6h2hnZ+d4eHj/qqqq/8/P + z//V1dX/1NTU/9XV1f/Y2Nj/3d3d/+Li4v/f39//29vb/9jZ2f/W1tb/29vb/+Li4v/g3tz/6d7W//nm + 3f/76OX/+unp//nq6v/57Oz/+e3t/+zi4f+3srL/a2pr/0JCQv9PUFD/VVRT/2thYf+PfH3/vqSk/9u+ + vv/ewMD/2ry8/9e5uf/UuLj/0726/82/vP/NwcH/1sjI/97Pz//m19f/7t/d/u7c2NjgysNdp46FCAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCmpgCto6MPzMPDOerh4Tr/+vou3NvbN35+ + fodqamrngYGB/7CwsP/Kysr/zs7O/9DQ0P/T09P/1tbW/9vb2//i4uL/4uLi/9jY2P/Dw8P/ubm5/8fH + x//d3d3/39/f/+Hb2v/15+b/+evr//ns7P/57e3/+e7u//nv7//r4+P/t7S0/2xra/9CQkL/T09P/1dV + Vf9wZWX/loKC/8Opqf/gwsL/4sPD/97AwP/avLz/2Lu6/9a+vP/Ov7z/zcHB/9bIyP/ez8//5tfX/+7e + 3v7v3dnY5tDHW8+xpAfawLYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwp6cArKOjD8zF + xTnq5uY5////L97e3jmCgoKKbm5u54iIiP+ura3/u7q6/769vf/CwMD/xsTE/8vJyf/X1tX/4+Pj/+Li + 4v/Kysr/qamp/6SkpP+7u7v/2tra/+Hh4f/i3t7/9Ovr//nv7//48PD/+fDw//nw8P/48fH/5+Li/7Sz + s/9sbGz/QkJC/09PT/9YVlb/dWlp/56Jif/Kr6//5MXF/+XGxv/hw8P/3cDA/9u+vf/YwL3/zsC9/83B + wf/WyMj/3s/P/+bX1//u3t7+793Z2ObQx1vOsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAr6enAKyjow/LxsY56ujoO////zPh4eE9hoaGjHNzc+iWk5P/urS0/8K8vP/Evr3/x7/A/8rB + w//OxMn/2NLV/+Pi4//g4OD/xMTE/6Ojo/+mpqb/w8PD/97e3v/k5OP/5+Xl//Xw8P/48/P/+PPz//jz + 8//49PT/9/Ly/+De3v+xsLD/bWxs/0JCQv9PT0//WFZW/3tubv+okZH/0bW1/+jJyf/pycn/5MbG/+DC + wv/ewMD/2cK//87Avv/NwcH/1sjI/97Pz//m19f/7t7e/u/d2djm0MdbzbGjB9nBtgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALCnpwCspKQPzcfHOuzq6j7///845OTkQoqKio97eXnoqaCh/9DB + xP/Wxcz/18fR/9nH1v/ayNv/3cvf/+HV4f/j4OL/4uLi/9HR0f+5ubn/vr6+/9bW1v/l5eX/5OXm/+fo + 6//x8fL/9fP0//b09P/39fX/+Pb2//Tx8f/Y19f/rq2t/21tbP9CQkL/T09P/1lXWP+AdHT/sZqa/9q8 + u//szMz/7M3M/+fIyP/jxcX/4MPC/9vEwP/PwL3/zcHB/9bIyP/ez8//5tfX/+7e3v7v3dnY5tDHW82x + owfawbYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwqKgArKSkD8/JyTzt6+tD////PObn + 50eOjo6Sg3+B6bans//ZxNv/3Mbl/9vG6f/cx+z/38ru/+TQ7f/n2Of/4t7h/+Pi4v/i4uL/3Nzc/93d + 3f/l5eX/5efo/97h5//d4ur/5ejv/+3u8P/y8vL/9fT0//X19f/t7Oz/zs3N/6yrrP9ubW3/QkJC/1BP + T/9VV1n/bnV+/5+eqP/TwMX/7c/Q/+/Pz//ry8v/5sfH/+LFxP/cxcL/z8G+/83Bwf/WyMj/3s/P/+bX + 1//u3t7+793Z2ObQx1vNsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsampAK2k + pA/Qy8s97ezsR////0Lp6elMk5OTlYiDh+m4qMH/1MDv/9fD9f/bx/L/4c3w/+nU7f/w3er/7eHl/+Ph + 3//g4N//5OXk/+fn5//p6en/6Onq/97i5v/S2eT/0Nno/9ff6//g5e3/6evu/+/w8P/x8fH/4eHh/8XF + xf+trKz/bm1u/0JCQv9QT1D/T1Zb/0txif9kl7z/l7jW/8zK2v/oz9P/7c7O/+nJyf/lx8b/3sbD/8/B + vv/NwcH/1sjI/97Pz//m19f/7t7e/u/d2djm0MdbzbGjB9rBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALKpqQCtpKQP0czMP+7t7Uz///9H6+vrUZiZmJiJhYnqtqjB/9jF7//izfD/6tXr//Lc + 6f/24+j/9Ojm/+fr4f/b6tz/2+Xd/+Dk4f/l5ub/6urq/+fo6f/U2eD/ydLf/8vV5v/O2er/1d7s/97k + 7P/n6u7/5+jp/9HS0v/AwMD/rq6u/29ubv9CQkL/UE9Q/0xWXP8/b47/QZPG/1at5P+AvOf/u8fd/+TN + 0v/szMz/6MnJ/+DIxP/Pwb7/zcDB/9bIyP/ez8//5tfX/+7e3v7v3dnY5tDHW82xowfawbYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyqakAraWlD9LNzUHv7u5Q////TOzs7Faenp2bioeI67ms + t//o0+P/9N7o//jj5v/65uf/9unn/+nt4v/U8tn/zPTW/9Ty3P/i7eb/6uvq/+3t7f/q6+z/19vf/8rR + 3P/K1OP/y9fp/8/a7P/W3u3/3ePr/9nb3v/Gxsb/wMDA/7Gwsf9wb2//QkJC/1BPUP9MVlz/QXCP/0OV + yP9Jq+j/UbLw/3e66f+8x9v/5s3Q/+vMy//hycX/0MG+/83Bwf/WyMj/3s/P/+bX1//u3t7+793Z2ObQ + x1vNsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsqurAK6npw/Tz89D8O/vVf// + /1Hu7u5bpKSknoqJieu1qqz/7dna//vm5v/66Of/9+no/+vt4//W8tn/xPbS/8b31f/Y9uH/6PPs/+3u + 7f/v7+//7+/v/+Hi5P/R1dv/zNTg/8zW5//M2Oz/0Nvu/9Ta5f/Lzc//wcHB/8LCwv+zsrP/cW9w/0JC + Qv9QT1D/TFZd/0FykP9Gl8n/Ta3p/02y8v9SsvD/g7zl/83J1v/rzc3/48rH/8/Avf/Lv77/1cfH/97P + z//m19f/7t7e/u/d2djm0MdbzbGjB9nBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALSs + rACvp6cP1dHRRfHv71n///9X7+/vYKmqqqGNjIzsqaKi/uHS0v/65+j/+Orp/+3t5f/Z8dz/xPXQ/773 + z//N+Nr/4/bp/+7y7//u7u7/7u7u//Dw8P/o6On/2Nnc/9HV3P/P1+T/zdnq/87Y6P/Lz9b/w8TE/8HB + wf/ExMT/tbS0/3FwcP9CQkL/UE9P/0tWXf9CcpD/R5jK/0+u6f9QtPL/TbLy/1207f+mwt7/4s3Q/+TL + x//Lu7j/wrW0/8y/v//ay8z/5NbW/+3e3f7v3djY5tDHW82xowfawbUAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC1rKwAsKenD9bR0Uby8PBd////W/Dx8WWysrKklpaW7J+dnf/Nw8P/8uXk/+/t + 5//b8d3/xfXS/7n4zP/D+dP/2vjj/+317//w8fD/7e3t/+7u7v/x8fH/7u7u/9/f4P/W2Nv/09jg/9DX + 4//M0dn/x8jK/8PExP/ExMT/x8fH/7e2tv9ycHD/QkFB/09PT/9LVl3/Q3OR/0mZy/9Rr+n/UrTy/0+z + 8/9PsvD/g7vl/9LL1f/ly8j/x7e0/7apqf+9sbH/y76+/9nLzP/n2Nj+7NvX2ObQyFvQsaQH28C2AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt6+vALKpqRDY1NRN8fHxaf39/Wnz8/N0wcHBsaio + qPCmpaX/u7a2/97c1//h8eD/y/XW/7v4zf+9+c//0Pjc/+f36//y9PP/8fHx/+3t7f/t7e3/8fHx//Hx + 8f/m5ub/3N3d/9bZ3P/Q09b/zc7P/8zMzP/Ly8v/ycnJ/8vLy/+7urr/eXh4/0xLS/9ZWVn/Ulxj/0V2 + k/9Lm8z/U7Dq/1S18v9RtPP/TbLy/2+46v/CyNn/48zK/8e4tP+0p6f/t6ur/8C0tP/Kvr7/2MvL/uPT + 0NjjzsZb1rWpB9zBuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1tQC2r68R3NnZZO3t + 7Zv09PSg7+/vqNDQ0NG7u7v3vLy8/8HBwf/S1dH/2evc/8/z2f/J9db/0fTc/+H05v/t8+//8fHx/+/v + 7//s7Oz/7Ozs/+7u7v/w8PD/6enp/97e3v/X2Nj/0NHR/83Nzf/Nzc3/0dHR/9PT0//U1NT/ysrJ/6Sj + o/+IiIj/hoeH/2l3f/9OgZ//UaDQ/1az6v9VtvH/UrXy/06z8v9mt+z/uMfc/+PMyv/Lu7f/uays/7qu + rv+/tLT/xru7/9DFxf7dzsvY4szEW9q5qwfew7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC5s7MAtK2tDNXU1FLj4+OJ6Ojoj+Hh4ZS5ubnAoaGh8qGhof+jo6P/o6Sj/6ivqf+xzbn/vOXJ/87r + 1//h6+T/6Orp/+fn5//j4+P/4ODg/93d3f/c3Nz/09PT/7y8vP+srKz/rK2t/6+vr/+0tLT/uru7/7+/ + v//DxMX/wMPE/7e8vv+nr7T/laOr/4WapP9qjqL/WJa6/1us2/9ct+3/WLfx/1S18v9PtPP/Zrft/7jH + 3f/kzsv/zr+7/8O2tf/GuLn/yLy8/8vAwP/Sx8f+3c/L2OLMxFvauasH3cK3AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAArKenAKehoQLEwsITz8/PINjY2CGvr68qXV1df1RUVOVWVlb/VlZW/1lY + WP9YWlf/YnRm/oKnjf6wzLj+09zV/t7f3//b29v/09PT/8nJyf+7u7v/qKio/4+Pj/97e3r/e3x7/4WH + hf+Mj4z/kZaX/5Kanv+Pm6H/i52l/4aeqv+Anq3/ep+y/3Ogt/9torz/Z6XG/2Wv1/9luej/Ybvw/1u4 + 8f9WtvL/UrXy/2267f/Ayt3/5c7M/8u7uP+9sLD/x7m5/9HExP/Zy8v/3tHR/uTU0NjjzcVb1bWpB9zB + twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoqKgATFRUAXVlZAFJRUQALCwsAKioqCzQ0 + NGw/Pz/hRERE/0hISP9PT0/+T09O/0pNS/5SWFT+b3Vw/pKUkv6lpaX/qamp/6Wnpf+bnJv/ioyK/36A + ff+BhX//houD/4aNg/+EjoH/g4+F/32Umf92mqr/dZ6w/3iluf99rML/f7LI/4C2z/9+udX/e7va/3i9 + 4P90wOj/bsDu/2a98f9euvL/V7fz/1W18v9/vur/0M7c/+jPzP/HuLX/taio/7uurv/Fubn/0sbG/+DT + 0v7o19PY5c7HW9OzpwfcwbcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALy8vACkpKQo2NjZrRERE4VNTU/9hYWH+YmJi/WJiYvtra2v2c3Rz9Xp7efuCgoD+hIWD/4SH + gv+Hi4T/h4yE/4aNg/+HkIP/ipSF/46YiP+RnYv/lKKO/5anlv+Kq63/frDC/4K4zf+Mwdf/ksfe/5TK + 4f+UzeT/kc3m/4vM6f+Eyuv/fMfu/3PE8P9qwPH/Ybvy/1m38v9euPH/ncXn/+PT2v/pz8z/xri1/7Sn + p/+4q6v/v7S0/8e8vP/TyMf+4NHN2OPNxVvYt6oH3cK3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwAlJSUHQEBAT1tbW7h4eHjeiYmJ2oyMjMqPj4+3m5ubpJqb + mLCVmJDllJiP/pGWjP+RmIv/lJuO/5egkv+cppb/oayb/6axoP+qtqT/r7uo/7G/qv+ywa3/p8K4/5XE + z/+Uy+D/ndPp/6DV6/+h1uz/oNfs/5vV7P+T0+3/is7u/4DK7/92xfD/bMHx/2O88v9cufL/eb/u/8XO + 4v/y1tj/6c/M/8a4tf+0p6f/uKur/7+zs//Gu7v/0MXF/t3OytjizcRb2rmrB97DuAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OjoADQ0NAVlZWReDg4NEoaGhYbCw + sFy1tbVIt7e4M66uriaJj4JXk5qMy6Cnmf6mrqD/rLSl/7G5qv+1vq//ucOz/73Itv+/y7n/wc66/8LP + u//C0Lv/wdC5/73PvP+x0c//qNbo/6XZ7/+m2e//ptru/6TZ7v+e1+3/ltTt/43Q7v+Cy+//eMbw/27C + 8f9kvfL/cb7v/63L5//p193/99jY/+jPzP/GuLX/tKen/7irq/+/s7P/xru7/9DFxf7dzsrY4szEW9q5 + qwfew7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8 + vAC1tbUAvb29BLy8vAm7u7sIwcHBBP7//wA+JxMBqqmaP7m8r8TAxrn9wsq7/8XNvv/I0MH/ytLD/8vV + xP/M1sX/y9fE/8rXw//J1sL/yNbB/8bVvv/G1b//z9zT/8nh6v+y3PD/qNrv/6bZ7v+k2O7/ntbu/5fT + 7v+Nz+//g8vw/3jG8f9vwvH/esLv/6rM6f/i2eH/+Nvb//fY1//oz8z/xri1/7Snp/+4q6v/v7Oz/8a7 + u//QxcX+3c7K2OLMxFvauasH3sO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaubYAu1lZAeLSzTzk3NfC4uHZ/dzf + 1P/X3M//09vM/9Hayv/R2sr/0NrJ/8/ayP/O2cf/zdjF/8vXxP/I1sH/ztjG/+Tm3f/r7O3/1eXv/7ze + 7/+s2u7/o9fu/5zV7v+V0u7/jM/v/4TL8P+DyPD/k8rt/7rS6P/l2uL/+d7f//rb2//22Nf/6M/M/8a4 + tf+0p6f/uKur/7+zs//Gu7v/0MXF/t3OytjizMRb2rmrB97DuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+M/PAP+M + kwH239479OflwPLs6f3v6+f/6ejh/+Hk2v/a4NP/1d3O/9Lby//R2sr/0NrI/87Zx//M2MX/y9fE/9je + 0P/u6+b/9u/u//Ht7f/k6O3/0uPt/8He7f+12u3/rdft/6rV7f+v1Oz/v9fq/9jb5v/v3uL/+t/g//ve + 3v/529v/9tfW/+fPzP/GuLX/tKen/7erq/+/s7P/xru7/9DFxf7dzsrY4szEW9q5qwfew7gAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPrS0QD/lJoB9uHfO/Xp58D07ev99O7s//Lu6//v7Oj/6urj/+Ll2//a4NP/1N3N/9Hb + yv/P2cj/zdjG/9DayP/i5Nr/8+7r//fv7f/37u3/9u3t//Ls7P/s6Or/5ubq/+Pj6f/k4uj/6uLm//Li + 5f/44uL/++Dh//vg4P/7397/+dvb//XX1v/n0Mz/ybq3/7irqv+6ra3/v7Oz/8W7u//QxcT+3c7K2OLM + xFvauqsH3sO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD709IA/5iaAfbh3zv16ebA9O3q/fTu7P/07uz/9O/t//Pu + 7P/w7en/6+rk/+Pm3P/b4dT/1NzN/9Dayf/X3s//7Ork//Xv7f/27+3/9u7s//ft7P/37ev/+Ovq//jq + 6f/56Of/+ufm//vn5v/85uT//OTj//vj4f/74uD/+uDe//fc2v/z2db/5M/M/8q7uf/BtLT/xbi4/8i8 + vP/MwMD/08fH/t7Py9jizMRb2rmrB93CuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+9PSAP+YmgH24d879enmwPXt + 6v317uv/9e7s//Xu7P/17+3/9O/t//Tu7f/x7er/7Orl/+Tl3f/d4dX/4+Xb//Lt6f/27+3/9+/t//ju + 7P/47uv/+e7r//ns6v/56+j/+ejl//fm4v/24+D/9N/c//Hb2P/u19T/69PQ/+jPzP/jysj/4MfE/9O7 + uf+6pqb/uKan/8W1tf/QwcH/2MrK/9/S0P7l1dHY5M7GW9a2qQfcwrcAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvT + 0QD/mJoB9uHfO/Xp5sD07er99O7s//Tt6//07uz/9O7s//Tu7f/17+3/9vDt//bw7f/07+v/8ezn//Lt + 5//27ur/9e3o//Tq5v/x5eL/7+Hc/+vc2P/m1tL/4c/M/93Jxv/Yw8D/1L27/9G3tv/Os7L/y6+u/8qt + rP/Jq6v/yaqq/8mrq//Epqb/r5WW/6aQkP+ynZ3/w66u/9G+vv/ezMv+5NDN2N/IwVvLr6MH1buyAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD709IA/5idAffh3zv16ebA9O3q/fXu6//17uv/9e/r//Xu6v/17en/8+vn//Lo + 5P/v5OD/6t/b/+XZ1f/f0c3/2cnG/9LBvv/Mubb/xrCu/8Gpp/+8o6L/t56c/7SZmP+zlpb/spSU/7GT + k/+yk5P/s5OU/7WVlf+3l5f/uZmZ/7ucnf+/n6D/waKi/7ufn/+xmZn/rZWV/7adnf/Hra3/1ry8/9vC + wN/UurdowaakCsuwrgB/bGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+NDQAP+aowH23ts78+XgwPDm4v3v5OD/7ODc/+fa + 1v/g0c3/1MTA/8i2s//ArKr/uaSi/7Gbmf+rk5L/pYyL/6GGhv+dgoH/m35+/5p8fP+ae3v/mnt8/5x9 + ff+efn//oIKC/6OFhf+niYn/rI6O/7GTk/+2mJn/vJ6f/8Okpf/Jqqv/z7Cw/9W1tf/curr/2ba2/8Gi + ov+zmZn/wqen/9O3t//ewcDv2by8k8Spqhz///8AoYuLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN+7uwDlmKAB3sTCO9nE + wcHPvbr9xLCu/76opv+5oZ//sJaV/6GGhf+NcnH/hWlp/4NnZ/+CZWb/gmVl/4RnZ/+HaWn/imxs/45x + cf+Tdnb/mXx8/5+Dg/+mi4v/rZKS/7Wamv+9o6P/xqur/86xsf/WuLj/3L29/+PBwv/oxcX/7cjI//HK + yv/0y8v/+MzM//bIyP/dtLT/u52d/7uhof/OsrL/3sDB++HDw8jQtLRKp5GRBNC1tQBqWFgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADDpaUAsomJAcesrDvHrazBwKem/bWbm/+rkZH/pImJ/5yBgP6QdHP+f2Ji/ntgYP6CZ2f+iW9v/5F3 + d/+ZgYH/ooqK/6uUlP+1np7/vqen/8ewsP/Pubn/2MDA/9/Gxv/mzMz/7NDQ//HT0//11NT/+NXV//rW + 1v/81dX//dPU//7T0//+0tL//tDQ//7Ozv/+zMz/8cLC/8+qqv+5np7/xKqq/9i7u//jxcXq2r29hr+l + pRYAAAAAq5OTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAuZycAAAAAADDp6czyq2ttM2xsfrKr7D/xKmp/7yhof+xl5f+pIqK/J6F + hfutlpb9uqWl/sSwsP/Mubn/1MLC/9vJyf/i0ND/59TU/+zY2P/v29v/897e//bf3//439//+t/f//ve + 3v/83d3//dvb//3Z2f/+2Nj//tbW///U1P//09P//9LS///R0f//z8///s7O//zKyv/nurr/xaSk/76k + pP7QtLT+4MLC+eHDw8DPs7NBqY+PAg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKUlADPsrIAwqWlHs2wsJLVuLjx17u7/9S5 + uf/QtbT/yK6u/cGnp/HIr6/o48/P+O3b2/7v3t7/8ODg//Hi4v/y4+P/8uTk//Pj4//04+P/9OLi//Xh + 4f/24eH/9+Dg//jf3//53t7/+t3d//zc3P/82tr//dnZ//7X1///1tb//9TU///S0v//0tL//9DQ///O + zv/+zMz/9sXF/961tf/Or6/+1Le3/eDCwvzlyMjj2r6+fL+npxK0nZ0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyaysAMWp + qRPStbV+276+7N7Bwf/bv77/1ru6/9G3t/rOs7PY2L+/w+7a2u7z4+P/8ePj/+/j4//u5OT/7uTk/+7k + 5P/u4+P/7+Pj//Di4v/y4eH/9OHh//Xg4P/24OD/+N/f//re3v/73d3//Nzc//3a2v/+2Nj//tbW///U + 1P//09P//9LS///R0f//z8///s3N//3Ly//3xsb/78PD/+zExPzpxsbq6MzMveLJyYPOuLgjybS0AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAM+xsQDLrq4S2bu7fOPFxezlyMj/4sTE/9y/v//Xu7z107i4ttjBwZjr2dnk8OLi/+7j + 4//s5OT/6+Tk/+vl5f/r5eX/7OXl/+3k5P/u4+P/8OLi//Ph4f/04eH/9uDg//jf3//53t7/+t7e//zd + 3f/929v//djY//7X1//+1dX//tTU//7T0//+0dH//s/P//3Nzf/9y8v//cnJ/vzIyP75xsb88cPDzejG + xl/n1NQ02cnJFNfGxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTtbUAzrGxE97AwH3pysrs7M7O/+jKyv/ixMX/3MDA7NS6 + upLYwcF06djY3O/i4v/u5OT/7OTk/+vl5f/q5ub/6ubm/+vm5v/t5eX/7uTk//Dj4//z4eH/9OHh//Xg + 4P/339//+d/f//rd3f/73Nz//Nra//vX1//71dX/+tPT//nR0f/4zs7/98zM//XJyf/zx8f/8sTE//DB + wf7uv7/+6729/OK3t8LWrq430sXFA+TZ2QHf0tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1Le3ANCzsxLhw8N77M7O6vDS + 0v/rzc7/5sjI/9/Cwt7UuLhv2cHBWOnW1tPw4uL+7+Pj/u7k5P7s5eX+7OXl/+zl5f/s4+P/7ePj/+7h + 4f/v39//8N7e//Hd3f/x29v/8dnZ//HW1v/x09P/8NHR//DOzv/ty8v/68nJ/+rHx//oxMT/5sPD/+TB + wf/iv7//4b6+/+C+vv/evb3+3by8/de3t/LNra2pwqOjKnVZWQC7nJwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANO4 + uADOs7MM3sPDW+fMzLvrz8/d6czN6uXIyfLewcHE0bW1Tdi/v0Hm0dHI7tzc/e3d3f3s3d396dzc/ujb + 2//n2dn/59fX/+bV1f/l0tL/5dDQ/+TOzv/jzMz/48rK/+LIyP/ix8f/4cXF/+DDw/7gwsL+38LC/d7C + wvzewcH63sHB+N3BwfbdwsLz3MLC79zCwuvdxMTm3cTE3trBwc/PtbWovqSkV66UlA7IsrIAqo6OAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADQubkAzLOzAtjDwxveyclE4MrLZODIyYHexcWZ2L6+esuwsCXUubkw3MPDueHL + y/vjzMz+4szM/uDKyv/fycn/38jI/t/Gxv7exsb93sTE/N7ExPrexMT43cTE9t7ExPPexMTv38TE6+DF + xeXfxcXd4MbG1uDGxs/gx8fF4cfHvODGxrHexcWl3cTEm9vCwo/awsKC3cTEd9zExGjVvr5Rxa6uL6mS + kg1LQUEAjHl5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX3t4A193dAtXKygnVxcQT1cLCH8+6 + uhu+qKgG07S0H9e6upTcwcHq38XF8uDFxe7gxcXq4MbG5OHHx97hx8fY4cfH0OHHx8bhx8e838bGsN3F + xaTexcWZ3sXFjN/FxX7gxsZy38bGZeDGxlngxcVP38TEQt/ExDjcwsIw1ru7J9G3tyDNtbUZzbOzE9C1 + tQ/Krq4KrJOTBBMREQBEOjoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA2La2ANi2tgrdvb1G4cPDjuHHx5nfxcWM4MbGfeHHx3DhxsZi4cfHVuDF + xUvfw8M93sTEM9rAwCnVu7sh1Lq6G9W7uxTYvr4P2b6+DNa7uwnVuLgG0rOzBMWfnwKqfX0ApHV1AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTAwADlwMAA4sDACN6+vhjZvLwb1La2FNS3 + tw3bv78J3L+/Btq8vAXWtLQDyqSkAat5eQA/AAAAXgMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNk + ZACdXFwAj0pKAI5JSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA + AAAA8D//4AAAAAAAH//gAAAAAAAH/+AAAAAAAAH/4AAAAAAAAP/gAAAAAAAAP+AAAAAAAAAf4AAAAAAA + AA/gAAAAAAAAA+AAAAAAAAAB4AAAAAAAAADgAAAAAAAAAOAAAAAAAAAA4AAAAAAAAADgAAAAAAAAAOAA + AAAAAAAD4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAA + AH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AA + AAAAAAB/4AAAAAAAAH/+AAAAAAAAf/4AAAAAAAB//gAAAAAAAH/+AAAAAAAAf/+EAAAAAAB///wAAAAA + AH///AAAAAAAf//8AAAAAAB///wAAAAAAH///AAAAAAAf//8AAAAAAB///wAAAAAAH///AAAAAAAf//8 + AAAAAAA///wAAAAAAD///gAAAAAAH//+AAAAAAAf//4AAAAAAB///gAAAAAAH//+AAAAAAAf//4AAAAA + AH///gAAAAAAf//+AAAAAAD///+AAAAAA/////4AAAf//////wA///////////////////////////// + ////////////////////////////////////////KAAAACAAAABAAAAAAQAgAAAAAAAAEAAAEgsAABIL + AAAAAAAAAAAAAN3DwwDTvb0Q48fHX+fLy4zhy8uO483NiunR0YPo09N/59XVeubX13Xm2dlx5tnZb+TY + 2G/c0dF418rKgdfExIjRvLyUlIiInFhXV6JkZWReWWlQG3CFXyOMg3dEo4+MYq6em0ehkZESKxYXAJB9 + fAAAAAAAAAAAAAAAAAAAAAAA5cTEANi9vRbuycmB98/Pt/bT07T21dWp+NfXmvja2oz33t599eHhcO3d + 3Wjg0tJs0MPDf8O2tqC5qanDtaKi2bahoeuJfX3yUVFR8VFXTsRacE6XeItnqpeMgcusmJbfuaqoxram + p3qpmJgphnR1BayamQBoV1oAAAAAAAAAAADmw8MA17u7FvDIyHn7zs6l/dLSmf3V1Yr61tZ58dPTbdvF + xWnGuLhxwbW1h8GysqW5p6fHqJqb4ZiNjfOWiIj6nIuL/X1zc/5NTU3+SlVG+l50UPiFkHL8ppWO/rSe + nf++r679wrS168W2tquyo6FIUEdFCgAAAAAAAAAAAAAAAOTExADVu7sV7srKb/rQ0JPyzc2K3r+/iMCq + qpKkmJikopmZvb+zs9TczMzp6dDQ9ePFxfzKt7j+sKam/qGWlv6Zjo7+eXJy/k1NTP5KVUX+Y3dV/pmX + g/60nJr/uqSi/sa3tf7NwMD/08bG87mrqZ0+ODUwAAAACwAAAAEAAAAA4cTEANO7uxPty8th78vLgbeg + oKeUh4fShHx85o+KivPAuLj66NjY/vfj4//53t7/7M/P/9HDw/7Kvrz+zLqv/q2hmf55dHT+TU1M/kxV + R/5we2D+rp+V/r2iov+/qaf/yry6/9fJyf/h0tL5v7GurzItK0kAAAAnAAAADgAAAALew8MAz7q6EuvM + zFLhwsJtjoGBu3ZwcPmBfX3+ube3/urj4/715ub++Obm//jf3//jzc3/z8TC/9/Mvv/w17j/zb2q/397 + ef9NTUz/TlZI/4CAbv++p6P/xKmp/8Stq//LvLv/2crK/+bW1fjJubaqNzEvQwAAAC0AAAAeAAAADtnC + wgDKuLgQ6M3NQtW9vVZ7c3O0cm9v+p+env/Z2dn/7uzs//Pq6v/z5eX/7tzc/9zNzP/dzcL/89u///vj + x//h0MT/iYWE/01NTP9TV03/kIR8/8murf/Mr6//ybGw/8y9vP/Zysr/59fW+NLBvaNFPjs1AAAAIQAA + ABoAAAAR08LCAMW2tg7jz882yru7R3NwcK5/f3/6urq6/9jY2P/k4+P/6OXl/+Hb2//e2dr/3tbT/+3b + yv/65NH/+ubf/+fZ1/+QjIz/Tk5N/1xZVf+cioj/0LS0/9K2tv/OtrT/zb+9/9nKyv/n19b33czIm21i + XiEAAAAMAAAACAAAAATPxMQAwbe3DuDV1S/FwMBBd3Z2rZOTk/rFxcT/0NDQ/9jY2P/e3t7/z8/P/8zM + zP/d2tn/7eLc//jp5v/56+v/6N7f/5KPj/9OTk7/ZF1d/6eRkf/Yu7v/2by8/9O6uf/Ov73/2crK/+jX + 1/fp19KSzbmxEf///wAAAAAAAAAAAM7IyADAubkO39vbL8jHx0OCgoGvoJ2d+sO+v//KxMf/1dDT/9za + 2/++vr7/u7u7/9vb2//r5+f/9u/v//fx8f/k3+D/kI+O/09OTv9rY2L/tZyc/+HCwf/gwsH/2L+9/8/A + v//Zysr/6NfX9uvZ1ZHizMIP6NTOAAAAAAAAAAAA0czMAMK7uw7i3980z8/OS5KPkbK2qrb61MLY/9nH + 3v/f0uD/39ze/9HR0P/T09P/3uDj/+Tm6v/v7/D/8/Ly/9rZ2f+Mi4v/T09P/2ZnbP+wpq3/48jK/+bH + x//bwsD/0MG//9nKyv/o19f269nVkeLLwg/n1M4AAAAAAAAAAADUz88AxL6+DuTi4jnW1tVUnJectsCw + yvrizez/6tfp/+fh4//e5N7/4eTi/+Tl5v/W2+P/0drn/97k7P/m5+n/zMzM/4mJif9OT1D/TWZ3/2+g + xP+ywtn/4MnN/+DFxP/QwsD/2crK/+jX1/br2dWR4svCD+fUzgAAAAAAAAAAANbT0wDHwcEP5uTkP9vb + 216gnZ+7x7nC+/Lf5v/u5+P/1+/Z/9Tx2//l7Oj/6enq/9ba4f/L1eP/0Nrp/9LW3P/BwcL/i4uL/05P + Uf9FZnv/SJvP/2e16f+1w9n/3sfH/9DAvv/Xycn/59fX9uvZ1ZHiy8IP59TOAAAAAAAAAAAA2tbWAMrF + xQ/p5+dG4uPjaaelpsDAt7f66+Tf/9rw2//H9dP/2/Xi/+zv7f/t7e3/4ePk/9LX3//N1N//yMrO/8HB + wf+Pjo7/UFFS/0dnfP9JndH/T7Hv/4O65P/Oxcv/yLi2/8q9vf/f0ND26NbSkePLwg/m0swAAAAAAAAA + AADc2dkAz8rKEubl5V3l5eWLuLi40La0s/zN1sz+x+7R/s/z2v7n8er+6+vr/+rq6v/i4uL/0dLU/8nK + zP/IyMj/x8fI/6Kio/9ucnX/VXmP/1Cj1f9Qs/D/a7fq/77D0P/FtbP/vrKy/9DDw/bdzcqR4svCD+DN + yAAAAAAAAAAAANfW1gDOy8sK4N/fOs3NzWGKioq9fHx8+4KJhP+UrJv+v9HE/dfZ1/7Q0ND/wcHA/6qr + qv+eoJ3/oKWl/6Stsf+jsrn/lau2/32er/9mn7//XLHi/1S18P9suOv/v8TS/8i4tv/EuLf/08bF9t3N + yZHiysEP4M3HAAAAAAAAAAAAysnJAMTDwwDw8PACVlZWF0hISJdVVVXyXl9e8Wlva+6Jjon4nZ+b/pue + mf+QlI3/i5KI/46Yiv+LoJz/g6q4/4e1yf+JvdP/g8Db/3jA5P9pvu7/W7jx/4K+6f/OyNH/xLSy/7+y + sv/RxcT2387KkePLwg/izsgAAAAAAAAAAAAAAAAAAAAAAElJSQAzMzMIW1tbVHh4eI6EhIR/ioyIipaa + kd+do5j+o6ud/6mzo/+vu6n/s8Cs/67Etv+iy9T/ntLo/57U6v+V0ev/g8rt/2/C8P9wvu7/s8rj/+HN + z//CsrH/uq6u/8u/vvbaysaR4srBD97MxQAAAAAAAAAAAAAAAAAAAAAAd3d3AEpKSgCPj48Irq6uD8LC + wgrHwro2zMzCy8zRxP7L0sT/ytTD/8rVw//I1cD/ytbE/9Hf3v/A3u3/q9nt/5zU7f+Nze3/jMns/7LO + 5//o193/6c/N/8Gysf+6rq7/yr6+9tnJxpHhysEP3svFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/9/QA7eHfAPHi3zHv5+TJ6+jj/uPk3P/a39P/0tvL/83Xxv/X3c//7erm/+np7P/Y5Ov/yt3q/8ja + 6f/X2+b/793g//jb2//oz83/xLWz/7ywsP/Lv7/22crGkeHKwQ/ey8UAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPbT0wDz8O0A9OTiMfPq58nz7er+8u3q/+3r5v/l5t3/3OHV/+bm3f/z7en/9evp//Pn + 5f/w4uH/793c/+/Y1//t09L/6c7M/9vCwP/Arq3/wrS0/9PFxPbdzciR4cnAD+DMxgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA99PSAPLv6wD05OEx8+nmyfLq6P7w6eb/7eTh/+fe2//f1tL/28/L/9jJ + xv/TwL7/zbi2/8mxsP/GrKv/xamo/8Wop//Hqan/xqio/7mfoP+7pKT/0Lq6+NzFwpjXvboT28PAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADlw8IA3tLPAOPOyzHdzMnJ1MPB/si1s/61oJ7+ppCP/qKK + if6gh4b/oYeH/6WKiv+qj4//spaW/7yfn//Gp6f/z66v/9i1tv/gu7v/37m5/8enp//Hq6v82Lu7vte6 + ui8RCwwAwaenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMepqQDLsrEAyq+uLciurcPApqX+r5WV/Z2D + g/ugiIj8rZaW/rmjo//Fr6//0Lq6/9rDw//kysr/687O//LQ0P/20dH/+dDQ//vPz//6y8v/47m5/smq + qv7Wubno3L+/bM6zswnTtrYAt6GhAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKGiANGzswDKra0e1Le3rdW5 + ufzLsLD3yK+v4d/MzPLo2dn+6t3d/+zg4P/v4OD/8+Dg//bf3//43d3/+9vb//3Y2P/+1NT//tHR//3O + zv/3xsb+5Lq6/eG+vu7hxMSL176+GOnLywDEr68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3b+/ANa5 + uRjhxMSm48bG/Nu+vunZwMGv69vb4O3j4/7r5OT+6+Tk/u3i4v/w4OD/897e//bc3P/42dn/+dbW//jR + 0f/3zs7/9crK//PGxv/wwsL+6b6+0eLAwE3byMgK/dzcAM++vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADgxMQA2r6+EubJyYXoy8va4MPEwtrBwXjo1tbP6tzc/efb2/7m2tr+59fX/ufU1P7o0dH96M/P++jM + zPjoycn15sbG8eTExO3iwcHn4MDA3969vdDVtLSLyaioGsqkpADz398A8+3tAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3FxQDYv78D4cjIJeLIyU7cwcJO1ry8O97Gxq3hysrm4MrK4ODJydffyMjO3sbGwt3E + xLbexMSo3sTEmt7Dw4zew8N93MHBb9nAwGHZwMBU1r6+QciwsB6xmZkDvqamAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLvbwAyb69Acq6ugLWt7cK3L+/Qd3Cwl3ew8NP3sTEQt7E + xDbcwsIq2cDAIdrAwBrcwsIT3MPDDtzDwwnZwcEF0Lm5A8u4uAGzr68Axri4AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4r29AOvAwADdvLwC17i4A9K1 + tQHSp6cA9Pj4AIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA/gAAAD4AAAAeAAAABgAAAAIAAAACAAAAAgAAAAIAA + AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB+AAAAfwAAAH/gAAB/4AAAf+AAAH/gAAB/4A + AAP+AAAD/gAAA/4AAAf+AAAH/4AAP//x/////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAABIL + AAASCwAAAAAAAAAAAACLjIwA99bWAMi3tw3YwcFC38bGa97Hx3HVxcVx08TEctrJyW/gzMxs4c7Oa+DP + z2rf0NBo3tHRZt7S0mXe09Nk3dPTY93T02Pd09Nj2tDQZNLKymjSyclq2cvLaNvJyWraxsZvzLq6cYN7 + e3ZQT0+HZ2dncX19fSxWV1UFVXJIA22CWwmBfGwWkXx6K6KOijupmZQrmIeGDD8mJwBVPj4AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNkZEA/+LiANK8vBfnyMhy8c7OtPLQ0Lzu0tK87NPTuvDV + 1bLz19eq89jYpfLa2p/x3NyZ8N3dk/Df343v4eGI8OHhhPDh4YLv4OCC6tzcieLU1JrbzMyp1sTEstK9 + vcDPubnQw6+v2IJ5edxPTk7jXF1czl9iXXxNXEQ/ZIBVQXWKY1yKh3V+moaDoKuXlLW2p6SZrZ6eV5uI + iB5yXFwE////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLjo4A//HxANG4uBnrxsZ0+MzMtPvQ + 0Lj709O0+tbWrvvW1qP71taY+9nZjvrb24P73t53++HhbPvl5WH35ORZ7dzcV93Ozl7Nv79uwbOzh7ms + rKiyo6PGq5qa2qyZmeuwm5v3q5eX/HlwcP5MS0z+T1FP9k5XSNFUaUi3aoVawn2Pa9iVjn/rpI6M9bKe + nPq9rqzxu6yty7alpYamlJQ9f25uDywgIABwXl4AAAAAAAAAAAAAAAAAAAAAAAAAAACMjIwA//b2ANC2 + thjqxcVu+MzMqP3Pz6j90dGf/dTUlv3V1Yz919eA/drac/3c3Gf53Nxd69XVV9XFxVnAtrZktaysebCl + pZSqnp6yo5eXzZqQkOKUiYnwkoWF+JaHh/ydjIz9nYuL/XNra/5LS0v+S05L/EpXRPlXbkr5b4hf/ImT + dv6ilIz/rJSU/rWhn/6+r63+v7Cx+8O0tebDs7OvtqWlYZKDgh8+NzQEAAAAAAAAAAAAAAAAAAAAAAAA + AACMjIwA//z8AM+3txfqxsZq+M7On/3R0Zz+09OR/dXVhvzW1nz21NRy6MzMbtO+vnG6rKx9qqCgkK2j + o6i9srLBzL292NO9venTuLj0x7Cw+7Skpf2hmJj+l46N/pSJif6XiYr+l4qK/nBqav5LSkv+S05K/UpX + Q/5Xbkv+dopk/pmYg/+vmZb/sZiY/7mkov7CtLH+w7a2/8e6u/7PwcL0zr++xaial2Y/NzUcAAAABgAA + AAAAAAAAAAAAAAAAAACPjY0A////AM23txfox8dk98/Pk/zS0o720NCG6cjIg9W6uoi9qKiVppiYqJWM + jL2TjIzTqaCg48q8vPDj0tL48N3d/PXX1/7z0ND/5MfH/86+vv67srH+rqSk/qKXl/6bkJD+loyM/nBq + av9LSkv+TE5K/kpXRP5Zb0z+gY5u/qmdkf+3np3/tpyc/72opf/Iubb/zcC//9HExP/Vycn+1cfG6qib + l5UxKyk/AAAAHQAAAAkAAAABAAAAAAAAAACPi4sA////AMy3txbnyMhd99HRhPTPz4HNsbGWrJiYuZmL + i8+LgYHhgXp67oeCgvaqo6P71cnJ/e7b2/734+P/+uXl//rc3P/00tL/4cnJ/83Bwf/EvLz/yry5/8Wz + q/+rn5r/l4+O/29qav9LSkv/TE5L/0tYRf9ecVH/kZN8/7ejnf+9oqL/uqCg/8CrqP/Jurn/0MPD/9rM + zP/i09P+39DO7KucmJsqJSNOAAAANQAAACAAAAAMAAAAAgAAAACTjo4A////AMq2thXlx8dV9tLSdOnI + yHWmkpKsh3x86n11dfp2cXH8f3x8/amlpf7a09P+8OTk/vbk5P/45eX/+ubm//nd3f/v0dH/2MjI/8nA + wP/NwsD/4cy+/+jPs//JuKX/n5iU/25ra/9LSkr/TE5L/0xYRf9ndFj/oZmL/8Kop//Bpqf/vqSk/8Ot + q//Ju7n/0cPD/9vNzf/m19f+5tbU67Kjn5ctJyVJAAAAOQAAAC4AAAAdAAAADQAAAASWkZEA////AMe1 + tRTjx8dN9tPTY+HDw2WSg4Opd3Bw8XJtbf93c3P/npyc/9XT0//w6+v/8+rq//Xm5v/45ub/+ufn//jd + 3f/pz8//0sbG/83Dwf/ezMD/8tm6//nft//jz7T/rqaf/3Bubf9LSkr/TE5K/01ZR/9yd2L/sJ6X/8mu + rf/Hq6v/w6io/8awrv/Ku7n/0cPD/9zNzf/n2Nf+6NfV6rmppZIzLSpAAAAAMgAAACwAAAAkAAAAGQAA + AA6Zk5MA////AMS0tBPgxsZE9dXVU9rAwFWEenqhb2lp8HBtbf+KiYn/wcHB/+Xl5f/v7u7/8+3t//Xp + 6f/36Oj/9+bm//Lb2//gzc3/0cfF/9vLwf/w2L3/+uG8//vkxP/v28n/vbOu/3Nxcf9LSkr/TE5L/1FZ + Sv99eGz/uaKg/8+ys//Lr6//yKys/8mzsP/LvLv/0cPD/9zNzf/n2Nf+6djW6sGvq4w7NDI3AAAAKQAA + ACQAAAAgAAAAGwAAABKbk5MA////AMGyshLcxsY889jYRdG+vkh6dHSbamho73d2dv+kpKT/0NHR/+Dh + 4f/p6Oj/8O3t//Hq6v/s4eH/6N3d/+XZ2f/b0dD/287H/+3Ywf/54cL/++TM//vl2P/04dz/x728/3d1 + df9LS0v/TE5M/1lbUf+IfHb/wKam/9S3t//QtLT/zLCw/8y1s//Mvbv/0cPD/9zNzf/n2Nf+6tnX6cm4 + s4dJQT4tAAAAHQAAABcAAAATAAAADwAAAAmclJQAAAAAAL2wsBHYx8c28d3dO8vAwEB2c3OYa2pq7omJ + if+6urr/0tLS/9fY2P/f39//5+bm/+bj4//c2dn/2tjY/93c3P/d2tn/5dnP//bgy//75dP/+ubf//rn + 5v/15eX/zMTD/3p4eP9LS0v/T09N/2FdWf+QgH7/xaqq/9i7u//VuLj/0bW1/8+4tv/Mvrv/0cTD/9zN + zf/m19f+69vY59fFv31wZF8dAQEACwAAAAgAAAAEAAAAAgAAAAGelJQAAAAAALyxsRHVycky8OTkNsnE + xD52dXWXc3Jy7p2env/IyMj/0tLS/9PU1P/Y2Nj/39/f/9/f3//X19f/0NDQ/9TU1P/e3dz/5N3Z//Lj + 2//66OT/+eno//nr6//16en/zsfH/3t5ev9KS0v/UFBP/2lhYP+YhIT/yq+v/9y/v//ZvLz/1bi4/9K7 + uf/Nvrz/0cPD/9zNzf/n19f+7dzZ5eXRzHXDrqUQFRAOAAAAAAAAAAAAAAAAAAAAAACelJQAAAAAALuz + sxHUzc0x8OvrNMrJyT56enqYenp67qOjo//BwcD/x8fG/8vKyv/R0dH/3Nzc/9/f3//Kysr/tLS0/7+/ + v//Z2dn/4d/e/+7l5P/47Oz/+O3t//ju7v/z7Oz/zMjI/3t6ev9KSkr/UlBQ/29lZf+hi4v/0bW1/+LD + w//ewMD/2by8/9a+u//Ov7z/0cPD/9zNzf/n19f+7dza5enW0HPdxbsOvpyIAAAAAAAAAAAAAAAAAAAA + AACelJQAAAAAALuzsxHV0NAy8O7uNs7Pz0KBgYGbhYSD766pqf/CvLz/xr/A/8rCxf/Ryc7/3dnc/97d + 3f/AwMD/qamp/729vf/b29v/5OPj/+/r6v/38fH/9/Ly//fy8v/w7Oz/x8XF/3p6ef9LS0r/UlBQ/3Vq + av+slZT/2bu7/+fHx//ixMP/3cC//9jAvf/OwL7/0cTD/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAA + AAAAAAAAAAAAAAAAAACck5MAAAAAALu0tBHW0tI08fDwPNPT00iJiIielY+R78O2vv/Uw9L/1cTX/9jG + 3P/czd//4dnh/9/e3//Pz8//w8PD/9PT0//h4uP/4+Tn/+rr7v/y8fL/9fPz//b09P/q6Oj/wL6+/3l5 + ef9LS0v/UlFS/3Vvcv+wnqD/38LD/+vMy//mx8f/4cPD/9rCwP/PwL7/0cTD/9zNzf/n19f+7dza5enW + 0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACbkpIAAAAAAL21tRHZ1dU38vHxQtjY2E6Rj4+hn5Wg8My5 + 1//axev/3cjs/+PO6//o1+n/5d3i/+Hg3//g4eD/4ODg/+Tk5f/e4eX/19zm/9zh6//m6e7/7+/w//Dw + 8P/f39//ubi4/3l5ef9MS0v/TlFU/11vff+JnrT/w8HQ/+TN0f/qy8v/5cbG/9zEwf/Pwb7/0cTD/9zN + zf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACbkJAAAAAAAL63txHa19c68/LySNzc + 3FWWlZWloZim8M683v/ize//6tXr//Dd6P/u5eT/4efe/9vl3f/h5eL/5+jo/+Xm6P/V2uL/y9Ti/8/Z + 6P/Y4Ov/4+fs/+Xm5//R0dL/tLS0/3p6ev9MS0v/S1FV/0Zshf9RlsT/e7bg/7XF3P/fy9D/6MnJ/9/G + xP/Pwb7/0cTE/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACaj48AAAAAAL+5 + uRLc2dk99PPzTuDg31ybmpqpo5uh8dnH1P/z3uf/9uPn//Lo5f/g7d3/z/LX/9Tx3P/i7Ob/6+vr/+jp + 6v/X2+D/ytPf/8rW5v/P2uv/197q/9XY3P/Gxsf/tbW1/3x8fP9MS0z/S1FV/0Nsh/9Elsr/UK7p/3O4 + 6f+2xNr/48vO/+HIxf/Qwb7/0MPD/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAA + AACZj48A////AMK8vBLe29tA9fT0VOPj42Kgn6CsoJqb8dfHyP/35OX/9Onm/+Pt3//M89T/xvbU/9n1 + 4f/p8Ov/7e3t/+3t7f/g4uT/0dXc/8zV4//N1+n/ztbi/8jLzv/CwsL/t7e3/359ff9MS0z/SlFV/0Ru + iP9HmMv/TK7r/1Oy7/+DuuT/zMfT/+HIxv/Nvbr/yr29/9jKyv/l1tb+7dza5enW0HPexbsOvpyJAAAA + AAAAAAAAAAAAAAAAAACZj48A////AMO9vRLg3d1D9vX1W+fo6Gmqqqqwnpyb8ca9vf7s4t//5u7h/83z + 1f+/9s//zffZ/+X16f/u7+7/7e3t/+7u7v/o6Oj/2dvd/9LW3v/O1eD/ys7U/8XFx//ExMT/urq6/39+ + fv9MS0v/SlFV/0VuiP9Jmsz/ULDs/06y8f9jtev/rsPa/9vIyP/Ht7T/vbCw/8u+vv/czc7+59fV5ejU + znPexrwOw6CPAAAAAAAAAAAAAAAAAAAAAACYjY0A////AMjCwhTi399U8vLyd+vr64e/v7/CrKys9b67 + uv/a3NX/1/Hb/8X20v/G9tX/3PXj/+3z7//v7+//7Ozs/+/v7//t7e3/4eHi/9fZ2//P0tX/zMzN/8vL + y//MzMz/w8PD/5GQkP9mZWX/XGNn/0x2kP9Nnc7/UrHs/0+z8f9Xs+//mL/g/9XHyv/GtrP/t6qq/76z + s//NwMH+283M5eLPynPfxrwO06qYAAAAAAAAAAAAAAAAAAAAAACShoYA////AMrFxRTe3d1b6enpi+Pj + 45q9vb3Lqqqq962trP+2u7b+u9LB/r/my/7Q7dn+4+3m/urr6v/n5+f/4+Pj/+Li4v/Z2dn/yMjI/76/ + v/+9vb3/wMC//8TExP/HyMn/wMPE/6aqrf+Kk5j/coeS/1iMqf9Vptb/V7Xt/1K08f9VtPD/kb/j/9PI + zf/Lurf/v7Kx/8K2tv/Kv7/+1snH5d7Nx3PgxrwO2rCcAAAAAAAAAAAAAAAAAAAAAACOgYEA19jYAMbD + wwfV1NQl3t7eOr6+vkt4eHieaGho72lpaf5rbGv+cX10/ommkv60yrr90tfU/tfX1//Pz8//w8PD/7Ky + sv+dnZz/jY6M/46Qjf+UmJf/mKCj/5mlqv+XqLD/kai0/4imtf98o7f/b6K8/2Sozv9hteT/XLjv/1S1 + 8f9Zte//l8Hj/9bJzf/Kurj/wbSz/8q9vf/UyMj+3c/N5eLPyXPfxrwO0qmYAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvr29ALu5uQDGxcUBxcXFA0lJSRY9PT2CRkZG609PT/9UVFT9VlhW/GBnYvt+hH/8mpua/qOk + o/+goZ//lJaT/4eKhf+EioL/ho2D/4eRhP+Glo//f5yl/3uktP+ArL//g7PI/4O4z/+Au9b/e73c/3S+ + 5v9svu3/Ybvx/1e28v9kuO7/q8bh/93Lzf/GtrP/uaur/8K2t//RxcX+39DO5eTQy3Pgxr0Oz6WVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVADExMQ9DQ0NuWVlZ02xsbOZycnLbdnZ2zX1/ + fdCFh4Lvio2H/YyQiP+OlIr/kJiM/5Ocj/+YopP/naiX/6Gumv+fsqT/kbe8/4q/0v+TyN7/mM3k/5jP + 5v+Tz+j/iczq/37I7f9yw+//Zb3x/1248f9/vuv/ys3e/+TNzP/EtbP/tqmp/72xsf/Ivb3+18rH5eDO + x3PgxrwO2K2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OAVaWloxe3t7apSU + lHabm5tjnp6dUJibk3CboJTRoaib/KWtn/+rsqT/sLmp/7S/rv+4xLL/u8i0/7zKtf+6y7f/sc3G/6fS + 4P+j1uz/o9ft/6LX7P+b1ez/kNDt/4LK7v90xPD/aL/x/3S/7v+vy+X/59Xa/+fNzP/EtbP/tqmp/72w + sP/HvLz+1cjG5d7MxnPfxrwO2rGeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf39/AGZm + ZgCMjIwEq6urDb29vQ/Nzc4Kx8TCBri1qj7BwrfDxcq9+8bNvv/I0MD/ydLC/8rUw//K1sP/ydbC/8fV + wP/G1L7/zNnL/8zg5P+53e7/qtnu/6PX7f+b1O3/kNDt/4PL7/96xe//gsXt/63N6P/h19//9djY/+fO + zP/EtbP/tqmp/72wsP/HvLz+1cjG5d7MxnPfxrwO2rKeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/x8MA79LOAera1jrp4d3A5uTe++Di2P/Z3tL/1NzN/9Ha + yv/P2cj/zdjG/8vXw//M18T/3eHW/+vq6f/e5+3/yODt/7bb7f+p1+3/oNPt/53Q7P+n0Ov/xNTm/+ba + 4f/43N3/99jY/+fNy//EtbP/tqmp/7ywsP/HvLz+1cjG5d7MxnPfxrwO2rKeAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4wcIA99PSAfXj4Trz6efA8uzq++/r + 6P/q6eP/4uXb/9rg0//U3M3/z9nI/83Xxv/T28z/6Off//Tt6//z7Oz/7Orr/+Lm6v/Z4en/1t/o/9re + 5//l3+X/8uDi//nf3//63d3/9djY/+bOzP/HuLX/uays/76ysv/Ivb3+1cjG5d7MxnPfxrwO2rKeAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5xMQA9tTTAfTj + 4Tr06ebA8+3q+/Pt6//z7ev/8Ozp/+vq5P/j5dz/2t/T/9Xczf/e4tb/7+zn//bv7f/27uz/9+3r//br + 6v/26Oj/9ubl//fk4//44uH/99/e//bd2//z2df/7tTS/9/Jxv/FtbP/wLKy/8e6uv/Pw8P+2szJ5eDO + x3PgxrwO166aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD4xMMA99TTAfTj4Tr06ebA9O3q+/Tt6//07uv/9O7s//Tu7P/y7er/7erl/+fn3v/r6OH/8uvn//Pq + 5//y5uP/8OPf/+3e2//q2db/59PR/+TOzP/gycf/3cTC/9q/vv/XvLr/1bm3/8uwr/+2n6D/taKi/8Wz + s//UxMT+387L5eHNyHPcw7oOxZ2LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD5xMUA+NTTAfbj4Dr06ebA9Ozp+/Ps6f/y6+j/8Ojl/+3k4f/r4N3/5tvY/+DU + 0f/bzcr/1sfE/9G/vf/Mt7X/x7Cu/8GqqP+9pKP/u6Cf/7mdnP+5nJv/upub/7ydnP++n6D/waKj/8Kk + pP+5np7/spmZ/7igoP/Ls7P/2sLA6drBv37PtbISuZ6aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxvsAA78vKAezX1Dro2dXA49bT+97Pzf/YyMT/zbu4/76q + qP+znp3/rJaV/6aPjv+iiYj/n4SD/52Bgf+dgID/noGB/6CDg/+kh4f/qo2N/7CTk/+3mZn/vp+g/8Wm + p//NrK3/1LKz/9q3uP/dubn/0K2t/7ufn//Dp6j/1rm59Nu+vqXRtbUqvaOjAbCZmQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQqaoA0rKxAdK4tzrNtrXAw62s+7ig + oP+vlpT+oYaF/o1ycf6EaWn+h2xs/oxxcf+Sd3f/mX9//6KIiP+rkZH/tJqa/76kpP/Hra3/0LW1/9m8 + vP/gwcH/58XF/+zIyf/wysv/9MvM//fMzP/5y8v/7cHB/82pqf+/o6P+0LS0+93AwNTYu7tcxaurCsOp + qQBLMTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/oqIAwaWlAcWp + qTPIray2x6ur+b+kpP+0mpr+poyL/JyCgvqljo78s52d/r2oqP/Hs7P/0L29/9jExP/fy8v/5dDQ/+vV + 1f/w19f/9NjY//fZ2f/62Nj/+9fX//zV1f/+09P//tLS//7Q0P/+zs7/+srK/+S4uP/Hp6f+ya6u/du+ + vvDewMCZ0bW1JSUeHgCtlpYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC9o6IAwKSkAMeqqiLQs7Oc1bm59NS4uP/MsrH9xKmp8seuruXeysr06NfX/uvb2//s3t7/7uDg/+/h + 4f/x4eH/8uDg//Xg4P/239//997e//nd3f/729v//NnZ//3X1//+1NT//tLS//7R0f/+z8///czM//XE + xP7gt7f+2La2/eDAwPTixsa82b6+Sb2oqAXDra0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAw6enAM6xsRnZu7uO38LC8d7Bwf/Xu7v80ba33Ne/v7zr2dnn7+Li/e3j + 4//s4+P/7OTk/+zj4//t4+P/8OHh//Lg4P/04OD/9t/f//je3v/63Nz//Nra//3Y2P/91tb//dPT//3S + 0v/9z8///c3N//vKyv73xcX98cPD++zDw9zmx8eJ38fHO8y5uQfPu7sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyaysANW4uBnhw8OO6MrK8ebIyP/fwcL62Ly8v9nC + wo/p2dnZ7uLi/ezj4/7q5OT+6uXl/uvk5P/t5OT/7uLi//Hg4P/z39//9d7e//fc3P/429v/+dnZ//nV + 1f/40tL/99DQ//bNzf/1ysr/88fH//LFxf7wwsL+7b+/++a7u8LfublD4c3NDdjJyQLZysoAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyq2tANi7uxbjxsaD683N5OrM + zfnjxcbw2r6+ntrCwmnp19fM7uDg++zh4f3q4eH96eDg/unf3//q3t7/6tvb/+vZ2f/s1tb/7NTU/+zS + 0v7sz8/+68zM/urKyv7ox8f+58XF/eXDw/3jwsL74sDA+uHAwPffvr7z27q649GwsJjGpqYlwJ+fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx6ysANa8 + vArgxsZG5svMieXKy63gxMWy2Ly9ade+vknizMy+5tPT+ubT0/zk0tL94tDQ/eLOzvzhzc384cvL+uHJ + yfngyMj34MbG9ODGxvDgxcXr4MTE5t/Dw+Dfw8PZ38LC0d3CwsjbwcG/2sHBtdvBwanawcGZ0rm5ecOq + qj22nJwKqpCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAEQAAANS+vQDaxsYK3cnJGt3Hxy7ZwcI40rm6INS3tynav7+c3sXF5N/Gxuffxsbh38bG2d/G + xtPfxsbK38XFv93ExLTcw8Op3MPDnN3Dw5DexMSD3sTEdt7ExGrexMRd3sTEUtvBwUfYv7891r6+M9jA + wCvWv78hzLa2E7ahoQWTgIAAtJ6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDv8IAv77CAMzAwQHPvbwCy7a2Adi3twzcvr5H38PDed7E + xHffxMRp38XFW9/FxVDfxcVE3sTEONzCwi7Zv78m2b+/H9vBwRjcwsIT3MLCD9zBwQvcwcEH3MLCBde9 + vQPOtbUCzLOzAcyysgC6n58AfWZmAJV9fQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA48PDAN68 + vADfvr4H3L6+ENi8vA7Yvb0J3cHBBt3BwQTcvr4D3L+/AdrAwADVu7sA1Lq6ANa8vADWvLwA0re3AMSi + ogAvAAAAdi8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAA/8AAMAA + AAAA/wAAwAAAAAB/AADAAAAAAB8AAMAAAAAADwAAwAAAAAADAADAAAAAAAEAAMAAAAAAAAAAwAAAAAAA + AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAfAADAAAAAAB8AAMAA + AAAAHwAAwAAAAAAfAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAfAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAf + AADgAAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAB8AAP/AAAAAHwAA/8AAAAAfAAD/wAAAAB8AAP/A + AAAAHwAA/8AAAAAfAAD/wAAAAA8AAP/AAAAADwAA/8AAAAAPAAD/4AAAAAcAAP/gAAAABwAA/+AAAAAH + AAD/4AAAAB8AAP/gAAAAHwAA//AAAAA/AAD//AAAA/8AAP//wD///wAA////////AAD///////8AAP// + /////wAA////////AAAoAAAAgAAAAAABAAABACAAAAAAAAAAAQASCwAAEgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEREQMgICATJycnCgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZu + bg2JhIRAjoiIRo6IiEaNh4dGjYeHRo2IiEaOiIhGi4iIR4mGhkeJhoZHiIaGR4iGhkeJh4dHjYmJRo2I + iEWNiIhFjYiIRYyIiEWMiIhFjIiIRYyIiEWMiIhFjIiIRYuIiEWLiIhEi4iIRIuIiESLiIhEi4iIRIuI + iESKiIhEioiIRIqIiESKiIhEioiIRIqHh0SKh4dEioeHQ4qHh0OKh4dDioeHQ4qHh0OKh4dDioeHRImI + iEWHhoZGh4WFRoeFhUaHhYVGiIeHRouIiEWLh4dEi4eHRIuHh0SLh4dEi4eHRYyHh0WMh4dFjIeHRYyH + h0WNiIhGbWxsQD9AQEE5OTlOOzs7hTQ0NLl5eXmbnp+eNi0tLQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAm5OTM+PR0dX01tbm89bW5fPW1uXz19fl89fX5PLX + 1+Xe0dHr0sjI69PIyOvTyMjr0sfH69bNzevu29vl89zc4fPd3eHz3d3h897e4PPf39/z4ODf8+Dg3vPh + 4d3z4uLd8+Li3PPj49vz5OTa8+Xl2fPl5dnz5ubY8+bm2PPm5tfy5+fW8ufn1vLn59Xy5+fV8ujo1fLn + 59Ty5+fU8ufn1PLn59Ty5+fU8ufn1PLm5tTx5eXV3dfX49HMzObSzMzl0szM5dLLy+XVz8/n7eDg3fPh + 4dnz4ODZ89/f2vPf39vz3t7c893d3PPd3d3z3Nze8tra3/Ld3eSknp7UOzs72T8/P/I/Pz/+ODg4/5eX + mP6/vr/erq6ugW9vbx8AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB5YGIDeV9hE35kZjSCaWttt6KYgKuZj0sjEhQNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACelpY37NnZ4v/e3vL+3t7x/t7e8f7f3/H+39/x/eDg8Pnm5vT34eH09t3d8Pbd3fD23t7w+Ojo9vzm + 5u/+5eXt/eXl7P3m5uv95+fr/ejo6v3o6On96eno/erq5/3r6+f97Ozm/ezs5f3t7eT87u7j/O7u4vzv + 7+H87+/g/PDw4Pzw8N/88PDe/PHx3vzx8d788fHd/PHx3fzx8dz88fHc/PDw3Pzw8Nz88PDc/PDw3fzv + 79337+/n9evr5vTn5+D05+fh9Obm4/ft7e/77Ozl/erq4v3p6eP96Ojk/efn5fzm5ub64+Pq9d7e8PLb + 2/Xy2tr39uHh+5+amv48PDz/QEBA/z8/P/84ODj/fn1+/2ZmZ/+hoaH9lZWVjAAAAB8AAAAOAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAaH5WBGaBVRVueFsygmxrY4dub5GNdHXLknp66pZ+fvzGs6r/wbOt7pKA + gaBZREQ6AAAABgAAAAEAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWMjDTky8vC+87OyvrPz8n6z8/I+s/Px/nQ + 0Mb50NDE+tbWyPzo6N362trL+tfXxfrh4dD86OjS+dbWufjV1bb41dWz99XVsPfW1q321tar9tfXp/XX + 16T12Nih9NjYnfTZ2Zrz2dmW8tnZk/La2o/x2tqL8NraiO/a2oXv2tqC7tragO7a2n3t2tp87NnZeuzZ + 2Xjs2dl369jYduvY2Hbr19d269fXduzX13fs1tZ47NXVePDc3IT37Oyy8d3dlfHa2o715OSo+uzstPHU + 1I/szc2S5sjImdu9vafOsrK5waen0ryjo+e9paX3xq6u/s+2tv/Pubn/lI+P/zw9Pf9AQED/Pz8//zg4 + OP98e3z/S0tL/1hYWP95eXmpAAAASQAAADgAAAAdAAAAB1B2QQNlglQTZYRUMWmEWGhqhlmXbYdbz4KG + bumagoP6n4iI/6GKiv+jjIz/oYqK/8m3rv/Nwbz/wrW2/qWUlONzXV2EQSkpHwAAAAEAAAACAAAAAgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAkYmJM+TIyLj/zc29/87Ou//Ozrr/z8+5/8/Pt//Q0LX/0dG0/9vbvf/k5Mj/5eXG/+PjwP/X + 16v/1dWk/9bWof/X153/19ea/9jYlv/Z2ZL/2tqO/9vbiv/c3Ib/3d2B/97eff/f33j/4OB0/+Hhb//i + 4mv/4+Nm/+TkYv/l5V7/5eVb/+bmWP/m5lb/5uZU/+fnUv/m5lH/5uZQ/+bmUP/l5VD/5ORQ/+PjUf/i + 4lL/4eFU/+DgWP/p6XL+7++Q/ezsk/bj45HjxMR+zq+virqfn6aslJTFqZOT4K6YmPO2oKD7uKGh/sCo + qP+9pKT/uZ+f/7mhof+PiYn/PT09/0BAQP8/Pz//ODg4/3x7fP9NTE3/UE9Q/2xsbKwAAABZDxQMYyg3 + ImhRaUR4ZoNWk2yHW8lvi17oco1g+3SQY/95kWf/nZGH/6qQkv+nj5D/pY6P/6SNjf+iiov/yriu/8zA + u//Jvb3/zcDA/7usrPuPenvEX0VGUisSEgoAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSiYkz5MjIt//Ozrz/z8+6/8/Puf/Q + 0Lf/0NC1/9HRs//S0rH/0tKu/9PTrP/U1Kr/1NSm/9XVo//W1qD/19ec/9jYmf/Y2JX/2dmR/9rajf/b + 24n/3NyE/93dgP/e3nz/3t53/9/fc//h4W7/4uJp/+PjZf/k5GD/5eVc/+fnWP/o6FT/6OhR/+npT//p + 6Uz/6elL/+npSv/p6Un/6elJ/+joSf/n50n/5uZK/uXlTfvg4FD02NhW48fHX8qxsXKznZ2Pn4yMr52L + i8+aiYnropGR+bKhof66qKj/vKio/7ikpP+umJj/q5WV/66Xl/+xmJj/tZ6e/46Jif89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9KSkr/XGVY1TpNMLdNZEHZWnRM7mWBVvtyjWH/d5Jm/3iTZv94lGf/d5Nm/4eT + dP+plJL/q5KT/6mQkv+oj5D/po+P/6OMjf/LuK//zMC7/8e7u//NwMD/0sXG/87AwP+plpfxc1xcnEAp + KS4AAAADAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJKJiTPkycm3/8/Puv/Pz7j/0NC2/9DQtP/R0bL/0tKw/9PTrf/T06v/1NSo/9TUpf/V + 1aL/1tae/9fXm//X15f/2NiT/9nZj//a2ov/29uG/9zcgv/d3X7/3d15/97edf/f33D/4OBs/+LiZ//j + 42L/5ORe/+bmWf/n51X/6OhQ/+rqTP/r60n/7OxG/+3tRP/t7UP/7e1B/+3tQf7t7UH96upB9+PjROjU + 1ErKuLharp2dcpWHh5WQg4O7kIWF3ZyQkPOnm5v9rJ+f/5mMjP+Zior/qJiY/6OTk/+ikJD/o5CQ/6aS + kv+plJT/rJaW/66YmP+znZ3/jomJ/z09Pf9AQED/Pz8//zg4OP98e3z/TU1O/0NEQv9RYUn/S2BA/1Rr + SP9dd0//Z4NY/3WQZP95k2j/eZRn/3iUZ/95lGj/mpWF/62Vlv+slJT/q5OT/6qRk/+pkJH/po6P/8y5 + sf/MwLv/u66v/7+xsf/OwMH/1sjJ/9nLzP/FtLT+kHp61FY/QGcZCwsUAAAAAgAAAAIAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkomJM+TJybX/0NC4/9DQtf/Q + 0LP/0dGx/9LSr//S0qz/09Op/9TUpv/U1KP/1dWg/9bWnP/X15n/19eV/9jYkf/Z2Y3/2tqJ/9vbhP/c + 3ID/3Nx7/93dd//e3nL/399u/+Dgaf/i4mT/4+Ng/+TkW//l5Vf/5+dS/+npTv/q6kr/7OxG/+7uQv/w + 8D//8fE9/vHxO/rt7Tvu4eE+z8TER6yiolqNhIR7gXp6o4J7e8uLhITqmpOT+aCYmP6jm5v/m5KS/5WK + iv+Shob/i39//4Z4eP+QgYH/loeH/5mJif+fjY3/pJGR/6eTk/+plZX/rJaW/7GcnP+OiYn/PT09/0BA + QP8/Pz//ODg4/3x7fP9OTU7/QUJB/0xcRf9HWz3/UGVE/1pyTP9mgVf/dZBk/3mUaP96lGj/eZRn/4OV + cP+ql5L/r5eX/62Wlv+tlZX/rJSU/6uSk/+oj5H/zbqy/8vAu/+4q6z/sqSk/7ytrv/Lvb7/2MrL/9/R + 0f/by8v/sJ2d9HBaWqMrHBw6AAAAEQAAAAsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACSiYkz5MnJtP/Q0LX/0NCy/9HRsP/S0q3/09Or/9PTqP/U1KX/1dWi/9XVn//W + 1pv/19eX/9fXk//Y2I//2dmL/9rah//b24L/3Nx+/9zcef/d3XX/3t5w/9/fa//g4Gf/4uJi/+PjXf/k + 5Fj/5uZU/+fnUP/p6Uz/6+tI/+3tRP/v70D97+889urqO9/W1j62sLBMkIyMZHl2d4x3dXW3fXp624+M + jPSbmJj9p6Ki/6Odnf+WkJD/i4WF/4Z+fv+GfX3/iH9//4yCgv+PhIT/jICA/4l8fP+PgYH/l4iI/52N + jf+gj4//oY+P/6OQkP+olJT/r5uc/42IiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9BQkH/TFxF/0da + PP9OY0P/WHBL/2V/Vv91j2T/epRo/3qVaf96lWj/lZiB/7Kamf+wmJj/r5iY/66Xl/+tlpb/rJSU/6qS + kv/Ou7L/y8C7/7isrP+yo6P/tqeo/7qtrf/Gubn/18nJ/+LU1P/n2Nj/0L6+/piEhNFLOTpnAAAAIwAA + ABAAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKJiTPkysqz/9HRsv/R + 0a//0tKs/9PTqv/T06f/1NSk/9TUoP/V1Z3/1taZ/9fXlf/X15H/2NiN/9nZif/a2oT/2tqA/9vbe//c + 3Hf/3d1y/97ebf/f32n/4OBk/+LiX//j41v/5ORW/+bmUv/n507/6elJ/uvrRfzq6kLv4OBBzcLCSaSd + nVmAfHx6d3V1pHZ1dcuDg4Pqj4+P+pmXl/6dmpr/k4+P/46Kiv+KhYX/h4OD/4iEhP+RjIz/lY+P/5WO + jv+RiYn/jYSE/42Dg/+Rhob/k4iI/5aKiv+Zi4v/l4iI/5mJif+ci4v/no2N/6SSkv+tm5v/jYiI/z09 + Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0FCQP9MXEX/R1o8/01iQv9Xb0r/ZX9W/3WQZP97lWn/e5Zp/4GX + bv+pm5L/tJuc/7Kamv+xmZn/sJiY/6+Xl/+tlpb/q5OU/8+8s//MwLv/uq6u/7KkpP+2p6j/uays/7uw + sP/Ctrb/0sXF/+PU1P/s3d3/6NjY/8Ctret4ZWWLFA0NMgAAABYAAAAKAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAkomJM+PKyrH/0tKu/9LSq//T06j/09Ol/9TUov/U1J7/1dWb/9bWl//X + 15P/19eP/9jYi//Z2Yf/2tqC/9rafv/b23n/3Nx1/93dcP/e3mv/399m/+DgYf/i4l3/4+NY/+TkVP/m + 5k/+5+dL+OPjSOPR0Uu+sbFWl46Ob4F8fJZ8eXm8gYCA4I+OjvWcmZn+raem/7isrP/DsbH/ybKy/86z + sv/OsbH/zrGx/8qurv+7paX/qZmZ/5iNjf+MhYT/kIqK/5qTk/+dlpb/l4+P/5GHh/+Rh4f/lYmJ/5WJ + if+Thob/loiI/5mKiv+cjIz/o5GR/6uamv+NiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QUJA/0xc + Rf9HWj3/TmJC/1dvSv9lf1b/dpBl/3uWaf97l2n/kZl8/7aenf+2nZ3/tJyc/7Obm/+xmZn/sJiY/6+X + l/+tlZb/0L20/8zAu//Gurr/wbS0/7qsrf+5rKz/u7Cw/7+zs//Dt7f/zcHB/97Q0P/t3t7/8+Pj/+HP + z/eql5WuPzQzQwAAAB4AAAAPAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSiYkz48rKr//S + 0qr/0tKn/9PTpP/U1KH/1NSd/9XVmf/W1pX/1taR/9fXjf/Y2In/2dmF/9ragP/a2nv/29t3/9zccv/d + 3W7/3t5p/9/fZP/g4F//4uJb/+PjVv3i4lLz2tpQ1cLCV7ChoWiRh4eIhoCAr4SAgNOQjo7vlJKS/JyZ + mf+rpaX/xbi4/+DQ0P/v3d3/99jY//7b2///2tr//9nZ///Y2P/+1tb/+NPT/+/Ozv/lycn/1r+//8Sy + sv+soaD/mJGQ/5CJif+dlZX/oZmZ/5eOjv+TiYn/lImJ/5KGhv+ViIj/mYuL/52Ojv+jk5P/qZmZ/42I + iP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9BQkD/TFxF/0daPf9OY0P/WHBL/2WAV/92kGX/fJZq/3+X + bf+mnY//uqCg/7mfn/+3np7/tZ2d/7Obm/+ympr/sZmZ/6+Xl//QvrT/zMC7/8m9vf/NwMD/zcDA/8a4 + uf++srL/v7Oz/8O3t//Gu7v/y8DA/9jMzP/r3Nz/+Ojo//Lf1v+choCbAAAANgAAACUAAAAUAAAACQAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKJiTPjysqt/9PTpv/T06L/1NSf/9TUm//V1Zf/1taU/9bWj//X + 14v/2NiH/9nZgv/Z2X7/2tp5/9vbdf/c3HD/3d1r/97eZv/g4GH+4OBd+t3dWenPz1vItLRnpJWVf5OJ + iaKMhYXGkYyM6JeTk/iYlZX+lpSU/42Kiv+nnp7/zry8/+7Y2P/75+f//vHx//7y8v/93t7//dra//3Z + 2f/+2Nj//tfX//zV1f/00ND/6szM/+HIyP/Zw8P/1MPD/9bLy//Cubn/o52c/4+IiP+Wj47/pJyc/52U + lP+Uior/lImJ/5iMjP+ckJD/n5KS/6KUlP+nmJn/jIiI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0FC + QP9MXEX/SFs9/05jQ/9YcEv/ZoBX/3eRZv98lmr/i5p3/7ehnv+7oaL/uqCg/7mfn/+4np7/tp2d/7Sc + nP+zm5v/sJiY/9G+tf/MwLv/yL29/83AwP/RxMX/1cfH/9LFxf/Kvb3/xbm5/8a7u//Kv7//zcTE/9TK + yv/n29v/9ePY/52GgaoAAABKAAAAPgAAACsAAAAaAAAADQAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk4mJNOLK + yqv/1NSh/9TUnf/U1Jr/1dWW/9bWkv/W1o3/19eJ/9jYhf/Y2ID/2dl7/9rad//b23L/3Nxt/93daf7d + 3WT11tZi3sPDab2oqHmjlJSXlouLupWNjdyclpbzm5WV/ZiUlP+Kh4f/f3x8/3l3d/+Vjo7/zr6+//Lc + 3P/84+P//OPj//zp6f/98PD//fLy//3e3v/82tr//dnZ//7Y2P/+19f/+tTU//HQ0P/ny8v/3cbG/9XC + wv/Wycn/0srK/8C5uf+8t7f/uK+v/56UlP+Ti4v/pJyc/6GYmP+XjY3/mI6O/5uQkP+ekpL/oJOT/6aY + mP+MiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/01cRv9IWz3/T2RE/1lxTP9ngVj/eJJm/36X + a/+hn4r/vqSk/72jo/+7oqL/uqGh/7mfn/+4np7/t56e/7ScnP+ympr/0r+2/8zAu//Ivb3/zcDA/9HE + xP/VyMj/2cvM/9zOzv/Yysr/zsLC/8vAwP/NxMT/0MfH/9zS0v/04df/m4WAqwAAAFIAAABOAAAAQQAA + ADEAAAAfAAAAEQAAAAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTiYk04svLqP/U1Jz/1NSY/9XVlP/W1pD/1taL/9fXh//Y + 2IP/2Nh+/9nZef/b23T/3d1v/+DgaffX12nXvLx2sp6ekJqKirCPg4PRmI+P7KGZmfqfmJj+lY+P/4aA + gP97d3f/c3Bw/3Fubv+BfX3/ua+v/+3b2//75eX/+uPj//ri4v/74+P//Onp//3w8P/98/P//d/f//3a + 2v/92dn//tjY//7X1//41NT/7c/P/+PKyv/ZxcX/08TE/9fOzv/HwcH/u7a2/764uP/Hvb3/zL6+/6+i + of+UjIz/pZ6e/6Kamv+Xjo7/mpCQ/5ySkv+fk5P/pJiY/4yIiP89PT3/QEBA/z8/P/84ODj/fHt8/05N + Tv9AQkD/TVxG/0lcPf9QZET/WnFM/2iCWf94k2f/hppz/7aknf/Apqb/vqSk/72jo/+8oqL/uqGh/7qg + oP+5n5//t56e/7SbnP/TwLf/zMC7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//j1dX/3c/P/9PJ + yf/Rx8f/3NLS//Th1/+chYCrAAAAUgAAAFIAAABMAAAAQwAAADUAAAAkAAAAFQAAAAoAAAAEAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOJ + iTThy8um/9XVlv/V1ZL/1taO/9bWif/X14X/2NiB/9nZfP/b23b+29ty8M/Pdda5uYK1oKCfo5OTv5qN + jeKckZH2o5qa/pmQkP+JgYH/hX5+/3t1df93cnL/dXFx/3Nvb/9yb2//lI+P/9fLy//35ub/+ebm//nk + 5P/54+P/+uLi//vj4//86en//fDw//3z8//94OD//dra//3Z2f/+2dn//dfX//XT0//qzs7/38nJ/9bE + xP/Uycn/0cvL/725uf+6t7f/wru7/8u/v//UxMT/2cbG/7moqP+YkI//p6Cg/6CYmP+ZkJD/m5KS/56T + k/+jmJj/jIiI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9NXEb/SVw+/1BlRP9ack3/aYNZ/3mU + Z/+an4T/wain/8Gnp//Apqb/v6Wl/72jo/+9o6P/u6Ki/7qgoP+5n5//t52e/9XBuP/MwLv/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/6dvb/+DU1P/g1dX/8+HX/52HgakAAABPAAAAUAAA + AE4AAABJAAAAQgAAADYAAAAoAAAAGQAAAA0AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk4qKNOHLy6P/1dWQ/9XVjP/W1of/19eD/9jYfv/Z + 2Xr61dV4zbGxlbGcnLajkpLVo5WV7paKivudkpL/pZub/5qRkf+NhYX/g3t7/3x1df95c3P/d3Jy/3Vx + cf9xbm7/c3Bw/6agoP/p3Nz/+erq//jo6P/45+f/+eXl//nk5P/64+P/++Pj//zp6f/98PD//fPz//3h + 4f/929v//dra//7Z2f/81tb/8tLS/+fMzP/cx8f/1MXF/9bOzv/GwsL/ube3/765uf/Hvr7/0MPD/9jH + x//gy8v/6M/J/8GupP+blJP/qaOj/5yVlf+akpL/nZSU/6KYmf+MiIj/PT09/0BAQP8/Pz//ODg4/3x7 + fP9OTU7/QEJA/01dRv9JXD//UWVF/1tzTv9pg1r/fpZs/7Klmf/Fqqv/w6mp/8KoqP/Apqb/wKam/76k + pP+9o6P/u6Ki/7qhof+4np//1cG4/8zAu//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uLi//Pk5P/149j/noiCpwAAAEwAAABOAAAATAAAAEkAAABGAAAAQAAAADcAAAArAAAAHQAA + ABEAAAAIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACUioo04MvLoP/W1or/1taF/9fXgf/X13z/2Nh4/9racu/NzXeZiIjXkYOD/6mcnP+glJT/hnt7/3xy + cv+AeHj/fnV1/3pzc/96dHT/eHNz/3Zxcf90cHD/cG1t/3Rxcf+zra3/8Obm//js7P/36ur/9+np//jo + 6P/45ub/+eXl//rj4//75OT//Onp//3v7//98/P//eLi//3b2//92tr//tnZ//rW1v/v0dH/48vL/9jF + xf/Vysr/0s3N/726uv+7uLj/xL29/83Cwv/Wxsb/3srK/+fPy//z18P/9te3/7Wlmf+fmpr/p6Gh/5uT + k/+clJT/oZiZ/4yIiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/TV1H/0pdP/9RZkb/W3NO/2mD + Wf+OmXr/w6uo/8esrP/Fq6v/xKmp/8KoqP/Bp6f/wKam/76kpP+9o6P/vKKi/7qgoP/Wwrn/zMC7/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fo//bj2P+giYSmAAAASQAA + AEoAAABIAAAARgAAAEQAAABBAAAAPAAAADYAAAAsAAAAIAAAABQAAAAKAAAABAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSKijTgy8ud/9fXg//X13//19d6/9jYdf/Z + 2XH/2tps8tDQbpOCgtB/cnL/iX19/4d9ff+DeXn/dm1t/29nZ/9waWn/dG5u/3dycv92cXH/c3Bw/29s + bP9yb2//trGx//Pr6//37u7/9+zs//fr6//36en/+Ojo//jn5//55eX/+uTk//rk5P/86en//fDw//3z + 8//94+P//dvb//7a2v/+2dn/+NXV/+vPz//fycn/1cbG/9fPz//HxMT/uri4/8G8vP/KwcH/08bG/9zK + yv/lz8z/8dbE//rcuP//4LH/69Cu/6OZlf+oo6P/oZyc/5uUlP+hmZn/i4iI/z09Pf9AQED/Pz8//zg4 + OP98e3z/Tk1O/0BCQP9NXUf/Sl4//1JmRv9cdE7/bIRb/6Wgj//Jra7/ya2t/8isrP/Gq6v/xKqq/8Op + qf/Bp6f/wKam/7+lpf+9o6P/u6Gi/9bDuv/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9uPY/6KLhaQAAABFAAAARwAAAEUAAABDAAAAQQAAAD4AAAA8AAAAOAAA + ADMAAAArAAAAIQAAABYAAAAMAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAlIqKNN/Ly5n/19d8/9fXeP/Y2HP/2dlv/9nZav/b22Twz89njX5+zXlubv+Eenr/g3p6/4B4 + eP9+dnb/eXJy/3dxcf93cnL/dXFx/3Nvb/9ubGz/cG5u/7Sysv/y7Oz/9vDw//bu7v/37e3/9+zs//jq + 6v/46en/+Ojo//nm5v/65eX/+uTk//zp6f/97+///fT0//3k5P/929v//tvb//3Z2f/01NT/587O/9vI + yP/Wysr/087O/768vP++u7v/yMDA/9HFxf/aycr/48/M//DWxv/63Lr//t+x///gr///4bL/z7ql/6Gc + m/+qpaX/nJaW/6CZmv+LiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/01dR/9LXkD/UmdG/1x0 + T/91hmT/uKWf/8uvsP/Lr6//ya2t/8mtrf/HrKz/xaqq/8Opqf/CqKj/wKam/7+lpf+9oqP/18O6/8zA + u//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//249j/pIyHogAA + AEEAAABDAAAAQQAAAEAAAAA+AAAAOwAAADkAAAA2AAAAMwAAAC8AAAApAAAAIAAAABcAAAAOAAAABwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUioo03svLlv/Y2HX/2Nhx/9nZbP/Z + 2Wf/2tpj/9zcXe/Pz2GHenrMdGpq/4B3d/9/d3f/fXV1/3p0dP94c3P/dnFx/3RwcP9yb2//b2xs/2tp + af+sq6v/8e/v//Xy8v/18fH/9u/v//bu7v/37e3/9+vr//jq6v/56en/+efn//nl5f/65eX//Onp//3v + 7//99PT//eXl//3c3P/+29v//NjY//DS0v/jzMz/2MjI/9fPz//IxcX/vLq6/8W/v//PxMT/2MnJ/+LO + zP/u1sj/+d29//7gsv//4K///+Cw///hs//027j/raOd/6ilpf+gnJz/n5qa/4uIiP89PT3/QEBA/z8/ + P/84ODj/fHt8/05NTv9AQkD/Tl1H/0teQP9TaEf/XXVP/4SIcv/Cp6f/zbGx/8ywsP/Lr6//yq6u/8mt + rf/HrKz/xqur/8Opqf/CqKj/wKam/76kpP/YxLv/zMC7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//bj2P+mjoigAAAAPQAAAD8AAAA+AAAAPAAAADoAAAA4AAAANgAA + ADQAAAAxAAAALgAAACsAAAAmAAAAIAAAABcAAAAPAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJWKijXey8uS/9jYbv/Y2Gr/2dll/9raYP/b21z/3d1X7c/PW4J2dspvZ2f/fHR0/3t0 + dP95c3P/d3Fx/3VwcP9zb2//cm5u/29tbf9oZmb/m5qa/+rp6f/09PT/9PPz//Xy8v/18PD/9u/v//fu + 7v/37Oz/+Ovr//jp6f/56Oj/+ebm//rm5v/86en//e/v//309P/+5ub//dzc//7b2//619f/7NHR/97K + yv/Xy8v/1M/P/7+9vf/Bvb3/zMPD/9bIyP/gzsz/7dXJ//jdvv/94bT//+Gw///hsP//4rT//+bA///q + yv/Pvqz/pKCg/6ekpP+fm5v/i4iI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9OXUf/S15A/1No + R/9gdVP/k4h//8Sqq//Ps7T/zrKy/82xsf/MsLD/yq6u/8mtrf/IrKz/xqur/8Spqf/CqKj/wKam/9nF + vP/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9uPY/6eQ + ip4AAAA6AAAAPAAAADoAAAA5AAAANwAAADUAAAAzAAAAMAAAAC4AAAArAAAAKQAAACgAAAAlAAAAHgAA + ABYAAAAPAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYuLNd3Ly4//2dln/9nZY//a + 2l7/29ta/9zcVf/f31Drzs5UfXJyyGtjY/94cXH/eHJy/3Zxcf90cHD/cm9v/3Fubv9wbW3/aGZm/4aF + hf/b29v/8O/v//Hx8f/z8/P/9PPz//Xx8f/28PD/9u/v//ft7f/37Oz/+Orq//np6f/55+f/+ubm//zq + 6v/98PD//vT0//7n5//+3Nz//tvb//bW1v/oz8//2snJ/9jQ0P/Kx8f/v7y8/8nCwv/Ux8f/383M/+zV + yv/43L///eG0//7hsf//4bH//+O2///oxP//7M3//+rG/+3Wt/+oop7/qaen/6Genv+LiIj/PT09/0BA + QP8/Pz//ODg4/3x7fP9OTU7/QEJA/05eR/9LX0D/U2lH/2p0W/+biYf/xqys/9C1tv/QtLX/z7Oz/82x + sf/MsLD/y6+v/8mtrf/IrKz/xqur/8Spqf/CqKj/2sa9/8zAu//IvL3/zcDA/9HExP/VyMj/2cvM/97P + z//i09P/5tfX/+rb2//u39//8uPj//fn5//249j/qZGMnAAAADYAAAA4AAAANwAAADUAAAAzAAAAMQAA + AC8AAAAtAAAAKwAAACgAAAAmAAAAKAAAACcAAAAgAAAAGgAAABQAAAAPAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACVi4s13MvLjP/a2mD/2tpd/9vbWP/c3FP/3d1P/+DgSunOzk53bW3GZ2Bg/3Vv + b/91cHD/c29v/3Jubv9xbm7/cG5u/2ppaf9ycXH/x8bG/+rq6v/r6+v/7u7u//Ly8v/09PT/9fPz//Xx + 8f/28PD/9u7u//ft7f/46+v/+erq//no6P/65+f//Orq//3v7//+9PT//enp//7d3f/92tr/8tTU/+LN + zf/ZzMz/1dDQ/8K/v//GwMD/0sbH/93MzP/q1Mv/99zB//3gtv/+4rH//+Ky///luv//6sj//+zM//7o + w///5cL/+uHJ/7mvqf+pp6j/pKGi/4uIiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/Tl5H/0tf + QP9WaUn/d3Rn/6CKiv/Irq7/07i4/9K3t//Rtbb/z7O0/86ysv/MsLD/y6+v/8mtrf/IrKz/x6ys/8Sp + qv/bx77/y7+7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Xj + 2P+sk42aAAAAMgAAADUAAAAzAAAAMgAAADAAAAAuAAAALAAAACoAAAAoAAAAJgAAACMAAAAnAAAAKQAA + ACEBAAAaAAAAFgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWLizXby8uI/9vbWf/b + 21b/3NxR/93dTf/e3kj/4uJD583NSXJpacRiXV3/cm1t/3Nvb/9xbm7/cW5u/3Bubv9tbGz/ZmVl/6en + p//i4uL/5eXl/+jo6P/r6+v/7+/v//Ly8v/09PT/9fPz//bx8f/28PD/9+7u//fs7P/46+v/+ejo//rn + 5//76ur//e/v//719f/96ur//t3d//va2v/t09P/3szM/9nR0f/Lycn/w7+//87Fxf/by8v/6dPM//bc + w//94Lf//uKx///is///5r7//+vL//7ryv/+58P//uXH//3l1P/+5+D/yb27/6WkpP+pp6f/i4iI/z09 + Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9OXkf/TGBB/11qUP+CdHH/oYuL/8qwsP/Wubn/1Lm5/9O3 + uP/Rtrb/0LO1/86ysv/MsLD/y6+v/8qurv/Jra3/xqur/9zIvv/Lv7v/yL29/83AwP/RxMT/1cjI/9nL + zP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9ePY/66Vj5gAAAAuAAAAMQAAAC8AAAAuAAAALAAA + ACsAAAApAAAAJwAAACUAAAAiAAAAIAAAACUAAAAoAAAAIgAAABoAAAAUAAAAEgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlouLNdrLy4X/3NxT/9zcT//d3Uv/399G/+DgQ//k5D7kzc1EbWZmw19b + W/9wbGz/cW5u/3Bubv9wb2//cG9v/2ZlZf+DgoL/1dXV/+Dg4P/i4uL/5eXl/+jo6P/r6+v/7+/v//Ly + 8v/19PT/9vPz//bx8f/37+//9+3t//js7P/56ur/+ujo//vr6//97+///vX1//7q6v/+3d3/+dnZ/+jQ + 0P/bzc3/1dHR/8TCwv/Lw8P/2MrK/+fTzP/13MX//eG5//7isv//47X//+jC///szf/+6sj//ubF//7l + zv/95tv//efk//7p6f/bzc3/pqWl/6yqq/+LiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/05e + SP9NYEL/aWtb/4d1dv+ijIz/zLGx/9e7u//Xurr/1bm5/9O4uP/Rtrb/0LS1/86ysv/MsLD/y6+v/8qu + rv/IrKz/3ci//8vAu//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn + 5//149j/sJeRlwAAACoAAAAtAAAALAAAACoAAAApAAAAJwAAACUAAAAkAAAAIgAAACAAAAAdAAAAIQAA + ACUAAAAgAAIBGQAAABIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWi4s12crKgf/d + 3Uz/3d1J/9/fRf/g4EH/4uI9/+fnOeLNzUBqZGTBXVlZ/29sbP9xbm7/cG5u/3Bvb/9sbGz/ampq/7a2 + tv/b29v/3Nzc/9/f3//i4uL/5eXl/+jo6P/r6+v/7+/v//Pz8//19PT/9vLy//fx8f/37+//+O3t//nr + 6//66en//Ovr//3v7//88fH/+ufn//rd3f/z2Nj/4s/P/9nQ0P/Mysr/x8LC/9XJyf/l0cz/9NrG//3g + u//+4rT//+S4///qx//+7Mz//ujI//7lyv/95tb//ebh//3n5v/86Oj//enq/+vb2/+pqKf/rq2t/4yJ + if89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/T15I/1JhRv92bGb/iXd3/6SOjv/Ns7P/2Ly8/9i7 + u//Xurr/1rm5/9O4uP/Rtrb/0LS1/86ysv/NsbH/zLCw/8qtrv/eycD/y7+7/8i9vf/NwMD/0cTE/9XI + yP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Xj2P+ymZOVAAAAJgAAACkAAAAoAAAAJwAA + ACUAAAAkAAAAIgAAACAAAAAeAAAAHAAAABkAAAAbAAAAHAABABcEBgMRAAAADQAAAAsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaLizXYysp+/9/fRv/f30P/4eFA/+PjPP/l5Tn/6uo14M/PPWhj + Y8BcWVn/bmxs/3Bvb/9wb2//cHBw/2RkZP+MjIz/0tLS/9fX1//Z2dn/3Nzc/97e3v/h4eH/5OTk/+jo + 6P/s7Oz/8PDw//Pz8//19PT/9vLy//fw8P/47u7/+ezs//np6f/y4+P/5NnZ/9vU1P/Z1NT/29fX/9/a + 2v/d19f/19TU/8nFxf/Sx8f/4tHM//Pax//84Lz//uO1///mvf/+68r//uvM//7nyv/95tH//ebd//3n + 5f/86Oj//enp//zp6f/96ur/8uLi/7CtrP+tra3/jYqK/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BC + QP9PX0j/XGJP/31tbf+LeHj/pY+P/8+0tP/avr7/2r29/9m8vP/Xurr/1rm5/9O4uP/Rtrb/0bS1/8+z + s//NsbH/y6+v/97KwP/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj + 4//35+f/9ePY/7SblZMAAAAiAAAAJgAAACQAAAAjAAAAIQAAAB8AAAAdAAAAGwAAABkAAAAWAAAAEwAA + ABMAAAARAAAADQAAAAkAAAAHAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdfK + ynv/4eFA/+HhPv/j4zv/5eU4/+joNf/t7TPf0NA7ZmNjwFtZWf9tbGz/cHBw/3Fxcf9sbGz/ampq/7a2 + tv/T09P/09PT/9bW1v/Y2Nj/29vb/93d3f/g4OD/5OTk/+fn5//r6+v/8PDw//T09P/29PT/9/Ly//jw + 8P/06ur/29TU/8PBwf/AwMD/yMnJ/9DQ0P/U1dX/19fX/9na2v/d3d3/2tfX/+DRz//y2cj//OC+//7j + t///6MH//uzM//7pzP/+5s7//eXY//3n4v/86Of//ejp//zp6f/86ur//Orq//zr6//15ub/uLS0/6ur + q/+Nior/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/1FfSv9nY1r/f25v/4x6ev+nkZH/0ba2/92/ + v//cv7//2r29/9m8vP/Xurr/1rm5/9S4uP/St7f/0bS1/86ys//MsLD/38rB/8u/u//Ivb3/zcDA/9HE + xP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//149j/t52XkQAAAB4AAAAhAAAAHwAA + AB0AAAAbAAAAGAAAABYAAAATAAAAEAAAAA0AAAALAAAACQAAAAcAAAAEAAAAAwAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWjIw118vLef/j4zv/4+M6/+bmN//p6TX/7Owz//LyMd7T + 0zplY2PAWllZ/21tbf9xcXH/cnJy/2VlZf+IiIj/ycnJ/87Ozv/Q0ND/0tLS/9XV1f/X19f/2tra/93d + 3f/f39//4+Pj/+fn5//r6+v/8PDw//T09P/39PT/7+rq/9DNzf+9vLz/w8PD/9XV1f/g4OD/4+Pj/+Tk + 5P/j4+P/4ODg/9vb2//d3d3/5t3Z//rfxP//5Lv//+rG//7rzv/+6M///eXT//3m3v/95+b//Ojo//zp + 6f/86ur//Orq//zr6//77Oz//Ozs//fo6P+/urr/qqqq/42Kiv89PT3/QEBA/z8/P/84ODj/fHt8/05N + Tv9AQkD/WF9Q/3FkYf+Ab2//jXt7/6iSkv/TuLj/3sHB/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9S4 + uP/Rtrb/0LS1/86xsv/gy8L/y7+7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f + 3//y4+P/9+fn//Xi2P+7oZqNAAAAFgAAABgAAAAWAAAAEwAAABEAAAAOAAAACwAAAAkAAAAHAAAABQAA + AAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeM + jDbWy8t3/+bmN//n5zf/6uo1/+3tNP/w8DL/9vYw3dbWOWRjY79aWlr/bm5u/3Jycv9vb2//aWlp/6+v + r//Ly8v/y8vL/8zMzP/Ozs7/0dHR/9PT0//V1dX/2NjY/9vb2//e3t7/4uLi/+bm5v/r6+v/8PDw/+3t + 7f/Qz8//xcXF/9HR0f/h4eH/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/4+Pj/9rb2//c2tr/8+LO///q + yv/+69D//ufS//3m2v/95+T//Ojo//zp6f/86ur//Ovr//vr6//77Oz/++zs//zt7f/87u7/9+rq/7+7 + u/+rqqv/jYqK/z09Pf9AQED/Pz8//zg4OP98e3z/TU1O/0FCQf9kYlv/dWVl/4Jwcf+PfHz/qpSU/9W5 + uf/gw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9O4uP/Rtrb/0LO1/+HMw//Lv7v/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9eLX/8OnoYgAAAALAAAADQAA + AAsAAAAIAAAABgAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl4yMNtXLy3b/6uo1/+vrNf/t7TP/8fEy//T0Mf/6 + +i/d2dk4ZGNjv1taWv9wcHD/dXV1/2lpaf+IiIj/1dXV/9bW1v/R0dH/z8/P/87Ozv/Ozs7/z8/P/9HR + 0f/T09P/1tbW/9ra2v/d3d3/4eHh/+Xl5f/o6Oj/2tra/9PT0//a2tr/5OTk/+bm5v/m5ub/5+fn/+fn + 5//n5+f/5+fn/+fn5//n5+f/4uLi/9XW1v/j3Nf//OjW//7n1//95+H//Ojn//zp6f/86ur//Orq//vr + 6//77Oz//Ozs//zt7f/87u7/++7u//zv7//36+v/wb69/62srP+Nior/PT09/0BAQP8/Pz//ODg4/3x7 + fP9NTU3/Q0NE/25nZv92Zmb/hHJy/5J+fv+slZX/1ru7/+HExP/hw8P/38LC/97AwP/cv7//2r29/9m8 + vP/Xurr/1rm5/9O4uP/Rtbb/4c3E/8u/u//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uPj//fn5//14tf/y66ngwAAAAEAAAAEAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACXjIw21czMdP/u7jP/7u4z//HxMv/09DH/9/cw//39L93b2zhlZWW/XFxc/3Jycv91dXX/aGho/7Gx + sf/q6ur/6enp/+Xl5f/h4eH/3Nzc/9jY2P/U1NT/0tLS/9LS0v/T09P/1dXV/9jY2P/b29v/39/f/+Tk + 5P/i4uL/3t7e/+Tk5P/m5ub/5ubm/+Hh4f/V1dX/0NDQ/9zc3P/m5ub/6Ofn/+jo6P/n5+f/2NjY/9XU + 0//149///ejl//zp6f/86ur//Ovr//vr6//87Oz//O3t//vt7f/77u7/++/v//vv7//77+///PDw//jt + 7f/EwMD/sK+v/46Li/89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9ERET/cWlp/3hoaP+HdXX/lYGB/7CY + mP/ZvLz/48bG/+LFxf/hw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9O3uP/izsX/y7+7/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//PsquAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeMjDbVzc10//LyMf/y8jL/9fUx//j4MP/7 + +zD///8v3t7eOmdnZ8BeXl7/dHR0/3Jycv9tbW3/tbW1/87Ozv/W1tb/29vb/+Tk5P/m5ub/5ubm/+bm + 5v/i4uL/3t7e/9vb2//Y2Nj/19fX/9fX1//d3d3/6urq/+Tk5P/i4uL/5ubm/+bm5v/Y2Nj/tbW1/729 + vf+6urr/tLS0/9PT0//o5+f/6Ojo/+np6f/b29v/zs3N/+zg4P/86+v//Ovr//zs7P/77Oz/++3t//vu + 7v/77u7/++/v//vv7//78PD/+/Dw//vw8P/78fH/9u3t/8K/v/+zs7P/jouM/z09Pf9AQED/Pz8//zg4 + OP98e3z/TU1N/0RERP9yamr/fGtr/4t4eP+ZhIT/s5ub/9y+vv/mx8f/5MbG/+LFxf/hw8P/38LC/97A + wP/cv7//2r29/9m8vP/Xurr/1bm5/+POxf/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAl4yMNtXNzXP/9/cw//b2Mf/5+TD/+/sw//7+MP///zDf3988aWlpwWBgYP92dnb/bW1t/3x8 + fP+3t7f/u7u7/7y8vP+/v7//wsLC/8jIyP/Q0ND/19fX/9zc3P/j4+P/5eXl/+Tk5P/k5OT/4ODg/+fn + 5//u7u7/4uLi/+Xl5f/n5+f/1dXV/8XFxf+pqan/q6ur/7Gxsf+8vLz/wcHB/97e3v/p6ej/6enp/9/f + 3//Kysr/597e//zt7f/77e3/++7u//vv7//77+//+/Dw//rw8P/68PD/+vDw//vx8f/78fH/+/Ly//vy + 8v/07Oz/vby8/7W0tf+Oi4v/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/RERE/3Nra/9/bm7/jnt7/56J + if+4n5//3sDA/+jJyf/nyMj/5MbG/+LFxf/hw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/5M/G/8u/ + uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjIw21M7Ocv/6+i//+vox//z8MP/+ + /jH///8y////MuHh4T5sbGzBYmJi/3d3d/9qamr/jo6O/7m5uf+4uLj/ubm5/7q6uv+7u7v/vLy8/729 + vf++vr7/wcHB/8XFxf/Kysr/0dHR/9jY2P/e3t7/8fHx/+zs7P/j4+P/5+fn/+Xl5f/Hx8f/pqam/5qa + mv+YmJj/nJyc/7Gxsf/CwsL/2dnZ/+np6f/p6en/4eHh/83Nzf/m39//+/Dw//vw8P/68PD/+vDw//rx + 8f/68fH/+vHx//vy8v/78vL/+/Ly//vy8v/78/P/+/Pz//Dp6f+6urr/trW2/46Li/89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9ERET/dW1t/4Jxcf+Sf3//oo2N/7yjo//gwsL/6srK/+nJyf/nyMj/5MbG/+LF + xf/hw8P/38LC/97AwP/cv7//2r29/9i7u//lz8b/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJeMjDbUz89y//7+L//9/TH//v4x////Mv///zT///814uLiQG5ubsJkZGT/dnZ2/2pq + av+dnZ3/tra2/7W2tv+2trb/t7e3/7i4uP+4ubn/urq6/7q6uv+7u7v/vLy8/729vf++vr7/vr6+/9DQ + 0P/x8fH/6Ojo/+Tk5P/n5+f/3d3d/8DAwP+goKD/mZmZ/6Kiov+kpKT/q6ur/7i3t//V1dX/6urq/+rq + 6v/i4uL/0tLS/+vk5P/78vL/+vLy//ry8v/68vL/+vLy//rz8//68/P/+vPz//rz8//69PT/+vPz//r0 + 9P/79fX/6OPj/7m4uP+3trb/jouL/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0RERP92bm7/hnR0/5aC + gv+nkZH/waen/+PExP/rzMz/6svL/+nJyf/nyMj/5MbG/+LFxf/hw8P/38HB/93AwP/bvr7/2ry9/+XQ + x//Lv7r/yLy9/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl4uLNtTPz3L///8v//7+Mv// + /zP///81////Nv///zfj4+NCcXFxw2ZmZv90dHT/b29v/66srP+6t7f/ure3/7q4uP+8ubn/vLm5/726 + uv++u7v/v7y8/8C9vf/Bvb3/w76+/8S/v//FwL//2NbW/+3t7f/k5OT/5eXl/+jo6P/U1NT/r6+v/5CQ + kP+dnZ3/pKSl/6Wlpf+2trb/zs7O/+Hh4f/q6ur/6urq/+Hh4f/Y19f/8e3t//r09P/59PT/+fT0//n0 + 9P/69PT/+vT0//r09P/69PT/+vT0//r19f/69fX/+vX1//v29v/d2tr/t7e3/7e2tv+Oi4v/PT09/0BA + QP8/Pz//ODg4/3x7fP9NTU3/RENE/3hwcP+KeHj/m4eH/62Wlv/Fq6v/5cfH/+3Ozv/szMz/6svL/+nJ + yf/myMj/5MbG/+LFxf/gw8P/38HB/93AwP/bvr7/5tHI/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97P + z//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACXi4s21NDQcv///zD///80////Nv///zf///85////OuXl5UVzc3PEaGho/3Fx + cf99e3v/v7e3/8a+vv/Hvr7/yL+//8nAwP/LwcH/zMLC/87Dw//QxcT/0sbG/9THx//WyMn/2MrM/9rL + z//k3d7/6erq/+Pj4//n5+f/6Ojo/9XV1f+3t7f/i4uL/5iYmP+hoaH/pqam/8DAwP/MzMz/5ubm/+rq + 6v/q6ur/39/f/+Dg4P/29PT/+fb2//n29v/59vb/+fb2//r19f/69fX/+vb2//n29v/59vb/+vb2//r2 + 9v/69vb/+fX1/9LQ0P+3t7f/t7a2/46MjP89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9EQ0T/e3Fy/498 + fP+gi4v/spub/8qwsP/nycn/78/P/+7Ozv/szMz/6svL/+nJyf/myMj/48bG/+LExP/gw8P/38HB/9y/ + v//n0cj/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeLizbV0NBz////M/// + /zf///84////Ov///zv///885ubmR3V1dcVqamr/b29v/4yHh//OwMD/0sTE/9TFxf/Vxsb/18fH/9nJ + yf/bysr/3cvN/97M0P/gzdP/4c7X/+PO3P/kzuD/59Dj/+je4v/m5ub/4+Pj/+fn5//o6Oj/3t7e/76+ + vv+np6f/kpKS/6Ojo/+7u7v/w8PD/+Pj4//q6ur/6+vr/+jo6P/g4OD/6enq//X29v/39/f/+Pf3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//r39//69/f/+vf3//r39//18vL/x8bG/7e3t/+4t7f/j4yM/z09 + Pf9AQED/Pz8//zg4OP98e3z/TU1N/0RDRP98dHT/k4CA/6aPj/+5oaH/z7S0/+nLy//w0dH/79DQ/+7O + zv/szMz/6svL/+jJyf/lx8f/48bG/+HDw//fwsL/3sDA/+jSyf/Lv7r/yLy9/83AwP/RxMT/1cjI/9nL + zP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAl4uLNtXR0XT///81////Of///zv///88////Pv///z/n5+dKeHh4xWtr + a/9tbW3/nJOT/9zJyf/dysr/38vM/+DMz//hzdL/4s3W/+PN2v/kzt3/5M3h/+TN5f/kzen/483s/+PN + 7//mz+7/593k/+Pj4//i4uL/5ubm/+jo6P/m5ub/1tbW/8XFxf+8vLz/xcXF/8nJyf/i4uL/6enp/+vr + 6//q6ur/5eXl/+Pk5P/n6u7/6+7z//Hy9P/19fX/9/b2//f39//4+Pj/+Pj4//n4+P/5+Pj/+fj4//r4 + +P/6+Pj/+vn5/+vq6v++vr7/uLi4/7m4uP+PjIz/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/Q0NE/392 + dv+XhYX/q5WV/8Cmpv/Wurr/7M7O//LS0v/x0dH/78/P/+3Nzf/rzMz/6srK/+fJyf/kxsb/4sXF/+HD + w//fwcL/6NPJ/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn + 5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXi4s21tHRdv// + /zj///87////Pf///z////9A////Qejo6Ex6enrGbW1t/21tbf+onJ3/5c7V/+PM1//jzNv/48zf/+PM + 4//jy+b/4svq/+HL7f/gyfD/3sny/93J9P/eyvT/4Mzz/+bR8f/n3OT/4ODg/+Lh4v/l5eX/6enp/+np + 6f/n5+f/39/f/9TU1P/d3d3/5OTk/+vr6//r6+v/6urq/+jn5//n5+f/4OPo/9zj7f/i5+//6Ovx/+7v + 8v/y8/P/9PT0//b29v/39/f/9/f3//j4+P/5+Pj/+fn5//n5+f/6+fn/3dzc/7u7u/+4ubn/urq6/4+M + jP89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9DQ0T/gHd4/52Jif+xmpr/x62s/9y+vv/w0ND/9NTU//LT + 0//w0dH/78/P/+3Nzf/rzMz/6cnJ/+fIyP/kxsb/4sTE/+DCw//p08r/y7+6/8i9vf/NwMD/0cTE/9XI + yP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeLizbW0tJ3////Ov///z7///9A////Qf///0P///9E6enpTnx8 + fMdubm7/cHBw/7Wmqv/lzOT/4cnn/+DJ6v/eyO3/3cfw/9vG8//ZxPb/18T3/9bE+P/Yxvf/3Mn2/+HO + 8//m0vD/7dju/+7f5f/d3dz/4ODg/+Pj4//o6Oj/6enp/+rq6v/r6+v/7Ozs/+vr6//r6+v/6+vr/+rq + 6v/o6Oj/6+vr/+Pl6v/V3ej/1d7r/9rh7f/g5e//5enw/+vt8f/v8PH/8vPz//T09P/19fX/9vb2//f3 + 9//39/f/+Pj4//X19f/My8v/urq6/7q6uv+8u7z/j4yN/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0ND + RP9ic4D/cIOW/5mZpP/DsbT/4sTD//TS0v/21dX/89TU//LS0v/w0dH/7s/P/+zMzP/qy8v/6MnJ/+XH + x//jxsb/4cPE/+nTyv/Lv7r/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj + 4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdbS + 0nj///89////QP///0L///9E////Rf///0bq6upRf39/yHBwcP9zcnL/uqmw/+DJ8P/Yw/T/1sL2/9TB + +P/SwPr/0cD7/9LB+v/WxPn/3Mn2/+LO8//o0/D/7tnu//Pe6//44+r/+Obn/+Dd3f/c3dz/4eHh/+Tk + 5P/o6Oj/6urq/+rq6v/q6ur/6+vr/+rq6v/p6en/6enp//Dw8P/o6+7/09rm/9DY5v/R2+n/1N3s/9jg + 7f/e5O7/4+fv/+jr7//t7vD/8fHx//Pz8//09PT/9fX1//X19f/39/f/6Ojo/8DAwP+7u7v/u7u7/729 + vf+PjY3/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/Q0NE/0xvhf81eaT/Rou4/2yky/+qvNP/5tHX//nX + 1v/21dX/89TU//HR0f/v0ND/7s7O/+zMzP/qysr/58nJ/+TGxv/ixcX/6tTL/8u/uv/Ivb3/zcDA/9HE + xP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWi4s119PTef///z////9D////Rf///0b///9I////Sevr + 61OBgYHIcnJy/3Rzc/+8qrL/2cT4/869/P/Nvf3/z779/9LB+//Xxfj/3cr1/+PP8v/p1O//79rs//Tf + 6v/55On/++fo//vp6f/46+n/6+Xj/9va2v/d3d3/4uLi/+Tk5P/m5ub/6Ojo/+np6f/o6Oj/5+fn/+vr + 6//09PT/7O7x/9HY4//K0+H/zdbl/8/Z6P/Q2+v/093s/9fg7f/d4+3/4ubu/+bp7v/r7e//8PDx//Ly + 8v/z8vL/9PT0//T08//V1dX/vLy8/7y8vP+8vLz/v76+/5CNjf89PT3/QEBA/z8/P/84ODj/fHt8/01N + Tf9DQ0T/THCG/zV6pf86irz/QZ3W/06r5/96u+n/xMzg//PW1//21dT/8tPT//HR0f/vz8//7c3N/+vM + zP/pycn/5sjI/+TGxv/q1cz/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f + 3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaL + izXX09N7////Qv///0X///9H////Sf///0r///9M7OzsVoODg8l0dHT/c3Ny/7Slq//YxPr/zr79/9PC + +v/Zxvf/38vz/+XQ8P/r1e7/8dvr//bg6f/65Oj//Ofo//zp6P/86un/9+zp/+vv5P/m7+P/5OPh/9zb + 2//d3d3/4uLi/+Tl5P/k5uX/5+fn/+np6f/t7e3/8vLy/+zt7v/R1t3/xs7b/8jS4P/L1eT/zdfn/87Z + 6v/P2uz/0t3t/9fg7f/c4+3/4ebu/+Xp7//q7O//7u/w//Hx8f/y8vL/6urq/8TExP+9vb3/vb29/76+ + vv/Av8D/kI2N/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0NDRP9LcIf/Nnum/z2MvP9En9f/Sazp/0qx + 8f9btvH/n8Tl/+jT2P/11NT/8tLS//DR0f/uzs7/7MzM/+rLy//oycn/5cfH/+vVzP/Lv7r/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdjU1Hz///9F////SP///0r///9L////Tf// + /07t7e1YhoaGynd3d/91dnX/rqGl/9/K9P/ax/b/4czy/+fR7//t1uz/8tzq//fh6P/75Of//Ofn//zo + 6P/86en//Orq//js6f/s7+T/3vLe/9P12v/Z897/4eni/9/g3//f39//4OHh/+Lk4//n5+f/6urq/+zs + 7P/y8vL/6ers/87S2f/Iz9n/yNHe/8nT4//L1ub/zNjp/83Z6//P2u3/0t3t/9fg7v/b4+7/4Obu/+To + 7//p6+//7e7w//Dw8P/X19f/vb29/76+vv++vr7/v7+//8LBwf+QjY3/PT09/0BAQP8/Pz//ODg4/3x7 + fP9NTU3/QkNE/0twh/84fKf/Po2+/0ag2P9Lrer/TbLx/0yz8/9PtPP/ib/o/+DR2f/01NP/8dHR/+/Q + 0P/tzs7/68zM/+nKyv/nyMj/7NbN/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACWioo12NTUff///0f///9K////TP///07///9Q////Ue3t7VuIiIjLenp6/3p6ev+jmZr/6NLp/+jT + 7//u2Ov/9N3p//ni5//75eb//ebm//3n5//86Oj//Onp//zq6v/47Or/7u/m/+Dx4P/T9Nr/yPfV/8j4 + 1f/P+Nr/2fXh/+Lw5v/n6+j/6erp/+vr6//t7e3/8PDw//T09P/x8vL/19nd/8zR2P/K0dz/ytPh/8rV + 5f/L1uj/zNjq/83Z7P/P2+3/093u/9fg7v/b4+//4Obv/+To7//p7PD/5ufo/8XFxf++vr7/v7+//8DA + wP/BwcH/w8LC/5CNjf89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9CQ0T/S3CI/zh9qP9Ajr//SKLa/02u + 6v9Ps/L/TrTz/0yz9P9Ns/P/hL7p/+HQ2P/z09L/8NHR/+/Pz//szMz/6svL/+nJyf/t1s3/y7+6/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaKijXY1NR+////Sv///03///9P////UP// + /1L///9T7u7uXYqKist8fHz/gICA/5SOjv/t1uD/9t7o//ni5v/85eb//ebm//3n5//86Oj//Onp//vq + 6v/86uv/+ezr/+/v5v/i8uH/1fTb/8n31f/D+NL/xfnU/8n52P/U+eD/4vnq/+318P/x8fH/7+/v//Dw + 8P/y8vL/9PT0//X19f/h4uP/0NTY/83S2v/M097/y9Xj/8vW5//L1+r/zNjs/83a7v/P2+//097u/9fg + 7//b4+//3+bv/+fq7v/T09T/vr6+/7+/v//AwMD/wcHB/8LCwv/Ew8T/kI6O/z09Pf9AQED/Pz8//zg4 + OP98e3z/TU1N/0JDRP9KcYn/On6p/0GPwP9Ko9v/Tq/r/1Cz8v9PtfT/TrT0/0yz8/9NsvL/j7/m/+nS + 1f/y0tL/79DQ/+3Ozv/rzMz/6snK/+3Xzf/Lv7r/yLy9/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAloqKNdnV1YD///9M////UP///1H///9T////Vf///1bv7+9gjIyMzH5+fv+Ghob/hYKC/+fT + 1P/95ub//ebm//3n5//85+f//Ojo//zp6f/76ur//Ovr//rs6//w7uf/4/Hh/9f02//K99X/wfnR/8D5 + 0f/E+dT/zvnb/9355v/p+O7/8fPx//Dw8P/v7+//7+/v//Hx8f/09PT/9vb2/+rq6v/W19r/0NTZ/83T + 3P/N1eH/zdbl/8zX6f/M2Oz/zdnu/83a7//Q3O//097v/9fg7//e5O//3+Di/8LCwv+/v7//wcHB/8LC + wv/CwsL/w8PD/8bFxf+Rjo7/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/QkNE/0lxif87f6n/Q5DA/0uk + 2/9PsOz/UbTy/1C19P9PtfT/TrT0/0uy8/9Ss/H/q8Xh//HT0//x0dH/78/P/+zMzP/qysv/7tfO/8u/ + uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWioo12dXVgf///0////9S////VP// + /1b///9X////WO/v72KOjo7NgICA/46Ojv9/fn7/0cHB///o6P/95+f//Ojo//zp6f/76ur/++rq//zr + 6//67Oz/8u7o/+Xx4v/Y9Nz/zPbW/8D40P+8+c7/v/rR/8n52P/X+eH/5Pnr/+/28v/y8/P/7+/v/+7u + 7v/v7+//8fHx//T09P/29vb/8fHx/9vc3P/U1tn/0NTa/8/V3v/P1+P/ztjn/83Z6//M2e3/zNrv/87b + 8P/Q3fD/1d/w/+Dk6v/Ly8v/v7+//8HBwf/CwsL/w8PD/8TExP/ExMT/x8bG/5GOjv89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9CQ0T/SXGJ/zuAqv9EkcH/TKXc/1Cw7P9StPL/UbX0/1C19P9PtPT/TbPz/0qy + 8/9ktu7/0c3Z//PS0f/v0ND/7c7O/+vMzP/u2M7/yr+6/8i8vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJaKijXZ1taC////Uv///1X///9X////WP///1r///9b8PDwZZGRkc6CgoL/k5OT/4CB + gf+zqan//Ofn//zp6f/86en/++rq//zq6v/86+z/++3s//Tu6f/n8eP/2vPd/8321//C+NH/ufrM/7n6 + zf/D+tT/0fnd/9755v/r+fD/9Pb0//Ly8v/v7+//7u7u/+7u7v/w8PD/8/Pz//b29v/19fX/4uLi/9jY + 2f/U1tr/0dXc/9HX4P/Q2OX/z9np/87a7P/N2u//zdrw/87c8v/Y4e7/09PV/8C/v//CwsL/wsLC/8PD + w//ExMT/xcXF/8bGxv/Ix8f/kY6O/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0JDRP9IcYr/PICq/0WS + wv9Npdz/UrHs/1O08v9StvT/UbX1/1C19P9OtPT/TLPz/0uy8v+RwOX/7tLT//DR0f/uzs7/7MzN/+/Y + z//Kvrr/wLOz/8S3t//PwsL/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAloqKNdrW1oT///9U////V/// + /1n///9b////Xf///17w8PBnk5OTz4SEhP+Xl5f/iouL/5SQkP/u3d3//Orq//vq6v/86+v//Ozs//vt + 7P/07ur/6PHk/9zz3v/P9tj/w/jS/7j6zP+1+8v/vfrQ/8v62f/Y+eL/5vnr//H49P/19fX/8vLy/+/v + 7//u7u7/7u7u//Dw8P/z8/P/9vb2//f39//p6en/29vb/9fY2v/U19v/09ff/9LZ4//R2ef/0Nrq/8/b + 7f/O2/D/0d7x/9PW2//BwcH/wsLC/8PDw//ExMT/xMTE/8XFxf/Gxsb/x8fH/8nIyf+Rjo7/PT09/0BA + QP8/Pz//ODg4/3x7fP9NTU3/QkNE/0hxiv89gav/RpPC/06m3f9Tsez/U7Xy/1O29P9StvX/UbX0/0+0 + 9P9Os/P/SrLz/1+27v/RzNn/89LR/+/Pz//tzc3/79jP/8q+uv+4q6z/s6Wl/7yurv/Iurr/1MbG/93O + zv/i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACWioo12tfXhf///1f///9a////XP///17///9f////YPHx8WqVlZXPhoaG/5iY + mP+VlZX/hIOD/83Cwv/97Oz//Ovr//zs7P/77e3/9e7q/+nw5f/d89//0fbZ/8X30/+6+c3/svvJ/7f7 + zf/F+tX/0/re/+D55//t+fH/9ff2//T09P/x8fH/7+/v/+3t7f/u7u7/8PDw//Ly8v/19fX/9/f3//Dw + 8P/e3t7/2trb/9fZ2//V2N3/1Nnh/9Pa5f/T2+n/0dzs/9Pd7v/U2N//w8PD/8HBwf/ExMT/xMTE/8XF + xf/Gxsb/xsbG/8fHx//IyMj/ysnK/5GOj/89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9CQ0X/SHGL/z2B + q/9HlMP/UKfd/1Oy7P9VtvP/VLb0/1O29f9StvX/ULX0/0609P9Ms/P/TLLy/6LD4v/y0tL/8NDQ/+7O + zv/w2dD/yr66/7isrP+yo6P/tqeo/7msrP++srL/yr29/9fJyf/j1NT/6tvb/+7f3//y4+P/9+fn//Ti + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWKijXb19eG////Wv// + /13///9e////YP///2L///9j8vLybJeXl9CHh4f/mZmZ/5ycnP+JiYn/oZ2d//Pk5P/87e3/++3t//fu + 6//r8eb/3vPg/9L12v/H99T/vPnO/7H7yf+y/Mn/v/vR/8362v/b+eP/6Pnt//P49f/29vb/9PT0//Hx + 8f/v7+//7e3t/+7u7v/v7+//8vLy//X19f/39/f/9PT0/+Pj4//c3Nz/29vb/9jZ3P/W2t//1dvj/9Tc + 5//V3en/1Nfd/8PDw//BwMD/xMTE/8TExP/FxcX/xsbG/8fHx//IyMj/ycnJ/8nJyf/My8v/kY+P/z09 + Pf9AQED/Pz8//zg4OP98e3z/TU1N/0FDRf9HcYv/PoKs/0iUw/9QqN3/VbLs/1W28v9VtvT/VLb1/1K2 + 9f9RtvT/T7T0/0608/9KsfP/ebvq/+fR1f/x0dH/78/P//DZ0P/Kvrr/uKys/7KkpP+2qKj/uays/7uv + r/+/s7P/xLi4/8zBwf/azc3/59nZ//Hi4v/45+j/9eLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlYqKNdvX14j///9c////X////2H///9j////ZP///2by8vJvq6ur0qur + q/+6urr/tbW1/5ycnP+IiIj/zsXF//zu7v/37uz/7PDm/+Dz4P/U9dv/yPfV/735z/+y+8n/rvzH/7n7 + zv/H+tf/1Pnf/+H56P/u+fH/9/j3//b29v/09PT/8fHx/+/v7//t7e3/7u7u/+/v7//y8vL/9fX1//f3 + 9//39/f/6enp/97e3v/d3d3/2tvc/9ja3v/X2+H/19zl/9PW2//FxcX/zc3N/9bW1v/X19f/z8/P/8bG + xv/Hx8f/yMjI/8nJyf/Kysr/ysrK/8zMzP+Sj4//PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/QUNF/0hy + i/9Ag6z/SZXE/1Go3v9Ws+z/Vrby/1a39P9Ut/X/U7b1/1K29f9QtfT/T7Tz/0yy8/9ete//1M3Z//PS + 0f/v0ND/8NrR/8q/uv+4rKz/sqSk/7aoqP+5rKz/u6+v/7+zs//Dt7f/xru7/8q/v//Qxsb/3NHR/+zf + 3//04df/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACViYk129fXiP// + /17///9h////Y////2T///9m////Z/n5+YHBwcHinJyc/6ampv+4uLj/vr6+/5GRkf+cmZn/59/d/+7x + 6P/h8+H/1fXb/8n31f+++dD/tPvJ/638xv+0/Mr/wfrT/8/63P/c+eX/6Pnt//T59f/4+Pj/9fX1//Pz + 8//x8fH/7+/v/+3t7f/t7e3/7+/v//Hx8f/09PT/9/f3//j4+P/v7+//4ODg/97e3v/d3d3/2tvd/9nb + 3//S1Nf/w8PD/9LS0v/V1dX/zMzM/87Ozv/b29v/0dHR/8jIyP/Jycn/ysrK/8rKyv/Ly8v/zczN/5GO + jv87Ozv/Pj4+/z4+Pv83Nzf/enp7/0xLTP9BQ0X/SHOL/0KErP9Ll8X/U6ne/1a07f9Xt/L/Vrf0/1W3 + 9f9UtvX/U7b1/1G29P9QtPT/TbPz/1Oz8f++yd3/9NPS//DQ0f/w2tH/yr66/7isrP+ypKT/tqio/7ms + rP+7r6//v7Oz/8O3t//Gu7v/yr+//83ExP/Qx8f/3NLT//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiMjDXh3t6c////d////3L///90////df///3b///929/f3q7Gx + seqVlZX/pKSk/6ioqP/FxcX/rq6u/5aVlv+8u7n/6fDm/9z24P/Q+Nr/x/rV/7z70P+1/cv/tv3N/8H8 + 1P/O+9z/2vrj/+X66//x+fP/+Pn5//j4+P/29vb/9PT0//Ly8v/x8fH/7+/v/+/v7//w8PD/8vLy//X1 + 9f/4+Pj/+fn5//X19f/l5eX/4uLi/+Hh4f/g4OD/1dbX/8XFxf/Jycn/3Nzc/8rKyv/IyMj/yMjI/9HR + 0f/g4OD/0NDQ/87Ozv/Ozs7/z8/P/9DQ0P/R0NH/m5mZ/09PT/9SUlL/U1NT/09PT/+ZmZn/d3Z3/0JE + Rf9Jc4v/RYeu/06Zx/9Vq9//WLXt/1i38v9XuPT/Vrf0/1W39f9TtvX/Urb0/1C19P9OtPP/T7Py/6/G + 4f/109L/8dHR//Ha0f/Kvrr/uKus/7Gjo/+2qKj/uays/7uvr/+/s7P/w7e3/8a7u//Kv7//zsTE/9HH + x//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYqKOd/d + 3dbx8fHb8PDw2PDw8Njw8PDZ8PDw2fHx8dng4ODpysrK+8XFxf/IyMj/yMjI/83Nzf/X19f/1tbW/9XV + 1f/l5eT/6fDq/+Lx5v/e8eT/3PLi/9vy4v/d8uP/4fHm/+Tx6P/o8ev/7PHt/+/x8P/x8fH/8PDw/+/v + 7//v7+//7u7u/+3t7f/t7e3/7e3t/+3t7f/t7e3/7+/v//Dw8P/w8PD/8PDw/+rq6v/o6Oj/5+fn/+Li + 4v/c3Nz/3Nzc/9nZ2f/MzMz/yMjI/8jIyP/Kysr/ysrK/9bW1v/f39//3d3d/93d3f/d3d3/3d3d/9zc + 3P/Y2Nj/0dHR/9HR0f/Pz8//1dXV/8/Pz/+gn5//cXN1/096k/9Ji7L/U57L/1mu4v9bt+7/Wbnz/1i4 + 9P9XuPT/Vrf1/1S39f9TtvX/UbX0/0+08/9Ms/P/pcXj//bV0//x0dH/8drR/8q+uv++sbH/tqmo/7eo + qf+5q6z/u6+v/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYjY045uTk1/n5+eT4+Pjk+Pj45Pj4+OT4+Pjk+Pj44/X1 + 9eXm5ub34ODg/+Pj4//k5OT/5OTk/+bm5v/n5+f/5OTk/+Hh4f/r6ur/8vfy/+n57v/m+ev/5/ns/+r4 + 7v/t+PD/7/jy//P49P/2+Pb/+Pj4//f39//39/f/9/f3//b29v/19fX/9fX1//T09P/09PT/9PT0//X1 + 9f/19fX/9vb2//f39//4+Pj/9PT0/+vr6//l5eX/5OTk/+bm5v/m5ub/5eXl/+Pj4//i4uL/5ubm/+bm + 5v/i4uL/4uLi/+Tk5P/k5OT/5+fn/+jo6P/m5ub/4+Pj/9vb2//R0dD/xMTE/6+urv+qqan/lZSU/31+ + f/9xgoz/SoSm/1CUvP9ZptT/XbTn/1658P9cuvP/Wbnz/1i49P9Wt/T/Vbf1/1S29f9StvT/ULX0/0uz + 8/+ixeT/99XU//LS0v/x29H/y7+6/8i8vP/Kvb3/x7q6/8O1tf+/srL/v7Oz/8O3t//Gu7v/yr+//87E + xP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId7 + eyG/vb18zs7Ogc3NzYHNzc2Bzc3Ngc3NzYHOzs6Ax8fHho+Pj9iCgoL/j4+P/5KSkv+SkpL/kZGR/5CQ + kP+RkZH/h4eH/3l4eP+WlZT/uc69/57ktf+b47H/qOK6/7bhw//D4Mv/0d/V/93f3f/f39//3d3d/9vb + 2//Z2dn/19fX/9XV1f/S0tL/0dHR/8/Pz//Pz8//0dHR/9XV1f/a2tr/3d3d/8fHx/+YmJj/hISE/4mJ + if+Pj4//j4+P/46Ojv+MjIz/ioqK/5eXl/+tra3/np6e/6Kiov+0tLT/x8fH/8bGxv+9vb3/v76+/7W0 + tP+np6b/m5ub/5KUlf+JjpL/fomQ/3SJlf9piJn/YYqi/1OMrf9PlLv/WqLL/2Cw3v9iuev/Ybvy/167 + 8/9buvT/WLjz/1e49P9Wt/T/VLf1/1O29P9RtfT/TbPz/6fG5P/31tX/8tPT//Lb0v/Lv7r/x7u7/8y/ + v//SxcX/1cfH/9TGx//Qw8P/zL+//8m+vv/Kv7//zcTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS4uAQkHBwcAAAAIAAAACAAAAAgAAAAIAAAACAAA + AAcdHR0TMDAwtDQ0NP9MTEz/TExM/0ZGRv9DQ0P/QEBA/0RERP9PT0//ODg4/yMiIv9QUU7/iLWT/4rp + p/+R767/pey6/77qy//Y6dz/6eno/+np6f/l5eX/4eHh/93d3f/Z2dn/1dXV/9HR0f/Nzc3/ycnJ/8nJ + yf/Pz8//1NTU/8bGxv+QkJD/S0tL/zIyMv8+Pj7/SkpK/1BQUP9VVVX/YWFh/3V1df+Hh4f/l5eX/6Oj + o/+jo6L/qqmp/6Cgn/+XlpX/k5SU/4iLjP9/hor/fYmP/3WJlP9ti5r/aY+i/2KRqv9flbD/X5m2/1+b + u/9enb7/YKHE/2Kozv9lsdv/Z7no/2a97/9kvfL/Ybzz/1279P9aufP/WLj0/1a49P9Vt/X/VLb0/1K2 + 9P9StfP/s8ni//jW1f/y1NT/8tvS/8q+uv+6rq7/uq2t/8e5uv/SxMT/2cvM/97Q0P/h0tL/39HR/9rN + zf/Vysr/0snJ/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgsyMjKxNjY2/01NTf9FRUX/Pz8//z8/ + P/8/Pz//RERE/1RUVP9VVVX/QkND/yYmJv8yMDD/bnhv/6jErv/I6dD/3PTi/+7z7v/08/P/8fHx/+3t + 7f/o6Oj/5eXl/+Hh4f/d3d3/2dnZ/9bW1v/S0tL/yMjI/7CwsP+AgID/UVFR/z8/P/9KSkr/ampq/4SE + hP+VlZX/oqKi/7CwsP+0s7T/ra2t/6Khof+bmpr/kpOU/4WJi/+BiI3/d4eO/22Fjv9ujJv/b5Kl/2uW + q/9pmrH/a562/2uguf9so73/bqbB/2+pxP9uqsf/bqzM/22uz/9tsdX/bbbd/2275v9sv+3/asDx/2e/ + 8/9ivfP/X7z0/1u69P9ZufP/V7j0/1a39P9Ut/X/Urb0/1i28v/EzeD/+NfW//PU1P/y3NP/yr66/7ir + rP+xo6P/t6ip/72wsP/Hu7v/1MbG/9/R0f/m19f/6tvb/+vd3f/o29v/6dzd//Ph1v/Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMzMzCzIyMrE2Njb/TU1N/0NDQ/8/Pz//Pz8//z8/P/9GRkb/VFRU/1ZWVv9XV1f/Tk5O/zY2 + Nv8kIyT/MzEy/2FgX/+YmJb/xMPD/93d3f/j4+P/5OTk/+Tk5P/e3t7/1tbW/83Nzf/AwMD/paWl/4KC + gv9hYWH/RkZG/0hISP99fX3/q6ur/7q6uv+5ubn/rK2r/5+hnv+TmJH/fYd6/3N9b/93gHb/cYOH/3KK + lv9ykKD/bZKn/2yWrP9pmK3/apqw/3CguP90pbz/d6i//3msw/97r8f/fLLK/3y0zf99ttH/fLjU/3u5 + 1/95utr/eLze/3e+4v91wOf/c8Ls/3HC8P9twvL/acDz/2W+8/9gvPT/Xbv0/1q58/9YuPT/Vrj0/1W3 + 9P9StvT/Zbnw/9vS3f/319b/89XV//Lc0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP/AtLT/yb29/9XI + yP/i1NT/7N3d//Pj4//45+j/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMLMjIysTY2Nv9NTU3/R0dH/0RE + RP9HR0f/SkpK/1VVVf9YWFj/VVVV/1ZWVv9XV1f/VlZW/01NTf86Ojr/KSkp/yUlJf8uLi7/Pj4+/1RU + VP9iYmL/bm5u/21tbf9mZmb/ZGRk/2VlZf9ubm7/eHh5/4uLi/+bm5v/mZqY/52fnP+Rlo//fIV5/3WA + cf9tfGj/antk/25/aP9zhG3/eolz/4SRgP91lp7/apmw/2+etf9zorn/dKW7/3Omu/96rML/gbLK/4O2 + zv+GutH/h7zT/4m/1v+Jwdn/icLb/4nE3v+HxeD/hsXj/4PG5f+Bxuj/fsbq/3vG7f94xu//dcXy/3DD + 8/9rwvP/Z7/z/2K99P9fu/T/W7r0/1i48/9XuPT/Vrf0/1K29P+BwOz/79fb//fX1v/01dX/8tzT/8q+ + uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8zBwf/Wy8v/49fX//Hj4//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADMzMwsyMjKxNjY2/01NTf9QUFD/UVFR/1JSUv9nZ2f/d3d3/1paWv9RUVH/VVVV/1RU + VP9TU1P/UlJS/1NTU/9VVVX/UVFR/1paWv9ubm7/c3Nz/1taW/9sbGz/hIOE/5qamv+ioqL/oaGf/56g + nP+QlI7/gYh9/3mEdf9zgG7/cX9r/3WDb/96iXT/gI56/4eUgf+LmIX/j5uJ/5KejP+UoY7/l6OQ/4ul + of92p7r/eavB/3uvxP98scb/frXJ/4q+1v+Owtr/kMXc/5LI3/+UyeD/lMzi/5XN5f+Uzub/k87n/5DO + 6f+Ozur/is3s/4fM7f+Dy+7/gMrw/3zI8P93xvH/csXz/23C8/9owPP/ZL70/2C89P9cuvT/Wbnz/1i4 + 9P9WuPT/Vrj0/6zK5//62tr/99fX//TV1f/y3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3 + t//Gu7v/yr+//83ExP/RyMj/3tTU//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCzIyMrE2Njb/TU1N/1FR + Uf9QUFD/ZmZm/3t7e/9XV1f/SkpK/0pKSv9NTU3/Xl5e/3Jycv+MjIz/nJyc/7CwsP/CwsL/ycjI/8XF + xf+8u7r/rKyq/6Gjn/+Tlo//hIp//32Fef94gnP/d4Nx/3uIdv+BjXv/h5KB/4yWhv+Qmor/k52O/5ag + kf+Yo5P/mqaV/52pl/+frJn/oa6b/6Oxnf+ls57/obSl/4a1wf+At8z/grrO/4O8z/+MxNn/l8zk/5nO + 5v+a0Of/m9Ho/5zS6f+d1Or/ndXr/5zV7P+a1ez/l9Tt/5PT7v+P0e//i8/w/4bN7/+Cy/D/fsrx/3jI + 8v90xvP/b8Pz/2rB8/9lv/P/Ybzz/1269P9aufT/Wbnz/1a49P9rvPL/3NXh//za2f/319f/9NXV//Lc + 0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAzMzMLMjIysjQ0NP9JSUn/UlJS/2BgYP+FhYX/Z2dn/2dnZ/+BgYH/lJSU/pKS + kvrDw8P5y8vL+8vLy+bBwMDftLSz+6enpP+UlY//hYqA/4KHfP9+hXf/fIZ2/4KLfP+GkID/i5SF/4+X + if+Sm43/lZ6Q/5ihk/+bpJX/naeY/6Cqmv+jrZ3/prGg/6i0ov+rt6T/rLmm/667qP+wvqn/ssCq/7PC + rP+0w6z/n8LA/4nC1v+KxNj/jcfa/5rQ5/+f1Oz/oNXs/6HW7f+i1+3/otjt/6PZ7v+i2e7/odnu/5/Y + 7v+b1+//l9bv/5PT8P+O0fD/ic/w/4XN8f9/y/H/esny/3XG8v9wxPP/a8Hz/2e/8/9ivfP/Xrv0/1u6 + 9P9ZufT/WLj0/5/J6//43N3/+9ra//fX1//01db/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+z + s//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJwQ4ODhuXV1d44aG + hv2bm5v/sbGx/Lq6uvfExMT4zs7O587OztXNzc3Tw8PDuLe3t5K1tbV/s7OzXWZmYm51emzxhIt+/4eO + gf+KkoT/jZWH/5GYjP+Um4//l56R/5mhlP+cpJb/n6eZ/6KrnP+lrp//qLKi/6u1pf+tuKf/sLuq/7K+ + rP+1wa7/tsOw/7jFsv+6x7P/u8m0/7zKtf+8y7X/vcy1/73MtP+3zLr/msrV/5DK3v+Xz+T/otfv/6TY + 8P+k2fD/pdnw/6ba8P+m2/D/ptvw/6bc8P+k2+//otnv/57Y7/+a1+//ldXw/5DT8f+L0PD/hs3x/4DL + 8f97yfL/dsfz/3HE8v9swvP/aMD0/2O99P9fu/T/XLn0/1i59P9zvvH/3tjj//3d3f/62tr/99fX//TV + 1v/z3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg + 1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG5ubgWlpaU4t7e3brq6upq7u7u7urq6lLi4uHuzs7NjqampQ5+f + nyednZ0Vm5ubC4ODgwEAAAAALDMjOnmDb+2VnJD/l52R/5qhlP+dpJf/oaia/6Srnv+nr6H/qrKk/621 + p/+wuar/s7yt/7W/r/+4wrL/usW0/7zHtv++ybj/wMy5/8HNuv/Czrv/w9C8/8PRvP/E0bz/w9G8/8PR + u//C0bv/wtG6/8HRuf+x0Mb/mM7e/5/V7P+m2fH/ptrx/6fb8f+n2/H/qNzx/6jc8P+o3PD/qN3w/6bc + 7/+j2u//n9nw/5vX7/+W1fD/ktPx/4zQ8P+GzvH/gcvx/3zJ8v94x/L/csTz/23C8/9pwPT/ZL30/2C7 + 9P9buvT/Yrvz/7rQ6P/839//+93d//ra2v/319f/9NXW//Lc0//Kvrr/uKys/7KkpP+2qKj/uays/7uw + sP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmJiYBZ+fnxScnJwNioqKBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Pio0h5F766Ws + n/+nrqH/q7Kl/6+2qP+yuqv/tb2v/7jAsf+7w7T/vca3/7/Juf/Cy7v/w829/8XPvv/G0b//x9LB/8jT + wf/J1ML/ydXC/8nWwv/J1sL/ydbB/8jVwf/H1b//xtS+/8XUvv/F1L3/xNO8/8HSu/+y1NT/qNrx/6fa + 8v+o2/L/qdvx/6nc8f+p3PH/qdzw/6nd8P+o3PD/p9vw/6Pa7/+g2fD/nNfw/5fV8P+S0/H/jdDw/4jO + 8P+CzPH/fcny/3fH8v9zxPP/bsLz/2nA8/9kvvT/YLv0/1+78/+gyev/9d7h//7g3//73d3/+tra//fX + 1//01db/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS + 0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdRNyyXoovot76w/7nAsv+8xLb/v8e4/8LKu//EzL3/xs+//8jQ + wP/J0sL/ytTE/8zVxf/N18b/zdfG/83Yxv/N2Mb/ztjH/83Zxv/M2cb/zNnF/8vYxP/L2MT/ytfD/8nX + wv/J18H/x9bA/8bVv//F1L3/xNO8/9ri1//K5PL/qtvy/6jb8v+p2/H/qdvx/6nc8f+p3PD/qdzw/6jc + 8P+m2/D/o9rv/6DY8P+c1/D/l9Xx/5LT8f+N0PD/h87x/4LL8f99yfL/eMfy/3PF8/9uwvP/acDz/2S+ + 9P9jvPP/lsjt/+3d4v//4d///d/f//vd3f/62tr/99fX//TV1f/y3NP/yr66/7isrP+ypKT/tqio/7ms + rP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjHptJca/ + s+bL0cX/yM/B/8rRwv/L1MT/zdXF/87Xx//P2Mj/0NnI/9DZyf/R2sr/0drK/9Hbyv/R28r/0dvK/9Hb + yv/Q28n/0NvJ/8/ayP/O2sf/zdnG/83Zxf/M2cT/y9jD/8rXwv/J18H/x9bA/8bVvv/L18P/8O3n//Px + 8v/M5fL/rNzy/6nb8f+p2/H/qdvx/6jb8f+o2/D/ptvw/6Xa8P+i2fD/n9jw/5vW8P+X1fH/ktPx/43Q + 8f+IzvH/gszx/33J8v94x/P/csXz/23C8/9owPT/aL/z/53K7f/s3eP//+Hg//7h4P/94N//+93d//rb + 2f/32Nf/9NXV//Pc0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HH + x//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWp6gg8NnY5Ovn5P/j4tr/2d3R/9PbzP/T28v/09vM/9Tc + zP/U3Mz/1NzM/9PczP/T3Mz/093M/9PdzP/T3cz/0tzL/9Lcy//R3Mr/0NvJ/8/byP/O2sf/zdrG/83Z + xf/M2MT/y9jD/8rXwv/I1sH/x9W+/9ng0f/38u//+fLw//Xw8P/W6PH/tN7x/6na8f+o2/H/qNvx/6fb + 8f+l2vD/pNnw/6HY8P+e1/D/mtbx/5bU8f+R0vH/jNDx/4fN8v+Cy/L/fMny/3fG8/9xxPP/bMLz/3jD + 8v+y0Ov/8d/j//7i4f/+4eH//uHg//3g3//73d3/+drZ//bY1//01dX/8tzT/8q+uv+4rKz/sqSk/7ao + qP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC8 + vR32397j9O7s//Xu7P/y7er/6uji/9/i1//X3s//1t7O/9bezv/V3s7/1d7O/9Xezv/U3s3/1N7N/9Pd + zf/T3cz/0t3L/9Lcy//R3Mr/0NvJ/9DbyP/O2sf/zdrG/83Zxf/M2MT/ytjD/8nXwf/L18P/6uri//nz + 8f/48vD/+fLw//jx8P/m6/D/xOHx/63c8f+n2vH/pdrx/6TZ8f+i2PH/n9fx/5zW8f+Y1fH/ldTx/5DR + 8f+Lz/H/hs3y/4HK8v96yPL/dcbz/3jF8v+YzO//09ro//nh4v/94uH//eHh//7h4f/+4eD//eDf//vd + 3P/52tn/9tfX//PV1f/y3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87E + xP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+sPEHPjh4OP18O7/9e/t//Xv7f/28O7/9O/t/+3r + 5f/h5Nr/2eDS/9bez//W3s//1t7P/9Xezv/V3s7/1N7N/9Pdzf/T3cz/093M/9Lcy//R3Mr/0NvJ/8/b + yP/O2sf/zdrG/8zZxf/L2MP/ytfC/9Xdzf/18O3/+fLw//nx7//48vD/+fHv//nw7v/07u//4Onv/8Th + 8P+v3PH/pdnx/6DX8f+d1vH/mtXx/5bU8f+S0/H/jtDy/4nO8v+Ey/L/gsry/4nL8f+h0O//zNnq//Hi + 5v/+5OT//eLi//zh4v/94eH//uDh//7h4P/839//+tzc//jZ2f/119f/89XV//Lc0//Kvrr/uKys/7Kk + pP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/yMgb+eLh4/Xw7v/17+3/9vDu//bw7v/28O//9vHv//Xw7v/u7ef/5Obc/9rh0//W3s//1t7P/9be + zv/V3s7/1N3N/9Tezf/T3cz/093M/9Lcy//R3Mr/0NvJ/8/byP/O2sf/zdnG/8zYxP/L2MT/5Ofd//jy + 8P/48vD/+fLw//nx7//58O//+e/u//nw7v/68O7/9u/v/+rr7//Y5e7/xeDv/7fc8P+t2fD/pdfw/6HW + 8P+j1fD/qdXv/7TX7v/K2+v/4uHp//bl5//95uX//eXk//3k4//84uL//OHi//3h4f/94OD//eDg//zf + 3//63Nz/+NnZ//XX1//z1dX/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/ + v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uHj9fDu//bv7f/28O7/9u/t//bw + 7v/18e//9vHv//bx7//18e7/8O7p/+bn3//b4dT/1t7P/9Xezv/V3s7/1N7N/9Tdzf/T3cz/09zL/9Lc + y//R28r/0NvI/8/ax//O2cb/zNjF/9Lcyv/x7ur/+PLw//jy7//48e//+fHv//nw7v/58O//+O/v//nw + 7//68O//+u/t//rt6//47Oz/9evs//Pq6//x6ev/8Ojq//Lm6P/15+j/+ujn//3o5v/96Ob//ebl//3l + 5P/85eX//ePj//3i4f/84uH//eHh//3h4f/94OD//N7e//rb2//32dn/9NbW//LV1f/y3NP/yr66/7is + rP+yo6P/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/8jJG/ni4eP18O7/9u/t//bv7f/28O7/9vDu//bw7v/28e//9fDu//bx7//28u//9vHv//Lv + 6//o6eH/3eLW/9bfz//V3s7/1N7N/9TdzP/T3cz/0tzL/9Hcyv/R28n/0NvI/8/ax//N2cX/3+PX//fx + 7//48vD/9/Hw//jx7//58O//+fHv//nw7//47+//+fDv//nv7v/67uz/+u3r//rt7P/67ev/++zq//vs + 6v/76un/++no//zp5//86Of//Ojm//vn5v/85uX//eXk//3l5P/94+L//eLh//zh4f/94eH//eHh//3g + 4P/73t7/+dra//fY2P/01tb/8tTU//Hc0v/Kvrr/ua2t/7KkpP+2p6j/uays/7uwsP+/s7P/w7e3/8a7 + u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw7v/27uz/9u/t//bw + 7v/27+3/9vDu//bw7v/28e//9vDv//bx7//28e//9vLv//by7//z8Oz/6urj/97j1//X3s//1N3N/9Pd + zP/T3cz/0tzL/9Hcyv/Q28n/z9rH/9Hbyf/t6+X/+PLw//jx8P/38e//+PDv//jx7//58O7/+fDu//jv + 7v/58O//+e/t//ru7P/67ev/+e3s//rt6//67Ov/++vq//vq6f/66ej/++jn//zo5//86Of/++fm//zm + 5f/85uX//eXk//3j4v/84uL//OLh//zh4f/94OH//eDg//vd3f/42dr/9tfX//PV1f/y1NP/8tzS/8q/ + uv/EuLn/wrS0/7+xsv+9r7D/vLGx/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/IyRv54uHj9fDu//bu7P/27+3/9u/t//bw7v/27+3/9vDu//bw7v/28e//9vDv//bx + 7//28e//9vLv//by7//38u//9fDt/+zr5f/g5Nn/1t7P/9PczP/S3Mv/0tzK/9Hbyf/P2sf/2+HT//Xw + 7v/48fD/+PHv//jw7//38e//+PDu//nw7v/57+7/+fDu//jv7v/57uz/+e3r//rt7P/67ez/+e3s//rs + 6//76un/++no//rp6P/76Oj/++jn//vo5//75ub//OXl//zl5f/85OP//OLi//3i4f/94uD//eHf//3h + 3//84N3/+9/a//rf2P/54dj/+OLY//nk2f/0593/yL68/8m9vf/OwcH/0MPD/9HDxP/PwcL/y76+/8i8 + vP/Hvb3/yr+//83ExP/Qx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8jJG/ni4eP18O7/9u7s//bu + 7f/27+3/9u/t//bw7v/27+3/9vDu//bw7v/28e7/9vDu//bx7//28e//9fHv//bx7//28u//9/Lv//Xx + 7v/u7Of/4eXa/9bez//S3Mr/0dvJ/9Hbyf/o6eD/+PHw//jx7//48e7/+PHv//fw7v/48O7/+O/t//nw + 7v/57+7/+O7s//nt6//57uz/+u3s//nt7P/57ez/+uzr//rq6f/66en/+uno//vo6P/75+f//Ofm//zm + 5P/85uP//ebh//3l3//+5t7//ujf//7p3///6+H//+/l//7x5//97ub/+uzl//jr5//05uP/797c/+LS + 0f+zoqL/v7Gx/8q8vP/RxMT/1snJ/9rMzf/dz8//39DQ/9zPz//ZzMz/1crK/9PJyf/c0tL/8uDV/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw7v/27+z/9u/t//bv7P/27+3/9u/t//bw7v/27+3/9vDu//bw + 7v/28e7/9vHv//bw7//28e//9fHv//bx7v/28e//9/Hv//fy8P/28e//7+3o/+Pl3P/X3s//2N/Q//Lu + 6v/38e//+PDu//jx7//48O7/9/Du//jv7f/48O7/+O/u//ju7f/47uz/+O7s//nt7P/57Oz/+uzr//rs + 6v/66uj/++nm//zp5P/86eP//eri//7s4//+7OP//+7k///x6P/+8ur//e/o//vu6P/57On/9eXj/+7b + 2v/p1dT/48zM/93Cwv/Xurv/07a2/9Gys//RsbH/za2t/6SIiP+diIj/q5eX/7impv/Gtrb/08XF/93O + zv/j1NT/59jY/+rb2//s3d3/6tzc/+ve3v/z4db/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uHj9fDu//bv + 7P/27+3/9u/t//bv7P/27+3/9u/t//bw7v/28O3/9vDu//bw7v/28O7/9vHv//bx7//28O//9fDv//bx + 7v/28e//9/Hv//fx7//38e//9vHu//Ht6f/t6+X/9vDu//fx7//38O//9/Du//fw7v/37+7/+O/u//jv + 7f/57uz/+e3q//rt6f/77ef//O3m//3u5f/97+b//u/m///w5///8+r//vPr//3w6f/67un/9+vo//Hi + 4P/p19b/4s7O/9zFxf/Vurv/zrKz/8irq//Gpqb/xaSk/8WjpP/Eo6T/xaWl/8enp//IqKj/yqqq/8ur + q//Orq7/tJaW/5J6e/+chob/o42N/6qUlP+ynJ3/v6ys/828vP/dzc3/6NnZ/+/g4P/z5OT/+Ojo//Xi + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/8jJG/ni4eP18O7/9u7s//bv7f/27+3/9vDt//bv7P/27+3/9u/t//bw + 7v/27+3/9vDu//bw7v/28O7/9vDu//bx7//18e//9vHv//bx7//28e//9vHv//bx7//28e//9/Hv//fx + 7//38O7/9/Dt//jv6//57+r/+u/p//vw6P/88Of//fDn//7w5///8+n///Xs//707P/88Or/+O7p//Xq + 5//u3tz/5NLR/9zJyf/Uvr7/zLKy/8SoqP+9n6D/upub/7mZmf+4l5f/t5aW/7iYmP+6mpr/u5yc/72d + nf++n5//wKCg/8Khof/Eo6P/xaSl/8ampv/Hp6f/yamp/8qqqv/EpaX/mH1+/5V+f/+giYn/qZGR/7GY + mP+3np7/uaGh/72mpv/FsbH/08HB/+XU1P/z4+P/9ePY/9G0rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw + 7v/27uz/9u7t//bv7f/27+3/9vDt//bv7P/27+3/9e/t//Xw7v/18O7/9fDu//Xw7v/18O7/9fDu//Xw + 7v/28O7/9vDu//fw7f/48Ov/+fDr//rw6f/78Oj//PHn//3y6P/+8+n///Xr///27v/+9O3/+/Hr//ft + 6f/z5+X/6drY/97Nzf/VwcL/zba2/8Kpqf+5np7/sZSU/66Pj/+sjI3/q4uL/6uKiv+sjIz/rY2N/6+P + j/+wkJH/spKT/7OUlP+1lZX/t5aW/7iXl/+5mZn/upub/7ucnP+9np7/vp+f/8CgoP/BoaH/w6Oj/8Wk + pP/Gpqb/x6en/8ioqP+ylpb/o4yM/52Fhf+kjIz/rpaW/7eenv/Ap6f/x62t/82xsf/Kr7D/yLCw/8u1 + tv/Tvrj/waaifwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uDj9e/t//Xu7P/17+3/9e/t//Xv7f/17+3/9fDt//Xv + 7f/17+3/9u/t//bv7P/27+v/9+/q//jv6f/57+j/+/Dm//zx5v/98uf//vPp///16///9+7//fTt//rw + 6//27en/8ebj/+XX1v/Zycj/zru7/8Otrf+5n6D/rpOU/6aJif+ihIT/oIGB/55+fv+efn7/n4CA/6GC + gv+ig4P/o4WF/6WGhv+niIj/qYmJ/6qLi/+sjIz/rY2N/66Ojv+vj5D/sJGR/7KSk/+zk5T/tZWV/7eW + lv+4mJj/uZmZ/7qbm/+8nJz/vZ6e/76fn//AoKD/wqGi/8Oio//FpKT/xaSk/8Smpv/Ntrb/wKys/5+H + h/+qkpL/s5qa/7yjo//Fq6v/z7Oz/9q8vf/hw8P/5MbG/9m9vf+3np6ZQDU1AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8nJG/ni + 4OP17+3/9e7s//bu7P/27uv/9u7q//fu6f/47uj/+u/n//vw5v/88Ob//fHn//7z6f//9uv//vXs//3x + 6v/47Of/9Ojl/+7g3v/h0dD/08LC/8e0tP+7paX/sJeX/6SJiv+afn7/l3l6/5R2dv+Sc3P/knJy/5N0 + dP+VdXb/lnd4/5h5ef+Zenv/m3x8/5x9ff+efn//n3+A/6GBgv+igoP/o4SE/6SFhf+lhob/p4eH/6iJ + if+qior/q4yM/62Njf+ujo7/r4+Q/7CQkf+ykpP/tJSU/7WVlf+3lpb/t5aW/7aWlv+1lZX/tJWW/7OV + lf+zlZb/tJeX/7OYmP+3nJz/vqOk/8ivr//Turr/r5WV/6SMjP+wl5f/uJ+f/8GoqP/Lr6//1bi4/97B + wf/pysr/89PT/9O2tt+Tfn4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ycob/OPh4/rv6P/77+X//O/m//3x5//+8+n///Xs//71 + 7f/68Or/9evn//Tp5v/t393/2cnI/8e0tP+2oqL/r5eY/6WLjP+Zfn7/j3N0/4tubv+Iamr/hmdn/4Zn + aP+HaWn/iWtr/4psbP+MbW7/jW9w/49xcf+RcnP/knN0/5N0dP+UdXX/lnZ3/5d4eP+YeXn/mXt7/5p8 + fP+cfX3/nn5+/59/gP+ggYH/oYKD/6OEhP+khYX/pYaG/6aHh/+oiIj/qYqK/6mJif+oiYn/p4iI/6eI + iP+niIn/qIuM/6mNjv+rkJD/s5mZ/7+lpv/Fra7/zLS1/9nAwP/my8v/7tLS//PV1f/41tb//NfX///X + 1//iuLj/po2N/6uTk/+1nJz/vqSk/8esrP/QtLT/272+/+TGxv/uz8//6crK/rKamoMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPfD + xBv43tvj9+zl//Tp5v/16OX/7t7d/9zMy//UwcH/0ry8/8Goqf+wlZX/qYyM/6KEhP+WeXn/jW5v/3ZZ + Wv93WVn/fV5e/35gYP9/YmL/gWRk/4JlZf+EZmb/hWdn/4ZoaP+IaWr/iWtr/4psbP+LbW3/jG5u/45v + cP+PcXH/kXJy/5Jzc/+TdHT/lHV1/5Z3d/+XeHj/mHl6/5l7e/+afHz/nH19/5x8fP+bfHz/mnt8/5p7 + e/+afX3/nYCA/52Cgv+fhYX/qI+P/7Wdnf+/p6j/xK+w/9G6u//gyMn/69LT//HX1//22dn/+9zc//7d + 3f//2tr//9bW///U1P//0tL//9DQ///Ozv//y8v//8vL//zJyf/EoaH/pY6O/7GYmP+6oKD/w6mp/8yx + sf/WuLn/4MLC/+nLy//y09P/z7Oz1Y56eiEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwqGhG8muruPFrq3/oouL/5J4ef+VeXr/nX9//6SF + hf+oiYn/qYmJ/6aHh/+ig4P/nX5+/5h6ev+UdXb/e15e/3ZaWv98Xl7/fV9f/35gYP9/YWH/gGJj/4Fk + ZP+CZWX/g2Zm/4VnZ/+GaGj/iGlq/4lra/+KbGz/i21t/4xubv+Nb2//jnBx/49xcf+PcHD/jm9v/41v + b/+OcHD/kXR0/5N4eP+Uenr/m4KC/6uTk/+3oqL/vamp/8i1tf/axsb/59LS/+/Y2P/029v/+t/f//7h + 4f//39///9zc///a2v//2Nj//9bW///U1P//09P//9PT///S0v//0ND//9DQ///Q0P//z8///8/P///N + zf//zMz//8zM/+2+vv+tkpL/rJSU/7adnf+/paX/yK2t/9K1tf/cvr7/5cfH//DQ0P/nyMj7rJSUcQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC6m5sbw6en48itrf/Apqb/tZyc/5+Fhv+OdXb/hWtr/4xwcP+XeXn/ooSE/6WGhv+jhIT/noB//5p7 + e/99YWH/dFdY/3lcXf96XV3/fF5e/31fX/9+YGD/f2Fh/4BiYv+AY2P/gWRk/4JlZf+CZGT/gmNk/4Fj + ZP+BZGT/hWlp/4lubv+KcHD/jnZ2/6CJiv+vmpr/tqOj/8Cvr//SwcH/4tDQ/+vZ2f/w3d3/9+Li//3l + 5f//5ub//+Tk///g4P//3t7//9zc///a2v//2tr//9nZ///Y2P//19f//9bW///W1v//1dX//9TU///U + 1P//1NT//9TU///T0///0dH//9DQ///Q0P//z8///87O///Nzf//zMz//szM/9Grq/+mj4//spmZ/7ui + ov/Eqqr/zrKy/9i6u//hw8T/68zM//PT0//Lr6/GhnNzFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqbmxvFqanjzbKy/82ysv/NsrL/zbKy/8et + rf+8o6P/qJCQ/5Z+fv+Gbm7/h21t/5B0c/+Xenr/nH19/4BjY/9xVVX/dVhZ/3ZZWv92Wlr/dllZ/3ZY + WP92WFj/el1d/39jY/+AZmf/g2tr/5R+fv+lkZH/sJ6e/7enp//Jurr/3M7O/+fZ2f/r3d3/8+Pj//nn + 5//86en//efn//3l5f/94+P//eHh//3g4P/939///d7e//7e3v/+3t7//t7e///c3P//29v//9ra///a + 2v//2tr//9ra///Z2f//19f//9bW///W1v//1dX//9TU///U1P//1NT//9TU///S0v//0dH//9HR///Q + 0P//z8///87O///MzP//zMz/9sXF/7eYmP+slJT/t56e/8Cnp//Jrq7/1Le3/92/wP/nyMj/8tLS/+PF + xfeokZFdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAuZqaG8irq+PRtbb/0LW1/9C1tf/PtLT/z7S0/86zs//NsrL/yrCw/7+mpv+wmZn/moOD/4x2 + dv+Damr/dltb/3JWVv93XV3/eWBg/4hwcf+ch4f/qJaW/6+env/BsbH/1sfH/+LV1f/p29v/7+Hh//Xm + 5v/56en/++np//rn5//55eX/+OTk//jj4//44uL/+OHh//jh4f/54eH/+eHh//rh4f/64OD/++Dg//zf + 3//839///N/f//3e3v/+39///t7e///d3f//29v//9ra///a2v//2tr//9ra///Z2f//19f//9bW///W + 1v//1dX//9XV///U1P//1NT//9PT///S0v//0ND//9DQ///Pz///z8///87O///MzP//zMz/4LW1/6qR + kf+zmpr/vKOj/8Wrq//Ps7P/2by8/+PExf/tzc3/8tLS/8Opqbt5Z2cQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+oqEYxaip2dK2tv/Vubn/1Li5/9O4 + uP/St7f/0ba2/8+0tP/Os7L/zLGx/8qvsP/Hra7/wKen/7KcnP+fhob8u6Oj/uHR0f/n2Nj/7d7e//Tk + 5P/46Oj/+unp//nn5//45ub/9+Xl//fk5P/24+P/9uPj//bi4v/14uL/9eLi//bi4v/24uL/9uLi//fi + 4v/34uL/9+Li//ji4v/44eH/+eLi//ni4v/64eH/++Dg//zg4P/839///N/f//3e3v/+39///t/f///e + 3v//29v//9ra///a2v//2tr//9ra///Y2P//19f//9fX///W1v//1NT//9TU///U1P//1NT//9PT///R + 0f//0dH//9DQ///Pz///zs7//83N///MzP/8ycn/xKGh/6yUlP+5oKD/wqio/8uvr//VuLj/3sHB/+jJ + yf/z09P/4cPD86ONjU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMqysQGzlpZdxqmp8ti8vP/YvLz/17y7/9a7uv/Vubn/07i4/9G2tv/PtLT/zLKy/8qv + r//Ira7/xKqq/7ebm+fXvb33+uXl//jj4//34+P/9+Pj//bi4v/14uL/9eLi//Tj4//04+P/9OPj//Pj + 4//z4+P/8+Pj//Tk5P/04+P/9OPj//Xj4//14uL/9eLi//bj4//24uL/9+Li//fi4v/44uL/+OHh//ni + 4v/64eH/++Hh//vg4P/839///N/f//3f3//+39///t/f///e3v//29v//9ra///a2v//2tr//9nZ///Y + 2P//1tb//9bW///V1f//1NT//9TU///U1P//1NT//9LS///R0f//0ND//8/P///Pz///zs7//8zM///M + zP/svr7/r5OT/7KZmf+9pKT/xqys/9C0tP/bvb7/5MbG/+7Pz//x0dH/wKamqGdXVwkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALecnBvGqani276+/9zA + wP/bv7//2r6+/9i8vP/Xu7v/1bm5/9K3t//PtLT/zLKy/8uxsf/LsbD/vqGhvti8vOv24uL/9uPj//bj + 4//14uL/9ePj//Tj4//z5OT/8+Tk//Pk5P/y5eX/8uXl//Ll5f/y5eX/8uXl//Ll5f/z5OT/8+Tk//Tj + 4//04+P/9eLi//Xi4v/24+P/9+Li//fi4v/34uL/+OHh//ni4v/54uL/+uHh//vg4P/839///N/f//3e + 3v/+39///t/f///d3f//29v//9ra///a2v//2tr//9nZ///X1///19f//9bW///V1f//1dX//9TU///U + 1P//09P//9HR///R0f//0ND//8/P///Ozv//zc3//8zM//7Ly//ZsrL/yLKy/8exsf/Hr6//zbKy/9a4 + uf/gwsL/6svL//TU1P/bvr7snIeHPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAvaKhG8qureLfwsL/4MTE/9/Dw//ewcH/3cDA/9q+vv/YvLz/1bq5/9O3 + t//PtLT/0LW1/8+1tfC8oKBz2L6+4/Tf3//14+P/9eLi//Tj4//z5OT/8+Tk//Ll5f/x5eX/8OXl//Dl + 5f/w5eX/8OXl//Dl5f/w5eX/8OXl//Hl5f/x5eX/8uXl//Pk5P/z5OT/9OPj//Xi4v/24+P/9+Pj//fi + 4v/34uL/+OHh//ni4v/64uL/+uHh//zf3//839///N/f//3e3v/+39///97e///b2///2tr//9ra///a + 2v//2tr//9jY///X1///1tb//9XV///U1P//1NT//9TU///T0///0tL//9DQ///Q0P//z8///8/P///N + zf//zMz//8vL//3Kyv/7zs7/+NTU//DS0v/oz8//5MzM/+LIyf3ozMz+8dHR//DQ0P+6oaGZUEJCBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+o6IbzLCw4uPF + xf/kyMf/48bG/+LFxf/gw8P/3sHB/9u/v//Yvbz/1bq6/9K3t//XvLz/z7S04LmdnT3Xvb3Z8d3d//Xj + 4//04+P/8+Tk//Ll5f/x5eX/8OXl/+/m5v/v5eX/7+Xl/+/m5v/u5ub/7+bm/+/l5f/v5eX/7+bm//Dm + 5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xi4v/24+P/9uPj//fi4v/34uL/+OHh//ni4v/64eH/++Dg//zf + 3//839///N7e//7f3///39///93d///b2///2tr//9ra///a2v//2dn//9fX///X1///1tb//9TU///U + 1P//1NT//9TU///S0v//0dH//9HR///Pz///zs7//87O///MzP//zMz//8vL///Jyf//ycn//8rK///N + zf/9z8//68vM6+3f35r14+O9+ePj59jBwdqsmpovAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+kpBvPsrLi58nJ/+jLy//nysr/5cjI/+PGxv/hxMT/3sLC/9u/ + v//YvLz/1Lm5/93Dwv/LsLCxw6mpHtO5ucbu29v/9OTk//Pk5P/y5eX/8OXl/+/m5v/v5ub/7+bm/+7m + 5v/u5ub/7efn/+3n5//t5+f/7ufn/+7m5v/u5ub/7+Xl/+/m5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xi + 4v/24+P/9+Li//fi4v/44eH/+eLi//ri4v/74OD//N/f//zf3//83t7//d/f//7f3///3t7//9vb///a + 2v//2tr//9nZ///Z2f//19f//9fX///W1v//1dX//9TU///U1P//1NT//9PT///R0f//0dH//9DQ///O + zv//zs7//8zM///MzP//y8v//8rK///Kyv//ycn//8jI///Jyf/kt7fjvqOjHv///w3/+voq8ejoV+TZ + 2SsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwaWlG9G0 + tOPqzMz/7M7O/+vNzf/py8v/58nJ/+THx//hxMT/3sLC/9u+vv/YvLz/4MXF/8CkpIfx4OAJzrOzrOzY + 2P/05OT/8uXl//Hl5f/v5ub/7+bm/+/l5f/u5ub/7efn/+zo6P/s6Oj/6+np/+vp6f/s6Oj/7efn/+3n + 5//u5ub/7+Xl/+/m5v/w5eX/8uXl//Pk5P/04+P/9eLi//bj4//34+P/9+Li//fh4f/44uL/+uLi//rh + 4f/74OD//N/f//zf3//93t7//t/f///e3v//3Nz//9ra///a2v//2tr//9nZ///Y2P//1tb//9bW///V + 1f//1dX//9TU///U1P//09P//9HR///R0f//z8///87O///Ozv//zMz//8vL///Ly///ysr//8rK///J + yf//ycn//8nJ/+W4uOO5nJwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCpqYb07a24+7Pz//w0dH/7tDQ/+zOzv/qzMz/58nK/+TH + x//hxMT/3cDB/9zBwf/ew8P1t5ycUgAAAADNsrKU6dTU//Pl5f/y5eX/8eXl/+/m5v/v5ub/7+Xl/+7n + 5//t6Oj/7Ojo/+rq6v/q6ur/6urq/+vp6f/s6Oj/7efn/+7m5v/v5eX/7+bm//Dm5v/y5eX/8uXl//Pk + 5P/04uL/9ePj//fj4//34uL/9+Hh//ni4v/64uL/+uHh//vg4P/839///N/f//3e3v/+39///97e///c + 3P//2tr//9ra///a2v//2tr//9jY///W1v//1tb//9XV///V1f//1NT//9PT///T0///0dH//9HR///Q + 0P//z8///8/P///MzP//zMz//8zM///Kyv//ysr//8rK//7Jyf/+yMj/47a247mcnBsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMOn + pxvVuLfj8dLS//PU1P/x09P/79HR/+3Ozv/qzMz/5snJ/+PGxv/fwsL/4cbG/9a7u+WojIwoAAAAAM+0 + tH7m0ND/9OXl//Ll5f/x5eX/7+bm/+/m5v/v5eX/7ubm/+3n5//s6Oj/6+np/+vp6f/r6en/7Ojo/+zo + 6P/t5+f/7ubm/+/l5f/v5ub/8OXl//Ll5f/z5OT/9OPj//Xi4v/24+P/9+Pj//fi4v/34eH/+OLi//ri + 4v/64eH/++Dg//zf3//839///d7e//7f3///3t7//9zc///a2v//2tr//9ra///Z2f//2Nj//9fX///X + 1///1dX//9XV///V1f//1NT//9TU///S0v/+0dH//c/P//zMzP/6y8v/+cjI//bFxf/xwsL/7b29/+i6 + uv/jtrb/37Oz/9uxsf/NqKjiupycGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw6eoG9a5ueP01dT/9tfX//TV1f/x09P/79DQ/+zN + zf/oysr/5cfH/+DExP/lycn/zrOzvJV5eQ8AAAAA07i4b+PMzP715OT/8+Xl//Ll5f/w5eX/7+bm/+/m + 5v/v5eX/7ubm/+3n5//t5+f/7Ojo/+3n5//t5+f/7efn/+7m5v/v5eX/7+bm/+/m5v/x5eX/8uXl//Pk + 5P/04+P/9eLi//bj4//34uL/9+Li//fh4f/54uL/+eLi//vh4f/84OD//N/f//3f3//939///t/f///f + 3///3Nz//9vb///b2///2tr//tnZ//3W1v/71NT/+dLS//jPz//1zMz/8MjI/+vDw//lv7//4bq6/964 + uP/atLT/1bGx/9Gurv/OrKz/zKys/8usrP/Mrq7/zrCx/9Czs//QtLT91be3/Mqqq96+nZ0bAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADEqKgb2Lu74/fY2P/52dn/9tfX//PV1P/w0tL/7c/P/+rMzP/mycj/4sbG/+TJyf/ApKSNAAAAAAAA + AADVurpX4MjI9vXk5P/z5OT/8uXl//Ll5f/w5eX/8Obm/+/m5v/v5eX/7+bm/+7m5v/u5ub/7ubm/+7m + 5v/v5eX/7+Xl/+/m5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xj4//24+P/9+Pj//fj4//44uL/+OLi//ri + 4v/74+P//OHh//vf3//63d3/+dra//jZ2f/319f/89LS/+7Ly//oxsb/5MHB/+C+vv/du7v/2be3/9Sz + s//QsLD/zq6u/82urv/Nr6//z7Ky/9Gzs//Stbb/0re3/9O4uP/Wu7v/2r+//93Cwv/ew8P/3sPE/97D + w//gxMT/4sXF/+DExP/Os7P/sJaWs72cnA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMOoqBvVuLjj8tXV//jb2//63Nz/99nZ//PV + 1v/v0dL/683N/+fJyf/lyMj/4cbG+LecnFwAAAAAAAAAANO2tjncwsLs9ePj//Tj4//z5OT/8+Tk//Ll + 5f/x5eX/8OXl//Dl5f/w5eX/7+bm/+/m5v/w5ub/8Obm//Dm5v/w5ub/8ebm//Pm5v/z5ub/9OXl//Xk + 5P/04uL/8+Dg//Ld3f/x3Nz/8NnZ/+zV1f/oz8//48nJ/9/ExP/dwMD/2r29/9e5uf/TtbX/0LKy/86x + sf/OsbH/0bOz/9K0tf/Ttrb/07e3/9O4uP/Wu7v/27+//97Cwv/fxMT/38TE/9/ExP/gxMT/4sbG/+TH + x//kyMj/5MfH/+PGxv/jxsb/5MfH/+XIyP/mycn/5srK/+bKyv/kyMj/0ba2/qiRkb+IdHQrAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvqCgDNC7u5vWwMDo2cHB9d7ExP7jx8f/68/P/+/S0v/w09P/7tHR/+zQ0P/av7/nrJCQLgAA + AAAAAAAAxKWlINm/v+T14eH/9uPj//Xj4//14+P/9OTk//Pl5f/z5eX/8+bm//Pm5v/y5ub/8OTk/+7i + 4v/t39//7N7e/+vb2//n1tb/49DQ/9/Kyv/cxcX/2sLC/9i/v//Vurr/0re3/8+0tP/OsrL/0bS1/9O2 + tv/Tt7f/1Li4/9S5uf/Xu7v/3L+//97Cwv/gxMT/38TE/+DExP/hxcX/48bG/+TIyP/lyMj/5MjI/+TH + x//kx8f/5cfI/+XIyP/mycn/5srK/+bLy//mzMz/583N/+jPz//p0dH/6dLS/+jT0//n09P/5tLS/+bS + 0v/m09P94MzM88aurtmmj4+HjHh4HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39Cu/p6Snq4+NU4dXVfNnH + x6TYxcXQ07296ta8vPfZv7/+3sPC/8uwsMCWenoQAAAAAAAAAADHqakY17y82vDa2v/w3Nz/79vb/+/a + 2v/s2Nj/6NTU/+POzv/eysr/28bG/9rDw//XwMD/1Ly8/9G4uP/QtbX/0bW2/9K3t//UuLn/1Lm5/9W5 + uf/Xurv/27+//97Bwf/fxMT/38TE/+DExP/hxcX/48bG/+THx//lyMj/5MfH/+THx//kx8f/5cjI/+XI + yP/mycn/5srK/+bLy//mzMz/583N/+jPz//o0dH/6dLS/+nT0//o09P/59LS/+bS0v/l0tL/5dLS/uLP + z/zdycn218HB7tO9veXWv7/f2cHB1tm/v8fWubmwzrCwk8avr3K0oKBMloGBH2pZWQQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////B/v6+hbq4+Mx59/fWtvNzYbPu7ukuqGhWIJf + XwIAAAAAAAAAANzAwBLPsbHFyrCw/8qwsP3MsbL+0LW1/9O4uP/Vubn/1ru7/9a7u//Xu7v/2r6+/93A + wP/ew8P/38PE/+DExP/hxMX/48bG/+THx//kx8j/5MfH/+THx//kx8f/5cjI/+XJyf/mysr/5srK/+bL + y//nzMz/583N/+jPz//p0dH/6dLS/+nT0//o09P/6NPT/+fT0//n09P/6NTU/ufS0vvlz8/14srK7ODH + x+Tgx8fd4MbG0t7Dw8PZu7uu0LCwj8mrq37Jq6t2yampasSkpFa+m5s+rIaGIrGJiRq8lZUXxp2dEsyi + ogvQoqICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wb///8BAAAAAAAAAAAAAAAA////As+urpPZu7v93sLC+eDD + xP3hxcX/4sbG/+THx//kx8f/5MfH/+THx//kx8f/5cjI/+XJyf/mycn/5srK/+bLy//mzMz/583N/+jP + z//p0dH/6dPT/+nT0//p09P/59PT/+bS0v/m0tL/5tLS/uXQ0PnizMzz38fH6t3FxeHexcXZ38XFzt3C + wrzZvLym1LW1jNS0tHzWtrZy2La2ZteyslLQqKg3yZ6eIcmfnxnLoaEWyqKiEcigoAqmeXkBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA0a6uYty7u/rlycn/5srK/+bLy//mzMz/583N/+jPz//p0dH/6dPT/+nT + 0//p09P/6dPT/+nU1P/p1dX/6dXV/enT0/jnz8/x48vL5+HIyN7hyMjW4cfHyd3BwbnVt7egzK6uiseq + qnnIq6tuy6urX8mnp0zBnJwzwJeXIMKZmRjFnJwVxJqaD72RkQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiwcEV3ru7rOXF + xfnp0tL/6dXV/OjS0vfkzc3w4cnJ5d/Gxtzgx8fT4cfHxuDDw7Pdvr6d2rq6h9m5uXbZuLhq2ba2W9Sv + r0bNpaUxyZ+fIMienhfFnJwTwJaWDp1tbQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpxcUV4r6+W9m3t3TVtLRp0rCwWsqlpUTDnZ0xwJeXIMGY + mBbCmJgSvZGRDKhzcwWNSkoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////////4///z//////AAAAAAAAAAAD//8f/////wAAAAAAAAAAAP/gP/////8A + AAAAAAAAAAA+AAH/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAT////8AAAAAAAAAAAAAAAAP + ////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAA + AAAAAD///wAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAAP//wAAAAAA + AAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAH/8A + AAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAA + AAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAA + AAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAA + AAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAP//8A + AAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB + ////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAA + AAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAA + AAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8A + AAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB + ////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAA + AAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAA + AAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///// + AAAAAAAAAAAAAAAB/////wAAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAB + /////wAAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAB/////4ACAAAAAAAA + AAAAAf/////w/gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAA + AAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///// + //4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB + ///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAA + AAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAA///////+AAAAAAAAAAAAAP///////gAA + AAAAAAAAAAB///////4AAAAAAAAAAAAAf//////+AAAAAAAAAAAAAH///////gAAAAAAAAAAAAA///// + //4AAAAAAAAAAAAAP//////+AAAAAAAAAAAAAB///////gAAAAAAAAAAAAAf//////4AAAAAAAAAAAAA + D///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAA + AAAAAAf//////wAAAAAAAAAAAAB///////8AAgAAAAAAAAAAf///////AAIAAAAAAAAAAH///////wAC + AAAAAAAAAAB///////8ABgAAAAAAAAAAf///////AAYAAAAAAAAAAP///////wAGAAAAAAAAAAH///// + //+ABgAAAAAAAAAD////////+AYAAAAAAAAAP/////////+OAAAAAAAB/////////////wAAAAAf//// + //////////8AAAD/////////////////gAP///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////// + + + \ No newline at end of file diff --git a/src/Portable/LocalData.cs b/src/Portable/LocalData.cs new file mode 100644 index 0000000..b21a7b6 --- /dev/null +++ b/src/Portable/LocalData.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml.Serialization; +using System.Configuration; + +namespace DesktopPet +{ + public class LocalData + { + Configuration AppConfiguration = null; + KeyValueConfigurationCollection AppSettings = null; + bool isInstalled = false; + + public LocalData() + { + if (Program.IsApplicationInstalled()) + { + isInstalled = true; + AppConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); + } + else + { + AppConfiguration = ConfigurationManager.OpenMappedExeConfiguration( + new ExeConfigurationFileMap { ExeConfigFilename = "DesktopPet.config" }, ConfigurationUserLevel.None); + } + var settings = AppConfiguration.AppSettings.Settings; + foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties) + { + if (AppConfiguration.AppSettings.Settings[currentProperty.Name] == null) + { + AppConfiguration.AppSettings.Settings.Add(currentProperty.Name, currentProperty.DefaultValue.ToString()); + } + } + AppSettings = AppConfiguration.AppSettings.Settings; + } + + public void SetVolume(double volume) + { + int iVolume = (int)(volume * 100); + if (iVolume.ToString() != AppSettings["Volume"].Value) + { + Properties.Settings.Default.Volume = iVolume; + AppSettings["Volume"].Value = iVolume.ToString(); + Save(); + } + } + public float GetVolume() + { + int iVolume = 30; + int.TryParse(AppSettings["Volume"].Value, out iVolume); + return (float)(iVolume / 100.0); + } + + public bool GetMultiscreen() + { + bool.TryParse(AppSettings["Multiscreen"].Value, out bool ret); + return ret; + } + + public void SetMultiscreen(bool multi) + { + if (multi.ToString() != AppSettings["Multiscreen"].Value) + { + Properties.Settings.Default.Multiscreen = multi; + AppSettings["Multiscreen"].Value = multi.ToString(); + Save(); + } + } + + public bool GetWindowForeground() + { + bool.TryParse(AppSettings["WinForeground"].Value, out bool ret); + return ret; + } + + public void SetWindowForeground(bool foreground) + { + if (foreground.ToString() != AppSettings["WinForeground"].Value) + { + Properties.Settings.Default.WinForeground = foreground; + AppSettings["WinForeground"].Value = foreground.ToString(); + Save(); + } + } + + public int GetAutoStartPets() + { + int.TryParse(AppSettings["AutostartPets"].Value, out int ret); + return Math.Max(1, ret); + } + + public void SetAutoStartPets(int autostart) + { + if (autostart.ToString() != AppSettings["AutostartPets"].Value) + { + Properties.Settings.Default.AutostartPets = autostart; + AppSettings["AutostartPets"].Value = autostart.ToString(); + Save(); + } + } + + public void SetXml(string xml, string folder) + { + Properties.Settings.Default.xml = xml; + AppSettings["xml"].Value = xml; + Save(); + } + + public string GetXml() + { + return AppSettings["xml"].Value; + } + + public string LoadXML() + { + XmlSerializer mySerializer = new XmlSerializer(typeof(XmlData.RootNode)); + // To read the file, create a FileStream. + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + + if (File.Exists(Application.StartupPath + "\\installpet.xml")) + { + string sXML = System.Text.Encoding.Default.GetString(File.ReadAllBytes(Application.StartupPath + "\\installpet.xml")); + File.Delete(Application.StartupPath + "\\installpet.xml"); + writer.Write(sXML); + SetXml(sXML, ""); + return sXML; + } + else if (Program.ArgumentLocalXML != "") + { + string sXML = System.Text.Encoding.Default.GetString(File.ReadAllBytes(Program.ArgumentLocalXML)); + writer.Write(sXML); + return sXML; + } + else if (Program.ArgumentWebXML != "") + { + System.Net.WebClient client = new System.Net.WebClient(); + string sXML = client.DownloadString(Program.ArgumentWebXML); + writer.Write(sXML); + return sXML; + } + else + { + writer.Write(AppSettings["xml"].Value); + return AppSettings["xml"].Value; + } + } + + public string GetImages() + { + return AppSettings["Images"].Value; + } + + public void SetImages(string images) + { + Properties.Settings.Default.Images = images; + AppSettings["Images"].Value = images; + Save(); + } + + public string GetIcon() + { + return AppSettings["Icon"].Value; + } + + public void SetIcon(string icon) + { + Properties.Settings.Default.Icon = icon; + AppSettings["Icon"].Value = icon; + Save(); + } + + public bool IsFirstBoot() + { + return false; + } + + public delegate void MyFunction(object source, FileSystemEventArgs e); + + public void ListenOnXMLChanged(MyFunction f) + { + // not implemented in the portable version + } + + private void Save() + { + if (isInstalled) + { + Properties.Settings.Default.Save(); + } + else + { + AppConfiguration.Save(); + } + } + } +} diff --git a/src/Portable/NAudio.dll b/src/Portable/NAudio.dll new file mode 100644 index 0000000..c18ba32 Binary files /dev/null and b/src/Portable/NAudio.dll differ diff --git a/src/Properties/AssemblyInfoPortable.cs b/src/Properties/AssemblyInfoPortable.cs new file mode 100644 index 0000000..8e60479 --- /dev/null +++ b/src/Properties/AssemblyInfoPortable.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("eSheep")] +[assembly: AssemblyDescription("Remembering the old 16-bit eSheep")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Adriano")] +[assembly: AssemblyProduct("eSheep")] +[assembly: AssemblyCopyright("Copyright © 2015-2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f90a0241-18eb-4728-9e35-b8f705485cb6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/src/Properties/Resources.Designer.cs b/src/Properties/Resources.Designer.cs index 24d76fc..a8382da 100644 --- a/src/Properties/Resources.Designer.cs +++ b/src/Properties/Resources.Designer.cs @@ -78,7 +78,7 @@ internal static System.Drawing.Bitmap about { ///<title>eSheep 64bit</title> ///<petname>eSheep</petname> ///<version>1.8</version> - ///<info>Open source project for the lovely eSheep.[br] For more info, visit my webpage [link:https://esheep.petrucci.ch] [br]Image rip [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. + ///<info>Open source project for the lovely eSheep.[br] For more info, visit my webpage [link:https://esheep.petrucci.ch] [br]Image r [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. /// internal static string animations { get { @@ -100,7 +100,7 @@ internal static string animations { /// <xsd:sequence> /// <xsd:element name='header' minOccurs='1' maxOccurs='1'> /// <xsd:annotation> - /// <xsd:documentation>Main informations about this Pet.</x [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. + /// <xsd:documentation>Main informations about this Pet.< [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. /// internal static string animations1 { get { diff --git a/src/Properties/Settings.Designer.cs b/src/Properties/Settings.Designer.cs new file mode 100644 index 0000000..2ba451a --- /dev/null +++ b/src/Properties/Settings.Designer.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace DesktopPet.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Images { + get { + return ((string)(this["Images"])); + } + set { + this["Images"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Icon { + get { + return ((string)(this["Icon"])); + } + set { + this["Icon"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string xml { + get { + return ((string)(this["xml"])); + } + set { + this["xml"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0.3")] + public float Volume { + get { + return ((float)(this["Volume"])); + } + set { + this["Volume"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool WinForeground { + get { + return ((bool)(this["WinForeground"])); + } + set { + this["WinForeground"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1")] + public int AutostartPets { + get { + return ((int)(this["AutostartPets"])); + } + set { + this["AutostartPets"] = value; + } + } + } +} diff --git a/src/Properties/Settings.settings b/src/Properties/Settings.settings new file mode 100644 index 0000000..c21a31a --- /dev/null +++ b/src/Properties/Settings.settings @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + 0.3 + + + False + + + 1 + + + False + + + \ No newline at end of file diff --git a/src/Properties/Settings1.Designer.cs b/src/Properties/Settings1.Designer.cs new file mode 100644 index 0000000..7a75a0d --- /dev/null +++ b/src/Properties/Settings1.Designer.cs @@ -0,0 +1,110 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace DesktopPet.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Images { + get { + return ((string)(this["Images"])); + } + set { + this["Images"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Icon { + get { + return ((string)(this["Icon"])); + } + set { + this["Icon"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string xml { + get { + return ((string)(this["xml"])); + } + set { + this["xml"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0.3")] + public float Volume { + get { + return ((float)(this["Volume"])); + } + set { + this["Volume"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool WinForeground { + get { + return ((bool)(this["WinForeground"])); + } + set { + this["WinForeground"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1")] + public int AutostartPets { + get { + return ((int)(this["AutostartPets"])); + } + set { + this["AutostartPets"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Multiscreen { + get { + return ((bool)(this["Multiscreen"])); + } + set { + this["Multiscreen"] = value; + } + } + } +} diff --git a/src/Settings.cs b/src/Settings.cs new file mode 100644 index 0000000..865ea72 --- /dev/null +++ b/src/Settings.cs @@ -0,0 +1,28 @@ +namespace DesktopPet.Properties { + + + // Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse: + // Das SettingChanging-Ereignis wird ausgelöst, bevor der Wert einer Einstellung geändert wird. + // Das PropertyChanged-Ereignis wird ausgelöst, nachdem der Wert einer Einstellung geändert wurde. + // Das SettingsLoaded-Ereignis wird ausgelöst, nachdem die Einstellungswerte geladen wurden. + // Das SettingsSaving-Ereignis wird ausgelöst, bevor die Einstellungswerte gespeichert werden. + internal sealed partial class Settings { + + public Settings() { + // // Heben Sie die Auskommentierung der unten angezeigten Zeilen auf, um Ereignishandler zum Speichern und Ändern von Einstellungen hinzuzufügen: + // + // this.SettingChanging += this.SettingChangingEventHandler; + // + // this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { + // Fügen Sie hier Code zum Behandeln des SettingChangingEvent-Ereignisses hinzu. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { + // Fügen Sie hier Code zum Behandeln des SettingsSaving-Ereignisses hinzu. + } + } +} diff --git a/src/dotNet/ContextMenus.cs b/src/dotNet/ContextMenus.cs index da57c24..2ee10b8 100644 --- a/src/dotNet/ContextMenus.cs +++ b/src/dotNet/ContextMenus.cs @@ -26,7 +26,14 @@ class ContextMenus : IDisposable /// Close Menu Item: if another pet was downloaded, the text of this item will change. /// static ToolStripMenuItem closeSheepMenuItem; - + +#if PORTABLE + /// + /// Install functions and form. + /// + Install installForm; +#endif + /// /// A value to set in the About dialog: author. /// @@ -44,7 +51,13 @@ class ContextMenus : IDisposable /// static string info; +#if PORTABLE + LocalData MyData = new LocalData(); + bool isAboutLoaded = false; + bool isOptionLoaded = false; +#else LocalData.LocalData MyData = new LocalData.LocalData(); +#endif /// /// Creates this instance for the tray icon. @@ -75,7 +88,22 @@ public ContextMenuStrip Create() // Item: Separator. sep = new ToolStripSeparator(); menu.Items.Add(sep); - + +#if PORTABLE + // Create install class + installForm = new Install(); + + // Item: Install. + item = new ToolStripMenuItem(); + if (!Program.IsApplicationInstalled()) + item.Text = "&Install application..."; + else + item.Text = "Repair/&Uninstall..."; + item.Click += new EventHandler(InstallApplication); + item.Image = installForm.Icon.ToBitmap(); + menu.Items.Add(item); +#endif + // Item: About. item = new ToolStripMenuItem(); item.Text = "A&bout"; @@ -147,7 +175,20 @@ void AddNewSheep_Click(object sender, EventArgs e) //Process.Start("explorer", null); Program.Mainthread.AddSheep(); } - + + +#if PORTABLE + /// + /// Open the window form to install this application on the computer. + /// + /// The source of the event. + /// The instance containing the event data. + void InstallApplication(object sender, EventArgs e) + { + installForm.ShowInstallation(); + } +#endif + /// /// Handles the Click event of the About control. Open a dialog if no other dialog is still opened. /// @@ -155,7 +196,22 @@ void AddNewSheep_Click(object sender, EventArgs e) /// The instance containing the event data. void About_Click(object sender, EventArgs e) { +#if PORTABLE + if (isOptionLoaded) + { + + } + else if (!isAboutLoaded) + { + isAboutLoaded = true; + AboutBox box = new AboutBox(); + box.FillData(author, title, version, info); + box.ShowDialog(); + isAboutLoaded = false; + } +#else OpenOptionWindow("xamlesheep://about"); +#endif } /// @@ -165,9 +221,12 @@ void About_Click(object sender, EventArgs e) /// The instance containing the event data. void Help_Click(object sender, EventArgs e) { - //FormHelp help = new FormHelp(); - //help.Show(); +#if PORTABLE + FormHelp help = new FormHelp(); + help.Show(); +#else OpenOptionWindow("xamlesheep://help"); +#endif } /// @@ -177,7 +236,20 @@ void Help_Click(object sender, EventArgs e) /// The instance containing the event data. void Options_Click(object sender, EventArgs e) { +#if PORTABLE + if (isAboutLoaded) + { + + } + else if (!isOptionLoaded) + { + isOptionLoaded = true; + Program.OpenOptionDialog(); + isOptionLoaded = false; + } +#else OpenOptionWindow("xamlesheep://options"); +#endif } /// @@ -198,7 +270,12 @@ void Exit_Click(object sender, EventArgs e) /// public void Dispose() { - +#if PORTABLE + if (installForm != null) + { + installForm.Dispose(); + } +#endif } } } \ No newline at end of file diff --git a/src/dotNet/Portable/AboutBox.Designer.cs b/src/dotNet/Portable/AboutBox.Designer.cs new file mode 100644 index 0000000..80594d9 --- /dev/null +++ b/src/dotNet/Portable/AboutBox.Designer.cs @@ -0,0 +1,427 @@ +namespace DesktopPet +{ + partial class AboutBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.button_ok = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.button2 = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label6 = new System.Windows.Forms.Label(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.label10 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label_author = new System.Windows.Forms.Label(); + this.label_title = new System.Windows.Forms.Label(); + this.label_version = new System.Windows.Forms.Label(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.flowLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.SuspendLayout(); + // + // button_ok + // + this.button_ok.Location = new System.Drawing.Point(83, 437); + this.button_ok.Name = "button_ok"; + this.button_ok.Size = new System.Drawing.Size(92, 27); + this.button_ok.TabIndex = 0; + this.button_ok.Text = "&Ok"; + this.button_ok.UseVisualStyleBackColor = true; + this.button_ok.Click += new System.EventHandler(this.button_ok_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Location = new System.Drawing.Point(65, 5); + this.label1.Margin = new System.Windows.Forms.Padding(3, 5, 3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(266, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Original concept and artwork by Tatsutoshi Nomura"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.Location = new System.Drawing.Point(65, 20); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(266, 13); + this.label2.TabIndex = 2; + this.label2.Text = "C# Application code by Adriano Petrucci"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // pictureBox1 + // + this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.esheep; + this.pictureBox1.Location = new System.Drawing.Point(9, 3); + this.pictureBox1.Name = "pictureBox1"; + this.tableLayoutPanel1.SetRowSpan(this.pictureBox1, 2); + this.pictureBox1.Size = new System.Drawing.Size(44, 46); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Location = new System.Drawing.Point(3, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(328, 13); + this.label3.TabIndex = 4; + this.label3.Text = "System Tray implementation by Sergi Fumanya Grunwaldt"; + this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Top; + this.label4.Location = new System.Drawing.Point(3, 55); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(328, 13); + this.label4.TabIndex = 5; + this.label4.Text = "For more information, please visit:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel1.Location = new System.Drawing.Point(3, 70); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(328, 13); + this.linkLabel1.TabIndex = 6; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "http://esheep.petrucci.ch"; + this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(194, 437); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(92, 27); + this.button2.TabIndex = 7; + this.button2.Text = "&Cancel"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Dock = System.Windows.Forms.DockStyle.Top; + this.label5.Location = new System.Drawing.Point(3, 85); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(328, 13); + this.label5.TabIndex = 8; + this.label5.Text = "Open Source project is hosted on:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel2.Location = new System.Drawing.Point(3, 98); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(328, 13); + this.linkLabel2.TabIndex = 9; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "https://github.com/Adrianotiger/desktopPet"; + this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel1); + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel2); + this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel3); + this.flowLayoutPanel1.Location = new System.Drawing.Point(12, 4); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(337, 427); + this.flowLayoutPanel1.TabIndex = 10; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.58108F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 81.41892F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(334, 57); + this.tableLayoutPanel1.TabIndex = 4; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.label11, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.linkLabel3, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.label4, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.label6, 0, 7); + this.tableLayoutPanel2.Controls.Add(this.linkLabel1, 0, 4); + this.tableLayoutPanel2.Controls.Add(this.label5, 0, 5); + this.tableLayoutPanel2.Controls.Add(this.linkLabel2, 0, 6); + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 66); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 8; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(334, 180); + this.tableLayoutPanel2.TabIndex = 6; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(3, 163); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(328, 17); + this.label6.TabIndex = 9; + this.label6.Text = "Informations about the current pet:"; + this.label6.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.46707F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.53294F)); + this.tableLayoutPanel3.Controls.Add(this.label10, 0, 3); + this.tableLayoutPanel3.Controls.Add(this.label7, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.label8, 0, 2); + this.tableLayoutPanel3.Controls.Add(this.label9, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.label_author, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.label_title, 1, 1); + this.tableLayoutPanel3.Controls.Add(this.label_version, 1, 2); + this.tableLayoutPanel3.Controls.Add(this.richTextBox1, 1, 3); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 252); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 4; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.Size = new System.Drawing.Size(334, 175); + this.tableLayoutPanel3.TabIndex = 7; + // + // label10 + // + this.label10.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(3, 111); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(28, 13); + this.label10.TabIndex = 13; + this.label10.Text = "Info:"; + // + // label7 + // + this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(3, 3); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(41, 13); + this.label7.TabIndex = 10; + this.label7.Text = "Author:"; + // + // label8 + // + this.label8.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(3, 43); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(45, 13); + this.label8.TabIndex = 11; + this.label8.Text = "Version:"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(3, 23); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(30, 13); + this.label9.TabIndex = 12; + this.label9.Text = "Title:"; + // + // label_author + // + this.label_author.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_author.AutoSize = true; + this.label_author.Location = new System.Drawing.Point(58, 3); + this.label_author.Name = "label_author"; + this.label_author.Size = new System.Drawing.Size(43, 13); + this.label_author.TabIndex = 14; + this.label_author.Text = "Adriano"; + // + // label_title + // + this.label_title.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_title.AutoSize = true; + this.label_title.Location = new System.Drawing.Point(58, 23); + this.label_title.Name = "label_title"; + this.label_title.Size = new System.Drawing.Size(70, 13); + this.label_title.TabIndex = 15; + this.label_title.Text = "eSheep 64bit"; + // + // label_version + // + this.label_version.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label_version.AutoSize = true; + this.label_version.Location = new System.Drawing.Point(58, 43); + this.label_version.Name = "label_version"; + this.label_version.Size = new System.Drawing.Size(22, 13); + this.label_version.TabIndex = 16; + this.label_version.Text = "1.0"; + // + // richTextBox1 + // + this.richTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(220))))); + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Location = new System.Drawing.Point(58, 63); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(273, 109); + this.richTextBox1.TabIndex = 17; + this.richTextBox1.Text = ""; + this.richTextBox1.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBox1_LinkClicked); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Dock = System.Windows.Forms.DockStyle.Top; + this.label11.Location = new System.Drawing.Point(3, 25); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(328, 13); + this.label11.TabIndex = 10; + this.label11.Text = "Sounds played through NAudio (Open Source):"; + this.label11.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Dock = System.Windows.Forms.DockStyle.Top; + this.linkLabel3.Location = new System.Drawing.Point(3, 40); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(328, 13); + this.linkLabel3.TabIndex = 11; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "https://naudio.codeplex.com/"; + this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // AboutBox + // + this.AcceptButton = this.button_ok; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(361, 476); + this.Controls.Add(this.flowLayoutPanel1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button_ok); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutBox"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "About eSheep / deskopPet - Version XXX"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.flowLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button_ok; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label_author; + private System.Windows.Forms.Label label_title; + private System.Windows.Forms.Label label_version; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.LinkLabel linkLabel3; + } +} \ No newline at end of file diff --git a/src/dotNet/Portable/AboutBox.cs b/src/dotNet/Portable/AboutBox.cs new file mode 100644 index 0000000..da3393b --- /dev/null +++ b/src/dotNet/Portable/AboutBox.cs @@ -0,0 +1,105 @@ +using System; +using System.Diagnostics; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Information about application and current XML animation file + /// + public partial class AboutBox : Form + { + /// + /// Initialize form and get application version + /// + public AboutBox() + { + InitializeComponent(); + + string version = ""; + version = Application.ProductVersion; + Text = Text.Replace("XXX", version); + } + + /// + /// Called from parent to fill all labels on the form + /// + /// Author of the XML animation + /// Title of the animation (got from XML file) + /// Animation version (got from XML file) + /// Animation infos (got from XML file). Contains author and copyright information. + /// In the info, you can't use HTML tags. But you can use: + /// [br] to add a line break + /// [link:http:/...] to add a line break + /// + public void FillData(string author, string title, string version, string info) + { + while (info.IndexOf("[br]") > 0) + { + info = info.Replace("[br]", "\n"); + } + while(info.IndexOf("[link:")>0) + { + int iPos = info.IndexOf("[link:"); + string link = info.Substring(iPos + 6, info.IndexOf("]", iPos + 5) - iPos - 6); + info = info.Substring(0, iPos) + link + info.Substring(info.IndexOf("]", iPos+5) + 1); + } + + label_author.Text = author; + label_title.Text = title; + label_version.Text = version; + richTextBox1.Text = info; + } + + /// + /// OK was pressed. Close About dialog. + /// + /// Caller object + /// Events + private void button_ok_Click(object sender, EventArgs e) + { + Close(); + } + + /// + /// http://esheep.petrucci.ch was pressed, a webpage with this link will be opened + /// + /// Caller object + /// Information about the link click event + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("http://esheep.petrucci.ch"); + } + + /// + /// Cancel was pressed. Synchronize pets and close about dialog. + /// + /// Caller object + /// Click events + private void button2_Click(object sender, EventArgs e) + { + Program.Mainthread.SyncSheeps(); + Close(); + } + + /// + /// https://github.com/Adrianotiger/desktopPet was pressed, a webpage with this link will be opened + /// + /// Caller object + /// Information about the link click event + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("https://github.com/Adrianotiger/desktopPet"); + } + + /// + /// Link on the richTextbox was pressed. Open it in the browser. + /// + /// Caller as object + /// Information about the link click event + private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) + { + Process.Start(e.LinkText); + } + } +} diff --git a/src/dotNet/Portable/AboutBox.resx b/src/dotNet/Portable/AboutBox.resx new file mode 100644 index 0000000..7189a2e --- /dev/null +++ b/src/dotNet/Portable/AboutBox.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////ASAnMplCYpn/CA8awwAAAB////8B////AQkQ + Hq1CV3r/FytMzf///wH///8B////Af///wH///8B////Af///wEqOlWZYZz//x85Zv8AAAAzAAAAPQAA + AGcSIj3/XIXM/ydIf83///8B////Af///wH///8B////Af///wEAAAAVNVJV1z1eYf81UlT/NVJU/1aE + iP9ooKX/XpGV/z1eYf86WVzrHCsscf///wH///8B////AQAAAFMnSH/NLEZS4Wigpf9rpar/Z56j/2ee + o/9zsbb/bqqv/26qr/9ooKX/c7G2/2efpP8iNDZ7////AQsUJElFetb/VZP//zpfgP9zsrj/b6uw/3S0 + uv9+x87/drm//4LQ1/99xcv/fcXL/4HO1f99xcv/crzC/xQjJEk5WZDrcKX//3On//9hk+r/SnaL/3q8 + wv+E1dz/h97m/4vo8P+J4+v/jOry/4HO1f+F19//jOry/4LQ1/87XF/DR2WZ/5K7//+hxP//krv//0pr + jP+BztX/h97m/4vq8v+I5Oz/j/L7/4/x+v+P8fr/j/H6/4vo8P+R9v//U4qP/1pqhdekxf//ocT//6HE + //94lL//eMzT/3S/xf9PUG//Rx9T/0pgcf+K5/D/kfb//5H2//+R9v//kfb//2KUmf8AAAAVb3+ZzYOe + zP9qbXL/dICS/1p1lP81GT7/UwBT/1MAU/99AH3/UW6A/4/y+/+R9v//kfb//5n2//98lpn/////AQAA + ABUSFBjXPT09/7Ozs/99msz/RW+3/yILMf91AHX/XgBe/3Imef+A19//kfb//5H2///F+v//fISF1/// + /wH///8BAAAAhSgoKP+SmaX/lLTq/0BOZv9abY7/Qx9S/0UARf+ZMJn/dMTM/5H2//+/+f//2t/g/zg4 + OF3///8B////AQAAAB9ncoXrmrjq/2Zll/83ADf/cABw/34Afv9iAGL/qFix/3/Y4P+W9v//0Pv//7Gx + sesAAAAf////Af///wH///8BOD5Ij3aRmf9iRHj/vDq8/4Engf+KK4r/3FLc/1Jsgv+W9v//t/n///L+ + //9xcXG3////Af///wH///8B////AQAAABWCm53XnOTq/3Bsk/+TRJP/dyt3/2pnjf+r5er/3/z//+Tq + 6v+FhYXXAAAAFf///wH///8B////Af///wH///8BAAAAFWBwcbecyMz/kMfM/5DHzP+tycz/m6Gi4Soq + KnsAAABT////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAMwAAADMAAAAzAAAAMwAA + ABX///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEAAAAzDA8U/xojM/8RHTP/AAAA1wAA + ADMAAAAV////Af///wH///8B////Af///wEAAAAzAAAAhRMXHv8ZIjP/DBco/wAAAJn///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAADNATmb/hrP//1aU + //8GCxT/EiI9/wAAAGf///8B////Af///wH///8B////AQYLFP8SIj3/YHWZ/32t//8/c8z/AAAAmf// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAM0BO + Zv+Gs///VpT//w8cM/8vVpn/AAAAZ////wH///8B////Af///wH///8BDxwz/y9Wmf9gdZn/fa3//z9z + zP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAAAzJj1m/1qX//9QkP//Dxwz/y9Wmf8AAABn////AQAAACkAAADNAAAAzQAAAM0DBQr/CREe/zlc + mf9Ylf//P3PM/wAAAJn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQsREl0UHyD/FB8g/xQfIP8UHyD/DBIT/wwSE/8UHyD/JTg6/2eeo/9nnqP/Z56j/2ee + o/9Ga27/FB8g/xQfIP8UHyD/EhscrQAAADMAAAAL////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEAAABTNVJU/2eeo/9nnqP/Z56j/2eeo/9OeHv/Tnh7/2eeo/9nnqP/Z56j/2ul + qv9ooKX/Z56j/2eeo/9nnqP/Z56j/2eeo/9OeHv/KT9B/w8YGYX///8B////Af///wH///8B////Af// + /wH///8B////AQAAAJkAAACZAAAAmTVSVetnnqP/Z56j/2eeo/9nnqP/Z56j/2eeo/9nnqP/Z56j/3Kw + tf9ysLX/dre9/2qkqf9nnqP/Z56j/2eeo/9nnqP/aaGm/3Kwtf9rpar/Rmtu/wAAAHv///8B////Af// + /wH///8B////AQAAAHsAAADNP3PM/z9zzP8ZLlH/Un6C/2eeo/9tp6z/dra7/2qip/9nnqP/Z56j/2ee + o/9nnqP/baiu/3q8wv9wrbP/Z5+k/3a2u/92trv/baes/2eeo/92t73/erzC/3e4vv92trv/RGls9QAA + AHv///8B////Af///wEAAABnL1aZ/0+Q//9PkP//T5D//x85Zv9ekZb/dre9/3i5v/9tp6z/aqKn/2qk + qf9wrbP/erzC/3q8wv9qpKn/cK2z/3q8wv99xcv/fcXL/3q8wv96vML/fcXL/33Fy/96vML/erzC/3q8 + wv9+x87/S3d7/wAAAGf///8BAAAAFRMkP6M8bcH/W5f//16Z//9Ylf//Mlyj/zdXYv9qpKn/dbS6/26q + r/93uL7/erzC/33Fy/+D09r/g9Pa/4HO1f99xcv/g9Pa/47v9/+F19//erzC/3q8wv+F19//ju/3/3/J + 0P9/ydD/g9Pa/5H2//9uusH/JD0/owAAABUNGS2tRXPB/2We//9xpv//daj//26k//9lnv//OmSt/zlY + Wv96vML/erzC/3q8wv96vML/fcXL/4PT2v+D09r/j/H6/4vo8P+R9v//hdrh/4fe5v+H3ub/h97m/3zC + yf+F2uH/jez1/43s9f+F2uH/g9Pa/4PT2v80VFf/AAAAMxUgM/9wpf//daj//3Wo//91qP//daj//3Wo + //9upP//N2Oq/z9hZP96vML/erzC/4zq8v+M6vL/jOry/4zq8v+C0Nf/kfb//4Xa4f+J4+v/kfb//5H2 + //+F2uH/er7E/3q+xP+F2uH/kfb//43s9f+I4en/erzC/2ulqv8XIyTXFyEz/3Wo//96q///mb///6HE + //+hxP//i7b//32t//9dhsz/MEtN/3q8wv+I4en/fsfO/37Hzv+J4+v/kfb//5H2//+R9v//kfb//5H2 + //+R9v//iePr/4nj6/+R9v//kfb//4nj6/9+x87/jez1/5H2//+R9v//hdrh/xknKf8XITP/fKz//5a9 + //+hxP//ocT//6HE//+hxP//ocT//2uPzP8wS03/f8nQ/4PT2v+R9v//kfb//5H2//+D2eH/gNLa/4DS + 2v+K5/D/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//HTEz/yEn + M/+kxf//ocT//6HE//+hxP//ocT//6HE//+hxP//lLTq/01kev9qsbj/kfb//5H2//+G4Oj/d8HH/zhZ + XP8pP0H/KT9B/1iNkf93wcf/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //8dMTP/FhgcXWRwhP+ty///ocT//6HE//+hxP//ocT//6HE//+hxP//YHWZ/1eTmf+R9v//b6+1/0t2 + ef8UHyD/dgZ5/1wAXP9wAHD/RRJM/xQfIP92vcT/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //+R9v//s/j//ygyM/////8BAAAAU2dyheumw/T/ocT//5S06v9SXXD/Kioq/zpASf+NrOD/U2WE/0hs + cv9GZWz/OwA7/2UAZf9cAFz/ZgBm/4MAg/9zAHP/fQB9/xstL/+L6/P/kfb//5H2//+R9v//kfb//5H2 + //+R9v//kfb//5b2///B+v//KzIz/////wH///8BAAAAXWdyheugvOr/OUZb/1tbW//S0tL/s7Oz/1dg + bv+HpNb/RVyE/w0ADf9FAEX/RgBG/0cAR/8uAC7/NwA3/28Ab/+WAJb/RRJM/1iNkf+K5/D/kfb//5H2 + //+R9v//kfb//5H2//+R9v//rfj//9n8//8rMjP/////Af///wH///8BAAAAUz9GUf8AAAD/AAAA/1FR + Uf/k5OT/enp6/2B1mf+Su///RmSZ/yo8W/8qACr/RwBH/5EAkf9vAG//VQBV/2oAav9wAHD/KT9B/4DS + 2v+R9v//kfb//5H2//+R9v//kfb//5n2///H+v//5v3//y8yM/////8B////Af///wH///8BAAAAXQAA + AP96enr/KCgo//T09P96enr/YHWZ/6HE//9WlP//TYfq/xkuUf8AAAD/PQA9/5YAlv8zADP/hACE/60T + rf+CR4f/X6Cm/5H2//+R9v//kfb//5H2//+R9v//zfv//+X8//+BhIT/HBwcXf///wH///8B////Af// + /wEAAAAzAAAA/wAAAP8oKCj/7Ozs/25xdv9tha3/ocT//yAnM/8gJzP/bYWt/4ek1v9nfaP/LgAu/3MA + c/8XABf/jxiP/5lJmf9Xk5n/kfb//5H2//+R9v//mfb//837///m/f//6urq/1xcXOEAAAAp////Af// + /wH///8B////AQAAAB8AAADDAAAA/3p6ev+Hio7/Z32j/6HE//+hxP//YHWZ/2B1mf9gdZn/Exce/y4A + Lv9JAEn/cwBz/xcAF/+jGKP/mUmZ/1eTmf+R9v//kfb//5H2//+8+f//2fz///////+ZmZn/AAAAZ/// + /wH///8B////Af///wH///8B////AQAAAGdHT1v/d4SZ/22Frf+hxP//ocT//1NlhP8NAA3/RQBF/1wA + XP9MAEz/kQCR/3MAc/9JAEn/XwBf/+ZS5v+ZSZn/V5OZ/5H2//+R9v//kfb//7z5///Z/P///////5mZ + mf8AAABn////Af///wH///8B////Af///wH///8BAAAAFSMmLa2nuNb/udP//6HE//9TZYT/UAdT/04A + Tv87ADv/mQCZ/38Af/+HAIf/bABs/18AX/+CAIL/1mbW/01dcP+F4ur/kfb//5H2//+o9///0/v//9n8 + ///W1tb/LS0trQAAABX///8B////Af///wH///8B////Af///wH///8BAAAAe4SSqvWIlq3/JTEz/wsT + FP+bE5v/mRiZ/6dJp/8sDiz/JgQm/yYEJv95NXn/83Dz/84rzv9PCVP/S3+E/5H2//+R9v//k/b//7b5 + ///d/P//+P7//8zMzP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAzXCD + hP+8+f//XJ2j/4ZOjv/aP9r/1knW/9ZJ1v/aP9r/rRit/91c3f+7P7v/83Dz/x0xM/+R9v//kfb//6j3 + //+2+f//3/z///X+////////hYWF6wAAAF3///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAABTcIOE/837//+i9///Yqet/2YwZv+MOoz/6Gbo//96//+PGI///3r//4Ewgf9aJ1r/Yqet/6L3 + //+8+f//0/v//+/9///1/v///////4SEhP8AAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEYHBxdcIOE/9D7//+c9v//dMTM/1p/jv8zGDP/Mxgz/xwEHP8zGDP/Wn+O/3TE + zP/K+v//3Pz///f+///3/v///////62trf8zMzP/HBwcXf///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAABTcYOF663JzP/N+///n/f//5/3//+f9///n/f//5/3 + ///B+v//3/z//9zy9P/MzMz/XFxc4QAAAM0AAADNAAAAe////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAABdAAAAmYKXmf+Cl5n/gpeZ/4KX + mf+Cl5n/gpeZ/4KXmf+UmJn/hYWF6wAAAJkAAAA9////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAZwAA + AGcAAABnAAAAZwAAAGcAAABnAAAAZwAAAGcAAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/src/dotNet/Portable/FormHelp.Designer.cs b/src/dotNet/Portable/FormHelp.Designer.cs new file mode 100644 index 0000000..3939aa7 --- /dev/null +++ b/src/dotNet/Portable/FormHelp.Designer.cs @@ -0,0 +1,65 @@ +namespace DesktopPet +{ + partial class FormHelp + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHelp)); + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(0, 0); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(721, 430); + this.webBrowser1.TabIndex = 0; + this.webBrowser1.Url = new System.Uri("http://esheep.petrucci.ch/Help.html", System.UriKind.Absolute); + // + // FormHelp + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(721, 430); + this.Controls.Add(this.webBrowser1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.Name = "FormHelp"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Help"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser1; + } +} \ No newline at end of file diff --git a/src/dotNet/Portable/FormHelp.cs b/src/dotNet/Portable/FormHelp.cs new file mode 100644 index 0000000..67cd0ee --- /dev/null +++ b/src/dotNet/Portable/FormHelp.cs @@ -0,0 +1,18 @@ +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Help Form (simple form with a Browser component, directing to eheep.petrucci.ch to display a webpage. + /// + public partial class FormHelp : Form + { + /// + /// Constructor. Initialize components. + /// + public FormHelp() + { + InitializeComponent(); + } + } +} diff --git a/src/dotNet/Portable/FormHelp.resx b/src/dotNet/Portable/FormHelp.resx new file mode 100644 index 0000000..4f9aba6 --- /dev/null +++ b/src/dotNet/Portable/FormHelp.resx @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAABAQAAABACAAaAQAAN4lAAAgIAAAAQAgAKgQAABGKgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAEgsAABILAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAAihYAAIkV + AACIEwAAiBIAAIcRAACGEAAAhQ4AIoMLAF+BCACPfwYAtoAHANSDCQDohAoA8IMJAPCCBwDsfwMA23wA + AMB9AACefgEAc38CADl/AgAGfwIAAH8BAAB/AQAAfgEAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwa + AACKGAAAihYAAIkVAACIEwAAiBIAAYYQAEeCCwCiggsA8owVA/+bJQr/pzEP/7M+E/+8Rxb/v0kW/75I + FP+7RRP/sjoP/6YtC/+bIQf/ixAD/38CAPx7AADJfgEAZn8BABJ/AQAAfgEAAH4AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0c + AACNHAAAjRwAAIwaAACKGAAAihYAAIkVAACIEgA3gw4As4YQAP+bJgv/tkMX/9BfI//XZiX/2mkl/9ln + JP/YZSL/1mMg/9VhH//UXx3/1F4b/9NdGf/PWBb/yVIT/7U8Df+bHwb/hAcB/3sAANp+AABhfgEABX4A + AAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0c + AACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAAihYACIcTAH+GEAD2mykL/8RUIP/bbSv/33At/9pr + Kv/WZiT/0F8e/8lYF//FVBP/wlEQ/8FPD//ATxD/wlAR/8VSE//KVRX/zVcW/9BZFf/NVhP/vkUO/5of + Bv+BBAH/ewAAu34AACh+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP// + /wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIwaAACKGAAmhhIAwpAdBf/AUSD/3nEw/+J1 + Mv/cby3/0mIg/8VSD/+8SQX/t0QB/7NCAP+xQAD/rz8A/60+AP+sPQD/qz0A/6o9AP+rPQL/sUIG/7xK + Df/JUhL/zlYU/8xUEf+7Qgz/kxcE/3oAAOt9AABffgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAP// + /wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRwAAIsZADOGEwDcmSgK/9Rn + Lf/lejb/4HU0/9ZmI//HUgz/vUgA/7pEAP+5RQD/t0MA/7ZAAP+1PgD/sz8A/7BAAP+vQAD/rj8A/6s+ + AP+qPQD/pzoA/6U6AP+qPQP/ukgL/8pTE//NVRL/yE4P/50iBv98AAD/fQAAb34AAAB+AAAAfgAAAH4A + AAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0cAACNHAAAjRwAAI0cAACNHAAAjRsAL4YU + AOKgMA7/3HEz/+d9Ov/gdTT/0F0W/8JKAf+/SAD/v0gA/71IAP+7RQD/xksA/9dsIP/dgDz/1GcY/75E + AP+wPwD/r0AA/64/AP+sPgD/qj0A/6k7AP+mOgD/ozkA/60/Bf/CTQ//zFMS/8pRD/+mKwf/fQAA+n0A + AGd+AAAAfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI0dAACNHQAAjR0AAI4d + AACOHQAaiBcAzqQ1Ef/hdzj/6IA+/95yLv/OVw3/xEoA/8NLAP/DSwD/wUoA/75HAP/LUwX/7baM//rz + 7f/49vX/+u7l/+mjcP/CSwL/sD8A/69AAP+uPwD/rD4A/6s9AP+pPAD/pjsA/6M5AP+lOgL/uUcL/8tS + Ef/LUw//pSkH/3sAAPh9AABZfgAAAH4AAAB+AAAAfgAAAP///wD///8A////AP///wD///8A////AI4e + AACOHgAAjh4AAI4eAAKKGgCznS8M/+N7O//rhEH/4nYz/81UB//ITAD/yE4A/8ZNAP/FTAD/wkoA/8NG + AP/mn2r//P///+rt7//o6uv/7PDz//3////ehUX/tj4A/7BAAP+vQAD/rj8A/6w+AP+rPQD/qTwA/6c7 + AP+kOQD/ojgA/7lHCv/LUhH/ylEP/50hBf96AADxfgAAMX4AAAB+AAAAfgAAAP///wD///8A////AP// + /wD///8A////AI8gAACPIAAAjyAAAI0eAG2OHgH/0mkx/++JRf/mfDn/0lkL/8xOAP/LUAD/yk8A/8hO + AP/GTQD/wkoA/8hOAP/xzK//8/v//+jo6P/p6en/6Ojo//j////qrID/uj4A/7FBAP+yQQD/sEAA/64/ + AP+sPgD/qz0A/6k8AP+nOwD/pDkA/6M5AP+7SAv/y1MS/8ZNDv+OEgP/ewAAxH4BAAR+AQAAfgEAAP// + /wD///8A////AP///wD///8A////AI8hAACPIQAAjyEAFYoaAOe6TyD/74tH/+qDQv/YYhP/zk8A/89R + AP/NUAD/y1AA/8lPAP/HTgD/xUsA/8dLAP/vxab/9v3//+jo6P/q6ur/6enp//r////mpXf/uj4A/7RC + AP+zQgD/sUEA/69AAP+uPwD/rD4A/6o9AP+oPAD/pzsA/6Q5AP+kOQH/wUwP/81VEv+4Pwz/gQQA/34A + AFZ/AQAAfwEAAP///wD///8A////AP///wD///8A////AJAiAACQIgAAjh8Afp0wCv/og0L/74tK/+Bt + Iv/TUgD/0lMA/9BTAP/OUgD/zVAA/8pQAP/KTwD/x00A/8VHAP/Wejr//Pn1//P4/P/s7vD/9vz///rv + 5//QaSP/uEEA/7ZEAP+0QwD/s0IA/7FBAP+vQAD/rj8A/6s+AP+rPQD/qDwA/6c7AP+jOAD/rT8F/8lS + Ev/MVBL/oygI/3wAAN1/AQARfwIAAP///wD///8A////AP///wD///8A////AJEkAACRIwAYjB8A6cli + LP/0kk//6oA7/9hYA//VVAD/1VUA/9JUAP/QUwD/z1IA/81QAP/LUAD/yU8A/8dNAP/FSAD/2YZN//Td + zP/68ev/8tO+/9NzM/+9QwD/uUYA/7hFAP+3RAD/tUMA/7NCAP+xQQD/sEAA/64/AP+sPgD/qj0A/6k8 + AP+nOwD/ozgA/7pIC//OVRT/wEgP/4QHAf9+AQBefwIAAP///wD///8A////AP///wD///8A////AJIl + AACPIgBgmCsG/+iERf/ykU//428g/9hUAP/YVgD/1lYA/9RVAP/SVAD/0FMA/85RAP/NUAD/y1AA/8lP + AP/HTQD/xUsA/8pbDf/MYhf/yVgH/8FHAP+8RwD/vEcA/7pGAP+4RQD/tkQA/7VDAP+zQgD/sUEA/69A + AP+uPwD/rD4A/6o9AP+pPAD/pjoA/6s+A//KUxP/zFQT/5gcBf97AADDfwMABP///wD///8A////AP// + /wD///8A////AJImAAKMHwC6sUga//STUP/wi0f/318J/9tXAP/aWAD/2FcA/9ZWAP/VVQD/0lQA/9BT + AP/OUgD/zVEA/8tQAP/HSgD/z24s//PczP/03s//68Kl/8RPA/+/RgD/vkgA/7xHAP+6RgD/uEUA/7dE + AP+1QwD/s0IA/7FBAP+vQAD/rj8A/6w+AP+rPQD/qDwA/6U5AP+9Sw3/0FgV/7Q6DP9/AgD9fwMANP// + /wD///8A////AP///wD///8A////AJImACOPIgD4z2oy//mZV//rfDD/3VgA/91ZAP/bWQD/2VgA/9hX + AP/WVgD/1FUA/9JUAP/RUwD/z1IA/81RAP/ISQD/0XU3//v9/v/3////897Q/8NQBf/ARwD/v0kA/71I + AP+7RwD/ukYA/7hFAP+3RAD/tUMA/7JCAP+yQQD/sEAA/64/AP+sPgD/qz0A/6Y6AP+yQwb/zVcW/8lR + E/+KDwL/fwIAb////wD///8A////AP///wD///8A////AJEmAFGYLQT/6olJ//aWVP/nbxz/31gA/95a + AP/cWgD/21kA/9lYAP/YVwD/1lYA/9RUAP/TVAD/0FMA/85RAP/KSQD/0HM1//r49//1+/7/8drJ/8NP + A//CSAD/wUkA/75IAP+9SAD/u0cA/7pGAP+4RQD/t0QA/7VDAP+zQgD/sUEA/7BAAP+uPwD/rD4A/6k8 + AP+rPgL/ylUW/85XFv+ZHwb/fAAAnf///wD///8A////AP///wD///8A////AJAlAHWlPQ//9JRS//WU + Uf/mZw//4VsA/99cAP/fWwD/3FoA/9tYAP/ZWAD/11cA/9VVAP/UVAD/0lEA/9BRAP/MTAL/0HM2//r4 + 9//1+/7/8drL/8BNAf/AQwD/xE0E/8RPCf/ASwP/vUgA/7pFAP+5RQD/uEUA/7ZEAP+0QwD/s0IA/7FB + AP+vQAD/rj8A/6w+AP+qPAD/w1AR/9NdGv+lLAr/fAAAv////wD///8A////AP///wD///8A////AI8k + AJqySxr/+JlX//WSTv/mYQb/4lwA/+JdAP/gXAD/3lsA/9xZAP/bWQD/2VYA/9ZTAP/WVwT/2Wcf/913 + Ov/bdjz/0ntF//n29P/19/n//Pbz/+rIsP/epID/ymkt/8RQDv/OXB//zV0h/8ZTEv++SQT/uUUA/7dE + AP+2RAD/tEMA/7NCAP+xQQD/r0AA/64/AP+qPAD/vUsN/9ReG/+yOg//fwQA2////wD///8A////AP// + /wD///8A////AI8kALO6VCH//J9c//WORv/nYAL/5V4A/+NeAP/iXQD/4FwA/95aAP/cVQD/21wH/+B2 + M//kilX/5ZFh/+SPYP/fgk7/0XxH//n39f/y8/T/9PX2//n+///8////+fLs/+O2mf/EXyH/yVUV/9Rk + Lf/OXSL/x1QU/71JBf+3QwD/tkQA/7VDAP+zQgD/sUEA/69AAP+rPQD/u0oL/9ReHP+7RRL/ggcA7P// + /wD///8A////AP///wD///8A////AI8kALm9VyP//aJf//WMQ//pYQH/5l8A/+VfAP/kXgD/4VoA/99Z + AP/jcSf/6JNf/+qdcf/omGr/5pNj/+WQX//ghE//0H1I//v59//z9PX/8fHx//Hx8f/x8fL/9ff4//3/ + ///05dr/ynY//8hUFP/TZCz/0F8l/81aHv/EUBD/uUYC/7VCAP+1QwD/s0IA/7FBAP+uPgD/u0oL/9Rg + Hv++SRX/gwkA8f///wD///8A////AP///wD///8A////AI8mALq9WCP//6Nh//eORf/qYgH/6GAA/+dg + AP/lWwD/5GIK/+qMT//upXr/7aJ4/+udb//qmWv/55Zn/+eTZP/hh1T/zXlF//r39P/8/////P////f7 + /f/z8/P/8vLy//Ly8v/5/v//+O/p/8RnLf/LWRz/0mMq/9BeJf/PXCL/yVQY/7xIBv+2QwD/tEMA/7NC + AP+vPwD/vEsM/9ViH/+/SRb/gwkA8f///wD///8A////AP///wD///8A////AJAnAK+7ViL//6Rh//mU + Tf/sZAL/6mEA/+hcAP/paRL/8J5q//KwiP/wqX3/7qR3/+2hc//rnXD/6Zlr/+iWaP/lkF//xmQo/8l3 + Rv/TkGj/3a2R//He0//+////9vf3//Pz8//z8/P//P///+rOvP+/URH/02Qr/9FiKf/QXyX/z1wh/8xX + G//ASwn/tUMA/7RDAP+xQAD/wE4O/9dlIv+8SBb/gwkA6v///wD///8A////AP///wD///8A////AJIo + AJO0Thv//aJf//ucV//vaAj/610A/+xrFP/zqHb/9beQ//OuhP/xq4D/8Kh8/+6kd//toXT/651v/+mZ + a//olmf/5I9d/9+DT//WdDv/ymIn/79XHP/ZooH//fv6//b39//09PT/9fb3///////Jekr/ylgb/9Rm + Lv/RYSn/z18k/85bIP/NVxz/v0sJ/7VDAP+yQQD/xFMS/9poJP+1PxP/gAcA1////wD///8A////AP// + /wD///8A////AJQrAHGnQRD/+6Be//2hXf/xbg//7mgM//areP/4vpn/9rWM//SxiP/yroT/8ap///Cn + e//upHf/7KFz/+ucb//qmWv/6ZZo/+eUY//mkWH/5o9f/+CEUf/AUxP/26qN//7////19fX/9PT0//7/ + ///bq47/wlER/9ZqM//SZSz/0WEo/89eJP/OWyD/zFYa/71IBv+1QgD/zVsa/9ppJf+pNA//fwYAvP// + /wD///8A////AP///wD///8A////AJUuAEibMwP/75JS//+mZP/1eyP/959g//vGo//5vJX/97mQ//W1 + jP/0soj/8q6E//Grf//wqHz/76d7//Cmef/vonb/7Jxu/+iWZ//mk2P/5Y9e/+SNXP/fgU3/xWo2//r2 + 8//3+fr/9fX1//v+///r1Mb/wVgd/9dsNf/UaTH/0mUs/9BiKP/QXiT/z1sh/8pVGf++Swj/1WQj/9dm + Jf+dJgr/gAgAlP///wD///8A////AP///wD///8A////AJcwABqSKgDy0XE3//+pZP/9qWz//ceh//zE + nv/6wJn/+LyV//e5kP/2tY3/9LKI//KuhP/0r4X/45Ni/81vOf/MbTb/3INQ/+ycb//pl2j/5pNj/+WP + Xv/kjFv/xWMs//Hi2f/6/f7/9/f3//r9/v/z5t7/wVwi/9dvN//WbDX/1Gkx/9JlLP/RYin/0F4k/81a + IP/TXB3/2mkn/9JiI/+OFwT/gwsAZf///wD///8A////AP///wD///8A////AJgxAACTKgCutVEb//+p + aP//xZr//8um//7Hof/8w53/+sCY//i8lP/3uJD/9bWM//e3jv/ZhFH/vms6/9mrkf/Zq5H/xHhM/8hn + L//rnG3/6JZn/+aTYv/nkGD/xWUu/+zYzP/8////+Pj4//v+/v/x49v/wFwk/9lyPP/XcDn/1Ww1/9Rp + MP/SZSz/0WEo/85dJP/wZiD/7m8m/7pKGv+DCwD7hQ4ALP///wD///8A////AP///wD///8A////AJgx + AACXLwBUnTUD//KfZ///zqj//8qk///Kpf/+x6H//MOd//rAmP/5vJX/+buT/+ymef+9ZjT/9Onj//// + /////////Pn3/8aCWv/Td0P/7J1w/+iWZ//nkmL/w2Yx//Pn4f/7/f7/+Pj4//7////lyLf/wFkg/9x4 + Q//Zcz3/13A5/9VsNf/UaTH/0GQs/9pkKP//byP/9W4k/50qDP+CCwC0hg8AAv///wD///8A////AP// + /wD///8A////AJgyAACYMgANkysA2s1sMv//yp3//8yo///Lpv//y6X//seh//zEnf/6wJn//MKb/9uJ + WP/LjWr///////n5+f/5+fn//////+XKu//BYiv/7aBy/+ubbf/lkF7/wm9B//v39v/6+/z/+fn5//// + ///Qm3z/xFof/95+Sf/adkL/2HQ9/9dwOf/VbDX/02gw//JvK///dSn/2F8j/4gTAf+GEABMhxEAAP// + /wD///8A////AP///wD///8A////AJkyAACZMgAAlzAAZ583BP/zpGv//9Cr///Lpv//y6b//8ul//7H + of/8xJ3//sag/9iGVP/Nk3P///////r6+v/6+vr//////+DAr//FaDL/86l9//Cidf/HZS3/zpZ3//// + ///6+vr//Pz9//38/P+6Zzr/03E6/95/S//cekb/2nZB/9hyPf/Ubzn/43A0//94L//5dy//qTgT/4MN + AMmHEgAIhxIAAP///wD///8A////AP///wD///8A////AJkyAACZMgAAmTIADpMsAN7AXiT//8KS///O + q///y6b//8um///Kpf/+x6H//seh/+ehdP+9cUj///////z9/v/6+vr//////9eslP+2Uh//03xM/8Nm + Nf+9b0X/9evm//39/f/7+/z//////9Wqk/+9WCD/4odU/9+ATf/dfkn/23pF/9h2Qf/cdD3/+Xo3//9/ + Nf/OWyT/hxMB/4cSAEiIEwAAiBMAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJgy + AE+VLAD92n9F///Opf//zKn//8um///Lpv//y6X//seh//3GoP/Fbjz/0KGJ///////9/v///f39//fv + 6v/gvq7/2rOh/+XLvv/8+/r//v////z+/v//////5cu//7RUIP/fhFH/44pY/+CEUv/egU7/3H5K/917 + Rf/3fz///4M8/+NwMP+UIgf/hhIAq4kVAACJFAAAiRQAAP///wD///8A////AP///wD///8A////AJkz + AACZMwAAmTMAAJkzAACWMACTojsH/++cYv//z6j//8yo///Lpv//y6b//8ql///KpP/2u5L/u2Ew/9Gj + i//9/Pr///////////////////////////////////////79/f/Wrpr/sVMi/9yDUP/nk2L/44ta/+GI + Vv/fhFL/34FO//WER///iET/8X07/6IzEP+FEQDdihYAG4oWAACKFgAAihYAAP///wD///8A////AP// + /wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAJlC4AvapDDf/0pGv//9Cq///Nqf//y6b//8um///K + pf//y6b/97yV/8NtPf+2aUX/0qaR/+/j3f/38vD/+PTy//fy8P/v4t3/06mU/7ZpRf+7XCr/4Yxb/+qZ + av/mkmL/5I9e/+GLWv/kiVX/94pP//+NTP/4h0T/sUMZ/4USAPOKFwA+ihcAAIoXAACKFwAAihcAAP// + /wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAIZQtAMeqQw7/6pdf///N + pP//zqv//8um///Lpv//yqX//8qk///Hof/moHb/yndK/8FvRP/BdEz/wXVN/8BxSP+/aj7/xmw8/9uH + Wf/vonb/7aBy/+mZav/nlWf/5pJi/+6RXf/7kVf//5NU//GERP+zRBr/iRcA7IoYAE6LFwAAihcAAIoX + AACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + ABiULgC/nzcE/+GHTf//xpf//9Cr///Lp///yqX//8qk//7Iov/+yKL//8eg//q8lP/0son/8a6D//Cr + gf/0r4T/9rCG//Krf//upHj/66Bz/+udb//vmmn/+Zlj//+aYP//mlv/6YBD/6U3Ef+HFQDuixoATIsZ + AACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkz + AACZMwAAmTMAAJkzAACZMwANljAAnpgwAP/HZSv/9614///OpP//zqr//8mk///Hof/+xZ///MKc//vA + mf/5vZb/97qS//a2jv/0son/8q6D//Krf//yqHr/9KV1//uicP//o23//6Jo//uWWP/SaTP/misJ/4kY + ANONHAA6jBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkz + AACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJgxAG6TKwDkqEIN/9p/Rf/4sHz//8ec///L + o///yKH//8Wd///AmP/9vpT//LqR//u4jf/7tIn//LKE//6vgf//rn3//6x4//+qcv/6m2H/3nlA/6xB + Fv+MHQD7ixsAp44eABaNHAAAjBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP// + /wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAblS4AhZUs + APCkPAj/v14o/+ONVf/6rXb//7iF///Akv//xJb//8KT//+/kP//vYz//7aD//+rdf/5n2b/6otR/8Vf + LP+mOhH/kCIA/oscAK+OIAA8jx8AAI4eAACNHAAAjBsAAIsZAACKFwAAihcAAIoXAACKFwAAihcAAP// + /wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + AACZMwAAmTIAAJcyACSWLgBzkikAzpcuAPykOwn/tU8a/8JfKv/KaTP/zm44/85tN//KaDP/wVwp/7VO + Hf+mOw7/likC/4wfAOmNHwCWkCIAP5AiAACPIQAAjx8AAI4eAACNHAAAjBsAAIsZAACKFwAAihcAAIoX + AACKFwAAihcAAP///wD///8A////AP///wD///8A////AJkzAACZMwAAmTMAAJkzAACZMwAAmTMAAJkz + AACZMwAAmTMAAJkzAACZMwAAmTIAAJgyAACYMQAAmDEACJYvADqULQBqkikAmpAmAMePJQDlkCYA8JAl + APCOIwDrjSIA0Y4jAKmQJAB6kSUATZIlABeRJAAAkSMAAJAiAACPIQAAjx8AAI4eAACNHAAAjBsAAIsZ + AACKFwAAihcAAIoXAACKFwAAihcAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///////wAA////////AAD///////8AAP//gAD//wAA//wAAD//AAD/+AAAD/8AAP/g + AAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPwAAAAAHwAA+AAAAAAf + AAD4AAAAAA8AAPAAAAAADwAA8AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAA + AAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAH + AADgAAAAAAcAAPAAAAAABwAA8AAAAAAHAADwAAAAAA8AAPgAAAAADwAA+AAAAAAfAAD8AAAAAD8AAP4A + AAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+AAAAB/wAA/8AAAAP/AAD/8AAAB/8AAP/4AAAf/wAA//4AAH// + AAD//4AB//8AAP///////wAA////////AAD///////8AACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABIL + AAASCwAAAAAAAAAAAACGFQAAhhUAAIgVAQCBDAALgQoBWpEbCcmkMBD0rjkR+q02EPqiKAr1jhIE03oC + AWx3AAASdgAAAHgAAAB6AAAAhhQAAIYVAACCDgAjkh8Js71NIP/QYiD/y1MM/8FFAP++Sgj/wlEN/8FN + Dv+yOAz/ixAEyHMAAC94AAAAegAAAIkaAACCEQAimysP1tdsL//YZRr/wEcE/8hjKf/YkGT/ulEY/6c4 + AP+qPwL/uEoJ/8JLDv+SGAbldgAAM3oAAACIGgAKkyULrdxzNf/aZRb/xEYA/8RHBf/ry7P/+P/+/+Ot + jP+uMwD/rD0A/6U5AP+vQgX/wUoO/4sQA812AAAUix0BRcRdLP/odSb/z08A/8tPAP/GSAD/3594/+/f + 0P/VhVb/tDsA/7FBAP+sPgD/pTkA/7dJCP+yOAz/fAIAapkvDa/mfTr/4mAL/9VUAP/SVQD/yEQA/85m + Kf/lsIn/vkIA/7lEAP+1RAD/skEA/6w9AP+qPgH/wEwP/40SBdKvSh7o84M2/+BYAP/ZVwD/1VEA/89H + AP/ZhVf/9O/p/8lgJP++QQD/u0YB/7RDAP+xQQD/qjwA/8BPDv+iJwv2vFko9PiEMf/iVgD/31kC/+F1 + M//hfkP/35lv//f49v/07uj/36aD/8tYGv/ETg3/tkUC/60+AP+/Tgz/rjUP+r1cKfT7gi3/6F8I/+6X + YP/vqX7/65ts/96NXf/isJP/8OPc//z////epoX/z1kc/8pVGf+1QgL/wVEM/644EPqyThzm/JJE//im + bv/2u5f/8q2B/+qba//jiVb/4H1F/9Z/Tv/17ef/8uTa/89pM//TYCX/x1MW/81cFv+kLw/0nTMHqO+p + df//1bP/+8CY//GsgP/fpIL/3amM/+WUZf/fhE//7NHC//bw7P/Sd0P/0mgu/9hlKf/jZSP/khsHzpIn + AD7KeEr//9m0///Lpv/ppXr/6c/B//b19P/WiFz/24hb//fx7f/nyrn/03E6/9d0Pv/uejj/z1Ed/4IK + AGOQJgAImjIJo+ioev//3Lj/9b6V/96rjv/w5uP/5cq7/+zZ0f/q2tL/1Ide/92BTv/tilD/7HY2/5Mg + CMN9BgARkysAAI0jAB6lQBTL6ah7///euP/2wZr/4KWD/+a7pP/ir5T/2o5k/+yZZ//5oGj/7IFG/6Eu + EN5+CgAtgw8AAJMtAACULgAAjyQAHpwzCa3OfU7/9LyR///Im//9vY7//bWF//+zgP/0nWj/0Gk4/5kq + C7yBDwAogg4AAIMPAACTLQAAky0AAJQrAACOIgAJjyUASqA5Dra3WCrvxGk7+sNmOPq3UibxnTANxIcY + AFmFFAAOiBYBAIIOAACDDwAA4AcAAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIABAADAAwAA4AcAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wCOHgAAjh4AAI4eAACNHAAAixkAAIoXAACHEwAAiBIAAIUN + ABGACABTggkAmIcOA8OPFwXilRwG75QbBu+OFATmhQoCyn8CAKV7AABmfQAAH38BAAB+AQAAfgAAAH0A + AAB9AAAAfgAAAH4BAAB+AQAA////AP///wD///8A////AI4eAACOHgAAjh4AAI0cAACLGQAAihcAAIYS + AASCDABmiRIC0qIuD//AThz/zVsg/9NgIf/UYSD/014d/89ZGv/IUBX/vEMQ/6EmCP+GCQHhegAAhXwA + ABN+AAAAfQAAAH0AAAB+AAAAfgEAAH4BAAD///8A////AP///wD///8Ajh4AAI4eAACOHgAAjRwAAIsZ + AACHFAApiBQBvKg2Ev/SZSn/33Et/9ZmIv/NWxj/w1IQ/75ODP+7Swv/vEwM/8BPDv/HUxL/z1gU/8hP + Ev+kKQj/gwgB23oAAEx9AAAAfQAAAH4AAAB+AQAAfgEAAP///wD///8A////AP///wCOHgAAjh4AAI4e + AACOHAAAhxQAR44bBOjJXCf/5ns3/9hoJP/FUgz/ukYC/7Q+AP+yOAD/sDgA/6w6AP+rPQD/qTwA/6g7 + AP+sPwT/vksN/9BZE//BRg7/ixED+nkAAHN9AAAAfgAAAH4BAAB+AQAA////AP///wD///8A////AI4e + AACOHgAAjh4AAIkXAECUIwjz1mox/+h+Of/QXhf/wUgA/75IAP+8QwD/y1wW/+Wdav/kmWP/xFIQ/689 + AP+tPwD/qz0A/6c7AP+jOQD/rkAG/8hSEP/ITg//kRYE/3kAAG1+AAAAfgEAAH4BAAD///8A////AP// + /wD///8Ajh4AAI4eAACLGwAhkSEF4NtyN//pgTz/zlgN/8ZLAP/FTAD/wUcA/8lUEP/z1bv/8/3///T+ + ///xyan/vUcG/649AP+uPwD/rD4A/6k8AP+jOQD/pToC/8RPDv/ITQ//ixAD+XoAAFB+AQAAfgEAAP// + /wD///8A////AP///wCPIQAAjiAAAIoaAbLJXyv/8YtG/9VeEf/LTAD/y08A/8hOAP/BRAD/1XM0//f7 + +v/o6uz/6O3w//ny6P/JXCD/sDsA/7FAAP+uPwD/rD0A/6k8AP+kOQD/pjsC/8hSEP++RA3/gQUA430A + AA9+AQAA////AP///wD///8A////AJAiAACLHABDqz8V//GOTP/gayH/0FAA/89SAP/NUQD/yVAA/8ZJ + AP/LVxH/89/O//L8///0////8tO6/79KCf+0QQD/s0IA/7BBAP+uPwD/qj4A/6k8AP+kOAD/rT8G/89X + E/+nLAn/ewAAg38BAAD///8A////AP///wD///8AkSQAA44gAbbdeT7/74Y//9dVAP/VVAD/0lQA/89S + AP/NUAD/y1AA/8VIAP/OZSP/5rOP/+Wuh//JWxn/uUIA/7lFAP+2QwD/skIA/7BAAP+uPwD/rD0A/6k8 + AP+jOQD/vksN/8lQEv+FCQLjfQEAG////wD///8A////AP///wCOIgAsojcO7/OTUv/lbyH/2VQA/9hX + AP/VVgD/0lQA/89SAP/NUQD/yU0A/8lZE//krIX/351u/8FJAP++RwD/u0cA/7hFAP+2RAD/s0IA/7BB + AP+uPwD/qz4A/6c7AP+tPwX/z1cU/58kCP97AABj////AP///wD///8A////AIwfAG7DXSr/+JRO/+Ff + Cv/cWAD/2lgA/9hXAP/VVQD/01QA/9BUAP/LSwD/z2or//v////06uH/xE4F/8BIAP+8SAD/u0YA/7hF + AP+2QwD/s0IA/7FAAP+uPwD/qz0A/6c7Af/IVBL/ukIQ/34CAKT///8A////AP///wD///8AkCUAmdt6 + P//1jEP/4VwB/95aAP/cWgD/2lgA/9dXAP/UUgD/0lEA/81MAP/QaSr/+Pv8//Hi2P/CSwL/wEMA/8FI + AP++SgL/uUUA/7dEAP+1RAD/s0IA/7BBAP+tPwD/qDwA/79NDv/HUBX/hQkCyv///wD///8A////AP// + /wCWLAS854lL//SGOf/jWgD/4l0A/99bAP/cWAD/2VQA/9leD//ccS7/331E/9Z9R//29PL/+Pb2/+3U + wf/doHr/ymIm/8pVFf/JVhj/vkoG/7dEAP+1QwD/s0IA/7FAAP+rPQD/uEcJ/89YGf+PFATm////AP// + /wD///8A////AJkvB8vtkFH/9YMy/+ZcAP/kXwD/4VgA/99cBf/jfDr/6JVl/+eXaf/kjVz/1oJO//n7 + +v/z9/r/9fv+//n////z5dv/0YFP/81XGf/RYCf/xlIT/7pGA/+0QgD/s0IA/64/AP+3SAj/0l0c/5Qc + BvD///8A////AP///wD///8AmTAGy+6RU//3hjT/6V4A/+ZbAP/naxn/7Z1p/++nff/sn3L/6Zhq/+eS + Y//ReEP/6c6+//Ln3//5/f//9Pb4//X6/f/5+PX/zHVB/89cIP/SYSj/zVgd/75KCf+1QwD/sUAA/7pJ + Cf/TYB//lBwG7////wD///8A////AP///wCYLwS4649R//uPP//qWQD/7HIh//Sugf/zsYr/8Kh7/+2i + df/rnW//6Zhq/96GUv/UdT7/z3I9/9OOZv/17Ob/9vj5//n+///qzLr/xlYZ/9NiKv/QXyX/zloe/8BL + C/+xQQD/v04N/9NhIf+QGAXj////AP///wD///8A////AJMqAJXhg0j//pZJ//BxF//4t4z/97uV//Sx + iP/yrIH/76d7/+6ld//vonb/7Z1w/+eTYv/ljVv/1nA2/9CGWv/7/fz/9vj6//bx7f/Jbjn/02Mq/9Fj + Kv/PXiT/zlkd/7xHBv/KWBX/zlsg/4gQAsf///8A////AP///wD///8AkSgAZ8VjLf//pV7/+7OA//zG + o//4vJT/9reO//SyiP/0sIb/6Jpr/9V8SP/bgk7/6phq/+eUZP/nkWD/zm87//Lp4v/4+/3/+////9GG + W//UZiv/1Gkx/9FjKv/QXiT/zFcb/9lnI//BTxz/ggoAnv///wD///8A////AP///wCULAAmpz8M6/6z + fP//zqv//sei//vCmv/5vJT/+LqS/+mfcf/Nhl3/48Kw/9ini//Pd0P/6plq/+qXZ//Qcz7/8OHZ//v/ + ///7/f3/zoNZ/9ZrM//Wbjf/1Gkw/89iKv/cYSP/93Al/6QxEP+BCABd////AP///wD///8A////AJgx + AAKUKwCq45Rf///Tr///yqb//seh//vCm//7wJj/04JS/+vXzP///////////9Kbe//hilf/755v/812 + Rv/38e///P////Xr5v/GbDn/23U//9hzPf/Wbjf/0Wgw//RwKv/taST/ihUD3IUOABT///8A////AP// + /wD///8AmDIAAJQsADawSxb+/cSW///PrP//y6X//seh//7Enf/Rg1T/7+DY//3////+////0Jd4/9l9 + SP/WeET/0JV0//7/////////3ryp/8llLf/gf0v/23hD/9VyPf/kcjb//34z/7ZBF/+BDAB1hxIAAP// + /wD///8A////AP///wCZMgAAmTEAAJMrAKHReEL//9Su///MqP//yqX//8ym/+Secf/QnIH///////// + ///lyLf/0pl8/9yynP/69fP//////+7g2f/CbDz/4YVR/+CEUf/afUr/4XpC//+FPv/ZYyn/iBUC14UQ + AAqHEgAA////AP///wD///8A////AJkyAACZMgAAljAAF5kwANLml2H//9Su///MqP//y6b//82m/9eL + Xv/OmoD/7d7Y//////////////////by8P/dvK3/wW1B/+CHVP/lkF//34dW/+SET//+jEr/7Hg5/5Eg + B/WGEgA8ihYAAIoWAAD///8A////AP///wD///8AmTMAAJkzAACZMwAAlS8AMp83BuTjlGD//9St///P + q///y6f//82n/+Sdcv/LgFj/0JV2/9Odgv/RmHv/yX9Z/852SP/pmGj/6Zpr/+WRYv/tkFz//5ZX/+p9 + P/+eLg36hRIAXYoXAACKFgAAihYAAP///wD///8A////AP///wCZMwAAmTMAAJkzAACZMwAAlS8AMpgu + ANbVfkj//8ib///Sr///zKf//8um//7EnP/0s4n/76p//+6ne//yqn7/8qt//+6kd//wnW7/+59q//+e + YP/dczv/lSUI74YVAFmKGAAAihYAAIoWAACKFgAA////AP///wD///8A////AJkzAACZMwAAmTMAAJkz + AACZMwAAljAAG5QqAK+3VB//6qFs///Gmv//zqb//8qj///Fnf/+wZj//LyS//y2iv/+soT//7B8//+o + b//ujFP/uk8h/40eAtCLGQA4jBsAAIoYAACKFgAAihYAAIoWAAD///8A////AP///wD///8AmTMAAJkz + AACZMwAAmTMAAJkzAACXMQAAlzEAAJIqAEqXLgC+rUgW9tJ4Q//ol2L/8ah3//Ste//0qnf/8aFt/+mO + WP/Wcz7/rkUa/5MlAs+IGQBmihsAB44dAACMGgAAihgAAIoWAACKFgAAihYAAP///wD///8A////AP// + /wCZMwAAmTMAAJkzAACZMwAAmTMAAJcxAACYMgAAljAAAJYwAAKTKwA4kSgAfpYsAK+cMQfboDYK7582 + C/CaLwfhkygBuY0gAIuLHQBLjiAADYweAACMHQAAjh0AAIwaAACKGAAAihYAAIoWAACKFgAA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////////////wAP//wAA//4AAH/8AAA/+AAAH/AAAA/wAAAH4AAAB8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA+AAAAfwAAAH8AAAD/gA + AB/8AAA//gAAf/+AAP//wAP///////////8= + + + \ No newline at end of file diff --git a/src/dotNet/Portable/FormOptions.Designer.cs b/src/dotNet/Portable/FormOptions.Designer.cs new file mode 100644 index 0000000..a1baa18 --- /dev/null +++ b/src/dotNet/Portable/FormOptions.Designer.cs @@ -0,0 +1,392 @@ +namespace DesktopPet +{ + partial class FormOptions + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormOptions)); + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.button1 = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.trackBar1 = new System.Windows.Forms.TrackBar(); + this.label6 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label4 = new System.Windows.Forms.Label(); + this.trackBar2 = new System.Windows.Forms.TrackBar(); + this.label5 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.tabPage3.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit(); + this.tabPage4.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar2)).BeginInit(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(3, 3); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(351, 327); + this.webBrowser1.TabIndex = 1; + this.webBrowser1.Url = new System.Uri("http://esheep.petrucci.ch/pets.php", System.UriKind.Absolute); + this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); + // + // button1 + // + this.button1.AutoSize = true; + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(3, 3); + this.button1.Name = "button1"; + this.tableLayoutPanel1.SetRowSpan(this.button1, 2); + this.button1.Size = new System.Drawing.Size(134, 58); + this.button1.TabIndex = 0; + this.button1.Text = "Restore pet"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; + this.tabControl1.ItemSize = new System.Drawing.Size(40, 120); + this.tabControl1.Location = new System.Drawing.Point(0, 1); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(485, 341); + this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + this.tabControl1.TabIndex = 2; + this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem); + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.webBrowser1); + this.tabPage1.Location = new System.Drawing.Point(124, 4); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(357, 333); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Online pets"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.tableLayoutPanel1); + this.tabPage2.Location = new System.Drawing.Point(124, 4); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(357, 333); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Animation options"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 40F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60F)); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.checkBox2, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.label3, 1, 2); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 10; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(351, 327); + this.tableLayoutPanel1.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(143, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(205, 32); + this.label1.TabIndex = 1; + this.label1.Text = "Restore the pet to the original one:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pictureBox1 + // + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.esheep; + this.pictureBox1.Location = new System.Drawing.Point(143, 35); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(205, 26); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.checkBox2.Location = new System.Drawing.Point(3, 67); + this.checkBox2.Name = "checkBox2"; + this.tableLayoutPanel1.SetRowSpan(this.checkBox2, 2); + this.checkBox2.Size = new System.Drawing.Size(134, 58); + this.checkBox2.TabIndex = 3; + this.checkBox2.Text = "Window foreground"; + this.checkBox2.UseVisualStyleBackColor = true; + this.checkBox2.Click += new System.EventHandler(this.checkBox2_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Location = new System.Drawing.Point(143, 64); + this.label3.Name = "label3"; + this.tableLayoutPanel1.SetRowSpan(this.label3, 2); + this.label3.Size = new System.Drawing.Size(205, 64); + this.label3.TabIndex = 4; + this.label3.Text = "The original eSheep was able to bring in front the collided window. It will decre" + + "ase your productivity, so it is disabled by default."; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.flowLayoutPanel1); + this.tabPage3.Location = new System.Drawing.Point(124, 4); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(357, 333); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Options"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.checkBox1); + this.flowLayoutPanel1.Controls.Add(this.label6); + this.flowLayoutPanel1.Controls.Add(this.trackBar1); + this.flowLayoutPanel1.Controls.Add(this.label2); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(10); + this.flowLayoutPanel1.Size = new System.Drawing.Size(357, 333); + this.flowLayoutPanel1.TabIndex = 0; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(13, 13); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(88, 17); + this.checkBox1.TabIndex = 0; + this.checkBox1.Text = "Allow sounds"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // trackBar1 + // + this.trackBar1.Enabled = false; + this.trackBar1.Location = new System.Drawing.Point(13, 49); + this.trackBar1.Name = "trackBar1"; + this.trackBar1.Size = new System.Drawing.Size(336, 45); + this.trackBar1.TabIndex = 1; + this.trackBar1.TickFrequency = 2; + this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.TopLeft; + this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(13, 33); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(30, 13); + this.label6.TabIndex = 1; + this.label6.Text = "ERR"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.label2.Location = new System.Drawing.Point(13, 97); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(0, 13); + this.label2.TabIndex = 3; + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.tableLayoutPanel2); + this.tabPage4.Location = new System.Drawing.Point(124, 4); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(357, 333); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "Application"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.label4, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.trackBar2, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.label5, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 10; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 23.83721F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 76.16279F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 133F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(357, 333); + this.tableLayoutPanel2.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Location = new System.Drawing.Point(181, 14); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(173, 45); + this.label4.TabIndex = 2; + this.label4.Text = "How many pets start with application"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // trackBar2 + // + this.trackBar2.Dock = System.Windows.Forms.DockStyle.Fill; + this.trackBar2.Location = new System.Drawing.Point(3, 17); + this.trackBar2.Maximum = 16; + this.trackBar2.Minimum = 1; + this.trackBar2.Name = "trackBar2"; + this.trackBar2.Size = new System.Drawing.Size(172, 39); + this.trackBar2.TabIndex = 3; + this.trackBar2.Value = 1; + this.trackBar2.Scroll += new System.EventHandler(this.trackBar2_Scroll); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(3, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(30, 13); + this.label5.TabIndex = 1; + this.label5.Text = "ERR"; + // + // FormOptions + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(485, 342); + this.Controls.Add(this.tabControl1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormOptions"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Options"; + this.TopMost = true; + this.Load += new System.EventHandler(this.FormOptions_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.tabPage3.ResumeLayout(false); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit(); + this.tabPage4.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar2)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.WebBrowser webBrowser1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.TrackBar trackBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TrackBar trackBar2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + } +} diff --git a/src/dotNet/Portable/FormOptions.cs b/src/dotNet/Portable/FormOptions.cs new file mode 100644 index 0000000..77caaab --- /dev/null +++ b/src/dotNet/Portable/FormOptions.cs @@ -0,0 +1,138 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Application options. Need a redesign, so it is not documented. + /// + /// + public partial class FormOptions : Form + { + /// + /// Constructor + /// + public FormOptions() + { + InitializeComponent(); + } + + /// + /// Restore default animation. Will restore the animation delivered with the app. + /// + /// Caller object. + /// Click event values. + private void button1_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Retry; + Close(); + } + + /// + /// New page was loaded. Check if page starts with the -XML- key. If so, the page will be converted to an xml. + /// + /// Caller as object. + /// Webpage event values. + private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) + { + WebBrowser web = (WebBrowser)sender; + string s = web.DocumentText; + if(s.Substring(0, 5) == "-XML-") + { + Program.Mainthread.LoadNewXMLFromString(s.Substring(5)); + Close(); + } + } + + private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) + { + Graphics g = e.Graphics; + Brush _textBrush; + + // Get the item from the collection. + TabPage _tabPage = tabControl1.TabPages[e.Index]; + + // Use our own font. + Font _tabFont; + + + if (e.State == DrawItemState.Selected) + { + // Draw a different background colour, and don't paint a focus rectangle. + _textBrush = new SolidBrush(Color.Black); + g.FillRectangle(Brushes.White, e.Bounds); + _tabFont = new Font(tabControl1.TabPages[e.Index].Font.FontFamily.ToString(), (float)11.0, FontStyle.Bold, GraphicsUnit.Pixel); + } + else + { + _textBrush = new SolidBrush(Color.Black); + g.FillRectangle(Brushes.LightGray, e.Bounds); + _tabFont = new Font(tabControl1.TabPages[e.Index].Font.FontFamily.ToString(), (float)10.0, FontStyle.Regular, GraphicsUnit.Pixel); + } + + // Draw string. Center the text. + StringFormat _stringFlags = new StringFormat(); + _stringFlags.Alignment = StringAlignment.Center; + _stringFlags.LineAlignment = StringAlignment.Center; + g.DrawString(_tabPage.Text, _tabFont, _textBrush, tabControl1.GetTabRect(e.Index), _stringFlags); + } + + private void FormOptions_Load(object sender, EventArgs e) + { + // Set up audio values + checkBox1.Checked = (Properties.Settings.Default.Volume > 0.0); + trackBar1.Value = (int)(Properties.Settings.Default.Volume * 10); + trackBar1.Enabled = checkBox1.Checked; + label2.Text = Program.Mainthread.ErrorMessages.AudioErrorMessage; + if (label2.Text.Length > 1) + { + trackBar1.Enabled = false; + checkBox1.Enabled = false; + } + checkBox2.Checked = Properties.Settings.Default.WinForeground; + trackBar2.Value = Properties.Settings.Default.AutostartPets; + label5.Text = trackBar2.Value.ToString(); + label6.Text = trackBar1.Value.ToString(); + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + trackBar1.Enabled = checkBox1.Checked; + if(!trackBar1.Enabled) + { + trackBar1.Value = 0; + trackBar1_Scroll(sender, e); + } + else + { + Properties.Settings.Default.Save(); + } + } + + private void trackBar1_Scroll(object sender, EventArgs e) + { + Properties.Settings.Default.Volume = (float)(trackBar1.Value / 10.0); + if(Properties.Settings.Default.Volume < 0.1f) + { + trackBar1.Enabled = false; + checkBox1.Checked = false; + } + Properties.Settings.Default.Save(); + label6.Text = trackBar1.Value.ToString(); + } + + private void checkBox2_Click(object sender, EventArgs e) + { + Properties.Settings.Default.WinForeground = checkBox2.Checked; + Properties.Settings.Default.Save(); + } + + private void trackBar2_Scroll(object sender, EventArgs e) + { + Properties.Settings.Default.AutostartPets = trackBar2.Value; + Properties.Settings.Default.Save(); + label5.Text = trackBar2.Value.ToString(); + } + } +} diff --git a/src/dotNet/Portable/FormOptions.resx b/src/dotNet/Portable/FormOptions.resx new file mode 100644 index 0000000..87d7e0f --- /dev/null +++ b/src/dotNet/Portable/FormOptions.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////ASAnMplCYpn/CA8awwAAAB////8B////AQkQ + Hq1CV3r/FytMzf///wH///8B////Af///wH///8B////Af///wEqOlWZYZz//x85Zv8AAAAzAAAAPQAA + AGcSIj3/XIXM/ydIf83///8B////Af///wH///8B////Af///wEAAAAVNVJV1z1eYf81UlT/NVJU/1aE + iP9ooKX/XpGV/z1eYf86WVzrHCsscf///wH///8B////AQAAAFMnSH/NLEZS4Wigpf9rpar/Z56j/2ee + o/9zsbb/bqqv/26qr/9ooKX/c7G2/2efpP8iNDZ7////AQsUJElFetb/VZP//zpfgP9zsrj/b6uw/3S0 + uv9+x87/drm//4LQ1/99xcv/fcXL/4HO1f99xcv/crzC/xQjJEk5WZDrcKX//3On//9hk+r/SnaL/3q8 + wv+E1dz/h97m/4vo8P+J4+v/jOry/4HO1f+F19//jOry/4LQ1/87XF/DR2WZ/5K7//+hxP//krv//0pr + jP+BztX/h97m/4vq8v+I5Oz/j/L7/4/x+v+P8fr/j/H6/4vo8P+R9v//U4qP/1pqhdekxf//ocT//6HE + //94lL//eMzT/3S/xf9PUG//Rx9T/0pgcf+K5/D/kfb//5H2//+R9v//kfb//2KUmf8AAAAVb3+ZzYOe + zP9qbXL/dICS/1p1lP81GT7/UwBT/1MAU/99AH3/UW6A/4/y+/+R9v//kfb//5n2//98lpn/////AQAA + ABUSFBjXPT09/7Ozs/99msz/RW+3/yILMf91AHX/XgBe/3Imef+A19//kfb//5H2///F+v//fISF1/// + /wH///8BAAAAhSgoKP+SmaX/lLTq/0BOZv9abY7/Qx9S/0UARf+ZMJn/dMTM/5H2//+/+f//2t/g/zg4 + OF3///8B////AQAAAB9ncoXrmrjq/2Zll/83ADf/cABw/34Afv9iAGL/qFix/3/Y4P+W9v//0Pv//7Gx + sesAAAAf////Af///wH///8BOD5Ij3aRmf9iRHj/vDq8/4Engf+KK4r/3FLc/1Jsgv+W9v//t/n///L+ + //9xcXG3////Af///wH///8B////AQAAABWCm53XnOTq/3Bsk/+TRJP/dyt3/2pnjf+r5er/3/z//+Tq + 6v+FhYXXAAAAFf///wH///8B////Af///wH///8BAAAAFWBwcbecyMz/kMfM/5DHzP+tycz/m6Gi4Soq + KnsAAABT////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAMwAAADMAAAAzAAAAMwAA + ABX///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wEAAAAzDA8U/xojM/8RHTP/AAAA1wAA + ADMAAAAV////Af///wH///8B////Af///wEAAAAzAAAAhRMXHv8ZIjP/DBco/wAAAJn///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAADNATmb/hrP//1aU + //8GCxT/EiI9/wAAAGf///8B////Af///wH///8B////AQYLFP8SIj3/YHWZ/32t//8/c8z/AAAAmf// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAM0BO + Zv+Gs///VpT//w8cM/8vVpn/AAAAZ////wH///8B////Af///wH///8BDxwz/y9Wmf9gdZn/fa3//z9z + zP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAAAzJj1m/1qX//9QkP//Dxwz/y9Wmf8AAABn////AQAAACkAAADNAAAAzQAAAM0DBQr/CREe/zlc + mf9Ylf//P3PM/wAAAJn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQsREl0UHyD/FB8g/xQfIP8UHyD/DBIT/wwSE/8UHyD/JTg6/2eeo/9nnqP/Z56j/2ee + o/9Ga27/FB8g/xQfIP8UHyD/EhscrQAAADMAAAAL////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEAAABTNVJU/2eeo/9nnqP/Z56j/2eeo/9OeHv/Tnh7/2eeo/9nnqP/Z56j/2ul + qv9ooKX/Z56j/2eeo/9nnqP/Z56j/2eeo/9OeHv/KT9B/w8YGYX///8B////Af///wH///8B////Af// + /wH///8B////AQAAAJkAAACZAAAAmTVSVetnnqP/Z56j/2eeo/9nnqP/Z56j/2eeo/9nnqP/Z56j/3Kw + tf9ysLX/dre9/2qkqf9nnqP/Z56j/2eeo/9nnqP/aaGm/3Kwtf9rpar/Rmtu/wAAAHv///8B////Af// + /wH///8B////AQAAAHsAAADNP3PM/z9zzP8ZLlH/Un6C/2eeo/9tp6z/dra7/2qip/9nnqP/Z56j/2ee + o/9nnqP/baiu/3q8wv9wrbP/Z5+k/3a2u/92trv/baes/2eeo/92t73/erzC/3e4vv92trv/RGls9QAA + AHv///8B////Af///wEAAABnL1aZ/0+Q//9PkP//T5D//x85Zv9ekZb/dre9/3i5v/9tp6z/aqKn/2qk + qf9wrbP/erzC/3q8wv9qpKn/cK2z/3q8wv99xcv/fcXL/3q8wv96vML/fcXL/33Fy/96vML/erzC/3q8 + wv9+x87/S3d7/wAAAGf///8BAAAAFRMkP6M8bcH/W5f//16Z//9Ylf//Mlyj/zdXYv9qpKn/dbS6/26q + r/93uL7/erzC/33Fy/+D09r/g9Pa/4HO1f99xcv/g9Pa/47v9/+F19//erzC/3q8wv+F19//ju/3/3/J + 0P9/ydD/g9Pa/5H2//9uusH/JD0/owAAABUNGS2tRXPB/2We//9xpv//daj//26k//9lnv//OmSt/zlY + Wv96vML/erzC/3q8wv96vML/fcXL/4PT2v+D09r/j/H6/4vo8P+R9v//hdrh/4fe5v+H3ub/h97m/3zC + yf+F2uH/jez1/43s9f+F2uH/g9Pa/4PT2v80VFf/AAAAMxUgM/9wpf//daj//3Wo//91qP//daj//3Wo + //9upP//N2Oq/z9hZP96vML/erzC/4zq8v+M6vL/jOry/4zq8v+C0Nf/kfb//4Xa4f+J4+v/kfb//5H2 + //+F2uH/er7E/3q+xP+F2uH/kfb//43s9f+I4en/erzC/2ulqv8XIyTXFyEz/3Wo//96q///mb///6HE + //+hxP//i7b//32t//9dhsz/MEtN/3q8wv+I4en/fsfO/37Hzv+J4+v/kfb//5H2//+R9v//kfb//5H2 + //+R9v//iePr/4nj6/+R9v//kfb//4nj6/9+x87/jez1/5H2//+R9v//hdrh/xknKf8XITP/fKz//5a9 + //+hxP//ocT//6HE//+hxP//ocT//2uPzP8wS03/f8nQ/4PT2v+R9v//kfb//5H2//+D2eH/gNLa/4DS + 2v+K5/D/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//HTEz/yEn + M/+kxf//ocT//6HE//+hxP//ocT//6HE//+hxP//lLTq/01kev9qsbj/kfb//5H2//+G4Oj/d8HH/zhZ + XP8pP0H/KT9B/1iNkf93wcf/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //8dMTP/FhgcXWRwhP+ty///ocT//6HE//+hxP//ocT//6HE//+hxP//YHWZ/1eTmf+R9v//b6+1/0t2 + ef8UHyD/dgZ5/1wAXP9wAHD/RRJM/xQfIP92vcT/kfb//5H2//+R9v//kfb//5H2//+R9v//kfb//5H2 + //+R9v//s/j//ygyM/////8BAAAAU2dyheumw/T/ocT//5S06v9SXXD/Kioq/zpASf+NrOD/U2WE/0hs + cv9GZWz/OwA7/2UAZf9cAFz/ZgBm/4MAg/9zAHP/fQB9/xstL/+L6/P/kfb//5H2//+R9v//kfb//5H2 + //+R9v//kfb//5b2///B+v//KzIz/////wH///8BAAAAXWdyheugvOr/OUZb/1tbW//S0tL/s7Oz/1dg + bv+HpNb/RVyE/w0ADf9FAEX/RgBG/0cAR/8uAC7/NwA3/28Ab/+WAJb/RRJM/1iNkf+K5/D/kfb//5H2 + //+R9v//kfb//5H2//+R9v//rfj//9n8//8rMjP/////Af///wH///8BAAAAUz9GUf8AAAD/AAAA/1FR + Uf/k5OT/enp6/2B1mf+Su///RmSZ/yo8W/8qACr/RwBH/5EAkf9vAG//VQBV/2oAav9wAHD/KT9B/4DS + 2v+R9v//kfb//5H2//+R9v//kfb//5n2///H+v//5v3//y8yM/////8B////Af///wH///8BAAAAXQAA + AP96enr/KCgo//T09P96enr/YHWZ/6HE//9WlP//TYfq/xkuUf8AAAD/PQA9/5YAlv8zADP/hACE/60T + rf+CR4f/X6Cm/5H2//+R9v//kfb//5H2//+R9v//zfv//+X8//+BhIT/HBwcXf///wH///8B////Af// + /wEAAAAzAAAA/wAAAP8oKCj/7Ozs/25xdv9tha3/ocT//yAnM/8gJzP/bYWt/4ek1v9nfaP/LgAu/3MA + c/8XABf/jxiP/5lJmf9Xk5n/kfb//5H2//+R9v//mfb//837///m/f//6urq/1xcXOEAAAAp////Af// + /wH///8B////AQAAAB8AAADDAAAA/3p6ev+Hio7/Z32j/6HE//+hxP//YHWZ/2B1mf9gdZn/Exce/y4A + Lv9JAEn/cwBz/xcAF/+jGKP/mUmZ/1eTmf+R9v//kfb//5H2//+8+f//2fz///////+ZmZn/AAAAZ/// + /wH///8B////Af///wH///8B////AQAAAGdHT1v/d4SZ/22Frf+hxP//ocT//1NlhP8NAA3/RQBF/1wA + XP9MAEz/kQCR/3MAc/9JAEn/XwBf/+ZS5v+ZSZn/V5OZ/5H2//+R9v//kfb//7z5///Z/P///////5mZ + mf8AAABn////Af///wH///8B////Af///wH///8BAAAAFSMmLa2nuNb/udP//6HE//9TZYT/UAdT/04A + Tv87ADv/mQCZ/38Af/+HAIf/bABs/18AX/+CAIL/1mbW/01dcP+F4ur/kfb//5H2//+o9///0/v//9n8 + ///W1tb/LS0trQAAABX///8B////Af///wH///8B////Af///wH///8BAAAAe4SSqvWIlq3/JTEz/wsT + FP+bE5v/mRiZ/6dJp/8sDiz/JgQm/yYEJv95NXn/83Dz/84rzv9PCVP/S3+E/5H2//+R9v//k/b//7b5 + ///d/P//+P7//8zMzP8AAACZ////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAzXCD + hP+8+f//XJ2j/4ZOjv/aP9r/1knW/9ZJ1v/aP9r/rRit/91c3f+7P7v/83Dz/x0xM/+R9v//kfb//6j3 + //+2+f//3/z///X+////////hYWF6wAAAF3///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAABTcIOE/837//+i9///Yqet/2YwZv+MOoz/6Gbo//96//+PGI///3r//4Ewgf9aJ1r/Yqet/6L3 + //+8+f//0/v//+/9///1/v///////4SEhP8AAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEYHBxdcIOE/9D7//+c9v//dMTM/1p/jv8zGDP/Mxgz/xwEHP8zGDP/Wn+O/3TE + zP/K+v//3Pz///f+///3/v///////62trf8zMzP/HBwcXf///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAABTcYOF663JzP/N+///n/f//5/3//+f9///n/f//5/3 + ///B+v//3/z//9zy9P/MzMz/XFxc4QAAAM0AAADNAAAAe////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAABdAAAAmYKXmf+Cl5n/gpeZ/4KX + mf+Cl5n/gpeZ/4KXmf+UmJn/hYWF6wAAAJkAAAA9////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAZwAA + AGcAAABnAAAAZwAAAGcAAABnAAAAZwAAAGcAAABT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + diff --git a/src/dotNet/Portable/Install.Designer.cs b/src/dotNet/Portable/Install.Designer.cs new file mode 100644 index 0000000..36502ed --- /dev/null +++ b/src/dotNet/Portable/Install.Designer.cs @@ -0,0 +1,196 @@ +namespace DesktopPet +{ + partial class Install + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Install)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button3 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = global::DesktopPet.Properties.Resources.install; + this.pictureBox1.Location = new System.Drawing.Point(12, 32); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(128, 128); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(202, 18); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(152, 20); + this.label1.TabIndex = 1; + this.label1.Text = "Install Application"; + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(12, 166); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(398, 23); + this.progressBar1.TabIndex = 2; + this.progressBar1.Visible = false; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Checked = true; + this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox1.Location = new System.Drawing.Point(174, 61); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(153, 17); + this.checkBox1.TabIndex = 3; + this.checkBox1.Text = "Add shortcut to Start Menu"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.Visible = false; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(174, 84); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(143, 17); + this.checkBox2.TabIndex = 4; + this.checkBox2.Text = "Add Shortcut to Desktop"; + this.checkBox2.UseVisualStyleBackColor = true; + this.checkBox2.Visible = false; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Checked = true; + this.checkBox3.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox3.Location = new System.Drawing.Point(174, 107); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(102, 17); + this.checkBox3.TabIndex = 5; + this.checkBox3.Text = "Add to Autostart"; + this.checkBox3.UseVisualStyleBackColor = true; + this.checkBox3.Visible = false; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(247, 137); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 6; + this.button1.Text = "Accept"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(160, 137); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 7; + this.button2.Text = "Update"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(160, 41); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox1.Size = new System.Drawing.Size(250, 90); + this.textBox1.TabIndex = 8; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(335, 137); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 23); + this.button3.TabIndex = 9; + this.button3.Text = "Uninstall"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // Install + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(422, 201); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.textBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Install"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Install"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Install_FormClosing); + this.Load += new System.EventHandler(this.Install_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button3; + } +} \ No newline at end of file diff --git a/src/dotNet/Portable/Install.cs b/src/dotNet/Portable/Install.cs new file mode 100644 index 0000000..90a2a6f --- /dev/null +++ b/src/dotNet/Portable/Install.cs @@ -0,0 +1,484 @@ +using Microsoft.Win32; +using System; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Windows.Forms; + +namespace DesktopPet +{ + /// + /// Window form for the installer/Repair/Uninstaller. Will add shortcuts to windows. + /// + /// + public partial class Install : Form + { + /// + /// Path where the application is located. + /// + string appPath; + /// + /// Path where the application can be installed. + /// + string installPath; + /// + /// Path to the user desktop location. + /// + string desktopPath; + /// + /// Path to the user start menu location. + /// + string startMenuPath; + /// + /// Path to the start-up location. + /// + string autostartPath; + /// + /// Webpage for this application. + /// + string webpage = "http://esheep.petrucci.ch"; + /// + /// Application Name. + /// + string appName = "DesktopPet"; + /// + /// Name of the uninstall batch file. + /// + string uninstallBatch = "uninstall.cmd"; + + /// + /// Constructor. Set the path of the different locations and start the update-check process. + /// + public Install() + { + InitializeComponent(); + + appPath = Application.StartupPath; + installPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), appName); + desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); + startMenuPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu), "Programs"); + autostartPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup); + // Check updates only if the application is installed (so downloads from other page will not notify an update after download) + if(IsApplicationInstalled()) + CheckUpdates(); + } + + /// + /// Form was loaded. + /// + /// Caller as object. + /// Arguments values. + private void Install_Load(object sender, EventArgs e) + { + Text = "Install " + Animations.Xml.AnimationXML.Header.Title; + label1.Text = "Install " + Animations.Xml.AnimationXML.Header.Petname; + } + + /// + /// Check if application is started from the installation path. + /// + /// true if the executed application is installed. + public bool IsApplicationInstalled() + { + return (string.Compare(appPath, installPath) == 0); + } + + /// + /// Open the form window. Allows the user to install or uninstall this application. + /// + public void ShowInstallation() + { + if (!IsApplicationInstalled()) + { + string msg = "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" "; + msg += "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE "; + msg += "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE "; + msg += "DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE "; + msg += "FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL "; + msg += "DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR "; + msg += "SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER "; + msg += "CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, "; + msg += "OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE "; + msg += "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. "; + + textBox1.Text = msg; + textBox1.Visible = true; + button1.Text = "Accept"; + button2.Visible = false; + button3.Visible = false; + } + else + { + button1.Visible = false; + button2.Visible = true; + button3.Visible = true; + textBox1.Visible = false; + checkBox1.Visible = true; + checkBox2.Visible = true; + checkBox3.Visible = true; + button2.Enabled = false; + + checkBox1.Checked = File.Exists(Path.Combine(startMenuPath, $"{appName}.url")); + checkBox2.Checked = File.Exists(Path.Combine(desktopPath, $"{appName}.url")); + checkBox3.Checked = File.Exists(Path.Combine(autostartPath, $"{appName}.url")); + } + + Show(); + } + + /// + /// Install was pressed. The application will be installed on the AppData folder. + /// + /// Caller as object. + /// Mouse event values. + private void button1_Click(object sender, EventArgs e) + { + if (button1.Text == "Accept") + { + button1.Text = "Install"; + button2.Visible = false; + textBox1.Visible = false; + checkBox1.Visible = true; + checkBox2.Visible = true; + checkBox3.Visible = true; + progressBar1.Visible = true; + } + else if(button1.Text == "Install") + { + checkBox1.Enabled = false; + checkBox2.Enabled = false; + checkBox3.Enabled = false; + button1.Enabled = false; + Application.DoEvents(); + progressBar1.Value = 100; + InstallApplication(); + } + else + { + Application.Exit(); + } + } + + /// + /// Application will be installed. Exe will be copied to the install path, icons will be created and registry will be updated.
    + /// A uninstall.cmd will also be created for the uninstall process. + ///
    + private void InstallApplication() + { + string sDestExe = installPath + "\\" + appName + ".exe"; + bool bPersonalIcon = true; + if (!Directory.Exists(installPath)) + { + Directory.CreateDirectory(installPath); + } + try + { + File.Copy(Application.ExecutablePath, sDestExe, true); + } + catch(Exception ex) + { + MessageBox.Show("Error: " + ex.Message); + progressBar1.Value = 0; + return; + } + + try + { + FileStream fs = File.OpenWrite(installPath + "\\installpet.xml"); + fs.Write(System.Text.Encoding.UTF8.GetBytes(Animations.Xml.AnimationXMLString), 0, Animations.Xml.AnimationXMLString.Length); + fs.Close(); + + fs = File.OpenWrite(installPath + "\\icon.ico"); + byte[] sIco = Animations.Xml.bitmapIcon.ToArray(); + fs.Write(sIco, 0, sIco.Length); + fs.Close(); + } + catch(Exception) + { + bPersonalIcon = false; + } + + string contents; + + if (bPersonalIcon) + { + contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={installPath+"\\icon.ico"} +IconIndex=0 + "; + } + else + { + contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={sDestExe.Replace('\\', '/')} +IconIndex=0 + "; + } + + // add to start menu + if (checkBox1.Checked) + { + string file = Path.Combine(startMenuPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // add to desktop + if (checkBox2.Checked) + { + string file = Path.Combine(desktopPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // add to auto start + if (checkBox3.Checked) + { + string file = Path.Combine(autostartPath, $"{appName}.url"); + File.WriteAllText(file, contents); + } + + // Create an uninstall.cmd script + string UninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall"; + string keyName = $@"{UninstallKey}\{appName}"; + + // Generate the commands to remove the shortcuts + var deletions = $@"del ""{Path.Combine(startMenuPath, $"{appName}.url")}""{Environment.NewLine}"; + deletions += $@"del ""{Path.Combine(desktopPath, $"{appName}.url")}""{Environment.NewLine}"; + deletions += $@"del ""{Path.Combine(autostartPath, $"{appName}.url")}""{Environment.NewLine}"; + string script = $@" +@echo on +setlocal +cd %~dp0\.. +:: Remove running application +taskkill /IM {appName}.exe /f +:: Delete the shortcuts +{deletions} +:: Use start to finish before we're deleted +start /min """" cmd /c +%= Use reg to delete the app key =% +reg delete ""HKCU\{keyName}"" /f +%= Remove the app's root folder =% +rd /s /q ""{appName}"" + "; + + string scriptPath = Path.Combine(installPath, uninstallBatch); + File.WriteAllText(scriptPath, script); + + using (var key = Registry.CurrentUser.CreateSubKey(keyName)) + { + // strings + string path = installPath + "\\" + appName + ".exe"; + key.SetValue("DisplayIcon", path); + key.SetValue("DisplayName", appName); + key.SetValue("DisplayVersion", Application.ProductVersion); + key.SetValue("InstallDate", DateTime.Now.ToString("yyyymmdd")); + key.SetValue("InstallLocation", installPath); + key.SetValue("Publisher", Application.CompanyName); + key.SetValue("QuietUninstallString", scriptPath); + key.SetValue("UninstallString", scriptPath); // TODO: Show GIF of some sort? + key.SetValue("URLInfoAbout", webpage); + key.SetValue("URLUpdateInfo", webpage); + // DWords + key.SetValue("EstimatedSize", 1500); + key.SetValue("NoModify", 1); + key.SetValue("NoRepair", 1); + key.SetValue("Language", 0x0409); // English locale + } + + button1.Text = "Installed"; + + Process petProcess = new Process(); + petProcess.StartInfo.FileName = installPath + "\\" + appName + ".exe"; + petProcess.Start(); + + Hide(); + Application.DoEvents(); + Application.Exit(); + } + + /// + /// Update was pressed. Application icons will be created or removed. + /// + /// Caller as object. + /// Mouse event values. + private void button2_Click(object sender, EventArgs e) + { + string sDestExe = installPath + "\\" + appName + ".exe"; + + string contents = $@" +[InternetShortcut] +URL=file:///{sDestExe.Replace('\\', '/')} +IconFile={sDestExe.Replace('\\', '/')} +IconIndex=0 + "; + + if (checkBox1.Checked != File.Exists(Path.Combine(startMenuPath, $"{appName}.url"))) + { + string file = Path.Combine(startMenuPath, $"{appName}.url"); + + if (checkBox1.Checked) // add to start menu + File.WriteAllText(file, contents); + else // remove from start menu + File.Delete(file); + } + if(checkBox2.Checked != File.Exists(Path.Combine(desktopPath, $"{appName}.url"))) + { + string file = Path.Combine(desktopPath, $"{appName}.url"); + if (checkBox2.Checked) // add to desktop + File.WriteAllText(file, contents); + else // remove from desktop + File.Delete(file); + } + if(checkBox3.Checked != File.Exists(Path.Combine(autostartPath, $"{appName}.url"))) + { + string file = Path.Combine(autostartPath, $"{appName}.url"); + if (checkBox3.Checked) // add to auto start + File.WriteAllText(file, contents); + else // remove from auto start + File.Delete(file); + } + + button2.Enabled = false; + } + + /// + /// Uninstall was pressed. The uninstall batch file will be executed. + /// + /// Caller as object. + /// Mouse event values. + private void button3_Click(object sender, EventArgs e) + { + Process uninstallProcess = new Process(); + uninstallProcess.StartInfo.FileName = installPath + "\\" + uninstallBatch; + uninstallProcess.Start(); + } + + /// + /// Closing form. If it is visible, hide the window so that functions are still available. + /// + /// Caller as sender. + /// Closing event values. + private void Install_FormClosing(object sender, FormClosingEventArgs e) + { + if (Visible) + { + Hide(); + e.Cancel = true; + } + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// If checkbox was changed and it is in update mode, enable the update button. + /// + /// Caller as object. + /// Check event values. + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + if (button2.Visible) button2.Enabled = true; + } + + /// + /// Check for updates. If an update is present, will replace this application with the new one. + /// + private void CheckUpdates() + { + string sExeFile = appPath + "\\" + appName + ".exe"; + string sOldFile = appPath + "\\" + appName + "_old.exe"; + try + { + if (File.Exists(sOldFile)) + { + File.Delete(sOldFile); + } + } + catch(Exception) + { + } + WebRequest request = WebRequest.Create(webpage + "/version.php"); + WebResponse response = request.GetResponse(); + Stream data = response.GetResponseStream(); + string versionWeb = string.Empty; + string versionApp = Application.ProductVersion; + using (StreamReader sr = new StreamReader(data)) + { + versionWeb = sr.ReadToEnd(); + } + if(versionApp != versionWeb) + { + WebRequest requestChangelog = WebRequest.Create(webpage + "/version.php?changelog"); + + WebResponse responseChangelog = requestChangelog.GetResponse(); + Stream dataChangelog = responseChangelog.GetResponseStream(); + string changeLog = Application.ProductVersion; + using (StreamReader sr = new StreamReader(dataChangelog)) + { + changeLog = sr.ReadToEnd(); + changeLog = changeLog.Substring(changeLog.IndexOf("
      ")+4); + changeLog = changeLog.Substring(0, changeLog.IndexOf("
    ")); + changeLog = changeLog.Replace("
  • ", " - "); + } + + if (MessageBox.Show("A newer version was found on the web: " + versionWeb + "\n==========================\nCHANGELOG:\n" + changeLog + "\n========================== \nDo you want install it now?", appName + " version: " + versionApp, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + var webClient = new WebClient(); + webClient.DownloadFileCompleted += WebClient_DownloadFileCompleted; + File.Move(sExeFile, sOldFile); + + webClient.DownloadFileAsync( + new Uri(webpage + "/download.php?exe"), + $@"{sExeFile}"); + } + } + } + + /// + /// Exe was downloaded successfully. Application can be closed. + /// + /// Caller as object. + /// Download event values. + private void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) + { + string sExeFile = appPath + "\\" + appName + ".exe"; + string sOldFile = appPath + "\\" + appName + "_old.exe"; + + try + { + Process petProcess = new Process(); + petProcess.StartInfo.FileName = sExeFile; + petProcess.Start(); + + Hide(); + MessageBox.Show("Application was updated."); + Application.Exit(); + } + catch (Exception ex) + { + File.Move(sOldFile, sExeFile); + MessageBox.Show("Unable to update: " + ex.Message); + } + } + } +} diff --git a/src/dotNet/Portable/Install.resx b/src/dotNet/Portable/Install.resx new file mode 100644 index 0000000..7404b58 --- /dev/null +++ b/src/dotNet/Portable/Install.resx @@ -0,0 +1,1787 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAAEBAAAABACAAKEIAAL4EAAAgIAAAAQAgAKgQAADmRgAAMDAAAAEA + IACoJQAAjlcAAICAAAABACAAKAgBADZ9AAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAASCwAAEgsAAAAA + AAAAAAAA48PDGu3Ly3jw0NCZ8dXVhOnU1HTczc10yLu7j7qqqrOWiYnKXV9YsGx4X4KhlYybtaSjeLeo + qCKbiogBnY2LAOfExBzxysp348LCmsaxsZjJurqk28fHvce1tdyrnZ3xh3x8+lZbUfV4f2jur5+Z9cO0 + s+fCtbSMdWxqHQAAAAHqy8sV17m5YpqLi72hm5vo2c/P9PDb2/zdycf+0cC0/piOh/5ZXFT+kIh8/sCq + qP7QwL//zb69wmRbWj4AAAAP69PTDrampkyHg4PIubi4/+Xh4f/l29v+5NXO/vHdzv6vpaD+ZGJe/qaT + kP7NtLT+1MTC/9rKybqGencwAAAADOTa2guvqqpDmpeYxMXAxP/X1df/z87O/+Ld2v/z6ef/says/25o + aP+4oKD/2L69/9bFxP/j09Gy2sjDHP///wDj398Mvby8SbWrtsjYytj/3Nvc/9fa2f/b3uT/4+To/6em + pv9ja3L/oKi4/9bEx//Yx8b/5dTTsOvY0xrq19EA5ePjEM3MzFrBur7R3N7Z/9vu3/7k6uf+19zi/s7S + 2f+hoaH/V29+/2Chzf+vv9P/0cLC/97OzbHn1NAa5tPOAOnn5w7ExMRXnZ2c0ai3qv3G18r9z9HQ/ry+ + vv6xuLv/nKqx/2uTqf9Xqt3/lLvZ/8a6u//TxMKx4M7KGuDOyQD///8AeXl5G2VlZX97gHu2oaae6amv + pf+lr6H/oLm4/5fE1v+CwuH/d7/r/7DC1v/Ft7f/zcC+sd7MxxrezMYARkZGAEdHRwJpamoQv7u3Q9PS + ys7Q1cn/zNXF/9Hc1f7J3+n/tNbp/7/S5P/ay8//xra2/8u+vbDcy8Ya3MrFAAAAAAD/8/AA6t7bAPLm + 4zDt5OHK5N7Z/9fSy/7Yzsn+2MrJ/9TDxP/Yv8D/1bm4/8Wvr//Ou7q128XCHtvFwQAAAAAA3MPCANXC + vwDYw8Eu0by7x7+rqf23o6L8vqmp/siwsP/Tt7f/3729/+fAwP7euLj/07S00tm9vTzgvb0AAAAAAMKl + pQDbvr0A1rm4JNW5uLjOtLTh2cjI7uLV1f/p2Nj/8NfX//XU1P73z8/98MXF/eO8vNbevr5FpdraAAAA + AAC7np4A5MfIAOLGxhDjxsdh4MXGfOXS0rjl1dXX5NHRy+bOzr/nysqy5sbGo+PCwpXevLxm17W1Fdar + qwAAAAAAAAAAAOHJyQDiysoA4MbHB9vAwRHdw8Mz3cXFOtzExC7bwcEk28HBG9nAwBTUvr4Nzbm5Bo6H + hwCDfn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAgAEAAIABAADgAQAA4AEAAOAB + AADgAQAA8AMAAP//AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAAASCwAAEgsAAAAAAAAAAAAAAAAAAAAA + AAC0qKgAsKWlBce2tivRvLxK1L6+T9C+vk/FublQv7W1UcS5uVDOwMBP08LCTdPDw03TxMRN08XFTNPG + xkzSx8dL0sjIS9LIyErSyMhK0cnJStHJyUrRyMhK0cjIStDHx0rJwsJMwLq6Tr+6uk7IwMBN0sTES9PD + w0vSwsJM08LCTcCyskxybW1OPz8/ZF5eXmyKiYo7mpmaDYWAiACGgYkAAAAAAGBmTQBsaFgCf2poCI12 + dROfioUco5CKE4h5dAP//fMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAwrS0ALywsA/fx8do7M7OsPDR0bvu0tK75tHRveLPz73l0tK87NbWtu/X + 17Lv2Niw79raru7b26vu3Nyp7d3dpu3e3qTt39+i7ODgoOzg4J7s4OCd7ODgnezf35zs39+d59zco+DW + 1qrg1dWt5dfXrOjV1avk0NCx4MrKvN/JycPLubnGeHJyyEFBQdZdXV3Ze3t7pXFxcUQwMzAQQVc1CGeE + VhBthlshf4JrOY58eFiXgIB9qpaSkrGinXSfj442d2JkDD8lJgBoUlQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGwsAC6rKwR5MXFc/XOzr770dHI+tLSxvnX + 18j42dnI+NrawvnZ2bf52dmw+draqvnb26T43d2d+N/flvjg4I/34eGI9uPjgvbk5H325eV59uTkd/bl + 5XX35OR09eLidvDe3oLo2NiZ4M/Pq9XBwbbMtrbFx7Gx2sStre3Frq74t6Sk+3JsbPxCQkL9U1NU/V9f + X+RQVU2SQVE4YF13T2Fuil59dIxjoImKdMCbh4TZoYqK67KfnPO+sK3jtaenr6STk2SJdHQjUTk5BUcw + MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+q6sAt6enEePB + wWv3y8uv/c3Ntv3Pz7H90tKu/dXVq/3W1qT91dWa/dbWkv3Y2Ir92dmC/dvbef3d3XD9399n/eLiXv3l + 5VX96OhO/erqSPfl5Ubo19dK1cTEV8Ozs2u3qKiIsKKiqqucnMejkpLaoZCQ6qeUlPaqlpb7rpiY/aWS + kv5sZmb/QkJC/1BPUP5RU1D2SVVC21FnRdJmgVfdc45i636Ra/aWkYD8pZCO/aiRkP62o6D/wrSx/sK0 + tPa/r6/WsqCglJiEhEZkUlISAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvqurALinpxHjwsJq98zMqv3Pz6/+0NCp/tLSo/7U1Jz+1dWW/tbWjv7Y2IX+2dl9/tvbdP7d + 3Wr+4OBg/uPjV/zk5E/04OBJ3tDQSsG4uFWrpaVqn5qahpqUlKaZkZHDlo6O25OLi+uSiIj1kISE+5GD + g/2XiIj+nYyM/qSQkP6ejY3+amVl/0JCQv9QUFD+TVFM/UlYQfxVa0j8aYNZ/neRZv6JlHb/o5aN/6uU + k/+slJT/uKSi/76wrf+8rq7+xLW2/Mm6uuzBsbG8qZiYb3hpaSknISEHAAAAAAcGBQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6srAC3p6cQ4sLCZ/bNzaX90NCo/tHRoP/T05n/1dWS/9bWiv/Y + 2IH/2tp4/tzcbv3d3WX63d1d79bWWdnGxl2+srJoqaGhfaOcnJeqoqK0s6iozrqqquK7qKjwt6Sk+Kud + nf2ek5P+lo2N/pGJif+Rhob+k4aG/peHh/+djIz/moyM/2lkZP9CQkL/UFBQ/k1RS/5IVkD+U2pH/2mD + Wf99k2v/mZiD/66Zlv+wl5f/r5eX/7unpP/CtLH/vbCv/76xsv/Iu7v+0sTE+NLCwte/rq2NhHZzNxMQ + DgsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9q6sAtqenEOHCwmT2zs6e/dHRnv7T + 05b/1NSO/9fXhf/Y2Hz92Nh099bWberOzmvWv79xvq6uf6idnZSYkZGtmJKSxqqhodzEt7fr2cvL9ebS + 0vvszs7+7svL/ufHx//Xvb3/xLO0/7Gnp/+gmJf/mZCQ/5aMjP+ViYn/m46O/5iMjP9pZGT/QkJC/1BQ + UP9NUUv/SFdA/1RqSP9qhFv/iJV0/6ickP+2nZz/tJqa/7Kamf++qqb/yLm2/8i8u//Iu7v/yLu7/83B + wv/YzMv71MXD1ZiJhXUcFxUpAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuqqqALSm + phHfw8Nh9c/Plf3T05T+1NSL/NTUgvXR0X3oycl91bq6hb2pqZapmpqrm5CQwY6GhtWHgYHmlY+P8res + rPnZyMj87dnZ/vfl5f765OT/+9ra//vV1f/xz8//4MjI/9HCw//Curr/tq6u/66jo/+hl5f/mpGR/5uQ + kP+XjIz/aGRk/0JCQv9QUFD/TVFL/0hXQf9Ua0j/b4Ze/5eagf+1oZv/uqCg/7ednf+2nZ3/wKyo/8q7 + uP/OwcD/08XF/9bIyP/Vycn/2M3M/tXGw+SUhoGMFhMSRgAAAC0AAAAWAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALqqqgCzpaUQ38TEXfXQ0Iv91NSH+tPTf96+vou/qKimq5mZvJyPj9GSh4fjh39/7353 + d/d9eXn7lpGR/cO6uv7m19f/9eDg//nj4//76en//Obm//za2v/41NT/683N/9rHx//LwsL/wbu7/8e8 + vP/OvLv/v6+p/6acmP+dlJT/lY2N/2hkZP9CQkL/UFBQ/01RTP9JWEH/VmxJ/3mJZ/+ooJD/vqWj/76j + o/+7oKH/uqCg/8Kuqv/KvLn/zcHB/9XIyP/dz8//4tTU/+bY1/7czMnjlYaBjBQRD00AAAA/AAAALwAA + ABsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAC5qqoAs6WlEN3ExFj00NCA/tfXefPQ0HW3n5+glYaG3op/ + f/WBeHj6fHR0/nZxcf54dHT/l5OT/8vExP/s4eH/9ufn//fk5P/45OT/+unp//zm5v/729v/9tTU/+XM + zP/Txsb/xsDA/8S9vf/TxMP/5M7C/+XLs//BsKH/pJyZ/5WOjv9nZGT/QkJC/1BQUP9NUUz/SVhC/1lt + TP+HjnP/t6Wd/8Spqf/Bpqb/vaOj/7yjov/Er6z/yry5/83Bwf/WyMj/3s/P/+bX1//t3t7+49LP45qM + hogVERBIAAAAQAAAADkAAAAsAAAAHAAAAAwAAAADAAAAAAAAAAAAAAAAuKmpALKlpRDbw8NT89HRdP/Y + 2Gvvzs5oo5CQooF3d+x8dHT/d3Bw/3Jtbf9zcHD/k5CQ/8rHx//t5+f/9ezs//bp6f/25eX/+OXl//rp + 6f/85+f/+tvb//LS0v/fy8v/zsXF/8W/v//Pw8L/4s7D//PYuv/53LL/4Mqs/7Sqov+XkpL/ZmRk/0JC + Qv9QUFD/TVFM/0pZQv9fb1D/lpKB/8Gqp//IrK3/xaqq/8Gnp//ApqX/xrGu/8q8uf/NwcH/1sjI/97P + z//m19f/7t/e/uXU0OGgkIuEFxMSQQAAADoAAAA3AAAAMAAAACcAAAAbAAAADgAAAAUAAAAAAAAAALeo + qACxpaUQ2sLCTvPS0mj/2tpd7M3NW5eIiJp3b2/qdW9v/3Nubv9wbW3/h4WF/7++vv/p5+f/9PDw//Tt + 7f/16ur/9+fn//jm5v/66ur//Ojo//nb2//t0dH/2MrK/8rDw//MwsH/383E//HYvf/737X//eO4//Lc + u//Hu63/nJiX/2ZlZf9CQUH/UFBQ/01RS/9LWUP/Z3BY/6KWjP/Irq3/zLCw/8mtrf/Fqqr/xKmp/8m0 + sP/LvLr/zcHB/9bIyP/ez8//5tfX/+7f3f7m1dHgppWQfxoVFDoAAAAzAAAAMAAAACwAAAAnAAAAIgAA + ABgAAAAOAAAAAAAAAAC2qKgAsaWlD9fBwUny0tJc/9zcUOjNzU+MgICTcGlp6XBsbP9vbGz/eHd3/6qp + qf/b29v/7Ozs//Hw8P/z8PD/9ezs//bp6f/45+f/+uvr//vo6P/329v/58/P/9LIyP/MxMP/28vE/+/W + v//637j//eS7//3mxP/44sr/2Mm//6Ofnv9oZmf/QkFC/1BQUP9NUUz/TVpF/3FxYf+rl5T/zbGy/8+0 + tP/MsLD/yays/8isq//LtrL/y727/83Bwf/WyMj/3s/P/+bX1//u397+59bS362blnodGBczAAAALAAA + ACkAAAAlAAAAIgAAACEAAAAbAAAAEgAAAAAAAAAAtKenALCkpA/UwcFE8NPTUf/g4ETjzc1Eg3p6jWtn + Z+htamr/cG5u/5CPj//Gxsb/4ODg/+bm5v/s7Oz/8fDw//Tv7//27Oz/9ujo//Tm5v/y4+P/7tnZ/97P + z//Rycj/2MrE/+3Wwf/64Lz//OTA//zlyf/85dP/+uTb/+LT0P+qpqb/aWho/0JCQv9QUFD/TVFM/1Na + Sv97c2r/sZqa/9G0tf/Ut7f/z7S0/8ywsP/Lr6//zbe0/8y9u//NwcH/1sjI/97Pz//m19f/7t/d/unX + 0960opx2Ih0bLAAAACUAAAAjAAAAHgAAABsAAAAaAAAAFAAAAA0AAAAAAAAAALKmpgCuo6MP0cDAQO7V + 1Uj/5eU5387OPH13d4loZmbna2pq/3p6ev+qqqr/0NDQ/9nZ2f/e3t7/5ebm/+3s7P/y7+//8evr/+fe + 3v/e19f/39jY/9/Z2f/a1dX/2dDN/+rWxP/54MD//OTF//zmz//75dr/++bi//rn5v/p29r/says/2pp + af9CQkL/UFBQ/09STf9bXFH/g3Zy/7aenf/UuLj/17q6/9O3t//QtLT/zrKy/8+4tv/Mvrv/zcHB/9bI + yP/ez8//5tfX/+7f3f7p2NTdvaukcCokIiMAAAAaAAAAFwAAABIAAAAOAAAACwAAAAcAAAAEAAAAAAAA + AACxpaUAraKiD8/AwDzs2NhA/+vrM9zS0jh6d3eHZ2Zm525ubv+QkJD/vr6+/9DQ0P/T09P/19fX/93d + 3f/l5OT/6unp/+Ti4v/Y1tb/1tbW/9zc3P/f4OD/397e/+Da1f/w3sv//OXM//zm1v/65t//+ufm//rp + 6f/66ur/69/f/7WwsP9ramr/QkJC/1BQUP9SU1D/ZF5a/4l5d/+5oKH/2Lu7/9u9vf/Xurr/07e3/9G1 + tf/Rurj/zb67/83Bwf/WyMj/3s/P/+bX1//t393+7NrW2866smZKPzsUAAAACwAAAAgAAAAFAAAAAwAA + AAEAAAAAAAAAAAAAAAAAAAAAsKWlAK2iog/NwcE669zcPP/z8zDb19c2enp6h2hnZ+d4eHj/qqqq/8/P + z//V1dX/1NTU/9XV1f/Y2Nj/3d3d/+Li4v/f39//29vb/9jZ2f/W1tb/29vb/+Li4v/g3tz/6d7W//nm + 3f/76OX/+unp//nq6v/57Oz/+e3t/+zi4f+3srL/a2pr/0JCQv9PUFD/VVRT/2thYf+PfH3/vqSk/9u+ + vv/ewMD/2ry8/9e5uf/UuLj/0726/82/vP/NwcH/1sjI/97Pz//m19f/7t/d/u7c2NjgysNdp46FCAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCmpgCto6MPzMPDOerh4Tr/+vou3NvbN35+ + fodqamrngYGB/7CwsP/Kysr/zs7O/9DQ0P/T09P/1tbW/9vb2//i4uL/4uLi/9jY2P/Dw8P/ubm5/8fH + x//d3d3/39/f/+Hb2v/15+b/+evr//ns7P/57e3/+e7u//nv7//r4+P/t7S0/2xra/9CQkL/T09P/1dV + Vf9wZWX/loKC/8Opqf/gwsL/4sPD/97AwP/avLz/2Lu6/9a+vP/Ov7z/zcHB/9bIyP/ez8//5tfX/+7e + 3v7v3dnY5tDHW8+xpAfawLYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwp6cArKOjD8zF + xTnq5uY5////L97e3jmCgoKKbm5u54iIiP+ura3/u7q6/769vf/CwMD/xsTE/8vJyf/X1tX/4+Pj/+Li + 4v/Kysr/qamp/6SkpP+7u7v/2tra/+Hh4f/i3t7/9Ovr//nv7//48PD/+fDw//nw8P/48fH/5+Li/7Sz + s/9sbGz/QkJC/09PT/9YVlb/dWlp/56Jif/Kr6//5MXF/+XGxv/hw8P/3cDA/9u+vf/YwL3/zsC9/83B + wf/WyMj/3s/P/+bX1//u3t7+793Z2ObQx1vOsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAr6enAKyjow/LxsY56ujoO////zPh4eE9hoaGjHNzc+iWk5P/urS0/8K8vP/Evr3/x7/A/8rB + w//OxMn/2NLV/+Pi4//g4OD/xMTE/6Ojo/+mpqb/w8PD/97e3v/k5OP/5+Xl//Xw8P/48/P/+PPz//jz + 8//49PT/9/Ly/+De3v+xsLD/bWxs/0JCQv9PT0//WFZW/3tubv+okZH/0bW1/+jJyf/pycn/5MbG/+DC + wv/ewMD/2cK//87Avv/NwcH/1sjI/97Pz//m19f/7t7e/u/d2djm0MdbzbGjB9nBtgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALCnpwCspKQPzcfHOuzq6j7///845OTkQoqKio97eXnoqaCh/9DB + xP/Wxcz/18fR/9nH1v/ayNv/3cvf/+HV4f/j4OL/4uLi/9HR0f+5ubn/vr6+/9bW1v/l5eX/5OXm/+fo + 6//x8fL/9fP0//b09P/39fX/+Pb2//Tx8f/Y19f/rq2t/21tbP9CQkL/T09P/1lXWP+AdHT/sZqa/9q8 + u//szMz/7M3M/+fIyP/jxcX/4MPC/9vEwP/PwL3/zcHB/9bIyP/ez8//5tfX/+7e3v7v3dnY5tDHW82x + owfawbYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwqKgArKSkD8/JyTzt6+tD////PObn + 50eOjo6Sg3+B6bans//ZxNv/3Mbl/9vG6f/cx+z/38ru/+TQ7f/n2Of/4t7h/+Pi4v/i4uL/3Nzc/93d + 3f/l5eX/5efo/97h5//d4ur/5ejv/+3u8P/y8vL/9fT0//X19f/t7Oz/zs3N/6yrrP9ubW3/QkJC/1BP + T/9VV1n/bnV+/5+eqP/TwMX/7c/Q/+/Pz//ry8v/5sfH/+LFxP/cxcL/z8G+/83Bwf/WyMj/3s/P/+bX + 1//u3t7+793Z2ObQx1vNsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsampAK2k + pA/Qy8s97ezsR////0Lp6elMk5OTlYiDh+m4qMH/1MDv/9fD9f/bx/L/4c3w/+nU7f/w3er/7eHl/+Ph + 3//g4N//5OXk/+fn5//p6en/6Onq/97i5v/S2eT/0Nno/9ff6//g5e3/6evu/+/w8P/x8fH/4eHh/8XF + xf+trKz/bm1u/0JCQv9QT1D/T1Zb/0txif9kl7z/l7jW/8zK2v/oz9P/7c7O/+nJyf/lx8b/3sbD/8/B + vv/NwcH/1sjI/97Pz//m19f/7t7e/u/d2djm0MdbzbGjB9rBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALKpqQCtpKQP0czMP+7t7Uz///9H6+vrUZiZmJiJhYnqtqjB/9jF7//izfD/6tXr//Lc + 6f/24+j/9Ojm/+fr4f/b6tz/2+Xd/+Dk4f/l5ub/6urq/+fo6f/U2eD/ydLf/8vV5v/O2er/1d7s/97k + 7P/n6u7/5+jp/9HS0v/AwMD/rq6u/29ubv9CQkL/UE9Q/0xWXP8/b47/QZPG/1at5P+AvOf/u8fd/+TN + 0v/szMz/6MnJ/+DIxP/Pwb7/zcDB/9bIyP/ez8//5tfX/+7e3v7v3dnY5tDHW82xowfawbYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyqakAraWlD9LNzUHv7u5Q////TOzs7Faenp2bioeI67ms + t//o0+P/9N7o//jj5v/65uf/9unn/+nt4v/U8tn/zPTW/9Ty3P/i7eb/6uvq/+3t7f/q6+z/19vf/8rR + 3P/K1OP/y9fp/8/a7P/W3u3/3ePr/9nb3v/Gxsb/wMDA/7Gwsf9wb2//QkJC/1BPUP9MVlz/QXCP/0OV + yP9Jq+j/UbLw/3e66f+8x9v/5s3Q/+vMy//hycX/0MG+/83Bwf/WyMj/3s/P/+bX1//u3t7+793Z2ObQ + x1vNsaMH2sG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsqurAK6npw/Tz89D8O/vVf// + /1Hu7u5bpKSknoqJieu1qqz/7dna//vm5v/66Of/9+no/+vt4//W8tn/xPbS/8b31f/Y9uH/6PPs/+3u + 7f/v7+//7+/v/+Hi5P/R1dv/zNTg/8zW5//M2Oz/0Nvu/9Ta5f/Lzc//wcHB/8LCwv+zsrP/cW9w/0JC + Qv9QT1D/TFZd/0FykP9Gl8n/Ta3p/02y8v9SsvD/g7zl/83J1v/rzc3/48rH/8/Avf/Lv77/1cfH/97P + z//m19f/7t7e/u/d2djm0MdbzbGjB9nBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALSs + rACvp6cP1dHRRfHv71n///9X7+/vYKmqqqGNjIzsqaKi/uHS0v/65+j/+Orp/+3t5f/Z8dz/xPXQ/773 + z//N+Nr/4/bp/+7y7//u7u7/7u7u//Dw8P/o6On/2Nnc/9HV3P/P1+T/zdnq/87Y6P/Lz9b/w8TE/8HB + wf/ExMT/tbS0/3FwcP9CQkL/UE9P/0tWXf9CcpD/R5jK/0+u6f9QtPL/TbLy/1207f+mwt7/4s3Q/+TL + x//Lu7j/wrW0/8y/v//ay8z/5NbW/+3e3f7v3djY5tDHW82xowfawbUAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC1rKwAsKenD9bR0Uby8PBd////W/Dx8WWysrKklpaW7J+dnf/Nw8P/8uXk/+/t + 5//b8d3/xfXS/7n4zP/D+dP/2vjj/+317//w8fD/7e3t/+7u7v/x8fH/7u7u/9/f4P/W2Nv/09jg/9DX + 4//M0dn/x8jK/8PExP/ExMT/x8fH/7e2tv9ycHD/QkFB/09PT/9LVl3/Q3OR/0mZy/9Rr+n/UrTy/0+z + 8/9PsvD/g7vl/9LL1f/ly8j/x7e0/7apqf+9sbH/y76+/9nLzP/n2Nj+7NvX2ObQyFvQsaQH28C2AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt6+vALKpqRDY1NRN8fHxaf39/Wnz8/N0wcHBsaio + qPCmpaX/u7a2/97c1//h8eD/y/XW/7v4zf+9+c//0Pjc/+f36//y9PP/8fHx/+3t7f/t7e3/8fHx//Hx + 8f/m5ub/3N3d/9bZ3P/Q09b/zc7P/8zMzP/Ly8v/ycnJ/8vLy/+7urr/eXh4/0xLS/9ZWVn/Ulxj/0V2 + k/9Lm8z/U7Dq/1S18v9RtPP/TbLy/2+46v/CyNn/48zK/8e4tP+0p6f/t6ur/8C0tP/Kvr7/2MvL/uPT + 0NjjzsZb1rWpB9zBuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1tQC2r68R3NnZZO3t + 7Zv09PSg7+/vqNDQ0NG7u7v3vLy8/8HBwf/S1dH/2evc/8/z2f/J9db/0fTc/+H05v/t8+//8fHx/+/v + 7//s7Oz/7Ozs/+7u7v/w8PD/6enp/97e3v/X2Nj/0NHR/83Nzf/Nzc3/0dHR/9PT0//U1NT/ysrJ/6Sj + o/+IiIj/hoeH/2l3f/9OgZ//UaDQ/1az6v9VtvH/UrXy/06z8v9mt+z/uMfc/+PMyv/Lu7f/uays/7qu + rv+/tLT/xru7/9DFxf7dzsvY4szEW9q5qwfew7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC5s7MAtK2tDNXU1FLj4+OJ6Ojoj+Hh4ZS5ubnAoaGh8qGhof+jo6P/o6Sj/6ivqf+xzbn/vOXJ/87r + 1//h6+T/6Orp/+fn5//j4+P/4ODg/93d3f/c3Nz/09PT/7y8vP+srKz/rK2t/6+vr/+0tLT/uru7/7+/ + v//DxMX/wMPE/7e8vv+nr7T/laOr/4WapP9qjqL/WJa6/1us2/9ct+3/WLfx/1S18v9PtPP/Zrft/7jH + 3f/kzsv/zr+7/8O2tf/GuLn/yLy8/8vAwP/Sx8f+3c/L2OLMxFvauasH3cK3AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAArKenAKehoQLEwsITz8/PINjY2CGvr68qXV1df1RUVOVWVlb/VlZW/1lY + WP9YWlf/YnRm/oKnjf6wzLj+09zV/t7f3//b29v/09PT/8nJyf+7u7v/qKio/4+Pj/97e3r/e3x7/4WH + hf+Mj4z/kZaX/5Kanv+Pm6H/i52l/4aeqv+Anq3/ep+y/3Ogt/9torz/Z6XG/2Wv1/9luej/Ybvw/1u4 + 8f9WtvL/UrXy/2267f/Ayt3/5c7M/8u7uP+9sLD/x7m5/9HExP/Zy8v/3tHR/uTU0NjjzcVb1bWpB9zB + twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoqKgATFRUAXVlZAFJRUQALCwsAKioqCzQ0 + NGw/Pz/hRERE/0hISP9PT0/+T09O/0pNS/5SWFT+b3Vw/pKUkv6lpaX/qamp/6Wnpf+bnJv/ioyK/36A + ff+BhX//houD/4aNg/+EjoH/g4+F/32Umf92mqr/dZ6w/3iluf99rML/f7LI/4C2z/9+udX/e7va/3i9 + 4P90wOj/bsDu/2a98f9euvL/V7fz/1W18v9/vur/0M7c/+jPzP/HuLX/taio/7uurv/Fubn/0sbG/+DT + 0v7o19PY5c7HW9OzpwfcwbcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALy8vACkpKQo2NjZrRERE4VNTU/9hYWH+YmJi/WJiYvtra2v2c3Rz9Xp7efuCgoD+hIWD/4SH + gv+Hi4T/h4yE/4aNg/+HkIP/ipSF/46YiP+RnYv/lKKO/5anlv+Kq63/frDC/4K4zf+Mwdf/ksfe/5TK + 4f+UzeT/kc3m/4vM6f+Eyuv/fMfu/3PE8P9qwPH/Ybvy/1m38v9euPH/ncXn/+PT2v/pz8z/xri1/7Sn + p/+4q6v/v7S0/8e8vP/TyMf+4NHN2OPNxVvYt6oH3cK3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwAlJSUHQEBAT1tbW7h4eHjeiYmJ2oyMjMqPj4+3m5ubpJqb + mLCVmJDllJiP/pGWjP+RmIv/lJuO/5egkv+cppb/oayb/6axoP+qtqT/r7uo/7G/qv+ywa3/p8K4/5XE + z/+Uy+D/ndPp/6DV6/+h1uz/oNfs/5vV7P+T0+3/is7u/4DK7/92xfD/bMHx/2O88v9cufL/eb/u/8XO + 4v/y1tj/6c/M/8a4tf+0p6f/uKur/7+zs//Gu7v/0MXF/t3OytjizcRb2rmrB97DuAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OjoADQ0NAVlZWReDg4NEoaGhYbCw + sFy1tbVIt7e4M66uriaJj4JXk5qMy6Cnmf6mrqD/rLSl/7G5qv+1vq//ucOz/73Itv+/y7n/wc66/8LP + u//C0Lv/wdC5/73PvP+x0c//qNbo/6XZ7/+m2e//ptru/6TZ7v+e1+3/ltTt/43Q7v+Cy+//eMbw/27C + 8f9kvfL/cb7v/63L5//p193/99jY/+jPzP/GuLX/tKen/7irq/+/s7P/xru7/9DFxf7dzsrY4szEW9q5 + qwfew7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8 + vAC1tbUAvb29BLy8vAm7u7sIwcHBBP7//wA+JxMBqqmaP7m8r8TAxrn9wsq7/8XNvv/I0MH/ytLD/8vV + xP/M1sX/y9fE/8rXw//J1sL/yNbB/8bVvv/G1b//z9zT/8nh6v+y3PD/qNrv/6bZ7v+k2O7/ntbu/5fT + 7v+Nz+//g8vw/3jG8f9vwvH/esLv/6rM6f/i2eH/+Nvb//fY1//oz8z/xri1/7Snp/+4q6v/v7Oz/8a7 + u//QxcX+3c7K2OLMxFvauasH3sO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaubYAu1lZAeLSzTzk3NfC4uHZ/dzf + 1P/X3M//09vM/9Hayv/R2sr/0NrJ/8/ayP/O2cf/zdjF/8vXxP/I1sH/ztjG/+Tm3f/r7O3/1eXv/7ze + 7/+s2u7/o9fu/5zV7v+V0u7/jM/v/4TL8P+DyPD/k8rt/7rS6P/l2uL/+d7f//rb2//22Nf/6M/M/8a4 + tf+0p6f/uKur/7+zs//Gu7v/0MXF/t3OytjizMRb2rmrB97DuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+M/PAP+M + kwH239479OflwPLs6f3v6+f/6ejh/+Hk2v/a4NP/1d3O/9Lby//R2sr/0NrI/87Zx//M2MX/y9fE/9je + 0P/u6+b/9u/u//Ht7f/k6O3/0uPt/8He7f+12u3/rdft/6rV7f+v1Oz/v9fq/9jb5v/v3uL/+t/g//ve + 3v/529v/9tfW/+fPzP/GuLX/tKen/7erq/+/s7P/xru7/9DFxf7dzsrY4szEW9q5qwfew7gAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPrS0QD/lJoB9uHfO/Xp58D07ev99O7s//Lu6//v7Oj/6urj/+Ll2//a4NP/1N3N/9Hb + yv/P2cj/zdjG/9DayP/i5Nr/8+7r//fv7f/37u3/9u3t//Ls7P/s6Or/5ubq/+Pj6f/k4uj/6uLm//Li + 5f/44uL/++Dh//vg4P/7397/+dvb//XX1v/n0Mz/ybq3/7irqv+6ra3/v7Oz/8W7u//QxcT+3c7K2OLM + xFvauqsH3sO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD709IA/5iaAfbh3zv16ebA9O3q/fTu7P/07uz/9O/t//Pu + 7P/w7en/6+rk/+Pm3P/b4dT/1NzN/9Dayf/X3s//7Ork//Xv7f/27+3/9u7s//ft7P/37ev/+Ovq//jq + 6f/56Of/+ufm//vn5v/85uT//OTj//vj4f/74uD/+uDe//fc2v/z2db/5M/M/8q7uf/BtLT/xbi4/8i8 + vP/MwMD/08fH/t7Py9jizMRb2rmrB93CuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+9PSAP+YmgH24d879enmwPXt + 6v317uv/9e7s//Xu7P/17+3/9O/t//Tu7f/x7er/7Orl/+Tl3f/d4dX/4+Xb//Lt6f/27+3/9+/t//ju + 7P/47uv/+e7r//ns6v/56+j/+ejl//fm4v/24+D/9N/c//Hb2P/u19T/69PQ/+jPzP/jysj/4MfE/9O7 + uf+6pqb/uKan/8W1tf/QwcH/2MrK/9/S0P7l1dHY5M7GW9a2qQfcwrcAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvT + 0QD/mJoB9uHfO/Xp5sD07er99O7s//Tt6//07uz/9O7s//Tu7f/17+3/9vDt//bw7f/07+v/8ezn//Lt + 5//27ur/9e3o//Tq5v/x5eL/7+Hc/+vc2P/m1tL/4c/M/93Jxv/Yw8D/1L27/9G3tv/Os7L/y6+u/8qt + rP/Jq6v/yaqq/8mrq//Epqb/r5WW/6aQkP+ynZ3/w66u/9G+vv/ezMv+5NDN2N/IwVvLr6MH1buyAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD709IA/5idAffh3zv16ebA9O3q/fXu6//17uv/9e/r//Xu6v/17en/8+vn//Lo + 5P/v5OD/6t/b/+XZ1f/f0c3/2cnG/9LBvv/Mubb/xrCu/8Gpp/+8o6L/t56c/7SZmP+zlpb/spSU/7GT + k/+yk5P/s5OU/7WVlf+3l5f/uZmZ/7ucnf+/n6D/waKi/7ufn/+xmZn/rZWV/7adnf/Hra3/1ry8/9vC + wN/UurdowaakCsuwrgB/bGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+NDQAP+aowH23ts78+XgwPDm4v3v5OD/7ODc/+fa + 1v/g0c3/1MTA/8i2s//ArKr/uaSi/7Gbmf+rk5L/pYyL/6GGhv+dgoH/m35+/5p8fP+ae3v/mnt8/5x9 + ff+efn//oIKC/6OFhf+niYn/rI6O/7GTk/+2mJn/vJ6f/8Okpf/Jqqv/z7Cw/9W1tf/curr/2ba2/8Gi + ov+zmZn/wqen/9O3t//ewcDv2by8k8Spqhz///8AoYuLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN+7uwDlmKAB3sTCO9nE + wcHPvbr9xLCu/76opv+5oZ//sJaV/6GGhf+NcnH/hWlp/4NnZ/+CZWb/gmVl/4RnZ/+HaWn/imxs/45x + cf+Tdnb/mXx8/5+Dg/+mi4v/rZKS/7Wamv+9o6P/xqur/86xsf/WuLj/3L29/+PBwv/oxcX/7cjI//HK + yv/0y8v/+MzM//bIyP/dtLT/u52d/7uhof/OsrL/3sDB++HDw8jQtLRKp5GRBNC1tQBqWFgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADDpaUAsomJAcesrDvHrazBwKem/bWbm/+rkZH/pImJ/5yBgP6QdHP+f2Ji/ntgYP6CZ2f+iW9v/5F3 + d/+ZgYH/ooqK/6uUlP+1np7/vqen/8ewsP/Pubn/2MDA/9/Gxv/mzMz/7NDQ//HT0//11NT/+NXV//rW + 1v/81dX//dPU//7T0//+0tL//tDQ//7Ozv/+zMz/8cLC/8+qqv+5np7/xKqq/9i7u//jxcXq2r29hr+l + pRYAAAAAq5OTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAuZycAAAAAADDp6czyq2ttM2xsfrKr7D/xKmp/7yhof+xl5f+pIqK/J6F + hfutlpb9uqWl/sSwsP/Mubn/1MLC/9vJyf/i0ND/59TU/+zY2P/v29v/897e//bf3//439//+t/f//ve + 3v/83d3//dvb//3Z2f/+2Nj//tbW///U1P//09P//9LS///R0f//z8///s7O//zKyv/nurr/xaSk/76k + pP7QtLT+4MLC+eHDw8DPs7NBqY+PAg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKUlADPsrIAwqWlHs2wsJLVuLjx17u7/9S5 + uf/QtbT/yK6u/cGnp/HIr6/o48/P+O3b2/7v3t7/8ODg//Hi4v/y4+P/8uTk//Pj4//04+P/9OLi//Xh + 4f/24eH/9+Dg//jf3//53t7/+t3d//zc3P/82tr//dnZ//7X1///1tb//9TU///S0v//0tL//9DQ///O + zv/+zMz/9sXF/961tf/Or6/+1Le3/eDCwvzlyMjj2r6+fL+npxK0nZ0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyaysAMWp + qRPStbV+276+7N7Bwf/bv77/1ru6/9G3t/rOs7PY2L+/w+7a2u7z4+P/8ePj/+/j4//u5OT/7uTk/+7k + 5P/u4+P/7+Pj//Di4v/y4eH/9OHh//Xg4P/24OD/+N/f//re3v/73d3//Nzc//3a2v/+2Nj//tbW///U + 1P//09P//9LS///R0f//z8///s3N//3Ly//3xsb/78PD/+zExPzpxsbq6MzMveLJyYPOuLgjybS0AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAM+xsQDLrq4S2bu7fOPFxezlyMj/4sTE/9y/v//Xu7z107i4ttjBwZjr2dnk8OLi/+7j + 4//s5OT/6+Tk/+vl5f/r5eX/7OXl/+3k5P/u4+P/8OLi//Ph4f/04eH/9uDg//jf3//53t7/+t7e//zd + 3f/929v//djY//7X1//+1dX//tTU//7T0//+0dH//s/P//3Nzf/9y8v//cnJ/vzIyP75xsb88cPDzejG + xl/n1NQ02cnJFNfGxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTtbUAzrGxE97AwH3pysrs7M7O/+jKyv/ixMX/3MDA7NS6 + upLYwcF06djY3O/i4v/u5OT/7OTk/+vl5f/q5ub/6ubm/+vm5v/t5eX/7uTk//Dj4//z4eH/9OHh//Xg + 4P/339//+d/f//rd3f/73Nz//Nra//vX1//71dX/+tPT//nR0f/4zs7/98zM//XJyf/zx8f/8sTE//DB + wf7uv7/+6729/OK3t8LWrq430sXFA+TZ2QHf0tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1Le3ANCzsxLhw8N77M7O6vDS + 0v/rzc7/5sjI/9/Cwt7UuLhv2cHBWOnW1tPw4uL+7+Pj/u7k5P7s5eX+7OXl/+zl5f/s4+P/7ePj/+7h + 4f/v39//8N7e//Hd3f/x29v/8dnZ//HW1v/x09P/8NHR//DOzv/ty8v/68nJ/+rHx//oxMT/5sPD/+TB + wf/iv7//4b6+/+C+vv/evb3+3by8/de3t/LNra2pwqOjKnVZWQC7nJwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANO4 + uADOs7MM3sPDW+fMzLvrz8/d6czN6uXIyfLewcHE0bW1Tdi/v0Hm0dHI7tzc/e3d3f3s3d396dzc/ujb + 2//n2dn/59fX/+bV1f/l0tL/5dDQ/+TOzv/jzMz/48rK/+LIyP/ix8f/4cXF/+DDw/7gwsL+38LC/d7C + wvzewcH63sHB+N3BwfbdwsLz3MLC79zCwuvdxMTm3cTE3trBwc/PtbWovqSkV66UlA7IsrIAqo6OAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADQubkAzLOzAtjDwxveyclE4MrLZODIyYHexcWZ2L6+esuwsCXUubkw3MPDueHL + y/vjzMz+4szM/uDKyv/fycn/38jI/t/Gxv7exsb93sTE/N7ExPrexMT43cTE9t7ExPPexMTv38TE6+DF + xeXfxcXd4MbG1uDGxs/gx8fF4cfHvODGxrHexcWl3cTEm9vCwo/awsKC3cTEd9zExGjVvr5Rxa6uL6mS + kg1LQUEAjHl5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX3t4A193dAtXKygnVxcQT1cLCH8+6 + uhu+qKgG07S0H9e6upTcwcHq38XF8uDFxe7gxcXq4MbG5OHHx97hx8fY4cfH0OHHx8bhx8e838bGsN3F + xaTexcWZ3sXFjN/FxX7gxsZy38bGZeDGxlngxcVP38TEQt/ExDjcwsIw1ru7J9G3tyDNtbUZzbOzE9C1 + tQ/Krq4KrJOTBBMREQBEOjoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA2La2ANi2tgrdvb1G4cPDjuHHx5nfxcWM4MbGfeHHx3DhxsZi4cfHVuDF + xUvfw8M93sTEM9rAwCnVu7sh1Lq6G9W7uxTYvr4P2b6+DNa7uwnVuLgG0rOzBMWfnwKqfX0ApHV1AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTAwADlwMAA4sDACN6+vhjZvLwb1La2FNS3 + tw3bv78J3L+/Btq8vAXWtLQDyqSkAat5eQA/AAAAXgMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNk + ZACdXFwAj0pKAI5JSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA + AAAA8D//4AAAAAAAH//gAAAAAAAH/+AAAAAAAAH/4AAAAAAAAP/gAAAAAAAAP+AAAAAAAAAf4AAAAAAA + AA/gAAAAAAAAA+AAAAAAAAAB4AAAAAAAAADgAAAAAAAAAOAAAAAAAAAA4AAAAAAAAADgAAAAAAAAAOAA + AAAAAAAD4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAA + AH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gAAAAAAAAf+AA + AAAAAAB/4AAAAAAAAH/+AAAAAAAAf/4AAAAAAAB//gAAAAAAAH/+AAAAAAAAf/+EAAAAAAB///wAAAAA + AH///AAAAAAAf//8AAAAAAB///wAAAAAAH///AAAAAAAf//8AAAAAAB///wAAAAAAH///AAAAAAAf//8 + AAAAAAA///wAAAAAAD///gAAAAAAH//+AAAAAAAf//4AAAAAAB///gAAAAAAH//+AAAAAAAf//4AAAAA + AH///gAAAAAAf//+AAAAAAD///+AAAAAA/////4AAAf//////wA///////////////////////////// + ////////////////////////////////////////KAAAACAAAABAAAAAAQAgAAAAAAAAEAAAEgsAABIL + AAAAAAAAAAAAAN3DwwDTvb0Q48fHX+fLy4zhy8uO483NiunR0YPo09N/59XVeubX13Xm2dlx5tnZb+TY + 2G/c0dF418rKgdfExIjRvLyUlIiInFhXV6JkZWReWWlQG3CFXyOMg3dEo4+MYq6em0ehkZESKxYXAJB9 + fAAAAAAAAAAAAAAAAAAAAAAA5cTEANi9vRbuycmB98/Pt/bT07T21dWp+NfXmvja2oz33t599eHhcO3d + 3Wjg0tJs0MPDf8O2tqC5qanDtaKi2bahoeuJfX3yUVFR8VFXTsRacE6XeItnqpeMgcusmJbfuaqoxram + p3qpmJgphnR1BayamQBoV1oAAAAAAAAAAADmw8MA17u7FvDIyHn7zs6l/dLSmf3V1Yr61tZ58dPTbdvF + xWnGuLhxwbW1h8GysqW5p6fHqJqb4ZiNjfOWiIj6nIuL/X1zc/5NTU3+SlVG+l50UPiFkHL8ppWO/rSe + nf++r679wrS168W2tquyo6FIUEdFCgAAAAAAAAAAAAAAAOTExADVu7sV7srKb/rQ0JPyzc2K3r+/iMCq + qpKkmJikopmZvb+zs9TczMzp6dDQ9ePFxfzKt7j+sKam/qGWlv6Zjo7+eXJy/k1NTP5KVUX+Y3dV/pmX + g/60nJr/uqSi/sa3tf7NwMD/08bG87mrqZ0+ODUwAAAACwAAAAEAAAAA4cTEANO7uxPty8th78vLgbeg + oKeUh4fShHx85o+KivPAuLj66NjY/vfj4//53t7/7M/P/9HDw/7Kvrz+zLqv/q2hmf55dHT+TU1M/kxV + R/5we2D+rp+V/r2iov+/qaf/yry6/9fJyf/h0tL5v7GurzItK0kAAAAnAAAADgAAAALew8MAz7q6EuvM + zFLhwsJtjoGBu3ZwcPmBfX3+ube3/urj4/715ub++Obm//jf3//jzc3/z8TC/9/Mvv/w17j/zb2q/397 + ef9NTUz/TlZI/4CAbv++p6P/xKmp/8Stq//LvLv/2crK/+bW1fjJubaqNzEvQwAAAC0AAAAeAAAADtnC + wgDKuLgQ6M3NQtW9vVZ7c3O0cm9v+p+env/Z2dn/7uzs//Pq6v/z5eX/7tzc/9zNzP/dzcL/89u///vj + x//h0MT/iYWE/01NTP9TV03/kIR8/8murf/Mr6//ybGw/8y9vP/Zysr/59fW+NLBvaNFPjs1AAAAIQAA + ABoAAAAR08LCAMW2tg7jz882yru7R3NwcK5/f3/6urq6/9jY2P/k4+P/6OXl/+Hb2//e2dr/3tbT/+3b + yv/65NH/+ubf/+fZ1/+QjIz/Tk5N/1xZVf+cioj/0LS0/9K2tv/OtrT/zb+9/9nKyv/n19b33czIm21i + XiEAAAAMAAAACAAAAATPxMQAwbe3DuDV1S/FwMBBd3Z2rZOTk/rFxcT/0NDQ/9jY2P/e3t7/z8/P/8zM + zP/d2tn/7eLc//jp5v/56+v/6N7f/5KPj/9OTk7/ZF1d/6eRkf/Yu7v/2by8/9O6uf/Ov73/2crK/+jX + 1/fp19KSzbmxEf///wAAAAAAAAAAAM7IyADAubkO39vbL8jHx0OCgoGvoJ2d+sO+v//KxMf/1dDT/9za + 2/++vr7/u7u7/9vb2//r5+f/9u/v//fx8f/k3+D/kI+O/09OTv9rY2L/tZyc/+HCwf/gwsH/2L+9/8/A + v//Zysr/6NfX9uvZ1ZHizMIP6NTOAAAAAAAAAAAA0czMAMK7uw7i3980z8/OS5KPkbK2qrb61MLY/9nH + 3v/f0uD/39ze/9HR0P/T09P/3uDj/+Tm6v/v7/D/8/Ly/9rZ2f+Mi4v/T09P/2ZnbP+wpq3/48jK/+bH + x//bwsD/0MG//9nKyv/o19f269nVkeLLwg/n1M4AAAAAAAAAAADUz88AxL6+DuTi4jnW1tVUnJectsCw + yvrizez/6tfp/+fh4//e5N7/4eTi/+Tl5v/W2+P/0drn/97k7P/m5+n/zMzM/4mJif9OT1D/TWZ3/2+g + xP+ywtn/4MnN/+DFxP/QwsD/2crK/+jX1/br2dWR4svCD+fUzgAAAAAAAAAAANbT0wDHwcEP5uTkP9vb + 216gnZ+7x7nC+/Lf5v/u5+P/1+/Z/9Tx2//l7Oj/6enq/9ba4f/L1eP/0Nrp/9LW3P/BwcL/i4uL/05P + Uf9FZnv/SJvP/2e16f+1w9n/3sfH/9DAvv/Xycn/59fX9uvZ1ZHiy8IP59TOAAAAAAAAAAAA2tbWAMrF + xQ/p5+dG4uPjaaelpsDAt7f66+Tf/9rw2//H9dP/2/Xi/+zv7f/t7e3/4ePk/9LX3//N1N//yMrO/8HB + wf+Pjo7/UFFS/0dnfP9JndH/T7Hv/4O65P/Oxcv/yLi2/8q9vf/f0ND26NbSkePLwg/m0swAAAAAAAAA + AADc2dkAz8rKEubl5V3l5eWLuLi40La0s/zN1sz+x+7R/s/z2v7n8er+6+vr/+rq6v/i4uL/0dLU/8nK + zP/IyMj/x8fI/6Kio/9ucnX/VXmP/1Cj1f9Qs/D/a7fq/77D0P/FtbP/vrKy/9DDw/bdzcqR4svCD+DN + yAAAAAAAAAAAANfW1gDOy8sK4N/fOs3NzWGKioq9fHx8+4KJhP+UrJv+v9HE/dfZ1/7Q0ND/wcHA/6qr + qv+eoJ3/oKWl/6Stsf+jsrn/lau2/32er/9mn7//XLHi/1S18P9suOv/v8TS/8i4tv/EuLf/08bF9t3N + yZHiysEP4M3HAAAAAAAAAAAAysnJAMTDwwDw8PACVlZWF0hISJdVVVXyXl9e8Wlva+6Jjon4nZ+b/pue + mf+QlI3/i5KI/46Yiv+LoJz/g6q4/4e1yf+JvdP/g8Db/3jA5P9pvu7/W7jx/4K+6f/OyNH/xLSy/7+y + sv/RxcT2387KkePLwg/izsgAAAAAAAAAAAAAAAAAAAAAAElJSQAzMzMIW1tbVHh4eI6EhIR/ioyIipaa + kd+do5j+o6ud/6mzo/+vu6n/s8Cs/67Etv+iy9T/ntLo/57U6v+V0ev/g8rt/2/C8P9wvu7/s8rj/+HN + z//CsrH/uq6u/8u/vvbaysaR4srBD97MxQAAAAAAAAAAAAAAAAAAAAAAd3d3AEpKSgCPj48Irq6uD8LC + wgrHwro2zMzCy8zRxP7L0sT/ytTD/8rVw//I1cD/ytbE/9Hf3v/A3u3/q9nt/5zU7f+Nze3/jMns/7LO + 5//o193/6c/N/8Gysf+6rq7/yr6+9tnJxpHhysEP3svFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/9/QA7eHfAPHi3zHv5+TJ6+jj/uPk3P/a39P/0tvL/83Xxv/X3c//7erm/+np7P/Y5Ov/yt3q/8ja + 6f/X2+b/793g//jb2//oz83/xLWz/7ywsP/Lv7/22crGkeHKwQ/ey8UAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPbT0wDz8O0A9OTiMfPq58nz7er+8u3q/+3r5v/l5t3/3OHV/+bm3f/z7en/9evp//Pn + 5f/w4uH/793c/+/Y1//t09L/6c7M/9vCwP/Arq3/wrS0/9PFxPbdzciR4cnAD+DMxgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA99PSAPLv6wD05OEx8+nmyfLq6P7w6eb/7eTh/+fe2//f1tL/28/L/9jJ + xv/TwL7/zbi2/8mxsP/GrKv/xamo/8Wop//Hqan/xqio/7mfoP+7pKT/0Lq6+NzFwpjXvboT28PAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADlw8IA3tLPAOPOyzHdzMnJ1MPB/si1s/61oJ7+ppCP/qKK + if6gh4b/oYeH/6WKiv+qj4//spaW/7yfn//Gp6f/z66v/9i1tv/gu7v/37m5/8enp//Hq6v82Lu7vte6 + ui8RCwwAwaenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMepqQDLsrEAyq+uLciurcPApqX+r5WV/Z2D + g/ugiIj8rZaW/rmjo//Fr6//0Lq6/9rDw//kysr/687O//LQ0P/20dH/+dDQ//vPz//6y8v/47m5/smq + qv7Wubno3L+/bM6zswnTtrYAt6GhAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKGiANGzswDKra0e1Le3rdW5 + ufzLsLD3yK+v4d/MzPLo2dn+6t3d/+zg4P/v4OD/8+Dg//bf3//43d3/+9vb//3Y2P/+1NT//tHR//3O + zv/3xsb+5Lq6/eG+vu7hxMSL176+GOnLywDEr68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3b+/ANa5 + uRjhxMSm48bG/Nu+vunZwMGv69vb4O3j4/7r5OT+6+Tk/u3i4v/w4OD/897e//bc3P/42dn/+dbW//jR + 0f/3zs7/9crK//PGxv/wwsL+6b6+0eLAwE3byMgK/dzcAM++vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADgxMQA2r6+EubJyYXoy8va4MPEwtrBwXjo1tbP6tzc/efb2/7m2tr+59fX/ufU1P7o0dH96M/P++jM + zPjoycn15sbG8eTExO3iwcHn4MDA3969vdDVtLSLyaioGsqkpADz398A8+3tAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3FxQDYv78D4cjIJeLIyU7cwcJO1ry8O97Gxq3hysrm4MrK4ODJydffyMjO3sbGwt3E + xLbexMSo3sTEmt7Dw4zew8N93MHBb9nAwGHZwMBU1r6+QciwsB6xmZkDvqamAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLvbwAyb69Acq6ugLWt7cK3L+/Qd3Cwl3ew8NP3sTEQt7E + xDbcwsIq2cDAIdrAwBrcwsIT3MPDDtzDwwnZwcEF0Lm5A8u4uAGzr68Axri4AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4r29AOvAwADdvLwC17i4A9K1 + tQHSp6cA9Pj4AIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA/gAAAD4AAAAeAAAABgAAAAIAAAACAAAAAgAAAAIAA + AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB+AAAAfwAAAH/gAAB/4AAAf+AAAH/gAAB/4A + AAP+AAAD/gAAA/4AAAf+AAAH/4AAP//x/////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAABIL + AAASCwAAAAAAAAAAAACLjIwA99bWAMi3tw3YwcFC38bGa97Hx3HVxcVx08TEctrJyW/gzMxs4c7Oa+DP + z2rf0NBo3tHRZt7S0mXe09Nk3dPTY93T02Pd09Nj2tDQZNLKymjSyclq2cvLaNvJyWraxsZvzLq6cYN7 + e3ZQT0+HZ2dncX19fSxWV1UFVXJIA22CWwmBfGwWkXx6K6KOijupmZQrmIeGDD8mJwBVPj4AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNkZEA/+LiANK8vBfnyMhy8c7OtPLQ0Lzu0tK87NPTuvDV + 1bLz19eq89jYpfLa2p/x3NyZ8N3dk/Df343v4eGI8OHhhPDh4YLv4OCC6tzcieLU1JrbzMyp1sTEstK9 + vcDPubnQw6+v2IJ5edxPTk7jXF1czl9iXXxNXEQ/ZIBVQXWKY1yKh3V+moaDoKuXlLW2p6SZrZ6eV5uI + iB5yXFwE////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLjo4A//HxANG4uBnrxsZ0+MzMtPvQ + 0Lj709O0+tbWrvvW1qP71taY+9nZjvrb24P73t53++HhbPvl5WH35ORZ7dzcV93Ozl7Nv79uwbOzh7ms + rKiyo6PGq5qa2qyZmeuwm5v3q5eX/HlwcP5MS0z+T1FP9k5XSNFUaUi3aoVawn2Pa9iVjn/rpI6M9bKe + nPq9rqzxu6yty7alpYamlJQ9f25uDywgIABwXl4AAAAAAAAAAAAAAAAAAAAAAAAAAACMjIwA//b2ANC2 + thjqxcVu+MzMqP3Pz6j90dGf/dTUlv3V1Yz919eA/drac/3c3Gf53Nxd69XVV9XFxVnAtrZktaysebCl + pZSqnp6yo5eXzZqQkOKUiYnwkoWF+JaHh/ydjIz9nYuL/XNra/5LS0v+S05L/EpXRPlXbkr5b4hf/ImT + dv6ilIz/rJSU/rWhn/6+r63+v7Cx+8O0tebDs7OvtqWlYZKDgh8+NzQEAAAAAAAAAAAAAAAAAAAAAAAA + AACMjIwA//z8AM+3txfqxsZq+M7On/3R0Zz+09OR/dXVhvzW1nz21NRy6MzMbtO+vnG6rKx9qqCgkK2j + o6i9srLBzL292NO9venTuLj0x7Cw+7Skpf2hmJj+l46N/pSJif6XiYr+l4qK/nBqav5LSkv+S05K/UpX + Q/5Xbkv+dopk/pmYg/+vmZb/sZiY/7mkov7CtLH+w7a2/8e6u/7PwcL0zr++xaial2Y/NzUcAAAABgAA + AAAAAAAAAAAAAAAAAACPjY0A////AM23txfox8dk98/Pk/zS0o720NCG6cjIg9W6uoi9qKiVppiYqJWM + jL2TjIzTqaCg48q8vPDj0tL48N3d/PXX1/7z0ND/5MfH/86+vv67srH+rqSk/qKXl/6bkJD+loyM/nBq + av9LSkv+TE5K/kpXRP5Zb0z+gY5u/qmdkf+3np3/tpyc/72opf/Iubb/zcC//9HExP/Vycn+1cfG6qib + l5UxKyk/AAAAHQAAAAkAAAABAAAAAAAAAACPi4sA////AMy3txbnyMhd99HRhPTPz4HNsbGWrJiYuZmL + i8+LgYHhgXp67oeCgvaqo6P71cnJ/e7b2/734+P/+uXl//rc3P/00tL/4cnJ/83Bwf/EvLz/yry5/8Wz + q/+rn5r/l4+O/29qav9LSkv/TE5L/0tYRf9ecVH/kZN8/7ejnf+9oqL/uqCg/8CrqP/Jurn/0MPD/9rM + zP/i09P+39DO7KucmJsqJSNOAAAANQAAACAAAAAMAAAAAgAAAACTjo4A////AMq2thXlx8dV9tLSdOnI + yHWmkpKsh3x86n11dfp2cXH8f3x8/amlpf7a09P+8OTk/vbk5P/45eX/+ubm//nd3f/v0dH/2MjI/8nA + wP/NwsD/4cy+/+jPs//JuKX/n5iU/25ra/9LSkr/TE5L/0xYRf9ndFj/oZmL/8Kop//Bpqf/vqSk/8Ot + q//Ju7n/0cPD/9vNzf/m19f+5tbU67Kjn5ctJyVJAAAAOQAAAC4AAAAdAAAADQAAAASWkZEA////AMe1 + tRTjx8dN9tPTY+HDw2WSg4Opd3Bw8XJtbf93c3P/npyc/9XT0//w6+v/8+rq//Xm5v/45ub/+ufn//jd + 3f/pz8//0sbG/83Dwf/ezMD/8tm6//nft//jz7T/rqaf/3Bubf9LSkr/TE5K/01ZR/9yd2L/sJ6X/8mu + rf/Hq6v/w6io/8awrv/Ku7n/0cPD/9zNzf/n2Nf+6NfV6rmppZIzLSpAAAAAMgAAACwAAAAkAAAAGQAA + AA6Zk5MA////AMS0tBPgxsZE9dXVU9rAwFWEenqhb2lp8HBtbf+KiYn/wcHB/+Xl5f/v7u7/8+3t//Xp + 6f/36Oj/9+bm//Lb2//gzc3/0cfF/9vLwf/w2L3/+uG8//vkxP/v28n/vbOu/3Nxcf9LSkr/TE5L/1FZ + Sv99eGz/uaKg/8+ys//Lr6//yKys/8mzsP/LvLv/0cPD/9zNzf/n2Nf+6djW6sGvq4w7NDI3AAAAKQAA + ACQAAAAgAAAAGwAAABKbk5MA////AMGyshLcxsY889jYRdG+vkh6dHSbamho73d2dv+kpKT/0NHR/+Dh + 4f/p6Oj/8O3t//Hq6v/s4eH/6N3d/+XZ2f/b0dD/287H/+3Ywf/54cL/++TM//vl2P/04dz/x728/3d1 + df9LS0v/TE5M/1lbUf+IfHb/wKam/9S3t//QtLT/zLCw/8y1s//Mvbv/0cPD/9zNzf/n2Nf+6tnX6cm4 + s4dJQT4tAAAAHQAAABcAAAATAAAADwAAAAmclJQAAAAAAL2wsBHYx8c28d3dO8vAwEB2c3OYa2pq7omJ + if+6urr/0tLS/9fY2P/f39//5+bm/+bj4//c2dn/2tjY/93c3P/d2tn/5dnP//bgy//75dP/+ubf//rn + 5v/15eX/zMTD/3p4eP9LS0v/T09N/2FdWf+QgH7/xaqq/9i7u//VuLj/0bW1/8+4tv/Mvrv/0cTD/9zN + zf/m19f+69vY59fFv31wZF8dAQEACwAAAAgAAAAEAAAAAgAAAAGelJQAAAAAALyxsRHVycky8OTkNsnE + xD52dXWXc3Jy7p2env/IyMj/0tLS/9PU1P/Y2Nj/39/f/9/f3//X19f/0NDQ/9TU1P/e3dz/5N3Z//Lj + 2//66OT/+eno//nr6//16en/zsfH/3t5ev9KS0v/UFBP/2lhYP+YhIT/yq+v/9y/v//ZvLz/1bi4/9K7 + uf/Nvrz/0cPD/9zNzf/n19f+7dzZ5eXRzHXDrqUQFRAOAAAAAAAAAAAAAAAAAAAAAACelJQAAAAAALuz + sxHUzc0x8OvrNMrJyT56enqYenp67qOjo//BwcD/x8fG/8vKyv/R0dH/3Nzc/9/f3//Kysr/tLS0/7+/ + v//Z2dn/4d/e/+7l5P/47Oz/+O3t//ju7v/z7Oz/zMjI/3t6ev9KSkr/UlBQ/29lZf+hi4v/0bW1/+LD + w//ewMD/2by8/9a+u//Ov7z/0cPD/9zNzf/n19f+7dza5enW0HPdxbsOvpyIAAAAAAAAAAAAAAAAAAAA + AACelJQAAAAAALuzsxHV0NAy8O7uNs7Pz0KBgYGbhYSD766pqf/CvLz/xr/A/8rCxf/Ryc7/3dnc/97d + 3f/AwMD/qamp/729vf/b29v/5OPj/+/r6v/38fH/9/Ly//fy8v/w7Oz/x8XF/3p6ef9LS0r/UlBQ/3Vq + av+slZT/2bu7/+fHx//ixMP/3cC//9jAvf/OwL7/0cTD/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAA + AAAAAAAAAAAAAAAAAACck5MAAAAAALu0tBHW0tI08fDwPNPT00iJiIielY+R78O2vv/Uw9L/1cTX/9jG + 3P/czd//4dnh/9/e3//Pz8//w8PD/9PT0//h4uP/4+Tn/+rr7v/y8fL/9fPz//b09P/q6Oj/wL6+/3l5 + ef9LS0v/UlFS/3Vvcv+wnqD/38LD/+vMy//mx8f/4cPD/9rCwP/PwL7/0cTD/9zNzf/n19f+7dza5enW + 0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACbkpIAAAAAAL21tRHZ1dU38vHxQtjY2E6Rj4+hn5Wg8My5 + 1//axev/3cjs/+PO6//o1+n/5d3i/+Hg3//g4eD/4ODg/+Tk5f/e4eX/19zm/9zh6//m6e7/7+/w//Dw + 8P/f39//ubi4/3l5ef9MS0v/TlFU/11vff+JnrT/w8HQ/+TN0f/qy8v/5cbG/9zEwf/Pwb7/0cTD/9zN + zf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACbkJAAAAAAAL63txHa19c68/LySNzc + 3FWWlZWloZim8M683v/ize//6tXr//Dd6P/u5eT/4efe/9vl3f/h5eL/5+jo/+Xm6P/V2uL/y9Ti/8/Z + 6P/Y4Ov/4+fs/+Xm5//R0dL/tLS0/3p6ev9MS0v/S1FV/0Zshf9RlsT/e7bg/7XF3P/fy9D/6MnJ/9/G + xP/Pwb7/0cTE/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAAAACaj48AAAAAAL+5 + uRLc2dk99PPzTuDg31ybmpqpo5uh8dnH1P/z3uf/9uPn//Lo5f/g7d3/z/LX/9Tx3P/i7Ob/6+vr/+jp + 6v/X2+D/ytPf/8rW5v/P2uv/197q/9XY3P/Gxsf/tbW1/3x8fP9MS0z/S1FV/0Nsh/9Elsr/UK7p/3O4 + 6f+2xNr/48vO/+HIxf/Qwb7/0MPD/9zNzf/n19f+7dza5enW0HPexbsOv52JAAAAAAAAAAAAAAAAAAAA + AACZj48A////AMK8vBLe29tA9fT0VOPj42Kgn6CsoJqb8dfHyP/35OX/9Onm/+Pt3//M89T/xvbU/9n1 + 4f/p8Ov/7e3t/+3t7f/g4uT/0dXc/8zV4//N1+n/ztbi/8jLzv/CwsL/t7e3/359ff9MS0z/SlFV/0Ru + iP9HmMv/TK7r/1Oy7/+DuuT/zMfT/+HIxv/Nvbr/yr29/9jKyv/l1tb+7dza5enW0HPexbsOvpyJAAAA + AAAAAAAAAAAAAAAAAACZj48A////AMO9vRLg3d1D9vX1W+fo6Gmqqqqwnpyb8ca9vf7s4t//5u7h/83z + 1f+/9s//zffZ/+X16f/u7+7/7e3t/+7u7v/o6Oj/2dvd/9LW3v/O1eD/ys7U/8XFx//ExMT/urq6/39+ + fv9MS0v/SlFV/0VuiP9Jmsz/ULDs/06y8f9jtev/rsPa/9vIyP/Ht7T/vbCw/8u+vv/czc7+59fV5ejU + znPexrwOw6CPAAAAAAAAAAAAAAAAAAAAAACYjY0A////AMjCwhTi399U8vLyd+vr64e/v7/CrKys9b67 + uv/a3NX/1/Hb/8X20v/G9tX/3PXj/+3z7//v7+//7Ozs/+/v7//t7e3/4eHi/9fZ2//P0tX/zMzN/8vL + y//MzMz/w8PD/5GQkP9mZWX/XGNn/0x2kP9Nnc7/UrHs/0+z8f9Xs+//mL/g/9XHyv/GtrP/t6qq/76z + s//NwMH+283M5eLPynPfxrwO06qYAAAAAAAAAAAAAAAAAAAAAACShoYA////AMrFxRTe3d1b6enpi+Pj + 45q9vb3Lqqqq962trP+2u7b+u9LB/r/my/7Q7dn+4+3m/urr6v/n5+f/4+Pj/+Li4v/Z2dn/yMjI/76/ + v/+9vb3/wMC//8TExP/HyMn/wMPE/6aqrf+Kk5j/coeS/1iMqf9Vptb/V7Xt/1K08f9VtPD/kb/j/9PI + zf/Lurf/v7Kx/8K2tv/Kv7/+1snH5d7Nx3PgxrwO2rCcAAAAAAAAAAAAAAAAAAAAAACOgYEA19jYAMbD + wwfV1NQl3t7eOr6+vkt4eHieaGho72lpaf5rbGv+cX10/ommkv60yrr90tfU/tfX1//Pz8//w8PD/7Ky + sv+dnZz/jY6M/46Qjf+UmJf/mKCj/5mlqv+XqLD/kai0/4imtf98o7f/b6K8/2Sozv9hteT/XLjv/1S1 + 8f9Zte//l8Hj/9bJzf/Kurj/wbSz/8q9vf/UyMj+3c/N5eLPyXPfxrwO0qmYAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvr29ALu5uQDGxcUBxcXFA0lJSRY9PT2CRkZG609PT/9UVFT9VlhW/GBnYvt+hH/8mpua/qOk + o/+goZ//lJaT/4eKhf+EioL/ho2D/4eRhP+Glo//f5yl/3uktP+ArL//g7PI/4O4z/+Au9b/e73c/3S+ + 5v9svu3/Ybvx/1e28v9kuO7/q8bh/93Lzf/GtrP/uaur/8K2t//RxcX+39DO5eTQy3Pgxr0Oz6WVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVADExMQ9DQ0NuWVlZ02xsbOZycnLbdnZ2zX1/ + fdCFh4Lvio2H/YyQiP+OlIr/kJiM/5Ocj/+YopP/naiX/6Gumv+fsqT/kbe8/4q/0v+TyN7/mM3k/5jP + 5v+Tz+j/iczq/37I7f9yw+//Zb3x/1248f9/vuv/ys3e/+TNzP/EtbP/tqmp/72xsf/Ivb3+18rH5eDO + x3PgxrwO2K2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OAVaWloxe3t7apSU + lHabm5tjnp6dUJibk3CboJTRoaib/KWtn/+rsqT/sLmp/7S/rv+4xLL/u8i0/7zKtf+6y7f/sc3G/6fS + 4P+j1uz/o9ft/6LX7P+b1ez/kNDt/4LK7v90xPD/aL/x/3S/7v+vy+X/59Xa/+fNzP/EtbP/tqmp/72w + sP/HvLz+1cjG5d7MxnPfxrwO2rGeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf39/AGZm + ZgCMjIwEq6urDb29vQ/Nzc4Kx8TCBri1qj7BwrfDxcq9+8bNvv/I0MD/ydLC/8rUw//K1sP/ydbC/8fV + wP/G1L7/zNnL/8zg5P+53e7/qtnu/6PX7f+b1O3/kNDt/4PL7/96xe//gsXt/63N6P/h19//9djY/+fO + zP/EtbP/tqmp/72wsP/HvLz+1cjG5d7MxnPfxrwO2rKeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/x8MA79LOAera1jrp4d3A5uTe++Di2P/Z3tL/1NzN/9Ha + yv/P2cj/zdjG/8vXw//M18T/3eHW/+vq6f/e5+3/yODt/7bb7f+p1+3/oNPt/53Q7P+n0Ov/xNTm/+ba + 4f/43N3/99jY/+fNy//EtbP/tqmp/7ywsP/HvLz+1cjG5d7MxnPfxrwO2rKeAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4wcIA99PSAfXj4Trz6efA8uzq++/r + 6P/q6eP/4uXb/9rg0//U3M3/z9nI/83Xxv/T28z/6Off//Tt6//z7Oz/7Orr/+Lm6v/Z4en/1t/o/9re + 5//l3+X/8uDi//nf3//63d3/9djY/+bOzP/HuLX/uays/76ysv/Ivb3+1cjG5d7MxnPfxrwO2rKeAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5xMQA9tTTAfTj + 4Tr06ebA8+3q+/Pt6//z7ev/8Ozp/+vq5P/j5dz/2t/T/9Xczf/e4tb/7+zn//bv7f/27uz/9+3r//br + 6v/26Oj/9ubl//fk4//44uH/99/e//bd2//z2df/7tTS/9/Jxv/FtbP/wLKy/8e6uv/Pw8P+2szJ5eDO + x3PgxrwO166aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD4xMMA99TTAfTj4Tr06ebA9O3q+/Tt6//07uv/9O7s//Tu7P/y7er/7erl/+fn3v/r6OH/8uvn//Pq + 5//y5uP/8OPf/+3e2//q2db/59PR/+TOzP/gycf/3cTC/9q/vv/XvLr/1bm3/8uwr/+2n6D/taKi/8Wz + s//UxMT+387L5eHNyHPcw7oOxZ2LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD5xMUA+NTTAfbj4Dr06ebA9Ozp+/Ps6f/y6+j/8Ojl/+3k4f/r4N3/5tvY/+DU + 0f/bzcr/1sfE/9G/vf/Mt7X/x7Cu/8GqqP+9pKP/u6Cf/7mdnP+5nJv/upub/7ydnP++n6D/waKj/8Kk + pP+5np7/spmZ/7igoP/Ls7P/2sLA6drBv37PtbISuZ6aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxvsAA78vKAezX1Dro2dXA49bT+97Pzf/YyMT/zbu4/76q + qP+znp3/rJaV/6aPjv+iiYj/n4SD/52Bgf+dgID/noGB/6CDg/+kh4f/qo2N/7CTk/+3mZn/vp+g/8Wm + p//NrK3/1LKz/9q3uP/dubn/0K2t/7ufn//Dp6j/1rm59Nu+vqXRtbUqvaOjAbCZmQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQqaoA0rKxAdK4tzrNtrXAw62s+7ig + oP+vlpT+oYaF/o1ycf6EaWn+h2xs/oxxcf+Sd3f/mX9//6KIiP+rkZH/tJqa/76kpP/Hra3/0LW1/9m8 + vP/gwcH/58XF/+zIyf/wysv/9MvM//fMzP/5y8v/7cHB/82pqf+/o6P+0LS0+93AwNTYu7tcxaurCsOp + qQBLMTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/oqIAwaWlAcWp + qTPIray2x6ur+b+kpP+0mpr+poyL/JyCgvqljo78s52d/r2oqP/Hs7P/0L29/9jExP/fy8v/5dDQ/+vV + 1f/w19f/9NjY//fZ2f/62Nj/+9fX//zV1f/+09P//tLS//7Q0P/+zs7/+srK/+S4uP/Hp6f+ya6u/du+ + vvDewMCZ0bW1JSUeHgCtlpYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC9o6IAwKSkAMeqqiLQs7Oc1bm59NS4uP/MsrH9xKmp8seuruXeysr06NfX/uvb2//s3t7/7uDg/+/h + 4f/x4eH/8uDg//Xg4P/239//997e//nd3f/729v//NnZ//3X1//+1NT//tLS//7R0f/+z8///czM//XE + xP7gt7f+2La2/eDAwPTixsa82b6+Sb2oqAXDra0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAw6enAM6xsRnZu7uO38LC8d7Bwf/Xu7v80ba33Ne/v7zr2dnn7+Li/e3j + 4//s4+P/7OTk/+zj4//t4+P/8OHh//Lg4P/04OD/9t/f//je3v/63Nz//Nra//3Y2P/91tb//dPT//3S + 0v/9z8///c3N//vKyv73xcX98cPD++zDw9zmx8eJ38fHO8y5uQfPu7sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyaysANW4uBnhw8OO6MrK8ebIyP/fwcL62Ly8v9nC + wo/p2dnZ7uLi/ezj4/7q5OT+6uXl/uvk5P/t5OT/7uLi//Hg4P/z39//9d7e//fc3P/429v/+dnZ//nV + 1f/40tL/99DQ//bNzf/1ysr/88fH//LFxf7wwsL+7b+/++a7u8LfublD4c3NDdjJyQLZysoAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyq2tANi7uxbjxsaD683N5OrM + zfnjxcbw2r6+ntrCwmnp19fM7uDg++zh4f3q4eH96eDg/unf3//q3t7/6tvb/+vZ2f/s1tb/7NTU/+zS + 0v7sz8/+68zM/urKyv7ox8f+58XF/eXDw/3jwsL74sDA+uHAwPffvr7z27q649GwsJjGpqYlwJ+fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx6ysANa8 + vArgxsZG5svMieXKy63gxMWy2Ly9ade+vknizMy+5tPT+ubT0/zk0tL94tDQ/eLOzvzhzc384cvL+uHJ + yfngyMj34MbG9ODGxvDgxcXr4MTE5t/Dw+Dfw8PZ38LC0d3CwsjbwcG/2sHBtdvBwanawcGZ0rm5ecOq + qj22nJwKqpCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAEQAAANS+vQDaxsYK3cnJGt3Hxy7ZwcI40rm6INS3tynav7+c3sXF5N/Gxuffxsbh38bG2d/G + xtPfxsbK38XFv93ExLTcw8Op3MPDnN3Dw5DexMSD3sTEdt7ExGrexMRd3sTEUtvBwUfYv7891r6+M9jA + wCvWv78hzLa2E7ahoQWTgIAAtJ6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDv8IAv77CAMzAwQHPvbwCy7a2Adi3twzcvr5H38PDed7E + xHffxMRp38XFW9/FxVDfxcVE3sTEONzCwi7Zv78m2b+/H9vBwRjcwsIT3MLCD9zBwQvcwcEH3MLCBde9 + vQPOtbUCzLOzAcyysgC6n58AfWZmAJV9fQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA48PDAN68 + vADfvr4H3L6+ENi8vA7Yvb0J3cHBBt3BwQTcvr4D3L+/AdrAwADVu7sA1Lq6ANa8vADWvLwA0re3AMSi + ogAvAAAAdi8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAA/8AAMAA + AAAA/wAAwAAAAAB/AADAAAAAAB8AAMAAAAAADwAAwAAAAAADAADAAAAAAAEAAMAAAAAAAAAAwAAAAAAA + AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAfAADAAAAAAB8AAMAA + AAAAHwAAwAAAAAAfAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAfAADAAAAAAB8AAMAAAAAAHwAAwAAAAAAf + AADgAAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAB8AAP/AAAAAHwAA/8AAAAAfAAD/wAAAAB8AAP/A + AAAAHwAA/8AAAAAfAAD/wAAAAA8AAP/AAAAADwAA/8AAAAAPAAD/4AAAAAcAAP/gAAAABwAA/+AAAAAH + AAD/4AAAAB8AAP/gAAAAHwAA//AAAAA/AAD//AAAA/8AAP//wD///wAA////////AAD///////8AAP// + /////wAA////////AAAoAAAAgAAAAAABAAABACAAAAAAAAAAAQASCwAAEgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEREQMgICATJycnCgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZu + bg2JhIRAjoiIRo6IiEaNh4dGjYeHRo2IiEaOiIhGi4iIR4mGhkeJhoZHiIaGR4iGhkeJh4dHjYmJRo2I + iEWNiIhFjYiIRYyIiEWMiIhFjIiIRYyIiEWMiIhFjIiIRYuIiEWLiIhEi4iIRIuIiESLiIhEi4iIRIuI + iESKiIhEioiIRIqIiESKiIhEioiIRIqHh0SKh4dEioeHQ4qHh0OKh4dDioeHQ4qHh0OKh4dDioeHRImI + iEWHhoZGh4WFRoeFhUaHhYVGiIeHRouIiEWLh4dEi4eHRIuHh0SLh4dEi4eHRYyHh0WMh4dFjIeHRYyH + h0WNiIhGbWxsQD9AQEE5OTlOOzs7hTQ0NLl5eXmbnp+eNi0tLQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAm5OTM+PR0dX01tbm89bW5fPW1uXz19fl89fX5PLX + 1+Xe0dHr0sjI69PIyOvTyMjr0sfH69bNzevu29vl89zc4fPd3eHz3d3h897e4PPf39/z4ODf8+Dg3vPh + 4d3z4uLd8+Li3PPj49vz5OTa8+Xl2fPl5dnz5ubY8+bm2PPm5tfy5+fW8ufn1vLn59Xy5+fV8ujo1fLn + 59Ty5+fU8ufn1PLn59Ty5+fU8ufn1PLm5tTx5eXV3dfX49HMzObSzMzl0szM5dLLy+XVz8/n7eDg3fPh + 4dnz4ODZ89/f2vPf39vz3t7c893d3PPd3d3z3Nze8tra3/Ld3eSknp7UOzs72T8/P/I/Pz/+ODg4/5eX + mP6/vr/erq6ugW9vbx8AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB5YGIDeV9hE35kZjSCaWttt6KYgKuZj0sjEhQNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACelpY37NnZ4v/e3vL+3t7x/t7e8f7f3/H+39/x/eDg8Pnm5vT34eH09t3d8Pbd3fD23t7w+Ojo9vzm + 5u/+5eXt/eXl7P3m5uv95+fr/ejo6v3o6On96eno/erq5/3r6+f97Ozm/ezs5f3t7eT87u7j/O7u4vzv + 7+H87+/g/PDw4Pzw8N/88PDe/PHx3vzx8d788fHd/PHx3fzx8dz88fHc/PDw3Pzw8Nz88PDc/PDw3fzv + 79337+/n9evr5vTn5+D05+fh9Obm4/ft7e/77Ozl/erq4v3p6eP96Ojk/efn5fzm5ub64+Pq9d7e8PLb + 2/Xy2tr39uHh+5+amv48PDz/QEBA/z8/P/84ODj/fn1+/2ZmZ/+hoaH9lZWVjAAAAB8AAAAOAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAaH5WBGaBVRVueFsygmxrY4dub5GNdHXLknp66pZ+fvzGs6r/wbOt7pKA + gaBZREQ6AAAABgAAAAEAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWMjDTky8vC+87OyvrPz8n6z8/I+s/Px/nQ + 0Mb50NDE+tbWyPzo6N362trL+tfXxfrh4dD86OjS+dbWufjV1bb41dWz99XVsPfW1q321tar9tfXp/XX + 16T12Nih9NjYnfTZ2Zrz2dmW8tnZk/La2o/x2tqL8NraiO/a2oXv2tqC7tragO7a2n3t2tp87NnZeuzZ + 2Xjs2dl369jYduvY2Hbr19d269fXduzX13fs1tZ47NXVePDc3IT37Oyy8d3dlfHa2o715OSo+uzstPHU + 1I/szc2S5sjImdu9vafOsrK5waen0ryjo+e9paX3xq6u/s+2tv/Pubn/lI+P/zw9Pf9AQED/Pz8//zg4 + OP98e3z/S0tL/1hYWP95eXmpAAAASQAAADgAAAAdAAAAB1B2QQNlglQTZYRUMWmEWGhqhlmXbYdbz4KG + bumagoP6n4iI/6GKiv+jjIz/oYqK/8m3rv/Nwbz/wrW2/qWUlONzXV2EQSkpHwAAAAEAAAACAAAAAgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAkYmJM+TIyLj/zc29/87Ou//Ozrr/z8+5/8/Pt//Q0LX/0dG0/9vbvf/k5Mj/5eXG/+PjwP/X + 16v/1dWk/9bWof/X153/19ea/9jYlv/Z2ZL/2tqO/9vbiv/c3Ib/3d2B/97eff/f33j/4OB0/+Hhb//i + 4mv/4+Nm/+TkYv/l5V7/5eVb/+bmWP/m5lb/5uZU/+fnUv/m5lH/5uZQ/+bmUP/l5VD/5ORQ/+PjUf/i + 4lL/4eFU/+DgWP/p6XL+7++Q/ezsk/bj45HjxMR+zq+virqfn6aslJTFqZOT4K6YmPO2oKD7uKGh/sCo + qP+9pKT/uZ+f/7mhof+PiYn/PT09/0BAQP8/Pz//ODg4/3x7fP9NTE3/UE9Q/2xsbKwAAABZDxQMYyg3 + ImhRaUR4ZoNWk2yHW8lvi17oco1g+3SQY/95kWf/nZGH/6qQkv+nj5D/pY6P/6SNjf+iiov/yriu/8zA + u//Jvb3/zcDA/7usrPuPenvEX0VGUisSEgoAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSiYkz5MjIt//Ozrz/z8+6/8/Puf/Q + 0Lf/0NC1/9HRs//S0rH/0tKu/9PTrP/U1Kr/1NSm/9XVo//W1qD/19ec/9jYmf/Y2JX/2dmR/9rajf/b + 24n/3NyE/93dgP/e3nz/3t53/9/fc//h4W7/4uJp/+PjZf/k5GD/5eVc/+fnWP/o6FT/6OhR/+npT//p + 6Uz/6elL/+npSv/p6Un/6elJ/+joSf/n50n/5uZK/uXlTfvg4FD02NhW48fHX8qxsXKznZ2Pn4yMr52L + i8+aiYnropGR+bKhof66qKj/vKio/7ikpP+umJj/q5WV/66Xl/+xmJj/tZ6e/46Jif89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9KSkr/XGVY1TpNMLdNZEHZWnRM7mWBVvtyjWH/d5Jm/3iTZv94lGf/d5Nm/4eT + dP+plJL/q5KT/6mQkv+oj5D/po+P/6OMjf/LuK//zMC7/8e7u//NwMD/0sXG/87AwP+plpfxc1xcnEAp + KS4AAAADAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJKJiTPkycm3/8/Puv/Pz7j/0NC2/9DQtP/R0bL/0tKw/9PTrf/T06v/1NSo/9TUpf/V + 1aL/1tae/9fXm//X15f/2NiT/9nZj//a2ov/29uG/9zcgv/d3X7/3d15/97edf/f33D/4OBs/+LiZ//j + 42L/5ORe/+bmWf/n51X/6OhQ/+rqTP/r60n/7OxG/+3tRP/t7UP/7e1B/+3tQf7t7UH96upB9+PjROjU + 1ErKuLharp2dcpWHh5WQg4O7kIWF3ZyQkPOnm5v9rJ+f/5mMjP+Zior/qJiY/6OTk/+ikJD/o5CQ/6aS + kv+plJT/rJaW/66YmP+znZ3/jomJ/z09Pf9AQED/Pz8//zg4OP98e3z/TU1O/0NEQv9RYUn/S2BA/1Rr + SP9dd0//Z4NY/3WQZP95k2j/eZRn/3iUZ/95lGj/mpWF/62Vlv+slJT/q5OT/6qRk/+pkJH/po6P/8y5 + sf/MwLv/u66v/7+xsf/OwMH/1sjJ/9nLzP/FtLT+kHp61FY/QGcZCwsUAAAAAgAAAAIAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkomJM+TJybX/0NC4/9DQtf/Q + 0LP/0dGx/9LSr//S0qz/09Op/9TUpv/U1KP/1dWg/9bWnP/X15n/19eV/9jYkf/Z2Y3/2tqJ/9vbhP/c + 3ID/3Nx7/93dd//e3nL/399u/+Dgaf/i4mT/4+Ng/+TkW//l5Vf/5+dS/+npTv/q6kr/7OxG/+7uQv/w + 8D//8fE9/vHxO/rt7Tvu4eE+z8TER6yiolqNhIR7gXp6o4J7e8uLhITqmpOT+aCYmP6jm5v/m5KS/5WK + iv+Shob/i39//4Z4eP+QgYH/loeH/5mJif+fjY3/pJGR/6eTk/+plZX/rJaW/7GcnP+OiYn/PT09/0BA + QP8/Pz//ODg4/3x7fP9OTU7/QUJB/0xcRf9HWz3/UGVE/1pyTP9mgVf/dZBk/3mUaP96lGj/eZRn/4OV + cP+ql5L/r5eX/62Wlv+tlZX/rJSU/6uSk/+oj5H/zbqy/8vAu/+4q6z/sqSk/7ytrv/Lvb7/2MrL/9/R + 0f/by8v/sJ2d9HBaWqMrHBw6AAAAEQAAAAsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACSiYkz5MnJtP/Q0LX/0NCy/9HRsP/S0q3/09Or/9PTqP/U1KX/1dWi/9XVn//W + 1pv/19eX/9fXk//Y2I//2dmL/9rah//b24L/3Nx+/9zcef/d3XX/3t5w/9/fa//g4Gf/4uJi/+PjXf/k + 5Fj/5uZU/+fnUP/p6Uz/6+tI/+3tRP/v70D97+889urqO9/W1j62sLBMkIyMZHl2d4x3dXW3fXp624+M + jPSbmJj9p6Ki/6Odnf+WkJD/i4WF/4Z+fv+GfX3/iH9//4yCgv+PhIT/jICA/4l8fP+PgYH/l4iI/52N + jf+gj4//oY+P/6OQkP+olJT/r5uc/42IiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9BQkH/TFxF/0da + PP9OY0P/WHBL/2V/Vv91j2T/epRo/3qVaf96lWj/lZiB/7Kamf+wmJj/r5iY/66Xl/+tlpb/rJSU/6qS + kv/Ou7L/y8C7/7isrP+yo6P/tqeo/7qtrf/Gubn/18nJ/+LU1P/n2Nj/0L6+/piEhNFLOTpnAAAAIwAA + ABAAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKJiTPkysqz/9HRsv/R + 0a//0tKs/9PTqv/T06f/1NSk/9TUoP/V1Z3/1taZ/9fXlf/X15H/2NiN/9nZif/a2oT/2tqA/9vbe//c + 3Hf/3d1y/97ebf/f32n/4OBk/+LiX//j41v/5ORW/+bmUv/n507/6elJ/uvrRfzq6kLv4OBBzcLCSaSd + nVmAfHx6d3V1pHZ1dcuDg4Pqj4+P+pmXl/6dmpr/k4+P/46Kiv+KhYX/h4OD/4iEhP+RjIz/lY+P/5WO + jv+RiYn/jYSE/42Dg/+Rhob/k4iI/5aKiv+Zi4v/l4iI/5mJif+ci4v/no2N/6SSkv+tm5v/jYiI/z09 + Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0FCQP9MXEX/R1o8/01iQv9Xb0r/ZX9W/3WQZP97lWn/e5Zp/4GX + bv+pm5L/tJuc/7Kamv+xmZn/sJiY/6+Xl/+tlpb/q5OU/8+8s//MwLv/uq6u/7KkpP+2p6j/uays/7uw + sP/Ctrb/0sXF/+PU1P/s3d3/6NjY/8Ctret4ZWWLFA0NMgAAABYAAAAKAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAkomJM+PKyrH/0tKu/9LSq//T06j/09Ol/9TUov/U1J7/1dWb/9bWl//X + 15P/19eP/9jYi//Z2Yf/2tqC/9rafv/b23n/3Nx1/93dcP/e3mv/399m/+DgYf/i4l3/4+NY/+TkVP/m + 5k/+5+dL+OPjSOPR0Uu+sbFWl46Ob4F8fJZ8eXm8gYCA4I+OjvWcmZn+raem/7isrP/DsbH/ybKy/86z + sv/OsbH/zrGx/8qurv+7paX/qZmZ/5iNjf+MhYT/kIqK/5qTk/+dlpb/l4+P/5GHh/+Rh4f/lYmJ/5WJ + if+Thob/loiI/5mKiv+cjIz/o5GR/6uamv+NiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QUJA/0xc + Rf9HWj3/TmJC/1dvSv9lf1b/dpBl/3uWaf97l2n/kZl8/7aenf+2nZ3/tJyc/7Obm/+xmZn/sJiY/6+X + l/+tlZb/0L20/8zAu//Gurr/wbS0/7qsrf+5rKz/u7Cw/7+zs//Dt7f/zcHB/97Q0P/t3t7/8+Pj/+HP + z/eql5WuPzQzQwAAAB4AAAAPAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSiYkz48rKr//S + 0qr/0tKn/9PTpP/U1KH/1NSd/9XVmf/W1pX/1taR/9fXjf/Y2In/2dmF/9ragP/a2nv/29t3/9zccv/d + 3W7/3t5p/9/fZP/g4F//4uJb/+PjVv3i4lLz2tpQ1cLCV7ChoWiRh4eIhoCAr4SAgNOQjo7vlJKS/JyZ + mf+rpaX/xbi4/+DQ0P/v3d3/99jY//7b2///2tr//9nZ///Y2P/+1tb/+NPT/+/Ozv/lycn/1r+//8Sy + sv+soaD/mJGQ/5CJif+dlZX/oZmZ/5eOjv+TiYn/lImJ/5KGhv+ViIj/mYuL/52Ojv+jk5P/qZmZ/42I + iP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9BQkD/TFxF/0daPf9OY0P/WHBL/2WAV/92kGX/fJZq/3+X + bf+mnY//uqCg/7mfn/+3np7/tZ2d/7Obm/+ympr/sZmZ/6+Xl//QvrT/zMC7/8m9vf/NwMD/zcDA/8a4 + uf++srL/v7Oz/8O3t//Gu7v/y8DA/9jMzP/r3Nz/+Ojo//Lf1v+choCbAAAANgAAACUAAAAUAAAACQAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKJiTPjysqt/9PTpv/T06L/1NSf/9TUm//V1Zf/1taU/9bWj//X + 14v/2NiH/9nZgv/Z2X7/2tp5/9vbdf/c3HD/3d1r/97eZv/g4GH+4OBd+t3dWenPz1vItLRnpJWVf5OJ + iaKMhYXGkYyM6JeTk/iYlZX+lpSU/42Kiv+nnp7/zry8/+7Y2P/75+f//vHx//7y8v/93t7//dra//3Z + 2f/+2Nj//tfX//zV1f/00ND/6szM/+HIyP/Zw8P/1MPD/9bLy//Cubn/o52c/4+IiP+Wj47/pJyc/52U + lP+Uior/lImJ/5iMjP+ckJD/n5KS/6KUlP+nmJn/jIiI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0FC + QP9MXEX/SFs9/05jQ/9YcEv/ZoBX/3eRZv98lmr/i5p3/7ehnv+7oaL/uqCg/7mfn/+4np7/tp2d/7Sc + nP+zm5v/sJiY/9G+tf/MwLv/yL29/83AwP/RxMX/1cfH/9LFxf/Kvb3/xbm5/8a7u//Kv7//zcTE/9TK + yv/n29v/9ePY/52GgaoAAABKAAAAPgAAACsAAAAaAAAADQAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk4mJNOLK + yqv/1NSh/9TUnf/U1Jr/1dWW/9bWkv/W1o3/19eJ/9jYhf/Y2ID/2dl7/9rad//b23L/3Nxt/93daf7d + 3WT11tZi3sPDab2oqHmjlJSXlouLupWNjdyclpbzm5WV/ZiUlP+Kh4f/f3x8/3l3d/+Vjo7/zr6+//Lc + 3P/84+P//OPj//zp6f/98PD//fLy//3e3v/82tr//dnZ//7Y2P/+19f/+tTU//HQ0P/ny8v/3cbG/9XC + wv/Wycn/0srK/8C5uf+8t7f/uK+v/56UlP+Ti4v/pJyc/6GYmP+XjY3/mI6O/5uQkP+ekpL/oJOT/6aY + mP+MiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/01cRv9IWz3/T2RE/1lxTP9ngVj/eJJm/36X + a/+hn4r/vqSk/72jo/+7oqL/uqGh/7mfn/+4np7/t56e/7ScnP+ympr/0r+2/8zAu//Ivb3/zcDA/9HE + xP/VyMj/2cvM/9zOzv/Yysr/zsLC/8vAwP/NxMT/0MfH/9zS0v/04df/m4WAqwAAAFIAAABOAAAAQQAA + ADEAAAAfAAAAEQAAAAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTiYk04svLqP/U1Jz/1NSY/9XVlP/W1pD/1taL/9fXh//Y + 2IP/2Nh+/9nZef/b23T/3d1v/+DgaffX12nXvLx2sp6ekJqKirCPg4PRmI+P7KGZmfqfmJj+lY+P/4aA + gP97d3f/c3Bw/3Fubv+BfX3/ua+v/+3b2//75eX/+uPj//ri4v/74+P//Onp//3w8P/98/P//d/f//3a + 2v/92dn//tjY//7X1//41NT/7c/P/+PKyv/ZxcX/08TE/9fOzv/HwcH/u7a2/764uP/Hvb3/zL6+/6+i + of+UjIz/pZ6e/6Kamv+Xjo7/mpCQ/5ySkv+fk5P/pJiY/4yIiP89PT3/QEBA/z8/P/84ODj/fHt8/05N + Tv9AQkD/TVxG/0lcPf9QZET/WnFM/2iCWf94k2f/hppz/7aknf/Apqb/vqSk/72jo/+8oqL/uqGh/7qg + oP+5n5//t56e/7SbnP/TwLf/zMC7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//j1dX/3c/P/9PJ + yf/Rx8f/3NLS//Th1/+chYCrAAAAUgAAAFIAAABMAAAAQwAAADUAAAAkAAAAFQAAAAoAAAAEAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOJ + iTThy8um/9XVlv/V1ZL/1taO/9bWif/X14X/2NiB/9nZfP/b23b+29ty8M/Pdda5uYK1oKCfo5OTv5qN + jeKckZH2o5qa/pmQkP+JgYH/hX5+/3t1df93cnL/dXFx/3Nvb/9yb2//lI+P/9fLy//35ub/+ebm//nk + 5P/54+P/+uLi//vj4//86en//fDw//3z8//94OD//dra//3Z2f/+2dn//dfX//XT0//qzs7/38nJ/9bE + xP/Uycn/0cvL/725uf+6t7f/wru7/8u/v//UxMT/2cbG/7moqP+YkI//p6Cg/6CYmP+ZkJD/m5KS/56T + k/+jmJj/jIiI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9NXEb/SVw+/1BlRP9ack3/aYNZ/3mU + Z/+an4T/wain/8Gnp//Apqb/v6Wl/72jo/+9o6P/u6Ki/7qgoP+5n5//t52e/9XBuP/MwLv/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/6dvb/+DU1P/g1dX/8+HX/52HgakAAABPAAAAUAAA + AE4AAABJAAAAQgAAADYAAAAoAAAAGQAAAA0AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk4qKNOHLy6P/1dWQ/9XVjP/W1of/19eD/9jYfv/Z + 2Xr61dV4zbGxlbGcnLajkpLVo5WV7paKivudkpL/pZub/5qRkf+NhYX/g3t7/3x1df95c3P/d3Jy/3Vx + cf9xbm7/c3Bw/6agoP/p3Nz/+erq//jo6P/45+f/+eXl//nk5P/64+P/++Pj//zp6f/98PD//fPz//3h + 4f/929v//dra//7Z2f/81tb/8tLS/+fMzP/cx8f/1MXF/9bOzv/GwsL/ube3/765uf/Hvr7/0MPD/9jH + x//gy8v/6M/J/8GupP+blJP/qaOj/5yVlf+akpL/nZSU/6KYmf+MiIj/PT09/0BAQP8/Pz//ODg4/3x7 + fP9OTU7/QEJA/01dRv9JXD//UWVF/1tzTv9pg1r/fpZs/7Klmf/Fqqv/w6mp/8KoqP/Apqb/wKam/76k + pP+9o6P/u6Ki/7qhof+4np//1cG4/8zAu//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uLi//Pk5P/149j/noiCpwAAAEwAAABOAAAATAAAAEkAAABGAAAAQAAAADcAAAArAAAAHQAA + ABEAAAAIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACUioo04MvLoP/W1or/1taF/9fXgf/X13z/2Nh4/9racu/NzXeZiIjXkYOD/6mcnP+glJT/hnt7/3xy + cv+AeHj/fnV1/3pzc/96dHT/eHNz/3Zxcf90cHD/cG1t/3Rxcf+zra3/8Obm//js7P/36ur/9+np//jo + 6P/45ub/+eXl//rj4//75OT//Onp//3v7//98/P//eLi//3b2//92tr//tnZ//rW1v/v0dH/48vL/9jF + xf/Vysr/0s3N/726uv+7uLj/xL29/83Cwv/Wxsb/3srK/+fPy//z18P/9te3/7Wlmf+fmpr/p6Gh/5uT + k/+clJT/oZiZ/4yIiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/TV1H/0pdP/9RZkb/W3NO/2mD + Wf+OmXr/w6uo/8esrP/Fq6v/xKmp/8KoqP/Bp6f/wKam/76kpP+9o6P/vKKi/7qgoP/Wwrn/zMC7/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fo//bj2P+giYSmAAAASQAA + AEoAAABIAAAARgAAAEQAAABBAAAAPAAAADYAAAAsAAAAIAAAABQAAAAKAAAABAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSKijTgy8ud/9fXg//X13//19d6/9jYdf/Z + 2XH/2tps8tDQbpOCgtB/cnL/iX19/4d9ff+DeXn/dm1t/29nZ/9waWn/dG5u/3dycv92cXH/c3Bw/29s + bP9yb2//trGx//Pr6//37u7/9+zs//fr6//36en/+Ojo//jn5//55eX/+uTk//rk5P/86en//fDw//3z + 8//94+P//dvb//7a2v/+2dn/+NXV/+vPz//fycn/1cbG/9fPz//HxMT/uri4/8G8vP/KwcH/08bG/9zK + yv/lz8z/8dbE//rcuP//4LH/69Cu/6OZlf+oo6P/oZyc/5uUlP+hmZn/i4iI/z09Pf9AQED/Pz8//zg4 + OP98e3z/Tk1O/0BCQP9NXUf/Sl4//1JmRv9cdE7/bIRb/6Wgj//Jra7/ya2t/8isrP/Gq6v/xKqq/8Op + qf/Bp6f/wKam/7+lpf+9o6P/u6Gi/9bDuv/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9uPY/6KLhaQAAABFAAAARwAAAEUAAABDAAAAQQAAAD4AAAA8AAAAOAAA + ADMAAAArAAAAIQAAABYAAAAMAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAlIqKNN/Ly5n/19d8/9fXeP/Y2HP/2dlv/9nZav/b22Twz89njX5+zXlubv+Eenr/g3p6/4B4 + eP9+dnb/eXJy/3dxcf93cnL/dXFx/3Nvb/9ubGz/cG5u/7Sysv/y7Oz/9vDw//bu7v/37e3/9+zs//jq + 6v/46en/+Ojo//nm5v/65eX/+uTk//zp6f/97+///fT0//3k5P/929v//tvb//3Z2f/01NT/587O/9vI + yP/Wysr/087O/768vP++u7v/yMDA/9HFxf/aycr/48/M//DWxv/63Lr//t+x///gr///4bL/z7ql/6Gc + m/+qpaX/nJaW/6CZmv+LiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/01dR/9LXkD/UmdG/1x0 + T/91hmT/uKWf/8uvsP/Lr6//ya2t/8mtrf/HrKz/xaqq/8Opqf/CqKj/wKam/7+lpf+9oqP/18O6/8zA + u//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//249j/pIyHogAA + AEEAAABDAAAAQQAAAEAAAAA+AAAAOwAAADkAAAA2AAAAMwAAAC8AAAApAAAAIAAAABcAAAAOAAAABwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUioo03svLlv/Y2HX/2Nhx/9nZbP/Z + 2Wf/2tpj/9zcXe/Pz2GHenrMdGpq/4B3d/9/d3f/fXV1/3p0dP94c3P/dnFx/3RwcP9yb2//b2xs/2tp + af+sq6v/8e/v//Xy8v/18fH/9u/v//bu7v/37e3/9+vr//jq6v/56en/+efn//nl5f/65eX//Onp//3v + 7//99PT//eXl//3c3P/+29v//NjY//DS0v/jzMz/2MjI/9fPz//IxcX/vLq6/8W/v//PxMT/2MnJ/+LO + zP/u1sj/+d29//7gsv//4K///+Cw///hs//027j/raOd/6ilpf+gnJz/n5qa/4uIiP89PT3/QEBA/z8/ + P/84ODj/fHt8/05NTv9AQkD/Tl1H/0teQP9TaEf/XXVP/4SIcv/Cp6f/zbGx/8ywsP/Lr6//yq6u/8mt + rf/HrKz/xqur/8Opqf/CqKj/wKam/76kpP/YxLv/zMC7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//bj2P+mjoigAAAAPQAAAD8AAAA+AAAAPAAAADoAAAA4AAAANgAA + ADQAAAAxAAAALgAAACsAAAAmAAAAIAAAABcAAAAPAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJWKijXey8uS/9jYbv/Y2Gr/2dll/9raYP/b21z/3d1X7c/PW4J2dspvZ2f/fHR0/3t0 + dP95c3P/d3Fx/3VwcP9zb2//cm5u/29tbf9oZmb/m5qa/+rp6f/09PT/9PPz//Xy8v/18PD/9u/v//fu + 7v/37Oz/+Ovr//jp6f/56Oj/+ebm//rm5v/86en//e/v//309P/+5ub//dzc//7b2//619f/7NHR/97K + yv/Xy8v/1M/P/7+9vf/Bvb3/zMPD/9bIyP/gzsz/7dXJ//jdvv/94bT//+Gw///hsP//4rT//+bA///q + yv/Pvqz/pKCg/6ekpP+fm5v/i4iI/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9OXUf/S15A/1No + R/9gdVP/k4h//8Sqq//Ps7T/zrKy/82xsf/MsLD/yq6u/8mtrf/IrKz/xqur/8Spqf/CqKj/wKam/9nF + vP/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9uPY/6eQ + ip4AAAA6AAAAPAAAADoAAAA5AAAANwAAADUAAAAzAAAAMAAAAC4AAAArAAAAKQAAACgAAAAlAAAAHgAA + ABYAAAAPAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYuLNd3Ly4//2dln/9nZY//a + 2l7/29ta/9zcVf/f31Drzs5UfXJyyGtjY/94cXH/eHJy/3Zxcf90cHD/cm9v/3Fubv9wbW3/aGZm/4aF + hf/b29v/8O/v//Hx8f/z8/P/9PPz//Xx8f/28PD/9u/v//ft7f/37Oz/+Orq//np6f/55+f/+ubm//zq + 6v/98PD//vT0//7n5//+3Nz//tvb//bW1v/oz8//2snJ/9jQ0P/Kx8f/v7y8/8nCwv/Ux8f/383M/+zV + yv/43L///eG0//7hsf//4bH//+O2///oxP//7M3//+rG/+3Wt/+oop7/qaen/6Genv+LiIj/PT09/0BA + QP8/Pz//ODg4/3x7fP9OTU7/QEJA/05eR/9LX0D/U2lH/2p0W/+biYf/xqys/9C1tv/QtLX/z7Oz/82x + sf/MsLD/y6+v/8mtrf/IrKz/xqur/8Spqf/CqKj/2sa9/8zAu//IvL3/zcDA/9HExP/VyMj/2cvM/97P + z//i09P/5tfX/+rb2//u39//8uPj//fn5//249j/qZGMnAAAADYAAAA4AAAANwAAADUAAAAzAAAAMQAA + AC8AAAAtAAAAKwAAACgAAAAmAAAAKAAAACcAAAAgAAAAGgAAABQAAAAPAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACVi4s13MvLjP/a2mD/2tpd/9vbWP/c3FP/3d1P/+DgSunOzk53bW3GZ2Bg/3Vv + b/91cHD/c29v/3Jubv9xbm7/cG5u/2ppaf9ycXH/x8bG/+rq6v/r6+v/7u7u//Ly8v/09PT/9fPz//Xx + 8f/28PD/9u7u//ft7f/46+v/+erq//no6P/65+f//Orq//3v7//+9PT//enp//7d3f/92tr/8tTU/+LN + zf/ZzMz/1dDQ/8K/v//GwMD/0sbH/93MzP/q1Mv/99zB//3gtv/+4rH//+Ky///luv//6sj//+zM//7o + w///5cL/+uHJ/7mvqf+pp6j/pKGi/4uIiP89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/Tl5H/0tf + QP9WaUn/d3Rn/6CKiv/Irq7/07i4/9K3t//Rtbb/z7O0/86ysv/MsLD/y6+v/8mtrf/IrKz/x6ys/8Sp + qv/bx77/y7+7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Xj + 2P+sk42aAAAAMgAAADUAAAAzAAAAMgAAADAAAAAuAAAALAAAACoAAAAoAAAAJgAAACMAAAAnAAAAKQAA + ACEBAAAaAAAAFgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWLizXby8uI/9vbWf/b + 21b/3NxR/93dTf/e3kj/4uJD583NSXJpacRiXV3/cm1t/3Nvb/9xbm7/cW5u/3Bubv9tbGz/ZmVl/6en + p//i4uL/5eXl/+jo6P/r6+v/7+/v//Ly8v/09PT/9fPz//bx8f/28PD/9+7u//fs7P/46+v/+ejo//rn + 5//76ur//e/v//719f/96ur//t3d//va2v/t09P/3szM/9nR0f/Lycn/w7+//87Fxf/by8v/6dPM//bc + w//94Lf//uKx///is///5r7//+vL//7ryv/+58P//uXH//3l1P/+5+D/yb27/6WkpP+pp6f/i4iI/z09 + Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BCQP9OXkf/TGBB/11qUP+CdHH/oYuL/8qwsP/Wubn/1Lm5/9O3 + uP/Rtrb/0LO1/86ysv/MsLD/y6+v/8qurv/Jra3/xqur/9zIvv/Lv7v/yL29/83AwP/RxMT/1cjI/9nL + zP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9ePY/66Vj5gAAAAuAAAAMQAAAC8AAAAuAAAALAAA + ACsAAAApAAAAJwAAACUAAAAiAAAAIAAAACUAAAAoAAAAIgAAABoAAAAUAAAAEgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlouLNdrLy4X/3NxT/9zcT//d3Uv/399G/+DgQ//k5D7kzc1EbWZmw19b + W/9wbGz/cW5u/3Bubv9wb2//cG9v/2ZlZf+DgoL/1dXV/+Dg4P/i4uL/5eXl/+jo6P/r6+v/7+/v//Ly + 8v/19PT/9vPz//bx8f/37+//9+3t//js7P/56ur/+ujo//vr6//97+///vX1//7q6v/+3d3/+dnZ/+jQ + 0P/bzc3/1dHR/8TCwv/Lw8P/2MrK/+fTzP/13MX//eG5//7isv//47X//+jC///szf/+6sj//ubF//7l + zv/95tv//efk//7p6f/bzc3/pqWl/6yqq/+LiIj/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/05e + SP9NYEL/aWtb/4d1dv+ijIz/zLGx/9e7u//Xurr/1bm5/9O4uP/Rtrb/0LS1/86ysv/MsLD/y6+v/8qu + rv/IrKz/3ci//8vAu//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn + 5//149j/sJeRlwAAACoAAAAtAAAALAAAACoAAAApAAAAJwAAACUAAAAkAAAAIgAAACAAAAAdAAAAIQAA + ACUAAAAgAAIBGQAAABIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWi4s12crKgf/d + 3Uz/3d1J/9/fRf/g4EH/4uI9/+fnOeLNzUBqZGTBXVlZ/29sbP9xbm7/cG5u/3Bvb/9sbGz/ampq/7a2 + tv/b29v/3Nzc/9/f3//i4uL/5eXl/+jo6P/r6+v/7+/v//Pz8//19PT/9vLy//fx8f/37+//+O3t//nr + 6//66en//Ovr//3v7//88fH/+ufn//rd3f/z2Nj/4s/P/9nQ0P/Mysr/x8LC/9XJyf/l0cz/9NrG//3g + u//+4rT//+S4///qx//+7Mz//ujI//7lyv/95tb//ebh//3n5v/86Oj//enq/+vb2/+pqKf/rq2t/4yJ + if89PT3/QEBA/z8/P/84ODj/fHt8/05NTv9AQkD/T15I/1JhRv92bGb/iXd3/6SOjv/Ns7P/2Ly8/9i7 + u//Xurr/1rm5/9O4uP/Rtrb/0LS1/86ysv/NsbH/zLCw/8qtrv/eycD/y7+7/8i9vf/NwMD/0cTE/9XI + yP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Xj2P+ymZOVAAAAJgAAACkAAAAoAAAAJwAA + ACUAAAAkAAAAIgAAACAAAAAeAAAAHAAAABkAAAAbAAAAHAABABcEBgMRAAAADQAAAAsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaLizXYysp+/9/fRv/f30P/4eFA/+PjPP/l5Tn/6uo14M/PPWhj + Y8BcWVn/bmxs/3Bvb/9wb2//cHBw/2RkZP+MjIz/0tLS/9fX1//Z2dn/3Nzc/97e3v/h4eH/5OTk/+jo + 6P/s7Oz/8PDw//Pz8//19PT/9vLy//fw8P/47u7/+ezs//np6f/y4+P/5NnZ/9vU1P/Z1NT/29fX/9/a + 2v/d19f/19TU/8nFxf/Sx8f/4tHM//Pax//84Lz//uO1///mvf/+68r//uvM//7nyv/95tH//ebd//3n + 5f/86Oj//enp//zp6f/96ur/8uLi/7CtrP+tra3/jYqK/z09Pf9AQED/Pz8//zg4OP98e3z/Tk1O/0BC + QP9PX0j/XGJP/31tbf+LeHj/pY+P/8+0tP/avr7/2r29/9m8vP/Xurr/1rm5/9O4uP/Rtrb/0bS1/8+z + s//NsbH/y6+v/97KwP/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj + 4//35+f/9ePY/7SblZMAAAAiAAAAJgAAACQAAAAjAAAAIQAAAB8AAAAdAAAAGwAAABkAAAAWAAAAEwAA + ABMAAAARAAAADQAAAAkAAAAHAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdfK + ynv/4eFA/+HhPv/j4zv/5eU4/+joNf/t7TPf0NA7ZmNjwFtZWf9tbGz/cHBw/3Fxcf9sbGz/ampq/7a2 + tv/T09P/09PT/9bW1v/Y2Nj/29vb/93d3f/g4OD/5OTk/+fn5//r6+v/8PDw//T09P/29PT/9/Ly//jw + 8P/06ur/29TU/8PBwf/AwMD/yMnJ/9DQ0P/U1dX/19fX/9na2v/d3d3/2tfX/+DRz//y2cj//OC+//7j + t///6MH//uzM//7pzP/+5s7//eXY//3n4v/86Of//ejp//zp6f/86ur//Orq//zr6//15ub/uLS0/6ur + q/+Nior/PT09/0BAQP8/Pz//ODg4/3x7fP9OTU7/QEJA/1FfSv9nY1r/f25v/4x6ev+nkZH/0ba2/92/ + v//cv7//2r29/9m8vP/Xurr/1rm5/9S4uP/St7f/0bS1/86ys//MsLD/38rB/8u/u//Ivb3/zcDA/9HE + xP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//149j/t52XkQAAAB4AAAAhAAAAHwAA + AB0AAAAbAAAAGAAAABYAAAATAAAAEAAAAA0AAAALAAAACQAAAAcAAAAEAAAAAwAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWjIw118vLef/j4zv/4+M6/+bmN//p6TX/7Owz//LyMd7T + 0zplY2PAWllZ/21tbf9xcXH/cnJy/2VlZf+IiIj/ycnJ/87Ozv/Q0ND/0tLS/9XV1f/X19f/2tra/93d + 3f/f39//4+Pj/+fn5//r6+v/8PDw//T09P/39PT/7+rq/9DNzf+9vLz/w8PD/9XV1f/g4OD/4+Pj/+Tk + 5P/j4+P/4ODg/9vb2//d3d3/5t3Z//rfxP//5Lv//+rG//7rzv/+6M///eXT//3m3v/95+b//Ojo//zp + 6f/86ur//Orq//zr6//77Oz//Ozs//fo6P+/urr/qqqq/42Kiv89PT3/QEBA/z8/P/84ODj/fHt8/05N + Tv9AQkD/WF9Q/3FkYf+Ab2//jXt7/6iSkv/TuLj/3sHB/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9S4 + uP/Rtrb/0LS1/86xsv/gy8L/y7+7/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f + 3//y4+P/9+fn//Xi2P+7oZqNAAAAFgAAABgAAAAWAAAAEwAAABEAAAAOAAAACwAAAAkAAAAHAAAABQAA + AAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeM + jDbWy8t3/+bmN//n5zf/6uo1/+3tNP/w8DL/9vYw3dbWOWRjY79aWlr/bm5u/3Jycv9vb2//aWlp/6+v + r//Ly8v/y8vL/8zMzP/Ozs7/0dHR/9PT0//V1dX/2NjY/9vb2//e3t7/4uLi/+bm5v/r6+v/8PDw/+3t + 7f/Qz8//xcXF/9HR0f/h4eH/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/4+Pj/9rb2//c2tr/8+LO///q + yv/+69D//ufS//3m2v/95+T//Ojo//zp6f/86ur//Ovr//vr6//77Oz/++zs//zt7f/87u7/9+rq/7+7 + u/+rqqv/jYqK/z09Pf9AQED/Pz8//zg4OP98e3z/TU1O/0FCQf9kYlv/dWVl/4Jwcf+PfHz/qpSU/9W5 + uf/gw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9O4uP/Rtrb/0LO1/+HMw//Lv7v/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9eLX/8OnoYgAAAALAAAADQAA + AAsAAAAIAAAABgAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl4yMNtXLy3b/6uo1/+vrNf/t7TP/8fEy//T0Mf/6 + +i/d2dk4ZGNjv1taWv9wcHD/dXV1/2lpaf+IiIj/1dXV/9bW1v/R0dH/z8/P/87Ozv/Ozs7/z8/P/9HR + 0f/T09P/1tbW/9ra2v/d3d3/4eHh/+Xl5f/o6Oj/2tra/9PT0//a2tr/5OTk/+bm5v/m5ub/5+fn/+fn + 5//n5+f/5+fn/+fn5//n5+f/4uLi/9XW1v/j3Nf//OjW//7n1//95+H//Ojn//zp6f/86ur//Orq//vr + 6//77Oz//Ozs//zt7f/87u7/++7u//zv7//36+v/wb69/62srP+Nior/PT09/0BAQP8/Pz//ODg4/3x7 + fP9NTU3/Q0NE/25nZv92Zmb/hHJy/5J+fv+slZX/1ru7/+HExP/hw8P/38LC/97AwP/cv7//2r29/9m8 + vP/Xurr/1rm5/9O4uP/Rtbb/4c3E/8u/u//Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uPj//fn5//14tf/y66ngwAAAAEAAAAEAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACXjIw21czMdP/u7jP/7u4z//HxMv/09DH/9/cw//39L93b2zhlZWW/XFxc/3Jycv91dXX/aGho/7Gx + sf/q6ur/6enp/+Xl5f/h4eH/3Nzc/9jY2P/U1NT/0tLS/9LS0v/T09P/1dXV/9jY2P/b29v/39/f/+Tk + 5P/i4uL/3t7e/+Tk5P/m5ub/5ubm/+Hh4f/V1dX/0NDQ/9zc3P/m5ub/6Ofn/+jo6P/n5+f/2NjY/9XU + 0//149///ejl//zp6f/86ur//Ovr//vr6//87Oz//O3t//vt7f/77u7/++/v//vv7//77+///PDw//jt + 7f/EwMD/sK+v/46Li/89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9ERET/cWlp/3hoaP+HdXX/lYGB/7CY + mP/ZvLz/48bG/+LFxf/hw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/1rm5/9O3uP/izsX/y7+7/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//PsquAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeMjDbVzc10//LyMf/y8jL/9fUx//j4MP/7 + +zD///8v3t7eOmdnZ8BeXl7/dHR0/3Jycv9tbW3/tbW1/87Ozv/W1tb/29vb/+Tk5P/m5ub/5ubm/+bm + 5v/i4uL/3t7e/9vb2//Y2Nj/19fX/9fX1//d3d3/6urq/+Tk5P/i4uL/5ubm/+bm5v/Y2Nj/tbW1/729 + vf+6urr/tLS0/9PT0//o5+f/6Ojo/+np6f/b29v/zs3N/+zg4P/86+v//Ovr//zs7P/77Oz/++3t//vu + 7v/77u7/++/v//vv7//78PD/+/Dw//vw8P/78fH/9u3t/8K/v/+zs7P/jouM/z09Pf9AQED/Pz8//zg4 + OP98e3z/TU1N/0RERP9yamr/fGtr/4t4eP+ZhIT/s5ub/9y+vv/mx8f/5MbG/+LFxf/hw8P/38LC/97A + wP/cv7//2r29/9m8vP/Xurr/1bm5/+POxf/Lv7v/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAl4yMNtXNzXP/9/cw//b2Mf/5+TD/+/sw//7+MP///zDf3988aWlpwWBgYP92dnb/bW1t/3x8 + fP+3t7f/u7u7/7y8vP+/v7//wsLC/8jIyP/Q0ND/19fX/9zc3P/j4+P/5eXl/+Tk5P/k5OT/4ODg/+fn + 5//u7u7/4uLi/+Xl5f/n5+f/1dXV/8XFxf+pqan/q6ur/7Gxsf+8vLz/wcHB/97e3v/p6ej/6enp/9/f + 3//Kysr/597e//zt7f/77e3/++7u//vv7//77+//+/Dw//rw8P/68PD/+vDw//vx8f/78fH/+/Ly//vy + 8v/07Oz/vby8/7W0tf+Oi4v/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/RERE/3Nra/9/bm7/jnt7/56J + if+4n5//3sDA/+jJyf/nyMj/5MbG/+LFxf/hw8P/38LC/97AwP/cv7//2r29/9m8vP/Xurr/5M/G/8u/ + uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjIw21M7Ocv/6+i//+vox//z8MP/+ + /jH///8y////MuHh4T5sbGzBYmJi/3d3d/9qamr/jo6O/7m5uf+4uLj/ubm5/7q6uv+7u7v/vLy8/729 + vf++vr7/wcHB/8XFxf/Kysr/0dHR/9jY2P/e3t7/8fHx/+zs7P/j4+P/5+fn/+Xl5f/Hx8f/pqam/5qa + mv+YmJj/nJyc/7Gxsf/CwsL/2dnZ/+np6f/p6en/4eHh/83Nzf/m39//+/Dw//vw8P/68PD/+vDw//rx + 8f/68fH/+vHx//vy8v/78vL/+/Ly//vy8v/78/P/+/Pz//Dp6f+6urr/trW2/46Li/89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9ERET/dW1t/4Jxcf+Sf3//oo2N/7yjo//gwsL/6srK/+nJyf/nyMj/5MbG/+LF + xf/hw8P/38LC/97AwP/cv7//2r29/9i7u//lz8b/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJeMjDbUz89y//7+L//9/TH//v4x////Mv///zT///814uLiQG5ubsJkZGT/dnZ2/2pq + av+dnZ3/tra2/7W2tv+2trb/t7e3/7i4uP+4ubn/urq6/7q6uv+7u7v/vLy8/729vf++vr7/vr6+/9DQ + 0P/x8fH/6Ojo/+Tk5P/n5+f/3d3d/8DAwP+goKD/mZmZ/6Kiov+kpKT/q6ur/7i3t//V1dX/6urq/+rq + 6v/i4uL/0tLS/+vk5P/78vL/+vLy//ry8v/68vL/+vLy//rz8//68/P/+vPz//rz8//69PT/+vPz//r0 + 9P/79fX/6OPj/7m4uP+3trb/jouL/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0RERP92bm7/hnR0/5aC + gv+nkZH/waen/+PExP/rzMz/6svL/+nJyf/nyMj/5MbG/+LFxf/hw8P/38HB/93AwP/bvr7/2ry9/+XQ + x//Lv7r/yLy9/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl4uLNtTPz3L///8v//7+Mv// + /zP///81////Nv///zfj4+NCcXFxw2ZmZv90dHT/b29v/66srP+6t7f/ure3/7q4uP+8ubn/vLm5/726 + uv++u7v/v7y8/8C9vf/Bvb3/w76+/8S/v//FwL//2NbW/+3t7f/k5OT/5eXl/+jo6P/U1NT/r6+v/5CQ + kP+dnZ3/pKSl/6Wlpf+2trb/zs7O/+Hh4f/q6ur/6urq/+Hh4f/Y19f/8e3t//r09P/59PT/+fT0//n0 + 9P/69PT/+vT0//r09P/69PT/+vT0//r19f/69fX/+vX1//v29v/d2tr/t7e3/7e2tv+Oi4v/PT09/0BA + QP8/Pz//ODg4/3x7fP9NTU3/RENE/3hwcP+KeHj/m4eH/62Wlv/Fq6v/5cfH/+3Ozv/szMz/6svL/+nJ + yf/myMj/5MbG/+LFxf/gw8P/38HB/93AwP/bvr7/5tHI/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97P + z//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACXi4s21NDQcv///zD///80////Nv///zf///85////OuXl5UVzc3PEaGho/3Fx + cf99e3v/v7e3/8a+vv/Hvr7/yL+//8nAwP/LwcH/zMLC/87Dw//QxcT/0sbG/9THx//WyMn/2MrM/9rL + z//k3d7/6erq/+Pj4//n5+f/6Ojo/9XV1f+3t7f/i4uL/5iYmP+hoaH/pqam/8DAwP/MzMz/5ubm/+rq + 6v/q6ur/39/f/+Dg4P/29PT/+fb2//n29v/59vb/+fb2//r19f/69fX/+vb2//n29v/59vb/+vb2//r2 + 9v/69vb/+fX1/9LQ0P+3t7f/t7a2/46MjP89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9EQ0T/e3Fy/498 + fP+gi4v/spub/8qwsP/nycn/78/P/+7Ozv/szMz/6svL/+nJyf/myMj/48bG/+LExP/gw8P/38HB/9y/ + v//n0cj/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeLizbV0NBz////M/// + /zf///84////Ov///zv///885ubmR3V1dcVqamr/b29v/4yHh//OwMD/0sTE/9TFxf/Vxsb/18fH/9nJ + yf/bysr/3cvN/97M0P/gzdP/4c7X/+PO3P/kzuD/59Dj/+je4v/m5ub/4+Pj/+fn5//o6Oj/3t7e/76+ + vv+np6f/kpKS/6Ojo/+7u7v/w8PD/+Pj4//q6ur/6+vr/+jo6P/g4OD/6enq//X29v/39/f/+Pf3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//r39//69/f/+vf3//r39//18vL/x8bG/7e3t/+4t7f/j4yM/z09 + Pf9AQED/Pz8//zg4OP98e3z/TU1N/0RDRP98dHT/k4CA/6aPj/+5oaH/z7S0/+nLy//w0dH/79DQ/+7O + zv/szMz/6svL/+jJyf/lx8f/48bG/+HDw//fwsL/3sDA/+jSyf/Lv7r/yLy9/83AwP/RxMT/1cjI/9nL + zP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAl4uLNtXR0XT///81////Of///zv///88////Pv///z/n5+dKeHh4xWtr + a/9tbW3/nJOT/9zJyf/dysr/38vM/+DMz//hzdL/4s3W/+PN2v/kzt3/5M3h/+TN5f/kzen/483s/+PN + 7//mz+7/593k/+Pj4//i4uL/5ubm/+jo6P/m5ub/1tbW/8XFxf+8vLz/xcXF/8nJyf/i4uL/6enp/+vr + 6//q6ur/5eXl/+Pk5P/n6u7/6+7z//Hy9P/19fX/9/b2//f39//4+Pj/+Pj4//n4+P/5+Pj/+fj4//r4 + +P/6+Pj/+vn5/+vq6v++vr7/uLi4/7m4uP+PjIz/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/Q0NE/392 + dv+XhYX/q5WV/8Cmpv/Wurr/7M7O//LS0v/x0dH/78/P/+3Nzf/rzMz/6srK/+fJyf/kxsb/4sXF/+HD + w//fwcL/6NPJ/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn + 5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXi4s21tHRdv// + /zj///87////Pf///z////9A////Qejo6Ex6enrGbW1t/21tbf+onJ3/5c7V/+PM1//jzNv/48zf/+PM + 4//jy+b/4svq/+HL7f/gyfD/3sny/93J9P/eyvT/4Mzz/+bR8f/n3OT/4ODg/+Lh4v/l5eX/6enp/+np + 6f/n5+f/39/f/9TU1P/d3d3/5OTk/+vr6//r6+v/6urq/+jn5//n5+f/4OPo/9zj7f/i5+//6Ovx/+7v + 8v/y8/P/9PT0//b29v/39/f/9/f3//j4+P/5+Pj/+fn5//n5+f/6+fn/3dzc/7u7u/+4ubn/urq6/4+M + jP89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9DQ0T/gHd4/52Jif+xmpr/x62s/9y+vv/w0ND/9NTU//LT + 0//w0dH/78/P/+3Nzf/rzMz/6cnJ/+fIyP/kxsb/4sTE/+DCw//p08r/y7+6/8i9vf/NwMD/0cTE/9XI + yP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeLizbW0tJ3////Ov///z7///9A////Qf///0P///9E6enpTnx8 + fMdubm7/cHBw/7Wmqv/lzOT/4cnn/+DJ6v/eyO3/3cfw/9vG8//ZxPb/18T3/9bE+P/Yxvf/3Mn2/+HO + 8//m0vD/7dju/+7f5f/d3dz/4ODg/+Pj4//o6Oj/6enp/+rq6v/r6+v/7Ozs/+vr6//r6+v/6+vr/+rq + 6v/o6Oj/6+vr/+Pl6v/V3ej/1d7r/9rh7f/g5e//5enw/+vt8f/v8PH/8vPz//T09P/19fX/9vb2//f3 + 9//39/f/+Pj4//X19f/My8v/urq6/7q6uv+8u7z/j4yN/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0ND + RP9ic4D/cIOW/5mZpP/DsbT/4sTD//TS0v/21dX/89TU//LS0v/w0dH/7s/P/+zMzP/qy8v/6MnJ/+XH + x//jxsb/4cPE/+nTyv/Lv7r/yL29/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj + 4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdbS + 0nj///89////QP///0L///9E////Rf///0bq6upRf39/yHBwcP9zcnL/uqmw/+DJ8P/Yw/T/1sL2/9TB + +P/SwPr/0cD7/9LB+v/WxPn/3Mn2/+LO8//o0/D/7tnu//Pe6//44+r/+Obn/+Dd3f/c3dz/4eHh/+Tk + 5P/o6Oj/6urq/+rq6v/q6ur/6+vr/+rq6v/p6en/6enp//Dw8P/o6+7/09rm/9DY5v/R2+n/1N3s/9jg + 7f/e5O7/4+fv/+jr7//t7vD/8fHx//Pz8//09PT/9fX1//X19f/39/f/6Ojo/8DAwP+7u7v/u7u7/729 + vf+PjY3/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/Q0NE/0xvhf81eaT/Rou4/2yky/+qvNP/5tHX//nX + 1v/21dX/89TU//HR0f/v0ND/7s7O/+zMzP/qysr/58nJ/+TGxv/ixcX/6tTL/8u/uv/Ivb3/zcDA/9HE + xP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWi4s119PTef///z////9D////Rf///0b///9I////Sevr + 61OBgYHIcnJy/3Rzc/+8qrL/2cT4/869/P/Nvf3/z779/9LB+//Xxfj/3cr1/+PP8v/p1O//79rs//Tf + 6v/55On/++fo//vp6f/46+n/6+Xj/9va2v/d3d3/4uLi/+Tk5P/m5ub/6Ojo/+np6f/o6Oj/5+fn/+vr + 6//09PT/7O7x/9HY4//K0+H/zdbl/8/Z6P/Q2+v/093s/9fg7f/d4+3/4ubu/+bp7v/r7e//8PDx//Ly + 8v/z8vL/9PT0//T08//V1dX/vLy8/7y8vP+8vLz/v76+/5CNjf89PT3/QEBA/z8/P/84ODj/fHt8/01N + Tf9DQ0T/THCG/zV6pf86irz/QZ3W/06r5/96u+n/xMzg//PW1//21dT/8tPT//HR0f/vz8//7c3N/+vM + zP/pycn/5sjI/+TGxv/q1cz/y7+6/8i9vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f + 3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaL + izXX09N7////Qv///0X///9H////Sf///0r///9M7OzsVoODg8l0dHT/c3Ny/7Slq//YxPr/zr79/9PC + +v/Zxvf/38vz/+XQ8P/r1e7/8dvr//bg6f/65Oj//Ofo//zp6P/86un/9+zp/+vv5P/m7+P/5OPh/9zb + 2//d3d3/4uLi/+Tl5P/k5uX/5+fn/+np6f/t7e3/8vLy/+zt7v/R1t3/xs7b/8jS4P/L1eT/zdfn/87Z + 6v/P2uz/0t3t/9fg7f/c4+3/4ebu/+Xp7//q7O//7u/w//Hx8f/y8vL/6urq/8TExP+9vb3/vb29/76+ + vv/Av8D/kI2N/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0NDRP9LcIf/Nnum/z2MvP9En9f/Sazp/0qx + 8f9btvH/n8Tl/+jT2P/11NT/8tLS//DR0f/uzs7/7MzM/+rLy//oycn/5cfH/+vVzP/Lv7r/yL29/83A + wP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlouLNdjU1Hz///9F////SP///0r///9L////Tf// + /07t7e1YhoaGynd3d/91dnX/rqGl/9/K9P/ax/b/4czy/+fR7//t1uz/8tzq//fh6P/75Of//Ofn//zo + 6P/86en//Orq//js6f/s7+T/3vLe/9P12v/Z897/4eni/9/g3//f39//4OHh/+Lk4//n5+f/6urq/+zs + 7P/y8vL/6ers/87S2f/Iz9n/yNHe/8nT4//L1ub/zNjp/83Z6//P2u3/0t3t/9fg7v/b4+7/4Obu/+To + 7//p6+//7e7w//Dw8P/X19f/vb29/76+vv++vr7/v7+//8LBwf+QjY3/PT09/0BAQP8/Pz//ODg4/3x7 + fP9NTU3/QkNE/0twh/84fKf/Po2+/0ag2P9Lrer/TbLx/0yz8/9PtPP/ib/o/+DR2f/01NP/8dHR/+/Q + 0P/tzs7/68zM/+nKyv/nyMj/7NbN/8u/uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb + 2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACWioo12NTUff///0f///9K////TP///07///9Q////Ue3t7VuIiIjLenp6/3p6ev+jmZr/6NLp/+jT + 7//u2Ov/9N3p//ni5//75eb//ebm//3n5//86Oj//Onp//zq6v/47Or/7u/m/+Dx4P/T9Nr/yPfV/8j4 + 1f/P+Nr/2fXh/+Lw5v/n6+j/6erp/+vr6//t7e3/8PDw//T09P/x8vL/19nd/8zR2P/K0dz/ytPh/8rV + 5f/L1uj/zNjq/83Z7P/P2+3/093u/9fg7v/b4+//4Obv/+To7//p7PD/5ufo/8XFxf++vr7/v7+//8DA + wP/BwcH/w8LC/5CNjf89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9CQ0T/S3CI/zh9qP9Ajr//SKLa/02u + 6v9Ps/L/TrTz/0yz9P9Ns/P/hL7p/+HQ2P/z09L/8NHR/+/Pz//szMz/6svL/+nJyf/t1s3/y7+6/8i9 + vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaKijXY1NR+////Sv///03///9P////UP// + /1L///9T7u7uXYqKist8fHz/gICA/5SOjv/t1uD/9t7o//ni5v/85eb//ebm//3n5//86Oj//Onp//vq + 6v/86uv/+ezr/+/v5v/i8uH/1fTb/8n31f/D+NL/xfnU/8n52P/U+eD/4vnq/+318P/x8fH/7+/v//Dw + 8P/y8vL/9PT0//X19f/h4uP/0NTY/83S2v/M097/y9Xj/8vW5//L1+r/zNjs/83a7v/P2+//097u/9fg + 7//b4+//3+bv/+fq7v/T09T/vr6+/7+/v//AwMD/wcHB/8LCwv/Ew8T/kI6O/z09Pf9AQED/Pz8//zg4 + OP98e3z/TU1N/0JDRP9KcYn/On6p/0GPwP9Ko9v/Tq/r/1Cz8v9PtfT/TrT0/0yz8/9NsvL/j7/m/+nS + 1f/y0tL/79DQ/+3Ozv/rzMz/6snK/+3Xzf/Lv7r/yLy9/83AwP/RxMT/1cjI/9nLzP/ez8//4tPT/+bX + 1//q29v/7t/f//Lj4//35+f/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAloqKNdnV1YD///9M////UP///1H///9T////Vf///1bv7+9gjIyMzH5+fv+Ghob/hYKC/+fT + 1P/95ub//ebm//3n5//85+f//Ojo//zp6f/76ur//Ovr//rs6//w7uf/4/Hh/9f02//K99X/wfnR/8D5 + 0f/E+dT/zvnb/9355v/p+O7/8fPx//Dw8P/v7+//7+/v//Hx8f/09PT/9vb2/+rq6v/W19r/0NTZ/83T + 3P/N1eH/zdbl/8zX6f/M2Oz/zdnu/83a7//Q3O//097v/9fg7//e5O//3+Di/8LCwv+/v7//wcHB/8LC + wv/CwsL/w8PD/8bFxf+Rjo7/PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/QkNE/0lxif87f6n/Q5DA/0uk + 2/9PsOz/UbTy/1C19P9PtfT/TrT0/0uy8/9Ss/H/q8Xh//HT0//x0dH/78/P/+zMzP/qysv/7tfO/8u/ + uv/Ivb3/zcDA/9HExP/VyMj/2cvM/97Pz//i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWioo12dXVgf///0////9S////VP// + /1b///9X////WO/v72KOjo7NgICA/46Ojv9/fn7/0cHB///o6P/95+f//Ojo//zp6f/76ur/++rq//zr + 6//67Oz/8u7o/+Xx4v/Y9Nz/zPbW/8D40P+8+c7/v/rR/8n52P/X+eH/5Pnr/+/28v/y8/P/7+/v/+7u + 7v/v7+//8fHx//T09P/29vb/8fHx/9vc3P/U1tn/0NTa/8/V3v/P1+P/ztjn/83Z6//M2e3/zNrv/87b + 8P/Q3fD/1d/w/+Dk6v/Ly8v/v7+//8HBwf/CwsL/w8PD/8TExP/ExMT/x8bG/5GOjv89PT3/QEBA/z8/ + P/84ODj/fHt8/01NTf9CQ0T/SXGJ/zuAqv9EkcH/TKXc/1Cw7P9StPL/UbX0/1C19P9PtPT/TbPz/0qy + 8/9ktu7/0c3Z//PS0f/v0ND/7c7O/+vMzP/u2M7/yr+6/8i8vf/NwMD/0cTE/9XIyP/Zy8z/3s/P/+LT + 0//m19f/6tvb/+7f3//y4+P/9+fn//Ti1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJaKijXZ1taC////Uv///1X///9X////WP///1r///9b8PDwZZGRkc6CgoL/k5OT/4CB + gf+zqan//Ofn//zp6f/86en/++rq//zq6v/86+z/++3s//Tu6f/n8eP/2vPd/8321//C+NH/ufrM/7n6 + zf/D+tT/0fnd/9755v/r+fD/9Pb0//Ly8v/v7+//7u7u/+7u7v/w8PD/8/Pz//b29v/19fX/4uLi/9jY + 2f/U1tr/0dXc/9HX4P/Q2OX/z9np/87a7P/N2u//zdrw/87c8v/Y4e7/09PV/8C/v//CwsL/wsLC/8PD + w//ExMT/xcXF/8bGxv/Ix8f/kY6O/z09Pf9AQED/Pz8//zg4OP98e3z/TU1N/0JDRP9IcYr/PICq/0WS + wv9Npdz/UrHs/1O08v9StvT/UbX1/1C19P9OtPT/TLPz/0uy8v+RwOX/7tLT//DR0f/uzs7/7MzN/+/Y + z//Kvrr/wLOz/8S3t//PwsL/1cjI/9nLzP/ez8//4tPT/+bX1//q29v/7t/f//Lj4//35+f/9OLX/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAloqKNdrW1oT///9U////V/// + /1n///9b////Xf///17w8PBnk5OTz4SEhP+Xl5f/iouL/5SQkP/u3d3//Orq//vq6v/86+v//Ozs//vt + 7P/07ur/6PHk/9zz3v/P9tj/w/jS/7j6zP+1+8v/vfrQ/8v62f/Y+eL/5vnr//H49P/19fX/8vLy/+/v + 7//u7u7/7u7u//Dw8P/z8/P/9vb2//f39//p6en/29vb/9fY2v/U19v/09ff/9LZ4//R2ef/0Nrq/8/b + 7f/O2/D/0d7x/9PW2//BwcH/wsLC/8PDw//ExMT/xMTE/8XFxf/Gxsb/x8fH/8nIyf+Rjo7/PT09/0BA + QP8/Pz//ODg4/3x7fP9NTU3/QkNE/0hxiv89gav/RpPC/06m3f9Tsez/U7Xy/1O29P9StvX/UbX0/0+0 + 9P9Os/P/SrLz/1+27v/RzNn/89LR/+/Pz//tzc3/79jP/8q+uv+4q6z/s6Wl/7yurv/Iurr/1MbG/93O + zv/i09P/5tfX/+rb2//u39//8uPj//fn5//04tf/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACWioo12tfXhf///1f///9a////XP///17///9f////YPHx8WqVlZXPhoaG/5iY + mP+VlZX/hIOD/83Cwv/97Oz//Ovr//zs7P/77e3/9e7q/+nw5f/d89//0fbZ/8X30/+6+c3/svvJ/7f7 + zf/F+tX/0/re/+D55//t+fH/9ff2//T09P/x8fH/7+/v/+3t7f/u7u7/8PDw//Ly8v/19fX/9/f3//Dw + 8P/e3t7/2trb/9fZ2//V2N3/1Nnh/9Pa5f/T2+n/0dzs/9Pd7v/U2N//w8PD/8HBwf/ExMT/xMTE/8XF + xf/Gxsb/xsbG/8fHx//IyMj/ysnK/5GOj/89PT3/QEBA/z8/P/84ODj/fHt8/01NTf9CQ0X/SHGL/z2B + q/9HlMP/UKfd/1Oy7P9VtvP/VLb0/1O29f9StvX/ULX0/0609P9Ms/P/TLLy/6LD4v/y0tL/8NDQ/+7O + zv/w2dD/yr66/7isrP+yo6P/tqeo/7msrP++srL/yr29/9fJyf/j1NT/6tvb/+7f3//y4+P/9+fn//Ti + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWKijXb19eG////Wv// + /13///9e////YP///2L///9j8vLybJeXl9CHh4f/mZmZ/5ycnP+JiYn/oZ2d//Pk5P/87e3/++3t//fu + 6//r8eb/3vPg/9L12v/H99T/vPnO/7H7yf+y/Mn/v/vR/8362v/b+eP/6Pnt//P49f/29vb/9PT0//Hx + 8f/v7+//7e3t/+7u7v/v7+//8vLy//X19f/39/f/9PT0/+Pj4//c3Nz/29vb/9jZ3P/W2t//1dvj/9Tc + 5//V3en/1Nfd/8PDw//BwMD/xMTE/8TExP/FxcX/xsbG/8fHx//IyMj/ycnJ/8nJyf/My8v/kY+P/z09 + Pf9AQED/Pz8//zg4OP98e3z/TU1N/0FDRf9HcYv/PoKs/0iUw/9QqN3/VbLs/1W28v9VtvT/VLb1/1K2 + 9f9RtvT/T7T0/0608/9KsfP/ebvq/+fR1f/x0dH/78/P//DZ0P/Kvrr/uKys/7KkpP+2qKj/uays/7uv + r/+/s7P/xLi4/8zBwf/azc3/59nZ//Hi4v/45+j/9eLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlYqKNdvX14j///9c////X////2H///9j////ZP///2by8vJvq6ur0qur + q/+6urr/tbW1/5ycnP+IiIj/zsXF//zu7v/37uz/7PDm/+Dz4P/U9dv/yPfV/735z/+y+8n/rvzH/7n7 + zv/H+tf/1Pnf/+H56P/u+fH/9/j3//b29v/09PT/8fHx/+/v7//t7e3/7u7u/+/v7//y8vL/9fX1//f3 + 9//39/f/6enp/97e3v/d3d3/2tvc/9ja3v/X2+H/19zl/9PW2//FxcX/zc3N/9bW1v/X19f/z8/P/8bG + xv/Hx8f/yMjI/8nJyf/Kysr/ysrK/8zMzP+Sj4//PT09/0BAQP8/Pz//ODg4/3x7fP9NTU3/QUNF/0hy + i/9Ag6z/SZXE/1Go3v9Ws+z/Vrby/1a39P9Ut/X/U7b1/1K29f9QtfT/T7Tz/0yy8/9ete//1M3Z//PS + 0f/v0ND/8NrR/8q/uv+4rKz/sqSk/7aoqP+5rKz/u6+v/7+zs//Dt7f/xru7/8q/v//Qxsb/3NHR/+zf + 3//04df/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACViYk129fXiP// + /17///9h////Y////2T///9m////Z/n5+YHBwcHinJyc/6ampv+4uLj/vr6+/5GRkf+cmZn/59/d/+7x + 6P/h8+H/1fXb/8n31f+++dD/tPvJ/638xv+0/Mr/wfrT/8/63P/c+eX/6Pnt//T59f/4+Pj/9fX1//Pz + 8//x8fH/7+/v/+3t7f/t7e3/7+/v//Hx8f/09PT/9/f3//j4+P/v7+//4ODg/97e3v/d3d3/2tvd/9nb + 3//S1Nf/w8PD/9LS0v/V1dX/zMzM/87Ozv/b29v/0dHR/8jIyP/Jycn/ysrK/8rKyv/Ly8v/zczN/5GO + jv87Ozv/Pj4+/z4+Pv83Nzf/enp7/0xLTP9BQ0X/SHOL/0KErP9Ll8X/U6ne/1a07f9Xt/L/Vrf0/1W3 + 9f9UtvX/U7b1/1G29P9QtPT/TbPz/1Oz8f++yd3/9NPS//DQ0f/w2tH/yr66/7isrP+ypKT/tqio/7ms + rP+7r6//v7Oz/8O3t//Gu7v/yr+//83ExP/Qx8f/3NLT//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiMjDXh3t6c////d////3L///90////df///3b///929/f3q7Gx + seqVlZX/pKSk/6ioqP/FxcX/rq6u/5aVlv+8u7n/6fDm/9z24P/Q+Nr/x/rV/7z70P+1/cv/tv3N/8H8 + 1P/O+9z/2vrj/+X66//x+fP/+Pn5//j4+P/29vb/9PT0//Ly8v/x8fH/7+/v/+/v7//w8PD/8vLy//X1 + 9f/4+Pj/+fn5//X19f/l5eX/4uLi/+Hh4f/g4OD/1dbX/8XFxf/Jycn/3Nzc/8rKyv/IyMj/yMjI/9HR + 0f/g4OD/0NDQ/87Ozv/Ozs7/z8/P/9DQ0P/R0NH/m5mZ/09PT/9SUlL/U1NT/09PT/+ZmZn/d3Z3/0JE + Rf9Jc4v/RYeu/06Zx/9Vq9//WLXt/1i38v9XuPT/Vrf0/1W39f9TtvX/Urb0/1C19P9OtPP/T7Py/6/G + 4f/109L/8dHR//Ha0f/Kvrr/uKus/7Gjo/+2qKj/uays/7uvr/+/s7P/w7e3/8a7u//Kv7//zsTE/9HH + x//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYqKOd/d + 3dbx8fHb8PDw2PDw8Njw8PDZ8PDw2fHx8dng4ODpysrK+8XFxf/IyMj/yMjI/83Nzf/X19f/1tbW/9XV + 1f/l5eT/6fDq/+Lx5v/e8eT/3PLi/9vy4v/d8uP/4fHm/+Tx6P/o8ev/7PHt/+/x8P/x8fH/8PDw/+/v + 7//v7+//7u7u/+3t7f/t7e3/7e3t/+3t7f/t7e3/7+/v//Dw8P/w8PD/8PDw/+rq6v/o6Oj/5+fn/+Li + 4v/c3Nz/3Nzc/9nZ2f/MzMz/yMjI/8jIyP/Kysr/ysrK/9bW1v/f39//3d3d/93d3f/d3d3/3d3d/9zc + 3P/Y2Nj/0dHR/9HR0f/Pz8//1dXV/8/Pz/+gn5//cXN1/096k/9Ji7L/U57L/1mu4v9bt+7/Wbnz/1i4 + 9P9XuPT/Vrf1/1S39f9TtvX/UbX0/0+08/9Ms/P/pcXj//bV0//x0dH/8drR/8q+uv++sbH/tqmo/7eo + qf+5q6z/u6+v/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYjY045uTk1/n5+eT4+Pjk+Pj45Pj4+OT4+Pjk+Pj44/X1 + 9eXm5ub34ODg/+Pj4//k5OT/5OTk/+bm5v/n5+f/5OTk/+Hh4f/r6ur/8vfy/+n57v/m+ev/5/ns/+r4 + 7v/t+PD/7/jy//P49P/2+Pb/+Pj4//f39//39/f/9/f3//b29v/19fX/9fX1//T09P/09PT/9PT0//X1 + 9f/19fX/9vb2//f39//4+Pj/9PT0/+vr6//l5eX/5OTk/+bm5v/m5ub/5eXl/+Pj4//i4uL/5ubm/+bm + 5v/i4uL/4uLi/+Tk5P/k5OT/5+fn/+jo6P/m5ub/4+Pj/9vb2//R0dD/xMTE/6+urv+qqan/lZSU/31+ + f/9xgoz/SoSm/1CUvP9ZptT/XbTn/1658P9cuvP/Wbnz/1i49P9Wt/T/Vbf1/1S29f9StvT/ULX0/0uz + 8/+ixeT/99XU//LS0v/x29H/y7+6/8i8vP/Kvb3/x7q6/8O1tf+/srL/v7Oz/8O3t//Gu7v/yr+//87E + xP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId7 + eyG/vb18zs7Ogc3NzYHNzc2Bzc3Ngc3NzYHOzs6Ax8fHho+Pj9iCgoL/j4+P/5KSkv+SkpL/kZGR/5CQ + kP+RkZH/h4eH/3l4eP+WlZT/uc69/57ktf+b47H/qOK6/7bhw//D4Mv/0d/V/93f3f/f39//3d3d/9vb + 2//Z2dn/19fX/9XV1f/S0tL/0dHR/8/Pz//Pz8//0dHR/9XV1f/a2tr/3d3d/8fHx/+YmJj/hISE/4mJ + if+Pj4//j4+P/46Ojv+MjIz/ioqK/5eXl/+tra3/np6e/6Kiov+0tLT/x8fH/8bGxv+9vb3/v76+/7W0 + tP+np6b/m5ub/5KUlf+JjpL/fomQ/3SJlf9piJn/YYqi/1OMrf9PlLv/WqLL/2Cw3v9iuev/Ybvy/167 + 8/9buvT/WLjz/1e49P9Wt/T/VLf1/1O29P9RtfT/TbPz/6fG5P/31tX/8tPT//Lb0v/Lv7r/x7u7/8y/ + v//SxcX/1cfH/9TGx//Qw8P/zL+//8m+vv/Kv7//zcTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS4uAQkHBwcAAAAIAAAACAAAAAgAAAAIAAAACAAA + AAcdHR0TMDAwtDQ0NP9MTEz/TExM/0ZGRv9DQ0P/QEBA/0RERP9PT0//ODg4/yMiIv9QUU7/iLWT/4rp + p/+R767/pey6/77qy//Y6dz/6eno/+np6f/l5eX/4eHh/93d3f/Z2dn/1dXV/9HR0f/Nzc3/ycnJ/8nJ + yf/Pz8//1NTU/8bGxv+QkJD/S0tL/zIyMv8+Pj7/SkpK/1BQUP9VVVX/YWFh/3V1df+Hh4f/l5eX/6Oj + o/+jo6L/qqmp/6Cgn/+XlpX/k5SU/4iLjP9/hor/fYmP/3WJlP9ti5r/aY+i/2KRqv9flbD/X5m2/1+b + u/9enb7/YKHE/2Kozv9lsdv/Z7no/2a97/9kvfL/Ybzz/1279P9aufP/WLj0/1a49P9Vt/X/VLb0/1K2 + 9P9StfP/s8ni//jW1f/y1NT/8tvS/8q+uv+6rq7/uq2t/8e5uv/SxMT/2cvM/97Q0P/h0tL/39HR/9rN + zf/Vysr/0snJ/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgsyMjKxNjY2/01NTf9FRUX/Pz8//z8/ + P/8/Pz//RERE/1RUVP9VVVX/QkND/yYmJv8yMDD/bnhv/6jErv/I6dD/3PTi/+7z7v/08/P/8fHx/+3t + 7f/o6Oj/5eXl/+Hh4f/d3d3/2dnZ/9bW1v/S0tL/yMjI/7CwsP+AgID/UVFR/z8/P/9KSkr/ampq/4SE + hP+VlZX/oqKi/7CwsP+0s7T/ra2t/6Khof+bmpr/kpOU/4WJi/+BiI3/d4eO/22Fjv9ujJv/b5Kl/2uW + q/9pmrH/a562/2uguf9so73/bqbB/2+pxP9uqsf/bqzM/22uz/9tsdX/bbbd/2275v9sv+3/asDx/2e/ + 8/9ivfP/X7z0/1u69P9ZufP/V7j0/1a39P9Ut/X/Urb0/1i28v/EzeD/+NfW//PU1P/y3NP/yr66/7ir + rP+xo6P/t6ip/72wsP/Hu7v/1MbG/9/R0f/m19f/6tvb/+vd3f/o29v/6dzd//Ph1v/Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMzMzCzIyMrE2Njb/TU1N/0NDQ/8/Pz//Pz8//z8/P/9GRkb/VFRU/1ZWVv9XV1f/Tk5O/zY2 + Nv8kIyT/MzEy/2FgX/+YmJb/xMPD/93d3f/j4+P/5OTk/+Tk5P/e3t7/1tbW/83Nzf/AwMD/paWl/4KC + gv9hYWH/RkZG/0hISP99fX3/q6ur/7q6uv+5ubn/rK2r/5+hnv+TmJH/fYd6/3N9b/93gHb/cYOH/3KK + lv9ykKD/bZKn/2yWrP9pmK3/apqw/3CguP90pbz/d6i//3msw/97r8f/fLLK/3y0zf99ttH/fLjU/3u5 + 1/95utr/eLze/3e+4v91wOf/c8Ls/3HC8P9twvL/acDz/2W+8/9gvPT/Xbv0/1q58/9YuPT/Vrj0/1W3 + 9P9StvT/Zbnw/9vS3f/319b/89XV//Lc0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP/AtLT/yb29/9XI + yP/i1NT/7N3d//Pj4//45+j/9OLX/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMLMjIysTY2Nv9NTU3/R0dH/0RE + RP9HR0f/SkpK/1VVVf9YWFj/VVVV/1ZWVv9XV1f/VlZW/01NTf86Ojr/KSkp/yUlJf8uLi7/Pj4+/1RU + VP9iYmL/bm5u/21tbf9mZmb/ZGRk/2VlZf9ubm7/eHh5/4uLi/+bm5v/mZqY/52fnP+Rlo//fIV5/3WA + cf9tfGj/antk/25/aP9zhG3/eolz/4SRgP91lp7/apmw/2+etf9zorn/dKW7/3Omu/96rML/gbLK/4O2 + zv+GutH/h7zT/4m/1v+Jwdn/icLb/4nE3v+HxeD/hsXj/4PG5f+Bxuj/fsbq/3vG7f94xu//dcXy/3DD + 8/9rwvP/Z7/z/2K99P9fu/T/W7r0/1i48/9XuPT/Vrf0/1K29P+BwOz/79fb//fX1v/01dX/8tzT/8q+ + uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8zBwf/Wy8v/49fX//Hj4//04tf/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADMzMwsyMjKxNjY2/01NTf9QUFD/UVFR/1JSUv9nZ2f/d3d3/1paWv9RUVH/VVVV/1RU + VP9TU1P/UlJS/1NTU/9VVVX/UVFR/1paWv9ubm7/c3Nz/1taW/9sbGz/hIOE/5qamv+ioqL/oaGf/56g + nP+QlI7/gYh9/3mEdf9zgG7/cX9r/3WDb/96iXT/gI56/4eUgf+LmIX/j5uJ/5KejP+UoY7/l6OQ/4ul + of92p7r/eavB/3uvxP98scb/frXJ/4q+1v+Owtr/kMXc/5LI3/+UyeD/lMzi/5XN5f+Uzub/k87n/5DO + 6f+Ozur/is3s/4fM7f+Dy+7/gMrw/3zI8P93xvH/csXz/23C8/9owPP/ZL70/2C89P9cuvT/Wbnz/1i4 + 9P9WuPT/Vrj0/6zK5//62tr/99fX//TV1f/y3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3 + t//Gu7v/yr+//83ExP/RyMj/3tTU//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCzIyMrE2Njb/TU1N/1FR + Uf9QUFD/ZmZm/3t7e/9XV1f/SkpK/0pKSv9NTU3/Xl5e/3Jycv+MjIz/nJyc/7CwsP/CwsL/ycjI/8XF + xf+8u7r/rKyq/6Gjn/+Tlo//hIp//32Fef94gnP/d4Nx/3uIdv+BjXv/h5KB/4yWhv+Qmor/k52O/5ag + kf+Yo5P/mqaV/52pl/+frJn/oa6b/6Oxnf+ls57/obSl/4a1wf+At8z/grrO/4O8z/+MxNn/l8zk/5nO + 5v+a0Of/m9Ho/5zS6f+d1Or/ndXr/5zV7P+a1ez/l9Tt/5PT7v+P0e//i8/w/4bN7/+Cy/D/fsrx/3jI + 8v90xvP/b8Pz/2rB8/9lv/P/Ybzz/1269P9aufT/Wbnz/1a49P9rvPL/3NXh//za2f/319f/9NXV//Lc + 0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAzMzMLMjIysjQ0NP9JSUn/UlJS/2BgYP+FhYX/Z2dn/2dnZ/+BgYH/lJSU/pKS + kvrDw8P5y8vL+8vLy+bBwMDftLSz+6enpP+UlY//hYqA/4KHfP9+hXf/fIZ2/4KLfP+GkID/i5SF/4+X + if+Sm43/lZ6Q/5ihk/+bpJX/naeY/6Cqmv+jrZ3/prGg/6i0ov+rt6T/rLmm/667qP+wvqn/ssCq/7PC + rP+0w6z/n8LA/4nC1v+KxNj/jcfa/5rQ5/+f1Oz/oNXs/6HW7f+i1+3/otjt/6PZ7v+i2e7/odnu/5/Y + 7v+b1+//l9bv/5PT8P+O0fD/ic/w/4XN8f9/y/H/esny/3XG8v9wxPP/a8Hz/2e/8/9ivfP/Xrv0/1u6 + 9P9ZufT/WLj0/5/J6//43N3/+9ra//fX1//01db/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+z + s//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJwQ4ODhuXV1d44aG + hv2bm5v/sbGx/Lq6uvfExMT4zs7O587OztXNzc3Tw8PDuLe3t5K1tbV/s7OzXWZmYm51emzxhIt+/4eO + gf+KkoT/jZWH/5GYjP+Um4//l56R/5mhlP+cpJb/n6eZ/6KrnP+lrp//qLKi/6u1pf+tuKf/sLuq/7K+ + rP+1wa7/tsOw/7jFsv+6x7P/u8m0/7zKtf+8y7X/vcy1/73MtP+3zLr/msrV/5DK3v+Xz+T/otfv/6TY + 8P+k2fD/pdnw/6ba8P+m2/D/ptvw/6bc8P+k2+//otnv/57Y7/+a1+//ldXw/5DT8f+L0PD/hs3x/4DL + 8f97yfL/dsfz/3HE8v9swvP/aMD0/2O99P9fu/T/XLn0/1i59P9zvvH/3tjj//3d3f/62tr/99fX//TV + 1v/z3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg + 1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG5ubgWlpaU4t7e3brq6upq7u7u7urq6lLi4uHuzs7NjqampQ5+f + nyednZ0Vm5ubC4ODgwEAAAAALDMjOnmDb+2VnJD/l52R/5qhlP+dpJf/oaia/6Srnv+nr6H/qrKk/621 + p/+wuar/s7yt/7W/r/+4wrL/usW0/7zHtv++ybj/wMy5/8HNuv/Czrv/w9C8/8PRvP/E0bz/w9G8/8PR + u//C0bv/wtG6/8HRuf+x0Mb/mM7e/5/V7P+m2fH/ptrx/6fb8f+n2/H/qNzx/6jc8P+o3PD/qN3w/6bc + 7/+j2u//n9nw/5vX7/+W1fD/ktPx/4zQ8P+GzvH/gcvx/3zJ8v94x/L/csTz/23C8/9pwPT/ZL30/2C7 + 9P9buvT/Yrvz/7rQ6P/839//+93d//ra2v/319f/9NXW//Lc0//Kvrr/uKys/7KkpP+2qKj/uays/7uw + sP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmJiYBZ+fnxScnJwNioqKBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Pio0h5F766Ws + n/+nrqH/q7Kl/6+2qP+yuqv/tb2v/7jAsf+7w7T/vca3/7/Juf/Cy7v/w829/8XPvv/G0b//x9LB/8jT + wf/J1ML/ydXC/8nWwv/J1sL/ydbB/8jVwf/H1b//xtS+/8XUvv/F1L3/xNO8/8HSu/+y1NT/qNrx/6fa + 8v+o2/L/qdvx/6nc8f+p3PH/qdzw/6nd8P+o3PD/p9vw/6Pa7/+g2fD/nNfw/5fV8P+S0/H/jdDw/4jO + 8P+CzPH/fcny/3fH8v9zxPP/bsLz/2nA8/9kvvT/YLv0/1+78/+gyev/9d7h//7g3//73d3/+tra//fX + 1//01db/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS + 0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdRNyyXoovot76w/7nAsv+8xLb/v8e4/8LKu//EzL3/xs+//8jQ + wP/J0sL/ytTE/8zVxf/N18b/zdfG/83Yxv/N2Mb/ztjH/83Zxv/M2cb/zNnF/8vYxP/L2MT/ytfD/8nX + wv/J18H/x9bA/8bVv//F1L3/xNO8/9ri1//K5PL/qtvy/6jb8v+p2/H/qdvx/6nc8f+p3PD/qdzw/6jc + 8P+m2/D/o9rv/6DY8P+c1/D/l9Xx/5LT8f+N0PD/h87x/4LL8f99yfL/eMfy/3PF8/9uwvP/acDz/2S+ + 9P9jvPP/lsjt/+3d4v//4d///d/f//vd3f/62tr/99fX//TV1f/y3NP/yr66/7isrP+ypKT/tqio/7ms + rP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjHptJca/ + s+bL0cX/yM/B/8rRwv/L1MT/zdXF/87Xx//P2Mj/0NnI/9DZyf/R2sr/0drK/9Hbyv/R28r/0dvK/9Hb + yv/Q28n/0NvJ/8/ayP/O2sf/zdnG/83Zxf/M2cT/y9jD/8rXwv/J18H/x9bA/8bVvv/L18P/8O3n//Px + 8v/M5fL/rNzy/6nb8f+p2/H/qdvx/6jb8f+o2/D/ptvw/6Xa8P+i2fD/n9jw/5vW8P+X1fH/ktPx/43Q + 8f+IzvH/gszx/33J8v94x/P/csXz/23C8/9owPT/aL/z/53K7f/s3eP//+Hg//7h4P/94N//+93d//rb + 2f/32Nf/9NXV//Pc0//Kvrr/uKys/7KkpP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HH + x//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWp6gg8NnY5Ovn5P/j4tr/2d3R/9PbzP/T28v/09vM/9Tc + zP/U3Mz/1NzM/9PczP/T3Mz/093M/9PdzP/T3cz/0tzL/9Lcy//R3Mr/0NvJ/8/byP/O2sf/zdrG/83Z + xf/M2MT/y9jD/8rXwv/I1sH/x9W+/9ng0f/38u//+fLw//Xw8P/W6PH/tN7x/6na8f+o2/H/qNvx/6fb + 8f+l2vD/pNnw/6HY8P+e1/D/mtbx/5bU8f+R0vH/jNDx/4fN8v+Cy/L/fMny/3fG8/9xxPP/bMLz/3jD + 8v+y0Ov/8d/j//7i4f/+4eH//uHg//3g3//73d3/+drZ//bY1//01dX/8tzT/8q+uv+4rKz/sqSk/7ao + qP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC8 + vR32397j9O7s//Xu7P/y7er/6uji/9/i1//X3s//1t7O/9bezv/V3s7/1d7O/9Xezv/U3s3/1N7N/9Pd + zf/T3cz/0t3L/9Lcy//R3Mr/0NvJ/9DbyP/O2sf/zdrG/83Zxf/M2MT/ytjD/8nXwf/L18P/6uri//nz + 8f/48vD/+fLw//jx8P/m6/D/xOHx/63c8f+n2vH/pdrx/6TZ8f+i2PH/n9fx/5zW8f+Y1fH/ldTx/5DR + 8f+Lz/H/hs3y/4HK8v96yPL/dcbz/3jF8v+YzO//09ro//nh4v/94uH//eHh//7h4f/+4eD//eDf//vd + 3P/52tn/9tfX//PV1f/y3NP/yr66/7isrP+ypKT/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87E + xP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+sPEHPjh4OP18O7/9e/t//Xv7f/28O7/9O/t/+3r + 5f/h5Nr/2eDS/9bez//W3s//1t7P/9Xezv/V3s7/1N7N/9Pdzf/T3cz/093M/9Lcy//R3Mr/0NvJ/8/b + yP/O2sf/zdrG/8zZxf/L2MP/ytfC/9Xdzf/18O3/+fLw//nx7//48vD/+fHv//nw7v/07u//4Onv/8Th + 8P+v3PH/pdnx/6DX8f+d1vH/mtXx/5bU8f+S0/H/jtDy/4nO8v+Ey/L/gsry/4nL8f+h0O//zNnq//Hi + 5v/+5OT//eLi//zh4v/94eH//uDh//7h4P/839//+tzc//jZ2f/119f/89XV//Lc0//Kvrr/uKys/7Kk + pP+2qKj/uays/7uwsP+/s7P/w7e3/8a7u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/yMgb+eLh4/Xw7v/17+3/9vDu//bw7v/28O//9vHv//Xw7v/u7ef/5Obc/9rh0//W3s//1t7P/9be + zv/V3s7/1N3N/9Tezf/T3cz/093M/9Lcy//R3Mr/0NvJ/8/byP/O2sf/zdnG/8zYxP/L2MT/5Ofd//jy + 8P/48vD/+fLw//nx7//58O//+e/u//nw7v/68O7/9u/v/+rr7//Y5e7/xeDv/7fc8P+t2fD/pdfw/6HW + 8P+j1fD/qdXv/7TX7v/K2+v/4uHp//bl5//95uX//eXk//3k4//84uL//OHi//3h4f/94OD//eDg//zf + 3//63Nz/+NnZ//XX1//z1dX/8tzT/8q+uv+4rKz/sqSk/7aoqP+5rKz/u7Cw/7+zs//Dt7f/xru7/8q/ + v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uHj9fDu//bv7f/28O7/9u/t//bw + 7v/18e//9vHv//bx7//18e7/8O7p/+bn3//b4dT/1t7P/9Xezv/V3s7/1N7N/9Tdzf/T3cz/09zL/9Lc + y//R28r/0NvI/8/ax//O2cb/zNjF/9Lcyv/x7ur/+PLw//jy7//48e//+fHv//nw7v/58O//+O/v//nw + 7//68O//+u/t//rt6//47Oz/9evs//Pq6//x6ev/8Ojq//Lm6P/15+j/+ujn//3o5v/96Ob//ebl//3l + 5P/85eX//ePj//3i4f/84uH//eHh//3h4f/94OD//N7e//rb2//32dn/9NbW//LV1f/y3NP/yr66/7is + rP+yo6P/tqio/7msrP+7sLD/v7Oz/8O3t//Gu7v/yr+//87ExP/Rx8f/3NLS//Lg1f/Rs6x/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/8jJG/ni4eP18O7/9u/t//bv7f/28O7/9vDu//bw7v/28e//9fDu//bx7//28u//9vHv//Lv + 6//o6eH/3eLW/9bfz//V3s7/1N7N/9TdzP/T3cz/0tzL/9Hcyv/R28n/0NvI/8/ax//N2cX/3+PX//fx + 7//48vD/9/Hw//jx7//58O//+fHv//nw7//47+//+fDv//nv7v/67uz/+u3r//rt7P/67ev/++zq//vs + 6v/76un/++no//zp5//86Of//Ojm//vn5v/85uX//eXk//3l5P/94+L//eLh//zh4f/94eH//eHh//3g + 4P/73t7/+dra//fY2P/01tb/8tTU//Hc0v/Kvrr/ua2t/7KkpP+2p6j/uays/7uwsP+/s7P/w7e3/8a7 + u//Kv7//zsTE/9HHx//c0tL/8uDV/9GzrH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw7v/27uz/9u/t//bw + 7v/27+3/9vDu//bw7v/28e//9vDv//bx7//28e//9vLv//by7//z8Oz/6urj/97j1//X3s//1N3N/9Pd + zP/T3cz/0tzL/9Hcyv/Q28n/z9rH/9Hbyf/t6+X/+PLw//jx8P/38e//+PDv//jx7//58O7/+fDu//jv + 7v/58O//+e/t//ru7P/67ev/+e3s//rt6//67Ov/++vq//vq6f/66ej/++jn//zo5//86Of/++fm//zm + 5f/85uX//eXk//3j4v/84uL//OLh//zh4f/94OH//eDg//vd3f/42dr/9tfX//PV1f/y1NP/8tzS/8q/ + uv/EuLn/wrS0/7+xsv+9r7D/vLGx/7+zs//Dt7f/xru7/8q/v//OxMT/0cfH/9zS0v/y4NX/0bOsfwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/IyRv54uHj9fDu//bu7P/27+3/9u/t//bw7v/27+3/9vDu//bw7v/28e//9vDv//bx + 7//28e//9vLv//by7//38u//9fDt/+zr5f/g5Nn/1t7P/9PczP/S3Mv/0tzK/9Hbyf/P2sf/2+HT//Xw + 7v/48fD/+PHv//jw7//38e//+PDu//nw7v/57+7/+fDu//jv7v/57uz/+e3r//rt7P/67ez/+e3s//rs + 6//76un/++no//rp6P/76Oj/++jn//vo5//75ub//OXl//zl5f/85OP//OLi//3i4f/94uD//eHf//3h + 3//84N3/+9/a//rf2P/54dj/+OLY//nk2f/0593/yL68/8m9vf/OwcH/0MPD/9HDxP/PwcL/y76+/8i8 + vP/Hvb3/yr+//83ExP/Qx8f/3NLS//Lg1f/Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8jJG/ni4eP18O7/9u7s//bu + 7f/27+3/9u/t//bw7v/27+3/9vDu//bw7v/28e7/9vDu//bx7//28e//9fHv//bx7//28u//9/Lv//Xx + 7v/u7Of/4eXa/9bez//S3Mr/0dvJ/9Hbyf/o6eD/+PHw//jx7//48e7/+PHv//fw7v/48O7/+O/t//nw + 7v/57+7/+O7s//nt6//57uz/+u3s//nt7P/57ez/+uzr//rq6f/66en/+uno//vo6P/75+f//Ofm//zm + 5P/85uP//ebh//3l3//+5t7//ujf//7p3///6+H//+/l//7x5//97ub/+uzl//jr5//05uP/797c/+LS + 0f+zoqL/v7Gx/8q8vP/RxMT/1snJ/9rMzf/dz8//39DQ/9zPz//ZzMz/1crK/9PJyf/c0tL/8uDV/9Gz + rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw7v/27+z/9u/t//bv7P/27+3/9u/t//bw7v/27+3/9vDu//bw + 7v/28e7/9vHv//bw7//28e//9fHv//bx7v/28e//9/Hv//fy8P/28e//7+3o/+Pl3P/X3s//2N/Q//Lu + 6v/38e//+PDu//jx7//48O7/9/Du//jv7f/48O7/+O/u//ju7f/47uz/+O7s//nt7P/57Oz/+uzr//rs + 6v/66uj/++nm//zp5P/86eP//eri//7s4//+7OP//+7k///x6P/+8ur//e/o//vu6P/57On/9eXj/+7b + 2v/p1dT/48zM/93Cwv/Xurv/07a2/9Gys//RsbH/za2t/6SIiP+diIj/q5eX/7impv/Gtrb/08XF/93O + zv/j1NT/59jY/+rb2//s3d3/6tzc/+ve3v/z4db/0bOsfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uHj9fDu//bv + 7P/27+3/9u/t//bv7P/27+3/9u/t//bw7v/28O3/9vDu//bw7v/28O7/9vHv//bx7//28O//9fDv//bx + 7v/28e//9/Hv//fx7//38e//9vHu//Ht6f/t6+X/9vDu//fx7//38O//9/Du//fw7v/37+7/+O/u//jv + 7f/57uz/+e3q//rt6f/77ef//O3m//3u5f/97+b//u/m///w5///8+r//vPr//3w6f/67un/9+vo//Hi + 4P/p19b/4s7O/9zFxf/Vurv/zrKz/8irq//Gpqb/xaSk/8WjpP/Eo6T/xaWl/8enp//IqKj/yqqq/8ur + q//Orq7/tJaW/5J6e/+chob/o42N/6qUlP+ynJ3/v6ys/828vP/dzc3/6NnZ/+/g4P/z5OT/+Ojo//Xi + 1//Rs6x/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/8jJG/ni4eP18O7/9u7s//bv7f/27+3/9vDt//bv7P/27+3/9u/t//bw + 7v/27+3/9vDu//bw7v/28O7/9vDu//bx7//18e//9vHv//bx7//28e//9vHv//bx7//28e//9/Hv//fx + 7//38O7/9/Dt//jv6//57+r/+u/p//vw6P/88Of//fDn//7w5///8+n///Xs//707P/88Or/+O7p//Xq + 5//u3tz/5NLR/9zJyf/Uvr7/zLKy/8SoqP+9n6D/upub/7mZmf+4l5f/t5aW/7iYmP+6mpr/u5yc/72d + nf++n5//wKCg/8Khof/Eo6P/xaSl/8ampv/Hp6f/yamp/8qqqv/EpaX/mH1+/5V+f/+giYn/qZGR/7GY + mP+3np7/uaGh/72mpv/FsbH/08HB/+XU1P/z4+P/9ePY/9G0rH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yMkb+eLh4/Xw + 7v/27uz/9u7t//bv7f/27+3/9vDt//bv7P/27+3/9e/t//Xw7v/18O7/9fDu//Xw7v/18O7/9fDu//Xw + 7v/28O7/9vDu//fw7f/48Ov/+fDr//rw6f/78Oj//PHn//3y6P/+8+n///Xr///27v/+9O3/+/Hr//ft + 6f/z5+X/6drY/97Nzf/VwcL/zba2/8Kpqf+5np7/sZSU/66Pj/+sjI3/q4uL/6uKiv+sjIz/rY2N/6+P + j/+wkJH/spKT/7OUlP+1lZX/t5aW/7iXl/+5mZn/upub/7ucnP+9np7/vp+f/8CgoP/BoaH/w6Oj/8Wk + pP/Gpqb/x6en/8ioqP+ylpb/o4yM/52Fhf+kjIz/rpaW/7eenv/Ap6f/x62t/82xsf/Kr7D/yLCw/8u1 + tv/Tvrj/waaifwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IyRv54uDj9e/t//Xu7P/17+3/9e/t//Xv7f/17+3/9fDt//Xv + 7f/17+3/9u/t//bv7P/27+v/9+/q//jv6f/57+j/+/Dm//zx5v/98uf//vPp///16///9+7//fTt//rw + 6//27en/8ebj/+XX1v/Zycj/zru7/8Otrf+5n6D/rpOU/6aJif+ihIT/oIGB/55+fv+efn7/n4CA/6GC + gv+ig4P/o4WF/6WGhv+niIj/qYmJ/6qLi/+sjIz/rY2N/66Ojv+vj5D/sJGR/7KSk/+zk5T/tZWV/7eW + lv+4mJj/uZmZ/7qbm/+8nJz/vZ6e/76fn//AoKD/wqGi/8Oio//FpKT/xaSk/8Smpv/Ntrb/wKys/5+H + h/+qkpL/s5qa/7yjo//Fq6v/z7Oz/9q8vf/hw8P/5MbG/9m9vf+3np6ZQDU1AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8nJG/ni + 4OP17+3/9e7s//bu7P/27uv/9u7q//fu6f/47uj/+u/n//vw5v/88Ob//fHn//7z6f//9uv//vXs//3x + 6v/47Of/9Ojl/+7g3v/h0dD/08LC/8e0tP+7paX/sJeX/6SJiv+afn7/l3l6/5R2dv+Sc3P/knJy/5N0 + dP+VdXb/lnd4/5h5ef+Zenv/m3x8/5x9ff+efn//n3+A/6GBgv+igoP/o4SE/6SFhf+lhob/p4eH/6iJ + if+qior/q4yM/62Njf+ujo7/r4+Q/7CQkf+ykpP/tJSU/7WVlf+3lpb/t5aW/7aWlv+1lZX/tJWW/7OV + lf+zlZb/tJeX/7OYmP+3nJz/vqOk/8ivr//Turr/r5WV/6SMjP+wl5f/uJ+f/8GoqP/Lr6//1bi4/97B + wf/pysr/89PT/9O2tt+Tfn4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ycob/OPh4/rv6P/77+X//O/m//3x5//+8+n///Xs//71 + 7f/68Or/9evn//Tp5v/t393/2cnI/8e0tP+2oqL/r5eY/6WLjP+Zfn7/j3N0/4tubv+Iamr/hmdn/4Zn + aP+HaWn/iWtr/4psbP+MbW7/jW9w/49xcf+RcnP/knN0/5N0dP+UdXX/lnZ3/5d4eP+YeXn/mXt7/5p8 + fP+cfX3/nn5+/59/gP+ggYH/oYKD/6OEhP+khYX/pYaG/6aHh/+oiIj/qYqK/6mJif+oiYn/p4iI/6eI + iP+niIn/qIuM/6mNjv+rkJD/s5mZ/7+lpv/Fra7/zLS1/9nAwP/my8v/7tLS//PV1f/41tb//NfX///X + 1//iuLj/po2N/6uTk/+1nJz/vqSk/8esrP/QtLT/272+/+TGxv/uz8//6crK/rKamoMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPfD + xBv43tvj9+zl//Tp5v/16OX/7t7d/9zMy//UwcH/0ry8/8Goqf+wlZX/qYyM/6KEhP+WeXn/jW5v/3ZZ + Wv93WVn/fV5e/35gYP9/YmL/gWRk/4JlZf+EZmb/hWdn/4ZoaP+IaWr/iWtr/4psbP+LbW3/jG5u/45v + cP+PcXH/kXJy/5Jzc/+TdHT/lHV1/5Z3d/+XeHj/mHl6/5l7e/+afHz/nH19/5x8fP+bfHz/mnt8/5p7 + e/+afX3/nYCA/52Cgv+fhYX/qI+P/7Wdnf+/p6j/xK+w/9G6u//gyMn/69LT//HX1//22dn/+9zc//7d + 3f//2tr//9bW///U1P//0tL//9DQ///Ozv//y8v//8vL//zJyf/EoaH/pY6O/7GYmP+6oKD/w6mp/8yx + sf/WuLn/4MLC/+nLy//y09P/z7Oz1Y56eiEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwqGhG8muruPFrq3/oouL/5J4ef+VeXr/nX9//6SF + hf+oiYn/qYmJ/6aHh/+ig4P/nX5+/5h6ev+UdXb/e15e/3ZaWv98Xl7/fV9f/35gYP9/YWH/gGJj/4Fk + ZP+CZWX/g2Zm/4VnZ/+GaGj/iGlq/4lra/+KbGz/i21t/4xubv+Nb2//jnBx/49xcf+PcHD/jm9v/41v + b/+OcHD/kXR0/5N4eP+Uenr/m4KC/6uTk/+3oqL/vamp/8i1tf/axsb/59LS/+/Y2P/029v/+t/f//7h + 4f//39///9zc///a2v//2Nj//9bW///U1P//09P//9PT///S0v//0ND//9DQ///Q0P//z8///8/P///N + zf//zMz//8zM/+2+vv+tkpL/rJSU/7adnf+/paX/yK2t/9K1tf/cvr7/5cfH//DQ0P/nyMj7rJSUcQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC6m5sbw6en48itrf/Apqb/tZyc/5+Fhv+OdXb/hWtr/4xwcP+XeXn/ooSE/6WGhv+jhIT/noB//5p7 + e/99YWH/dFdY/3lcXf96XV3/fF5e/31fX/9+YGD/f2Fh/4BiYv+AY2P/gWRk/4JlZf+CZGT/gmNk/4Fj + ZP+BZGT/hWlp/4lubv+KcHD/jnZ2/6CJiv+vmpr/tqOj/8Cvr//SwcH/4tDQ/+vZ2f/w3d3/9+Li//3l + 5f//5ub//+Tk///g4P//3t7//9zc///a2v//2tr//9nZ///Y2P//19f//9bW///W1v//1dX//9TU///U + 1P//1NT//9TU///T0///0dH//9DQ///Q0P//z8///87O///Nzf//zMz//szM/9Grq/+mj4//spmZ/7ui + ov/Eqqr/zrKy/9i6u//hw8T/68zM//PT0//Lr6/GhnNzFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqbmxvFqanjzbKy/82ysv/NsrL/zbKy/8et + rf+8o6P/qJCQ/5Z+fv+Gbm7/h21t/5B0c/+Xenr/nH19/4BjY/9xVVX/dVhZ/3ZZWv92Wlr/dllZ/3ZY + WP92WFj/el1d/39jY/+AZmf/g2tr/5R+fv+lkZH/sJ6e/7enp//Jurr/3M7O/+fZ2f/r3d3/8+Pj//nn + 5//86en//efn//3l5f/94+P//eHh//3g4P/939///d7e//7e3v/+3t7//t7e///c3P//29v//9ra///a + 2v//2tr//9ra///Z2f//19f//9bW///W1v//1dX//9TU///U1P//1NT//9TU///S0v//0dH//9HR///Q + 0P//z8///87O///MzP//zMz/9sXF/7eYmP+slJT/t56e/8Cnp//Jrq7/1Le3/92/wP/nyMj/8tLS/+PF + xfeokZFdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAuZqaG8irq+PRtbb/0LW1/9C1tf/PtLT/z7S0/86zs//NsrL/yrCw/7+mpv+wmZn/moOD/4x2 + dv+Damr/dltb/3JWVv93XV3/eWBg/4hwcf+ch4f/qJaW/6+env/BsbH/1sfH/+LV1f/p29v/7+Hh//Xm + 5v/56en/++np//rn5//55eX/+OTk//jj4//44uL/+OHh//jh4f/54eH/+eHh//rh4f/64OD/++Dg//zf + 3//839///N/f//3e3v/+39///t7e///d3f//29v//9ra///a2v//2tr//9ra///Z2f//19f//9bW///W + 1v//1dX//9XV///U1P//1NT//9PT///S0v//0ND//9DQ///Pz///z8///87O///MzP//zMz/4LW1/6qR + kf+zmpr/vKOj/8Wrq//Ps7P/2by8/+PExf/tzc3/8tLS/8Opqbt5Z2cQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+oqEYxaip2dK2tv/Vubn/1Li5/9O4 + uP/St7f/0ba2/8+0tP/Os7L/zLGx/8qvsP/Hra7/wKen/7KcnP+fhob8u6Oj/uHR0f/n2Nj/7d7e//Tk + 5P/46Oj/+unp//nn5//45ub/9+Xl//fk5P/24+P/9uPj//bi4v/14uL/9eLi//bi4v/24uL/9uLi//fi + 4v/34uL/9+Li//ji4v/44eH/+eLi//ni4v/64eH/++Dg//zg4P/839///N/f//3e3v/+39///t/f///e + 3v//29v//9ra///a2v//2tr//9ra///Y2P//19f//9fX///W1v//1NT//9TU///U1P//1NT//9PT///R + 0f//0dH//9DQ///Pz///zs7//83N///MzP/8ycn/xKGh/6yUlP+5oKD/wqio/8uvr//VuLj/3sHB/+jJ + yf/z09P/4cPD86ONjU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMqysQGzlpZdxqmp8ti8vP/YvLz/17y7/9a7uv/Vubn/07i4/9G2tv/PtLT/zLKy/8qv + r//Ira7/xKqq/7ebm+fXvb33+uXl//jj4//34+P/9+Pj//bi4v/14uL/9eLi//Tj4//04+P/9OPj//Pj + 4//z4+P/8+Pj//Tk5P/04+P/9OPj//Xj4//14uL/9eLi//bj4//24uL/9+Li//fi4v/44uL/+OHh//ni + 4v/64eH/++Hh//vg4P/839///N/f//3f3//+39///t/f///e3v//29v//9ra///a2v//2tr//9nZ///Y + 2P//1tb//9bW///V1f//1NT//9TU///U1P//1NT//9LS///R0f//0ND//8/P///Pz///zs7//8zM///M + zP/svr7/r5OT/7KZmf+9pKT/xqys/9C0tP/bvb7/5MbG/+7Pz//x0dH/wKamqGdXVwkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALecnBvGqani276+/9zA + wP/bv7//2r6+/9i8vP/Xu7v/1bm5/9K3t//PtLT/zLKy/8uxsf/LsbD/vqGhvti8vOv24uL/9uPj//bj + 4//14uL/9ePj//Tj4//z5OT/8+Tk//Pk5P/y5eX/8uXl//Ll5f/y5eX/8uXl//Ll5f/z5OT/8+Tk//Tj + 4//04+P/9eLi//Xi4v/24+P/9+Li//fi4v/34uL/+OHh//ni4v/54uL/+uHh//vg4P/839///N/f//3e + 3v/+39///t/f///d3f//29v//9ra///a2v//2tr//9nZ///X1///19f//9bW///V1f//1dX//9TU///U + 1P//09P//9HR///R0f//0ND//8/P///Ozv//zc3//8zM//7Ly//ZsrL/yLKy/8exsf/Hr6//zbKy/9a4 + uf/gwsL/6svL//TU1P/bvr7snIeHPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAvaKhG8qureLfwsL/4MTE/9/Dw//ewcH/3cDA/9q+vv/YvLz/1bq5/9O3 + t//PtLT/0LW1/8+1tfC8oKBz2L6+4/Tf3//14+P/9eLi//Tj4//z5OT/8+Tk//Ll5f/x5eX/8OXl//Dl + 5f/w5eX/8OXl//Dl5f/w5eX/8OXl//Hl5f/x5eX/8uXl//Pk5P/z5OT/9OPj//Xi4v/24+P/9+Pj//fi + 4v/34uL/+OHh//ni4v/64uL/+uHh//zf3//839///N/f//3e3v/+39///97e///b2///2tr//9ra///a + 2v//2tr//9jY///X1///1tb//9XV///U1P//1NT//9TU///T0///0tL//9DQ///Q0P//z8///8/P///N + zf//zMz//8vL//3Kyv/7zs7/+NTU//DS0v/oz8//5MzM/+LIyf3ozMz+8dHR//DQ0P+6oaGZUEJCBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+o6IbzLCw4uPF + xf/kyMf/48bG/+LFxf/gw8P/3sHB/9u/v//Yvbz/1bq6/9K3t//XvLz/z7S04LmdnT3Xvb3Z8d3d//Xj + 4//04+P/8+Tk//Ll5f/x5eX/8OXl/+/m5v/v5eX/7+Xl/+/m5v/u5ub/7+bm/+/l5f/v5eX/7+bm//Dm + 5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xi4v/24+P/9uPj//fi4v/34uL/+OHh//ni4v/64eH/++Dg//zf + 3//839///N7e//7f3///39///93d///b2///2tr//9ra///a2v//2dn//9fX///X1///1tb//9TU///U + 1P//1NT//9TU///S0v//0dH//9HR///Pz///zs7//87O///MzP//zMz//8vL///Jyf//ycn//8rK///N + zf/9z8//68vM6+3f35r14+O9+ePj59jBwdqsmpovAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+kpBvPsrLi58nJ/+jLy//nysr/5cjI/+PGxv/hxMT/3sLC/9u/ + v//YvLz/1Lm5/93Dwv/LsLCxw6mpHtO5ucbu29v/9OTk//Pk5P/y5eX/8OXl/+/m5v/v5ub/7+bm/+7m + 5v/u5ub/7efn/+3n5//t5+f/7ufn/+7m5v/u5ub/7+Xl/+/m5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xi + 4v/24+P/9+Li//fi4v/44eH/+eLi//ri4v/74OD//N/f//zf3//83t7//d/f//7f3///3t7//9vb///a + 2v//2tr//9nZ///Z2f//19f//9fX///W1v//1dX//9TU///U1P//1NT//9PT///R0f//0dH//9DQ///O + zv//zs7//8zM///MzP//y8v//8rK///Kyv//ycn//8jI///Jyf/kt7fjvqOjHv///w3/+voq8ejoV+TZ + 2SsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwaWlG9G0 + tOPqzMz/7M7O/+vNzf/py8v/58nJ/+THx//hxMT/3sLC/9u+vv/YvLz/4MXF/8CkpIfx4OAJzrOzrOzY + 2P/05OT/8uXl//Hl5f/v5ub/7+bm/+/l5f/u5ub/7efn/+zo6P/s6Oj/6+np/+vp6f/s6Oj/7efn/+3n + 5//u5ub/7+Xl/+/m5v/w5eX/8uXl//Pk5P/04+P/9eLi//bj4//34+P/9+Li//fh4f/44uL/+uLi//rh + 4f/74OD//N/f//zf3//93t7//t/f///e3v//3Nz//9ra///a2v//2tr//9nZ///Y2P//1tb//9bW///V + 1f//1dX//9TU///U1P//09P//9HR///R0f//z8///87O///Ozv//zMz//8vL///Ly///ysr//8rK///J + yf//ycn//8nJ/+W4uOO5nJwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCpqYb07a24+7Pz//w0dH/7tDQ/+zOzv/qzMz/58nK/+TH + x//hxMT/3cDB/9zBwf/ew8P1t5ycUgAAAADNsrKU6dTU//Pl5f/y5eX/8eXl/+/m5v/v5ub/7+Xl/+7n + 5//t6Oj/7Ojo/+rq6v/q6ur/6urq/+vp6f/s6Oj/7efn/+7m5v/v5eX/7+bm//Dm5v/y5eX/8uXl//Pk + 5P/04uL/9ePj//fj4//34uL/9+Hh//ni4v/64uL/+uHh//vg4P/839///N/f//3e3v/+39///97e///c + 3P//2tr//9ra///a2v//2tr//9jY///W1v//1tb//9XV///V1f//1NT//9PT///T0///0dH//9HR///Q + 0P//z8///8/P///MzP//zMz//8zM///Kyv//ysr//8rK//7Jyf/+yMj/47a247mcnBsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMOn + pxvVuLfj8dLS//PU1P/x09P/79HR/+3Ozv/qzMz/5snJ/+PGxv/fwsL/4cbG/9a7u+WojIwoAAAAAM+0 + tH7m0ND/9OXl//Ll5f/x5eX/7+bm/+/m5v/v5eX/7ubm/+3n5//s6Oj/6+np/+vp6f/r6en/7Ojo/+zo + 6P/t5+f/7ubm/+/l5f/v5ub/8OXl//Ll5f/z5OT/9OPj//Xi4v/24+P/9+Pj//fi4v/34eH/+OLi//ri + 4v/64eH/++Dg//zf3//839///d7e//7f3///3t7//9zc///a2v//2tr//9ra///Z2f//2Nj//9fX///X + 1///1dX//9XV///V1f//1NT//9TU///S0v/+0dH//c/P//zMzP/6y8v/+cjI//bFxf/xwsL/7b29/+i6 + uv/jtrb/37Oz/9uxsf/NqKjiupycGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw6eoG9a5ueP01dT/9tfX//TV1f/x09P/79DQ/+zN + zf/oysr/5cfH/+DExP/lycn/zrOzvJV5eQ8AAAAA07i4b+PMzP715OT/8+Xl//Ll5f/w5eX/7+bm/+/m + 5v/v5eX/7ubm/+3n5//t5+f/7Ojo/+3n5//t5+f/7efn/+7m5v/v5eX/7+bm/+/m5v/x5eX/8uXl//Pk + 5P/04+P/9eLi//bj4//34uL/9+Li//fh4f/54uL/+eLi//vh4f/84OD//N/f//3f3//939///t/f///f + 3///3Nz//9vb///b2///2tr//tnZ//3W1v/71NT/+dLS//jPz//1zMz/8MjI/+vDw//lv7//4bq6/964 + uP/atLT/1bGx/9Gurv/OrKz/zKys/8usrP/Mrq7/zrCx/9Czs//QtLT91be3/Mqqq96+nZ0bAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADEqKgb2Lu74/fY2P/52dn/9tfX//PV1P/w0tL/7c/P/+rMzP/mycj/4sbG/+TJyf/ApKSNAAAAAAAA + AADVurpX4MjI9vXk5P/z5OT/8uXl//Ll5f/w5eX/8Obm/+/m5v/v5eX/7+bm/+7m5v/u5ub/7ubm/+7m + 5v/v5eX/7+Xl/+/m5v/w5eX/8eXl//Ll5f/z5OT/9OPj//Xj4//24+P/9+Pj//fj4//44uL/+OLi//ri + 4v/74+P//OHh//vf3//63d3/+dra//jZ2f/319f/89LS/+7Ly//oxsb/5MHB/+C+vv/du7v/2be3/9Sz + s//QsLD/zq6u/82urv/Nr6//z7Ky/9Gzs//Stbb/0re3/9O4uP/Wu7v/2r+//93Cwv/ew8P/3sPE/97D + w//gxMT/4sXF/+DExP/Os7P/sJaWs72cnA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMOoqBvVuLjj8tXV//jb2//63Nz/99nZ//PV + 1v/v0dL/683N/+fJyf/lyMj/4cbG+LecnFwAAAAAAAAAANO2tjncwsLs9ePj//Tj4//z5OT/8+Tk//Ll + 5f/x5eX/8OXl//Dl5f/w5eX/7+bm/+/m5v/w5ub/8Obm//Dm5v/w5ub/8ebm//Pm5v/z5ub/9OXl//Xk + 5P/04uL/8+Dg//Ld3f/x3Nz/8NnZ/+zV1f/oz8//48nJ/9/ExP/dwMD/2r29/9e5uf/TtbX/0LKy/86x + sf/OsbH/0bOz/9K0tf/Ttrb/07e3/9O4uP/Wu7v/27+//97Cwv/fxMT/38TE/9/ExP/gxMT/4sbG/+TH + x//kyMj/5MfH/+PGxv/jxsb/5MfH/+XIyP/mycn/5srK/+bKyv/kyMj/0ba2/qiRkb+IdHQrAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAvqCgDNC7u5vWwMDo2cHB9d7ExP7jx8f/68/P/+/S0v/w09P/7tHR/+zQ0P/av7/nrJCQLgAA + AAAAAAAAxKWlINm/v+T14eH/9uPj//Xj4//14+P/9OTk//Pl5f/z5eX/8+bm//Pm5v/y5ub/8OTk/+7i + 4v/t39//7N7e/+vb2//n1tb/49DQ/9/Kyv/cxcX/2sLC/9i/v//Vurr/0re3/8+0tP/OsrL/0bS1/9O2 + tv/Tt7f/1Li4/9S5uf/Xu7v/3L+//97Cwv/gxMT/38TE/+DExP/hxcX/48bG/+TIyP/lyMj/5MjI/+TH + x//kx8f/5cfI/+XIyP/mycn/5srK/+bLy//mzMz/583N/+jPz//p0dH/6dLS/+jT0//n09P/5tLS/+bS + 0v/m09P94MzM88aurtmmj4+HjHh4HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39Cu/p6Snq4+NU4dXVfNnH + x6TYxcXQ07296ta8vPfZv7/+3sPC/8uwsMCWenoQAAAAAAAAAADHqakY17y82vDa2v/w3Nz/79vb/+/a + 2v/s2Nj/6NTU/+POzv/eysr/28bG/9rDw//XwMD/1Ly8/9G4uP/QtbX/0bW2/9K3t//UuLn/1Lm5/9W5 + uf/Xurv/27+//97Bwf/fxMT/38TE/+DExP/hxcX/48bG/+THx//lyMj/5MfH/+THx//kx8f/5cjI/+XI + yP/mycn/5srK/+bLy//mzMz/583N/+jPz//o0dH/6dLS/+nT0//o09P/59LS/+bS0v/l0tL/5dLS/uLP + z/zdycn218HB7tO9veXWv7/f2cHB1tm/v8fWubmwzrCwk8avr3K0oKBMloGBH2pZWQQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////B/v6+hbq4+Mx59/fWtvNzYbPu7ukuqGhWIJf + XwIAAAAAAAAAANzAwBLPsbHFyrCw/8qwsP3MsbL+0LW1/9O4uP/Vubn/1ru7/9a7u//Xu7v/2r6+/93A + wP/ew8P/38PE/+DExP/hxMX/48bG/+THx//kx8j/5MfH/+THx//kx8f/5cjI/+XJyf/mysr/5srK/+bL + y//nzMz/583N/+jPz//p0dH/6dLS/+nT0//o09P/6NPT/+fT0//n09P/6NTU/ufS0vvlz8/14srK7ODH + x+Tgx8fd4MbG0t7Dw8PZu7uu0LCwj8mrq37Jq6t2yampasSkpFa+m5s+rIaGIrGJiRq8lZUXxp2dEsyi + ogvQoqICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wb///8BAAAAAAAAAAAAAAAA////As+urpPZu7v93sLC+eDD + xP3hxcX/4sbG/+THx//kx8f/5MfH/+THx//kx8f/5cjI/+XJyf/mycn/5srK/+bLy//mzMz/583N/+jP + z//p0dH/6dPT/+nT0//p09P/59PT/+bS0v/m0tL/5tLS/uXQ0PnizMzz38fH6t3FxeHexcXZ38XFzt3C + wrzZvLym1LW1jNS0tHzWtrZy2La2ZteyslLQqKg3yZ6eIcmfnxnLoaEWyqKiEcigoAqmeXkBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA0a6uYty7u/rlycn/5srK/+bLy//mzMz/583N/+jPz//p0dH/6dPT/+nT + 0//p09P/6dPT/+nU1P/p1dX/6dXV/enT0/jnz8/x48vL5+HIyN7hyMjW4cfHyd3BwbnVt7egzK6uiseq + qnnIq6tuy6urX8mnp0zBnJwzwJeXIMKZmRjFnJwVxJqaD72RkQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiwcEV3ru7rOXF + xfnp0tL/6dXV/OjS0vfkzc3w4cnJ5d/Gxtzgx8fT4cfHxuDDw7Pdvr6d2rq6h9m5uXbZuLhq2ba2W9Sv + r0bNpaUxyZ+fIMienhfFnJwTwJaWDp1tbQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpxcUV4r6+W9m3t3TVtLRp0rCwWsqlpUTDnZ0xwJeXIMGY + mBbCmJgSvZGRDKhzcwWNSkoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////////4///z//////AAAAAAAAAAAD//8f/////wAAAAAAAAAAAP/gP/////8A + AAAAAAAAAAA+AAH/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAT////8AAAAAAAAAAAAAAAAP + ////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAA + AAAAAD///wAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAAP//wAAAAAA + AAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAH/8A + AAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAA + AAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAA + AAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAA + AAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAP//8A + AAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB + ////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAA + AAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAA + AAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8A + AAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB + ////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAA + AAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAA + AAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///// + AAAAAAAAAAAAAAAB/////wAAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAB + /////wAAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAB/////4ACAAAAAAAA + AAAAAf/////w/gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAA + AAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///// + //4AAAAAAAAAAAAB///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB + ///////+AAAAAAAAAAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAB///////+AAAAAAAA + AAAAAf///////gAAAAAAAAAAAAH///////4AAAAAAAAAAAAA///////+AAAAAAAAAAAAAP///////gAA + AAAAAAAAAAB///////4AAAAAAAAAAAAAf//////+AAAAAAAAAAAAAH///////gAAAAAAAAAAAAA///// + //4AAAAAAAAAAAAAP//////+AAAAAAAAAAAAAB///////gAAAAAAAAAAAAAf//////4AAAAAAAAAAAAA + D///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAA + AAAAAAf//////wAAAAAAAAAAAAB///////8AAgAAAAAAAAAAf///////AAIAAAAAAAAAAH///////wAC + AAAAAAAAAAB///////8ABgAAAAAAAAAAf///////AAYAAAAAAAAAAP///////wAGAAAAAAAAAAH///// + //+ABgAAAAAAAAAD////////+AYAAAAAAAAAP/////////+OAAAAAAAB/////////////wAAAAAf//// + //////////8AAAD/////////////////gAP///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////// + + + \ No newline at end of file diff --git a/src/dotNet/Portable/NAudio.dll b/src/dotNet/Portable/NAudio.dll new file mode 100644 index 0000000..c18ba32 Binary files /dev/null and b/src/dotNet/Portable/NAudio.dll differ diff --git a/src/dotNet/Portable/Settings.Designer.cs b/src/dotNet/Portable/Settings.Designer.cs new file mode 100644 index 0000000..2ba451a --- /dev/null +++ b/src/dotNet/Portable/Settings.Designer.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace DesktopPet.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Images { + get { + return ((string)(this["Images"])); + } + set { + this["Images"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Icon { + get { + return ((string)(this["Icon"])); + } + set { + this["Icon"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string xml { + get { + return ((string)(this["xml"])); + } + set { + this["xml"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0.3")] + public float Volume { + get { + return ((float)(this["Volume"])); + } + set { + this["Volume"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool WinForeground { + get { + return ((bool)(this["WinForeground"])); + } + set { + this["WinForeground"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1")] + public int AutostartPets { + get { + return ((int)(this["AutostartPets"])); + } + set { + this["AutostartPets"] = value; + } + } + } +} diff --git a/src/dotNet/Portable/Settings.settings b/src/dotNet/Portable/Settings.settings new file mode 100644 index 0000000..1d81876 --- /dev/null +++ b/src/dotNet/Portable/Settings.settings @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + 0.3 + + + False + + + 1 + + + \ No newline at end of file diff --git a/src/dotNet/ProcessIcon.cs b/src/dotNet/ProcessIcon.cs index a115cb9..7415979 100644 --- a/src/dotNet/ProcessIcon.cs +++ b/src/dotNet/ProcessIcon.cs @@ -65,7 +65,17 @@ public void SetIcon(System.IO.MemoryStream icon, string petName, string aboutAut public void Dispose() { // When the application closes, this will remove the icon from the system tray immediately. - ni.Dispose(); + if (ni != null) + { + if (ni.Icon != null) + { + ni.Icon.Dispose(); + ni.Icon = null; + } + ni.Visible = false; + ni.Dispose(); + ni = null; + } } /// diff --git a/src/dotNet/Program.cs b/src/dotNet/Program.cs index d7defe7..947306c 100644 --- a/src/dotNet/Program.cs +++ b/src/dotNet/Program.cs @@ -1,7 +1,9 @@ using System; +using System.IO; using System.Reflection; using System.Threading; using System.Windows.Forms; +using System.Xml.Serialization; namespace DesktopPet { @@ -15,13 +17,156 @@ class Program /// public static StartUp Mainthread; - public static LocalData.LocalData MyData; - static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { return EmbeddedAssembly.Get(args.Name); } +#if PORTABLE + /// + /// Mutual Exclusion, to allow only 1 instance of this application. + /// + /// + /// Mutex can be made static so that GC doesn't recycle same effect with GC.KeepAlive(mutex) at the end of main + /// + static Mutex mutex = new Mutex(false, "eSheep_Running"); + + /// + /// Second Mutual Exclusion, to allow 2 instances of this application. + /// + static Mutex mutex2 = new Mutex(false, "eSheep_Running2"); + + /// + /// Argument: load local animation XML. + /// + public static string ArgumentLocalXML = ""; + + /// + /// Argument: load animation XML from web. + /// + public static string ArgumentWebXML = ""; + + /// + /// Argument: open the installer when application starts. + /// + public static string ArgumentInstall = ""; + + public static LocalData MyData = new LocalData(); + + /// + /// Open the option dialog, to show some options like reset XML animation or load animation from the webpage. + /// + public static void OpenOptionDialog() + { + FormOptions formoptions = new FormOptions(); + switch (formoptions.ShowDialog()) + { + case DialogResult.Retry: + StartUp.AddDebugInfo(StartUp.DEBUG_TYPE.warning, "restoring default XML"); + + MyData.SetIcon(""); + MyData.SetImages(""); + MyData.SetXml("",""); + break; + } + } + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + int iMutexIndex = 0; + + string resource1 = "DesktopPet.Portable.NAudio.dll"; + EmbeddedAssembly.Load(resource1, "NAudio.dll"); + + AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); + + Application.EnableVisualStyles(); + // if you like to wait a few seconds in case that the instance is just + // shutting down + try + { + if (!mutex.WaitOne(TimeSpan.FromSeconds(1), false)) + { + iMutexIndex = 1; + try + { + if (!mutex2.WaitOne(TimeSpan.FromSeconds(1), false)) + { + MessageBox.Show("Application is already running! Only 2 instances are allowed.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + catch (Exception) + { + + } + } + } + catch (Exception ex) + { + MessageBox.Show("Can't execute application: " + ex.Message); + return; + } + + // Check and parse the arguments + string SearchStringLocalXml = "localxml="; + string SearchStringWebXml = "webxml="; + string SearchStringInstall = "install="; + foreach (string s in args) + { + if (s.IndexOf(SearchStringLocalXml) >= 0) + { + ArgumentLocalXML = s.Substring(s.IndexOf(SearchStringLocalXml) + SearchStringLocalXml.Length); + if (ArgumentLocalXML.IndexOf(" ") >= 0) + { + ArgumentLocalXML = ArgumentLocalXML.Substring(0, ArgumentLocalXML.IndexOf(" ")); + } + } + else if (s.IndexOf(SearchStringWebXml) >= 0) + { + ArgumentWebXML = s.Substring(s.IndexOf(SearchStringWebXml) + SearchStringWebXml.Length); + if (ArgumentWebXML.IndexOf(" ") >= 0) + { + ArgumentWebXML = ArgumentWebXML.Substring(0, ArgumentWebXML.IndexOf(" ")); + } + } + else if (s.IndexOf(SearchStringInstall) >= 0) + { + ArgumentInstall = s.Substring(s.IndexOf(SearchStringInstall) + SearchStringInstall.Length); + if (ArgumentInstall.IndexOf(" ") >= 0) + { + ArgumentInstall = ArgumentInstall.Substring(0, ArgumentInstall.IndexOf(" ")); + } + } + } + + Application.SetCompatibleTextRenderingDefault(false); + + // Show the system tray icon. + using (ProcessIcon pi = new ProcessIcon()) + { + pi.Display(); + + Mainthread = new StartUp(pi); + + // Make sure the application runs! + Application.Run(); + } + + if (iMutexIndex == 0) + mutex.ReleaseMutex(); + else if (iMutexIndex == 1) + mutex2.ReleaseMutex(); + } + +#else + + public static LocalData.LocalData MyData; + /// /// The main entry point for the application. /// @@ -50,5 +195,17 @@ static void Main(string[] args) Application.Run(); } } +#endif + + /// + /// Check if application is started from the installation path. + /// + /// true if the executed application is installed. + public static bool IsApplicationInstalled() + { + string appPath = Application.StartupPath; + string installPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DesktopPet"); + return (string.Compare(appPath, installPath) == 0); + } } }