Initial commit

This commit is contained in:
Ray 2026-06-27 15:39:05 +01:00
commit f7316622ca
19 changed files with 1934 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
bin
obj
packages
*~
/.github
/.vs

3
SuzuMagnifier.slnx Normal file
View File

@ -0,0 +1,3 @@
<Solution>
<Project Path="source/SuzuMagnifier.csproj" />
</Solution>

11
build.bat Normal file
View File

@ -0,0 +1,11 @@
rmdir /s /q "bin\"
rmdir /s /q "source\bin\"
rmdir /s /q "source\obj\"
dotnet restore SuzuMagnifier.slnx
dotnet publish SuzuMagnifier.slnx -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="..\bin\"
rmdir /s /q "source\bin\"
rmdir /s /q "source\obj\"
REM PAUSE

BIN
icon/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

80
icon/icon-1.svg Normal file
View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="lucide lucide-screen-share-icon lucide-screen-share"
version="1.1"
id="svg12"
sodipodi:docname="icon-1.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
inkscape:export-filename="N:\D\screen-share.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
shape-rendering="crispEdges"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="true"
showgrid="false"
inkscape:zoom="4.3333333"
inkscape:cx="60.115386"
inkscape:cy="66.576924"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg12"
inkscape:lockguides="false" />
<g
id="g3966"
inkscape:export-filename="N:\D\icon-128.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
transform="scale(5.3245191)">
<rect
width="23.039999"
height="23.040001"
x="0.48000002"
y="0.48000002"
rx="2.3039999"
id="rect2-3"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.96;stroke-miterlimit:302.4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="20"
height="14"
x="2"
y="4"
rx="2"
id="rect2"
style="fill:#01b1fc;fill-opacity:1;stroke:none" />
<path
d="M 13,18 H 4 A 2,2 0 0 1 2,16 V 6 A 2,2 0 0 1 4,4 h 16 a 2,2 0 0 1 2,2 v 3"
id="path2"
style="stroke:#013cb2;stroke-opacity:1" />
<path
d="m 15.393434,14.10985 c 0.134123,0.416488 0.290611,0.814037 0.469462,1.19265 0.402386,0.757247 0.916559,1.495554 1.542515,2.214927 1.296597,1.400894 3.219149,2.517824 5.767666,3.350786 -0.536544,0.265032 -0.961293,0.530066 -1.274252,0.795101 -0.402409,0.378618 -0.670673,0.700443 -0.804789,0.965481 -1.967279,-1.135861 -3.420372,-2.366374 -4.359284,-3.691544 -0.76009,-1.060135 -1.296616,-2.3853 -1.609581,-3.975507 -0.268272,1.62807 -0.827155,2.991099 -1.676646,4.089095 -0.894217,1.173721 -2.257888,2.177061 -4.0910179,3.010024 -0.8942132,0.37862 -1.5201612,0.605789 -1.8778436,0.681517 -0.3576858,0.03787 -0.4023975,-0.0568 -0.1341232,-0.283965 1.5201584,-0.795101 2.6826307,-1.609133 3.4874257,-2.442099 0.670652,-0.719372 1.20718,-1.514475 1.609579,-2.385305 0.447101,-0.984406 0.737717,-2.158125 0.871856,-3.521161 H 7.6138043 l -0.268264,-0.397551 h 5.9688607 c 0.0894,-1.32516 0.0894,-2.669258 0,-4.032299 l 2.481439,0.22717 c 0.357673,0.113599 0.38003,0.34077 0.06707,0.681518 l -0.402395,0.22717 c -0.04471,0.984423 -0.08943,1.949901 -0.134125,2.896441 h 4.22515 l 1.140119,-1.36303 1.609583,1.249444 c 0.268247,0.265041 0.223537,0.435419 -0.134124,0.511137 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:137.462px;line-height:125%;font-family:HGMinchoE;-inkscape-font-specification:HGMinchoE;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#0c1423;stroke-width:0.229872;stroke-opacity:1"
id="path3848"
inkscape:connector-curvature="0"
inkscape:export-filename="N:\D\path3848.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
icon/icon-128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
icon/icon-16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

BIN
icon/icon-24.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

BIN
icon/icon-32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
icon/icon-48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
icon/icon-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,22 @@
namespace SuzuMagnifier.Dtos
{
public class SavedOptions
{
public int Version { get; set; } = 1;
public bool AutoStart { get; set; }
public bool HighQuality { get; set; }
public int ZoomFactor { get; set; }
public int UpdateFrequency { get; set; }
public bool ShowCrosshair { get; set; }
public int CrosshairSize { get; set; }
public Color CrosshairColour { get; set; }
}
}

345
source/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,345 @@
namespace SuzuMagnifier
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
notifyIcon1 = new NotifyIcon(components);
contextMenuStrip1 = new ContextMenuStrip(components);
toolStripMenuItem1 = new ToolStripMenuItem();
toolStripMenuItem2 = new ToolStripMenuItem();
toolStripSeparator2 = new ToolStripSeparator();
toolStripMenuItem4 = new ToolStripMenuItem();
fasterToolStripMenuItem = new ToolStripMenuItem();
highToolStripMenuItem = new ToolStripMenuItem();
toolStripMenuItem6 = new ToolStripMenuItem();
toolStripMenuItem7 = new ToolStripMenuItem();
toolStripMenuItem8 = new ToolStripMenuItem();
toolStripSeparator3 = new ToolStripSeparator();
resetToolStripMenuItem = new ToolStripMenuItem();
toolStripMenuItem9 = new ToolStripMenuItem();
showToolStripMenuItem = new ToolStripMenuItem();
toolStripSeparator5 = new ToolStripSeparator();
sizeToolStripMenuItem = new ToolStripMenuItem();
smallToolStripMenuItem = new ToolStripMenuItem();
mediumToolStripMenuItem = new ToolStripMenuItem();
largeToolStripMenuItem = new ToolStripMenuItem();
colourToolStripMenuItem = new ToolStripMenuItem();
agentaToolStripMenuItem = new ToolStripMenuItem();
cyanToolStripMenuItem = new ToolStripMenuItem();
yellowToolStripMenuItem = new ToolStripMenuItem();
greenToolStripMenuItem = new ToolStripMenuItem();
redToolStripMenuItem = new ToolStripMenuItem();
blackToolStripMenuItem = new ToolStripMenuItem();
whiteToolStripMenuItem = new ToolStripMenuItem();
toolStripSeparator4 = new ToolStripSeparator();
toolStripMenuItem5 = new ToolStripMenuItem();
toolStripMenuItem3 = new ToolStripMenuItem();
toolStripSeparator1 = new ToolStripSeparator();
exitiToolStripMenuItem = new ToolStripMenuItem();
contextMenuStrip1.SuspendLayout();
SuspendLayout();
//
// notifyIcon1
//
notifyIcon1.ContextMenuStrip = contextMenuStrip1;
notifyIcon1.Icon = (Icon)resources.GetObject("notifyIcon1.Icon");
notifyIcon1.Text = "notifyIcon1";
notifyIcon1.Visible = true;
//
// contextMenuStrip1
//
contextMenuStrip1.Items.AddRange(new ToolStripItem[] { toolStripMenuItem1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem4, toolStripMenuItem6, toolStripMenuItem9, toolStripSeparator4, toolStripMenuItem5, toolStripMenuItem3, toolStripSeparator1, exitiToolStripMenuItem });
contextMenuStrip1.Name = "contextMenuStrip1";
contextMenuStrip1.Size = new Size(205, 198);
contextMenuStrip1.Opening += contextMenuStrip1_Opening;
//
// toolStripMenuItem1
//
toolStripMenuItem1.Name = "toolStripMenuItem1";
toolStripMenuItem1.Size = new Size(204, 22);
toolStripMenuItem1.Text = "&Start";
toolStripMenuItem1.Click += toolStripMenuItem1_Click;
//
// toolStripMenuItem2
//
toolStripMenuItem2.Name = "toolStripMenuItem2";
toolStripMenuItem2.Size = new Size(204, 22);
toolStripMenuItem2.Text = "Sto&p";
toolStripMenuItem2.Click += toolStripMenuItem2_Click;
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new Size(201, 6);
//
// toolStripMenuItem4
//
toolStripMenuItem4.DropDownItems.AddRange(new ToolStripItem[] { fasterToolStripMenuItem, highToolStripMenuItem });
toolStripMenuItem4.Name = "toolStripMenuItem4";
toolStripMenuItem4.Size = new Size(204, 22);
toolStripMenuItem4.Text = "&Quality";
//
// fasterToolStripMenuItem
//
fasterToolStripMenuItem.Name = "fasterToolStripMenuItem";
fasterToolStripMenuItem.Size = new Size(100, 22);
fasterToolStripMenuItem.Text = "&Fast";
fasterToolStripMenuItem.Click += fastToolStripMenuItem_Click;
//
// highToolStripMenuItem
//
highToolStripMenuItem.Name = "highToolStripMenuItem";
highToolStripMenuItem.Size = new Size(100, 22);
highToolStripMenuItem.Text = "&High";
highToolStripMenuItem.Click += highToolStripMenuItem_Click;
//
// toolStripMenuItem6
//
toolStripMenuItem6.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem7, toolStripMenuItem8, toolStripSeparator3, resetToolStripMenuItem });
toolStripMenuItem6.Name = "toolStripMenuItem6";
toolStripMenuItem6.Size = new Size(204, 22);
toolStripMenuItem6.Text = "Zoom";
//
// toolStripMenuItem7
//
toolStripMenuItem7.Name = "toolStripMenuItem7";
toolStripMenuItem7.ShortcutKeys = Keys.Control | Keys.Oemplus;
toolStripMenuItem7.Size = new Size(214, 22);
toolStripMenuItem7.Text = "Increase";
toolStripMenuItem7.Click += toolStripMenuItem7_Click;
//
// toolStripMenuItem8
//
toolStripMenuItem8.Name = "toolStripMenuItem8";
toolStripMenuItem8.ShortcutKeys = Keys.Control | Keys.OemMinus;
toolStripMenuItem8.Size = new Size(214, 22);
toolStripMenuItem8.Text = "Decrease";
toolStripMenuItem8.Click += toolStripMenuItem8_Click;
//
// toolStripSeparator3
//
toolStripSeparator3.Name = "toolStripSeparator3";
toolStripSeparator3.Size = new Size(211, 6);
//
// resetToolStripMenuItem
//
resetToolStripMenuItem.Name = "resetToolStripMenuItem";
resetToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.D0;
resetToolStripMenuItem.Size = new Size(214, 22);
resetToolStripMenuItem.Text = "Reset";
resetToolStripMenuItem.Click += resetToolStripMenuItem_Click;
//
// toolStripMenuItem9
//
toolStripMenuItem9.DropDownItems.AddRange(new ToolStripItem[] { showToolStripMenuItem, toolStripSeparator5, sizeToolStripMenuItem, colourToolStripMenuItem });
toolStripMenuItem9.Name = "toolStripMenuItem9";
toolStripMenuItem9.Size = new Size(204, 22);
toolStripMenuItem9.Text = "Crosshair";
//
// showToolStripMenuItem
//
showToolStripMenuItem.Name = "showToolStripMenuItem";
showToolStripMenuItem.Size = new Size(110, 22);
showToolStripMenuItem.Text = "Show";
showToolStripMenuItem.Click += showToolStripMenuItem_Click;
//
// toolStripSeparator5
//
toolStripSeparator5.Name = "toolStripSeparator5";
toolStripSeparator5.Size = new Size(107, 6);
//
// sizeToolStripMenuItem
//
sizeToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { smallToolStripMenuItem, mediumToolStripMenuItem, largeToolStripMenuItem });
sizeToolStripMenuItem.Name = "sizeToolStripMenuItem";
sizeToolStripMenuItem.Size = new Size(110, 22);
sizeToolStripMenuItem.Text = "Size";
//
// smallToolStripMenuItem
//
smallToolStripMenuItem.Name = "smallToolStripMenuItem";
smallToolStripMenuItem.Size = new Size(119, 22);
smallToolStripMenuItem.Text = "Small";
smallToolStripMenuItem.Click += smallToolStripMenuItem_Click;
//
// mediumToolStripMenuItem
//
mediumToolStripMenuItem.Name = "mediumToolStripMenuItem";
mediumToolStripMenuItem.Size = new Size(119, 22);
mediumToolStripMenuItem.Text = "Medium";
mediumToolStripMenuItem.Click += mediumToolStripMenuItem_Click;
//
// largeToolStripMenuItem
//
largeToolStripMenuItem.Name = "largeToolStripMenuItem";
largeToolStripMenuItem.Size = new Size(119, 22);
largeToolStripMenuItem.Text = "Large";
largeToolStripMenuItem.Click += largeToolStripMenuItem_Click;
//
// colourToolStripMenuItem
//
colourToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { agentaToolStripMenuItem, cyanToolStripMenuItem, yellowToolStripMenuItem, greenToolStripMenuItem, redToolStripMenuItem, blackToolStripMenuItem, whiteToolStripMenuItem });
colourToolStripMenuItem.Name = "colourToolStripMenuItem";
colourToolStripMenuItem.Size = new Size(110, 22);
colourToolStripMenuItem.Text = "Colour";
//
// agentaToolStripMenuItem
//
agentaToolStripMenuItem.Name = "agentaToolStripMenuItem";
agentaToolStripMenuItem.Size = new Size(121, 22);
agentaToolStripMenuItem.Text = "Magenta";
agentaToolStripMenuItem.Click += agentaToolStripMenuItem_Click;
//
// cyanToolStripMenuItem
//
cyanToolStripMenuItem.Name = "cyanToolStripMenuItem";
cyanToolStripMenuItem.Size = new Size(121, 22);
cyanToolStripMenuItem.Text = "Cyan";
cyanToolStripMenuItem.Click += cyanToolStripMenuItem_Click;
//
// yellowToolStripMenuItem
//
yellowToolStripMenuItem.Name = "yellowToolStripMenuItem";
yellowToolStripMenuItem.Size = new Size(121, 22);
yellowToolStripMenuItem.Text = "Yellow";
yellowToolStripMenuItem.Click += yellowToolStripMenuItem_Click;
//
// greenToolStripMenuItem
//
greenToolStripMenuItem.Name = "greenToolStripMenuItem";
greenToolStripMenuItem.Size = new Size(121, 22);
greenToolStripMenuItem.Text = "Green";
greenToolStripMenuItem.Click += greenToolStripMenuItem_Click;
//
// redToolStripMenuItem
//
redToolStripMenuItem.Name = "redToolStripMenuItem";
redToolStripMenuItem.Size = new Size(121, 22);
redToolStripMenuItem.Text = "Red";
redToolStripMenuItem.Click += redToolStripMenuItem_Click;
//
// blackToolStripMenuItem
//
blackToolStripMenuItem.Name = "blackToolStripMenuItem";
blackToolStripMenuItem.Size = new Size(121, 22);
blackToolStripMenuItem.Text = "Black";
blackToolStripMenuItem.Click += blackToolStripMenuItem_Click;
//
// whiteToolStripMenuItem
//
whiteToolStripMenuItem.Name = "whiteToolStripMenuItem";
whiteToolStripMenuItem.Size = new Size(121, 22);
whiteToolStripMenuItem.Text = "White";
whiteToolStripMenuItem.Click += whiteToolStripMenuItem_Click;
//
// toolStripSeparator4
//
toolStripSeparator4.Name = "toolStripSeparator4";
toolStripSeparator4.Size = new Size(201, 6);
//
// toolStripMenuItem5
//
toolStripMenuItem5.Name = "toolStripMenuItem5";
toolStripMenuItem5.ShortcutKeys = Keys.Control | Keys.F11;
toolStripMenuItem5.Size = new Size(204, 22);
toolStripMenuItem5.Text = "Al&ways On Top";
toolStripMenuItem5.Click += toolStripMenuItem5_Click;
//
// toolStripMenuItem3
//
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.ShortcutKeys = Keys.F11;
toolStripMenuItem3.Size = new Size(204, 22);
toolStripMenuItem3.Text = "&Fullscreen";
toolStripMenuItem3.Click += toolStripMenuItem3_Click;
//
// toolStripSeparator1
//
toolStripSeparator1.Name = "toolStripSeparator1";
toolStripSeparator1.Size = new Size(201, 6);
//
// exitiToolStripMenuItem
//
exitiToolStripMenuItem.Name = "exitiToolStripMenuItem";
exitiToolStripMenuItem.Size = new Size(204, 22);
exitiToolStripMenuItem.Text = "E&xit";
exitiToolStripMenuItem.Click += exitiToolStripMenuItem_Click;
//
// Form1
//
AutoScaleDimensions = new SizeF(96F, 96F);
AutoScaleMode = AutoScaleMode.Dpi;
ClientSize = new Size(800, 450);
ContextMenuStrip = contextMenuStrip1;
Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
ForeColor = Color.WhiteSmoke;
Icon = (Icon)resources.GetObject("$this.Icon");
Name = "Form1";
contextMenuStrip1.ResumeLayout(false);
ResumeLayout(false);
}
#endregion
private NotifyIcon notifyIcon1;
private ContextMenuStrip contextMenuStrip1;
private ToolStripMenuItem exitiToolStripMenuItem;
private ToolStripMenuItem toolStripMenuItem1;
private ToolStripMenuItem toolStripMenuItem2;
private ToolStripSeparator toolStripSeparator1;
private ToolStripMenuItem toolStripMenuItem3;
private ToolStripSeparator toolStripSeparator2;
private ToolStripMenuItem toolStripMenuItem4;
private ToolStripMenuItem fasterToolStripMenuItem;
private ToolStripMenuItem highToolStripMenuItem;
private ToolStripMenuItem toolStripMenuItem5;
private ToolStripMenuItem toolStripMenuItem6;
private ToolStripMenuItem toolStripMenuItem7;
private ToolStripMenuItem toolStripMenuItem8;
private ToolStripSeparator toolStripSeparator3;
private ToolStripMenuItem resetToolStripMenuItem;
private ToolStripSeparator toolStripSeparator4;
private ToolStripMenuItem toolStripMenuItem9;
private ToolStripMenuItem showToolStripMenuItem;
private ToolStripMenuItem sizeToolStripMenuItem;
private ToolStripMenuItem colourToolStripMenuItem;
private ToolStripSeparator toolStripSeparator5;
private ToolStripMenuItem smallToolStripMenuItem;
private ToolStripMenuItem mediumToolStripMenuItem;
private ToolStripMenuItem largeToolStripMenuItem;
private ToolStripMenuItem agentaToolStripMenuItem;
private ToolStripMenuItem cyanToolStripMenuItem;
private ToolStripMenuItem yellowToolStripMenuItem;
private ToolStripMenuItem greenToolStripMenuItem;
private ToolStripMenuItem redToolStripMenuItem;
private ToolStripMenuItem blackToolStripMenuItem;
private ToolStripMenuItem whiteToolStripMenuItem;
}
}

686
source/Form1.cs Normal file
View File

@ -0,0 +1,686 @@
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
using SuzuMagnifier.Dtos;
using static System.Windows.Forms.Design.AxImporter;
namespace SuzuMagnifier
{
public partial class Form1 : Form
{
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
}
[DllImport("user32.dll")]
private static extern bool GetCursorPos(out POINT lpPoint);
public static Point GetMousePosition()
{
GetCursorPos(out var p);
return new Point(p.X, p.Y);
}
private readonly System.Windows.Forms.Timer _timer = new();
private Bitmap? _bitmap;
private string jsonfigFilename;
public Form1()
{
InitializeComponent();
this.BackColor = Color.Black;
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
this.Text = Application.ProductName;
_timer.Interval = this.UpdateFrequency;
_timer.Tick += (sender, e) =>
{
UpdateMagnifier();
};
}
protected async override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var args = GetCommandLine()!;
jsonfigFilename = args.Where(x => (x.Key.Equals("o") || x.Key.Equals("open"))).Select(x => x.Value).FirstOrDefault();
if (string.IsNullOrWhiteSpace(jsonfigFilename))
{
jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
}
if (System.IO.File.Exists(jsonfigFilename))
{
var newSettings = await LoadSettings(jsonfigFilename);
if (newSettings == null)
{
newSettings = new SavedOptions();
}
this.HighQuality = newSettings.HighQuality;
this.ZoomFactor = newSettings.ZoomFactor;
//this.UpdateFrequency = newSettings.UpdateFrequency;
this.ShowCrosshair = newSettings.ShowCrosshair;
this.CrosshairSize = newSettings.CrosshairSize;
this.CrosshairColour = newSettings.CrosshairColour;
}
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
//_timer.Start();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var g = e.Graphics;
if (!_timer.Enabled)
{
TextRenderer.DrawText(g, "Press [Space] To Start", this.Font, this.ClientRectangle, this.ForeColor, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.NoPadding);
}
if (_bitmap == null)
{
return;
}
if (this.HighQuality)
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
}
else
{
g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = PixelOffsetMode.None;
g.SmoothingMode = SmoothingMode.None;
}
g.DrawImage(_bitmap, this.ClientRectangle);
// Draw center crosshair
if (this.ShowCrosshair)
{
var cx = Divide(this.Width, 2);
var cy = Divide(this.Height, 2);
g.DrawLine(new Pen(this.CrosshairColour), cx - this.CrosshairSize, cy, cx + this.CrosshairSize, cy);
g.DrawLine(new Pen(this.CrosshairColour), cx, cy - this.CrosshairSize, cx, cy + this.CrosshairSize);
}
}
protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)
{
base.OnPreviewKeyDown(e);
if (e.Control)
{
switch (e.KeyCode)
{
//case Keys.D0:
// this.ZoomFactor = 1;
// break;
//case Keys.OemMinus:
// this.ZoomFactor--;
// break;
//case Keys.Oemplus:
// this.ZoomFactor++;
// break;
//case Keys.F11:
// toolStripMenuItem5_Click(null, null);
// break;
default:
break;
}
}
else
{
switch (e.KeyCode)
{
case Keys.Space:
if (_timer.Enabled)
{
_timer.Stop();
}
else
{
_timer.Start();
}
break;
case Keys.Escape:
exitiToolStripMenuItem_Click(null, null);
break;
//case Keys.F11:
// toolStripMenuItem3_Click(null, null);
// break;
default:
break;
}
}
}
protected async override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
var result = MessageBox.Show("Do you want to save settings to file?", "Save Settings?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
var result2 = await SaveSettings(jsonfigFilename);
if (result2)
{
return;
}
MessageBox.Show("Could not save settings. An error has occurred.", "Save Settings?", MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true;
}
else if (result == DialogResult.No)
{
// Do nothing
}
else
{
e.Cancel = true;
}
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool HighQuality { get; set; } = false;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int ZoomFactor
{
get => field;
set
{
if (value < 0)
{
field = 1;
return;
}
if (value > 20)
{
field = 20;
return;
}
field = value;
}
} = 2;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int UpdateFrequency { get; set; } = 33;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool ShowCrosshair { get; set; } = true;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int CrosshairSize
{
get => field;
set
{
if (value < 5)
{
field = 5;
return;
}
if (value > 200)
{
field = 200;
return;
}
field = value;
}
} = 20;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Color CrosshairColour { get; set; } = Color.FromArgb(255, 255, 0);
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
toolStripMenuItem1.Enabled = !_timer.Enabled;
toolStripMenuItem2.Enabled = _timer.Enabled;
toolStripMenuItem5.Checked = this.TopMost;
showToolStripMenuItem.Checked = this.ShowCrosshair;
smallToolStripMenuItem.Checked = (this.CrosshairSize == 10);
mediumToolStripMenuItem.Checked = (this.CrosshairSize == 20);
largeToolStripMenuItem.Checked = (this.CrosshairSize == 50);
agentaToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 0, 255);
cyanToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 255, 255);
yellowToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 255, 0);
greenToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 255, 0);
redToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 0, 0);
blackToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 0, 0);
whiteToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 255, 255);
fasterToolStripMenuItem.Checked = !this.HighQuality;
fasterToolStripMenuItem.Enabled = this.HighQuality;
highToolStripMenuItem.Checked = this.HighQuality;
highToolStripMenuItem.Enabled = !this.HighQuality;
}
#region context menu
/// <summary>
/// Start
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
if (_timer.Enabled)
{
return;
}
_timer.Start();
}
/// <summary>
/// Stop
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
if (!_timer.Enabled)
{
return;
}
_timer.Stop();
}
/// <summary>
/// Quality, fast
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void fastToolStripMenuItem_Click(object sender, EventArgs e)
{
this.HighQuality = false;
}
/// <summary>
/// QUality, high
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void highToolStripMenuItem_Click(object sender, EventArgs e)
{
this.HighQuality = true;
}
/// <summary>
/// Zoom, increase
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem7_Click(object sender, EventArgs e)
{
this.ZoomFactor++;
}
/// <summary>
/// Zoom, decrease
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem8_Click(object sender, EventArgs e)
{
this.ZoomFactor--;
}
/// <summary>
/// Zoom, reset
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
this.ZoomFactor = 1;
}
/// <summary>
/// Crosshair, colour, magenta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void agentaToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(255, 0, 255);
}
/// <summary>
/// Crosshair, colour, cyan
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cyanToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(0, 255, 255);
}
/// <summary>
/// Crosshair, colour, yellow
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void yellowToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(255, 255, 0);
}
/// <summary>
/// Crosshair, colour, green
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void greenToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(0, 255, 0);
}
/// <summary>
/// Crosshair, colour, red
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void redToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(255, 0, 0);
}
/// <summary>
/// Crosshair, colour, black
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void blackToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(0, 0, 0);
}
/// <summary>
/// Crosshair, colour, white
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void whiteToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairColour = Color.FromArgb(255, 255, 255);
}
/// <summary>
/// ALways on top
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem5_Click(object sender, EventArgs e)
{
this.TopMost = !this.TopMost;
}
/// <summary>
/// Fullscreen
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
}
else
{
this.FormBorderStyle = FormBorderStyle.Sizable;
this.WindowState = FormWindowState.Normal;
}
}
/// <summary>
/// Exit
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exitiToolStripMenuItem_Click(object sender, EventArgs e)
{
if (_timer.Enabled)
{
_timer.Stop();
_timer.Dispose();
}
this.Close();
}
/// <summary>
/// Crosshair, toggle
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void showToolStripMenuItem_Click(object sender, EventArgs e)
{
this.ShowCrosshair = !this.ShowCrosshair;
}
/// <summary>
/// Croisshair, size, small
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void smallToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairSize = 10;
}
/// <summary>
/// Croisshair, size, medium
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void mediumToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairSize = 20;
}
/// <summary>
/// Croisshair, size, large
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void largeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.CrosshairSize = 50;
}
#endregion
private void UpdateMagnifier()
{
//var mouse = Cursor.Position;
var mouse = GetMousePosition();
var w = Divide(this.Width, this.ZoomFactor);
var h = Divide(this.Height, this.ZoomFactor);
var cx = Divide(w, 2);
var cy = Divide(h, 2);
var x = mouse.X - cx;
var y = mouse.Y - cy;
var sourceRect = new Rectangle(x, y, w, h);
_bitmap?.Dispose();
_bitmap = null;
_bitmap = new Bitmap(sourceRect.Width, sourceRect.Height);
using Graphics g = Graphics.FromImage(_bitmap);
g.CopyFromScreen(sourceRect.Location, Point.Empty, sourceRect.Size);
this.Invalidate();
}
private int Divide(int x, int y)
{
return (int)Math.Floor((decimal)x / y);
}
/// <summary>
/// Get execution arguments.
/// </summary>
/// <returns></returns>
private List<KeyValuePair<string, string>> GetCommandLine()
{
var result = new List<KeyValuePair<string, string>>();
var args = Environment.GetCommandLineArgs() ?? new string[0];
if (args.Length <= 1)
{
return result;
}
var key = string.Empty;
var flag = false;
for (int i = 1; i < args.Length; i++)
{
var text = args[i];
if (string.IsNullOrWhiteSpace(text))
{
continue;
}
if (text.StartsWith("-"))
{
if (flag)
{
result.Add(new KeyValuePair<string, string>(key, string.Empty));
}
key = text?.TrimStart('-')?.Trim() ?? string.Empty;
flag = true;
}
else
{
result.Add(new KeyValuePair<string, string>(key, text?.Trim() ?? string.Empty));
flag = false;
}
}
return result;
}
private async Task<SavedOptions?> LoadSettings(string filename)
{
if (!System.IO.File.Exists(filename))
{
return null;
}
string sourceCode;
try
{
sourceCode = await System.IO.File.ReadAllTextAsync(filename);
}
catch (Exception)
{
return null;
}
if (string.IsNullOrWhiteSpace(sourceCode))
{
return null;
}
try
{
return System.Text.Json.JsonSerializer.Deserialize<SavedOptions>(sourceCode);
}
catch (Exception)
{
return null;
}
}
private async Task<bool> SaveSettings(string filename)
{
var result = new SavedOptions();
result.AutoStart = false;
result.HighQuality = this.HighQuality;
result.ZoomFactor = this.ZoomFactor;
result.UpdateFrequency = this.UpdateFrequency;
result.ShowCrosshair = this.ShowCrosshair;
result.CrosshairSize = this.CrosshairSize;
result.CrosshairColour = this.CrosshairColour;
string sourceCode = "";
try
{
sourceCode = System.Text.Json.JsonSerializer.Serialize(result);
}
catch (Exception)
{
return false;
}
if (string.IsNullOrWhiteSpace(sourceCode))
{
return false;
}
if (System.IO.File.Exists(filename))
{
try
{
System.IO.File.Delete(filename);
}
catch (Exception)
{
return false;
}
}
try
{
await System.IO.File.WriteAllTextAsync(filename, sourceCode);
}
catch (Exception)
{
return false;
}
return true;
}
}
}

721
source/Form1.resx Normal file
View File

@ -0,0 +1,721 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/xz///+S////3v////v/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////7////3v///5L///8bAAAAAAAA
AAAAAAAA////Qf////D/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////v////PwAAAAD///8c////8P//////////////////////////////////////////////////
/////////////4R+e/9sZWL/w8C+//7+/v//////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////9/d
3P/EwL//////////////////////7////xv///+U////////////////////////////////////////
/////////////////////////////8nGxP9LQz7/GxQR/0Q9Of+Ffnv/9PPz////////////////////
////////////////////////////////////////////////////////////////////////////////
///8+/v/hn98/yslIv83MCz/4+Hg/////////////////////5L////f////////////////////////
///////////////////////////////////////////////////+/v7/nZiV/zYvLP8EAgH/NzAt/4N8
ef/29fX/////////////////////////////////////////////////////////////////////////
/////////////9nX1v9JQTz/BwUE/wAAAP8BAAD/Pzcz/9nX1v///////////////93////7////////
/////////////////////////////////////////////////////////////////////////////+/t
7f9gWFT/EQ4N/wQDAv89NjL/sKyp////////////////////////////////////////////////////
////////////////////////pJ+d/y4oJP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywmI/+DfHn/9/f2////
//v/////////////////////////////////////////////////////////////////////////////
////////////////////////lY+M/ygiH/8AAAD/FhIQ/2RdWf/39/b/////////////////////////
//////////////////////////////////9+eHT/FxMR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xYS
D/9COTX/ubSy////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////7y4tv8wKib/AAAA/wIBAf9KQj3/5+bl////
/////////////////////////////////////////v7+/3Rtav8QDQv/AAAA/wAAAP8AAAD/AAAA/wIB
Af8zLCj/aWJe/8vIxv//////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////Avbv/JB8c/wAA
AP8BAAD/Pzgz/+vq6f//////////////////////////////////////gHp2/w0KCf8AAAD/AAAA/wAA
AP8CAQH/Misn/3lybv/w7+//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////kIuI/xEODP8AAAD/AQEA/0lBPP/29fX///////////////////////////+noqD/GxcU/wAA
AP8AAAD/AAAA/x4ZF/9vaGT/7+7u////////////////////////////////////////////////////
//////////7+/+Cymv/DaDr/tkUN/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ccBv8BAAD/AAAA/wMBAf9mUkj//////////////////////+jn
5v8xKib/AAAA/wAAAP8CAQH/QTk1/767uf//////////////////////////////////////////////
///////////////////36uT/xm5D/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/6E3Av8iDwX/AAAA/wAAAP8YCwb/xMC/////
/////////////19XU/8BAQD/AAAA/wYEA/9YUEv/9vX1////////////////////////////////////
//////////////////////////////36+P/AYTH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9ZIgb/AgEB/wAA
AP8AAAD/UzgG//yxAf/8sQH/0pID/x8UBP8AAAD/CgYC/2NDBv/4rgH//LEB//yxAf/8sQH//LUP//3L
V///9uP//////////////////////////////////////96rkf+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+mOQL/IQ4F/wAAAP8AAAD/GREE/8qNA//8sQH/YUIH/wAAAP8CAQH/Wz4G//uwAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8txT///bj/////////////////////////////////8NmOP+yPAH/sjwB/7I8
Af/IXwH/9KYB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/WDwH/wAAAP8AAAD/AAAA/2xJB//zqgL/MiEF/wAAAP9BLAb/8KgC//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//ctX/////////////////////////////////7ZG
Dv+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/kGQG/wMCAf8AAAD/AAAA/z8qBv+icAX/BwQC/yUY
BP/OkAP//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LYQ////////////////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/2ZgD/xkQBP8AAAD/AAAA/x0S
BP9SNwf/AwEB/29MB//8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////
/////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+a4B/zEh
Bf8AAAD/AAAA/wQCAf8vHwj/OCUG//KqAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/0cwBv8AAAD/AAAA/wAAAP8FAwL/cU0H//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//atAf+EWgb/fFUH/3xVB/98VQf/fFUH/3xV
B/98VQf/fFUH/3xVB/98VQf/fFUH/0AqCP8AAAD/AAAA/wAAAP8XDgT/ZkUH/3xVB/98VQf/fFUH/3xV
B/98VQf/fFUH/3xVB/98VQf/fFUH/3xVB/98VQf/fFUH/5mTkP/+/v7//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6h0Bf9BKwf/Ri8G/0Yv
Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/zMhBv8AAAD/AAAA/wAAAP8iFwT/Ri8G/0Yv
Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv8fFQT/AAAA/wAAAP8AAAD/AAAA/zAoJP/v7u7/////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2lIB/8AAAD/AAAA/wAA
AP85Jgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+OYgb/FAwD/wAAAP8BAQD/OSYG/8TA
v////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/21L
B/8AAAD/AAAA/wAAAP8zIgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/bUsH/w0J
A/9RNgb/6aQC/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/3JOB/8AAAD/AAAA/wAAAP8uHgX/+K4B//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH/+a4B/55tBf/6sAH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/3ZQB/8AAAD/AAAA/wAAAP8nGgX/7aYC//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/3NOB/8AAAD/AAAA/wAAAP8gFQT/5KAC//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////////////////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/29MB/8AAAD/AAAA/wAA
AP8NCQL/bEoH//mvAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////
/////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2pI
B/8AAAD/AAAA/wAAAP8AAAD/CwcD/655Bf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/3xVBv9MMwb/VzsH/2REB/9vTAf/jWEG//SsAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/mjgH/ukgB/7pQG//oxbP//////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+6SQH/sjwB/7I8Af+6URz//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH/////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8
Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH/////////
/////////////7ZFDf+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//SmAf+yPAH/sjwB/7I8
Af+2Rg7//////////////////////8JlN/+yPAH/sjwB/7I8Af/IXgH/9aYB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/9aYB/8hf
Af+yPAH/sjwB/7I8Af/DZzn//////////////////////+Cvl/+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/gsZn///////////////////////79/f/FbUH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/8ZuQv///v7/////////////////////////
///36+X/xm5C/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/wGAw//fq5P//////////////
//////////////////////////7+/+CwmP/CZTf/tUQM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/tUQM/8NmOP/eq5H//fr4////
///////////////////////7////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////v////f////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////97///+V////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////5P///8e////8f//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////8P//
/xwAAAAA////Qf////H/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////w////QQAAAAAAAAAAAAAAAP///x7///+V////4P////v/////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////7////3////5T///8dAAAAAAAAAADAAAAAAAPxBIAAAAAAAfEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBIAAAAAAAfEEwAAAAAAD8QQoAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zX////D////9v//////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////b////C////NAAAAAD///81/////P////z/////////////
///////////////////DwL//q6el//z7+///////////////////////////////////////////////
///////////////////////////////////w7+//4uDf//////z////8////NP///8P////8////////
/////////////////////////////+bl5P9dVlP/NjAs/3Vwbf/k4+L/////////////////////////
////////////////////////////////////////paGf/zMuLP9BPDn/8fDw//////z////C////9v//
//////////////////////////////////////////////////+1srD/PTg2/yIeHP99eHX/+fn4////
////////////////////////////////////////+Pj3/2xmY/8KCAf/AAAA/wAAAP8+Ojf/uLSz////
//b////////////////////////////////////////////////////////////////x8PD/WFNQ/wMC
Av9CPTr/1dPS/////////////////////////////////+3s7P9MRkP/AQAA/wAAAP8AAAD/BgUE/z45
N/+Be3j//v7+////////////////////////////////////////////////////////////////////
///8/Pz/Z2Jf/wEAAP8rJyX/x8XD///////////////////////08/P/R0E+/wAAAP8AAAD/CQcG/1FM
Sf+zr63//v7+/////////////////////////////v39//Lf1f/mwK3/5b6q/+W+qv/lvqr/5b6q/+W+
qv/lvqr/5b6q/+W+qv/guqX/RTYu/wAAAP8sIx7/4d3b/////////////////2BbWP8AAAD/AAAA/zgz
Mf+vq6n///////////////////////////////////////Le1P/BYTL/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+TMgP/EwgC/wAAAP9ONyv///////////+inpz/CAcG/wMC
Av9fWlf/8vHx///////////////////////////////////////79PH/u1Mf/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9PHgX/AAAA/wsGAv+7ggT/+rAB/0As
BP8DAgH/bEsG//qwAf/8sQH//LIE//3AMf/+7ML//////////////////////96skv+yPAH/sjwB/8lh
Af/iiQH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/6pnBP8IBAH/AAAA/2NE
Bf+1fwT/BQMB/1c8Bf/6sAH//LEB//yxAf/8sQH//LEB//y2Ev//+e3/////////////////z4Zi/7I8
Af+yPAH/+KsB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+7AB/zgm
BP8AAAD/LR4E/3NQBf8sHgP/6KMC//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7ptv//////////////
///Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH/XD8E/wAAAP8GAwH/NSMG/5JlBf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq////
/////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf96VAX/AAAA/wAAAP8uHwT/9awB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/SkwP/QywI/0Qt
B/9ELQf/RC0H/0QtB/9ELQf/RC0H/zkmB/8AAAD/AAAA/zEgBf9ELQf/RC0H/0QtB/9ELQf/RC0H/zQi
Bf8uHwP/Lh8D/0Q4KP/8+/v////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/k2UF/wAAAP8AAAD/Z0cF//yxAf/8sQH//LEB//yx
Af/8sQH/g1sF/wcFAf8tHwP/s591/////////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+ZagX/AAAA/wAAAP9gQQT//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/gVgF/96bAv/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/51sBf8AAAD/AAAA/1c7
BP/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7lqv/////////////////Mflf/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/mGkF/wAA
AP8AAAD/OygE/+KeAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq/////////////////8x+
V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+SZQX/BAMC/xUNA/8nGgT/jWEF//yxAf/8sQH//LEB//yxAf/8sQH//LEB//WnAf/otHn//vz7////
////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/+WgAv/QkgP/6KMC//uwAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/vk4B/7I8
Af/YnH7////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+yPAH/sjwB/8x+V////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/7I8Af+yPAH/zH5X////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/sjwB/7I8Af/Mflf////////////Mflf/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/8x+V////////////9SRcP+yPAH/sjwB//Cf
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/8J4B/7I8Af+yPAH/1JJx////////////58Gu/7I8
Af+yPAH/uUcB/8piAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tj
Af/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8piAf+5RgH/sjwB/7I8Af/nwq//////////
/////v7/yXVM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/yXZN////
///////////////////9+/r/2Z+B/79cK/+zPgT/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+zPgT/v1wr/9qg
g//9+/r////////////////2////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////9v///8T////8////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////z////D////N/////z////8////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////8/////P///zUAAAAA////N////8X////3////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////9v///8T///82AAAAAIAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABKAAAABgA
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////+r////9P////f////3////9///
//f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9///
//T///+q////Dv///6z////5//////////////////////////96dHH/fnp3/9vZ2P//////////////
////////////////////////////////////////oZ2c/6WioP/////5////qv////X/////////////
///////////////////+/v7/nJmX/zUxLv94dHL/8fDw/////////////////////////////////+no
6P9jXlz/BQQE/xcWFf+Sjoz//f399f////r//////////////////////////////////////////93b
2v9DPz3/Lysq/7+8u///////////////////////2NbV/zUxMP8AAAD/AQAA/zMwLv99eXf/7ezs+v//
//r////////////////////////////////////////////////u7e3/Ojc1/xoYF/+/vLv/////////
///o5+b/NTEw/wAAAP8vLCv/mZaU//v6+v//////////+v////r9+vn/1pZ3/7pQG/+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/jDED/wsFAf8sGA//+fn4//////9nY2H/AQAA/2JeW//t7Oz/////////
////////////+v////rWl3j/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ga
A/8AAAD/iV8E/8iMA/8PCQH/bk0F//uwAf/8sQH//Loe//7ptv//////////+v////q6Txr/sjwB/+uW
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6p1BP8BAAD/Qy4D/3ZSBP9ONQP/+a4B//yx
Af/8sQH//LEB//y6Hv//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//KqAv8XDwL/DwoC/z8rBf/RkwP//LEB//yxAf/8sQH//LEB//yxAf//////////+v//
//qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/ZlwL/tX4D/7V+A/+1fgP/tX4D/7V+A/8uHwP/AAAA/0gw
BP+1fgP/tX4D/7V+A/+1fgP/tX4D/7V+A//o5ub/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx
Af+yfAP/m2wD/5tsA/+bbAP/m2wD/5tsA/80IwP/AAAA/2FCA/+bbAP/m2wD/5tsA/94UwT/BQMB/xgQ
Av+urKr/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af9FMAP/AAAA/4BZBP/8sQH//LEB//yxAf/8sQH/gVoE/8OJA///////////+v////qyPAH/sjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf9FMAP/AAAA/3dTBP/8sQH//LEB//yx
Af/8sQH//LEB//yxAf//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf9FMAP/AAAA/y4gA//upwL//LEB//yxAf/8sQH//LEB//yxAf//////////+v//
//qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+mcwT/onAE/7mB
A//8sQH//LEB//yxAf/8sQH//LEB/8NYAf/Eaj3/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8
Af+yPAH/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8Af+yPAH/////+v////qyPAH/sjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/7I8Af+yPAH/////+v////q6Txr/sjwB/+uXAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/65YB/7I8Af+6UBv/////+v//
//rVlXb/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/Wl3j/////+v////r9+vj/1ZV2/7pPGv+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/uk8a/9aW
d//9+vn/////+v////X/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////9f///63////5////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////5////q////xD///+t////9f////f////3////9/////f////3////9///
//f////3////9/////f////3////9/////f////3////9/////f////3////9/////T///+s////DwAA
AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA
AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD///9p////3f///+P////j7u3t5ebk5Ob////j////4////+P////j////4///
/+P////j/Pz84/f29t7///9o////3f////////////////n4+P+GgoD/bGhm/97d3P//////////////
////////1dTT/0dEQ/9aWFb/5+bm3////+H//////////////////////////8jGxf82MzL/s7Gw////
////////ysjH/xwaGf8ZFxb/cG1s/9TT0ub////h7M/A/8+FYf/MfVb/zH1W/8x9Vv/MfVb/mF1A/xIM
CP/FuLH/6unp/yYkI/9jYF7/6ejo///////////h9eTc5bRABv/DWQT/y2MB/8tjAf/LYwH/y2MB/8tj
Af9GIwL/VDgC/31XA/9sSwL/+7AB//y1Dv/+57D/////4eS7peuyPAH/+7AB//yxAf/8sQH//LEB//yx
Af/8sQH/lmkD/xUOAf9XPAT/8aoB//yxAf/8sQH//cxZ/////+Hjt6LrsjwB//yxAf/8sQH/8qsB/5Fj
BP+RZAT/kWQE/3FOBf8AAAD/XUAE/5FkBP+RZAT/h10D/4xwL//+/v7h47ei67I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf++hgP/AAAA/6VzA//8sQH//LEB/4VcA/+ohjr/////4eO3ouuyPAH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/voYD/wAAAP+RZgP//LEB//yxAf/8sQH//ctW/////+Hjt6LrsjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/9eXAv9xTwP/onED//yxAf/8sQH//LEB/9R9KP/05Nvl47ei67I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/47ei6+O3
ouuyPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/sjwB/+O3
ouvrz7/osjwB/9t+Af/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/230B/7I8
Af/s0MHo////4dSScP+1Qwn/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7VD
Cf/Uk3L/////4f///93/////////////////////////////////////////////////////////////
/////////////////93///9q////3f///+P////j////4////+P////j////4////+P////j////4///
/+P////j////4////93///9pAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
rEEAAKxBAACsQQAArEEAAKxBAACsQQ==
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/xz///+S////3v////v/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////7////3v///5L///8bAAAAAAAA
AAAAAAAA////Qf////D/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////v////PwAAAAD///8c////8P//////////////////////////////////////////////////
/////////////4R+e/9sZWL/w8C+//7+/v//////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////9/d
3P/EwL//////////////////////7////xv///+U////////////////////////////////////////
/////////////////////////////8nGxP9LQz7/GxQR/0Q9Of+Ffnv/9PPz////////////////////
////////////////////////////////////////////////////////////////////////////////
///8+/v/hn98/yslIv83MCz/4+Hg/////////////////////5L////f////////////////////////
///////////////////////////////////////////////////+/v7/nZiV/zYvLP8EAgH/NzAt/4N8
ef/29fX/////////////////////////////////////////////////////////////////////////
/////////////9nX1v9JQTz/BwUE/wAAAP8BAAD/Pzcz/9nX1v///////////////93////7////////
/////////////////////////////////////////////////////////////////////////////+/t
7f9gWFT/EQ4N/wQDAv89NjL/sKyp////////////////////////////////////////////////////
////////////////////////pJ+d/y4oJP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywmI/+DfHn/9/f2////
//v/////////////////////////////////////////////////////////////////////////////
////////////////////////lY+M/ygiH/8AAAD/FhIQ/2RdWf/39/b/////////////////////////
//////////////////////////////////9+eHT/FxMR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xYS
D/9COTX/ubSy////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////7y4tv8wKib/AAAA/wIBAf9KQj3/5+bl////
/////////////////////////////////////////v7+/3Rtav8QDQv/AAAA/wAAAP8AAAD/AAAA/wIB
Af8zLCj/aWJe/8vIxv//////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////Avbv/JB8c/wAA
AP8BAAD/Pzgz/+vq6f//////////////////////////////////////gHp2/w0KCf8AAAD/AAAA/wAA
AP8CAQH/Misn/3lybv/w7+//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////kIuI/xEODP8AAAD/AQEA/0lBPP/29fX///////////////////////////+noqD/GxcU/wAA
AP8AAAD/AAAA/x4ZF/9vaGT/7+7u////////////////////////////////////////////////////
//////////7+/+Cymv/DaDr/tkUN/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ccBv8BAAD/AAAA/wMBAf9mUkj//////////////////////+jn
5v8xKib/AAAA/wAAAP8CAQH/QTk1/767uf//////////////////////////////////////////////
///////////////////36uT/xm5D/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/6E3Av8iDwX/AAAA/wAAAP8YCwb/xMC/////
/////////////19XU/8BAQD/AAAA/wYEA/9YUEv/9vX1////////////////////////////////////
//////////////////////////////36+P/AYTH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9ZIgb/AgEB/wAA
AP8AAAD/UzgG//yxAf/8sQH/0pID/x8UBP8AAAD/CgYC/2NDBv/4rgH//LEB//yxAf/8sQH//LUP//3L
V///9uP//////////////////////////////////////96rkf+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+mOQL/IQ4F/wAAAP8AAAD/GREE/8qNA//8sQH/YUIH/wAAAP8CAQH/Wz4G//uwAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8txT///bj/////////////////////////////////8NmOP+yPAH/sjwB/7I8
Af/IXwH/9KYB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/WDwH/wAAAP8AAAD/AAAA/2xJB//zqgL/MiEF/wAAAP9BLAb/8KgC//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//ctX/////////////////////////////////7ZG
Dv+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/kGQG/wMCAf8AAAD/AAAA/z8qBv+icAX/BwQC/yUY
BP/OkAP//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LYQ////////////////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/2ZgD/xkQBP8AAAD/AAAA/x0S
BP9SNwf/AwEB/29MB//8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////
/////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+a4B/zEh
Bf8AAAD/AAAA/wQCAf8vHwj/OCUG//KqAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/0cwBv8AAAD/AAAA/wAAAP8FAwL/cU0H//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//atAf+EWgb/fFUH/3xVB/98VQf/fFUH/3xV
B/98VQf/fFUH/3xVB/98VQf/fFUH/0AqCP8AAAD/AAAA/wAAAP8XDgT/ZkUH/3xVB/98VQf/fFUH/3xV
B/98VQf/fFUH/3xVB/98VQf/fFUH/3xVB/98VQf/fFUH/5mTkP/+/v7//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6h0Bf9BKwf/Ri8G/0Yv
Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/zMhBv8AAAD/AAAA/wAAAP8iFwT/Ri8G/0Yv
Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv8fFQT/AAAA/wAAAP8AAAD/AAAA/zAoJP/v7u7/////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2lIB/8AAAD/AAAA/wAA
AP85Jgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+OYgb/FAwD/wAAAP8BAQD/OSYG/8TA
v////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/21L
B/8AAAD/AAAA/wAAAP8zIgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/bUsH/w0J
A/9RNgb/6aQC/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/3JOB/8AAAD/AAAA/wAAAP8uHgX/+K4B//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH/+a4B/55tBf/6sAH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/3ZQB/8AAAD/AAAA/wAAAP8nGgX/7aYC//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/3NOB/8AAAD/AAAA/wAAAP8gFQT/5KAC//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////////////////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/29MB/8AAAD/AAAA/wAA
AP8NCQL/bEoH//mvAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB////
/////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2pI
B/8AAAD/AAAA/wAAAP8AAAD/CwcD/655Bf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/3xVBv9MMwb/VzsH/2REB/9vTAf/jWEG//SsAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/mjgH/ukgB/7pQG//oxbP//////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+6SQH/sjwB/7I8Af+6URz//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH/////////
/////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8
Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8
Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH/////////
/////////////7ZFDf+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//SmAf+yPAH/sjwB/7I8
Af+2Rg7//////////////////////8JlN/+yPAH/sjwB/7I8Af/IXgH/9aYB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/9aYB/8hf
Af+yPAH/sjwB/7I8Af/DZzn//////////////////////+Cvl/+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/gsZn///////////////////////79/f/FbUH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/8ZuQv///v7/////////////////////////
///36+X/xm5C/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/wGAw//fq5P//////////////
//////////////////////////7+/+CwmP/CZTf/tUQM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/tUQM/8NmOP/eq5H//fr4////
///////////////////////7////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////v////f////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////97///+V////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////5P///8e////8f//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////8P//
/xwAAAAA////Qf////H/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////w////QQAAAAAAAAAAAAAAAP///x7///+V////4P////v/////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////7////3////5T///8dAAAAAAAAAADAAAAAAAPxBIAAAAAAAfEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBIAAAAAAAfEEwAAAAAAD8QQoAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zX////D////9v//////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////b////C////NAAAAAD///81/////P////z/////////////
///////////////////DwL//q6el//z7+///////////////////////////////////////////////
///////////////////////////////////w7+//4uDf//////z////8////NP///8P////8////////
/////////////////////////////+bl5P9dVlP/NjAs/3Vwbf/k4+L/////////////////////////
////////////////////////////////////////paGf/zMuLP9BPDn/8fDw//////z////C////9v//
//////////////////////////////////////////////////+1srD/PTg2/yIeHP99eHX/+fn4////
////////////////////////////////////////+Pj3/2xmY/8KCAf/AAAA/wAAAP8+Ojf/uLSz////
//b////////////////////////////////////////////////////////////////x8PD/WFNQ/wMC
Av9CPTr/1dPS/////////////////////////////////+3s7P9MRkP/AQAA/wAAAP8AAAD/BgUE/z45
N/+Be3j//v7+////////////////////////////////////////////////////////////////////
///8/Pz/Z2Jf/wEAAP8rJyX/x8XD///////////////////////08/P/R0E+/wAAAP8AAAD/CQcG/1FM
Sf+zr63//v7+/////////////////////////////v39//Lf1f/mwK3/5b6q/+W+qv/lvqr/5b6q/+W+
qv/lvqr/5b6q/+W+qv/guqX/RTYu/wAAAP8sIx7/4d3b/////////////////2BbWP8AAAD/AAAA/zgz
Mf+vq6n///////////////////////////////////////Le1P/BYTL/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+TMgP/EwgC/wAAAP9ONyv///////////+inpz/CAcG/wMC
Av9fWlf/8vHx///////////////////////////////////////79PH/u1Mf/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9PHgX/AAAA/wsGAv+7ggT/+rAB/0As
BP8DAgH/bEsG//qwAf/8sQH//LIE//3AMf/+7ML//////////////////////96skv+yPAH/sjwB/8lh
Af/iiQH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/6pnBP8IBAH/AAAA/2NE
Bf+1fwT/BQMB/1c8Bf/6sAH//LEB//yxAf/8sQH//LEB//y2Ev//+e3/////////////////z4Zi/7I8
Af+yPAH/+KsB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+7AB/zgm
BP8AAAD/LR4E/3NQBf8sHgP/6KMC//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7ptv//////////////
///Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH/XD8E/wAAAP8GAwH/NSMG/5JlBf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq////
/////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf96VAX/AAAA/wAAAP8uHwT/9awB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/SkwP/QywI/0Qt
B/9ELQf/RC0H/0QtB/9ELQf/RC0H/zkmB/8AAAD/AAAA/zEgBf9ELQf/RC0H/0QtB/9ELQf/RC0H/zQi
Bf8uHwP/Lh8D/0Q4KP/8+/v////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/k2UF/wAAAP8AAAD/Z0cF//yxAf/8sQH//LEB//yx
Af/8sQH/g1sF/wcFAf8tHwP/s591/////////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+ZagX/AAAA/wAAAP9gQQT//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/gVgF/96bAv/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/51sBf8AAAD/AAAA/1c7
BP/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7lqv/////////////////Mflf/sjwB/7I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/mGkF/wAA
AP8AAAD/OygE/+KeAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq/////////////////8x+
V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+SZQX/BAMC/xUNA/8nGgT/jWEF//yxAf/8sQH//LEB//yxAf/8sQH//LEB//WnAf/otHn//vz7////
////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/+WgAv/QkgP/6KMC//uwAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/vk4B/7I8
Af/YnH7////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af+yPAH/sjwB/8x+V////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/7I8Af+yPAH/zH5X////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/sjwB/7I8Af/Mflf////////////Mflf/sjwB/7I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/8x+V////////////9SRcP+yPAH/sjwB//Cf
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/8J4B/7I8Af+yPAH/1JJx////////////58Gu/7I8
Af+yPAH/uUcB/8piAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tj
Af/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8piAf+5RgH/sjwB/7I8Af/nwq//////////
/////v7/yXVM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/yXZN////
///////////////////9+/r/2Z+B/79cK/+zPgT/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+zPgT/v1wr/9qg
g//9+/r////////////////2////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////9v///8T////8////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////z////D////N/////z////8////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////8/////P///zUAAAAA////N////8X////3////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////9v///8T///82AAAAAIAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABKAAAABgA
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////+r////9P////f////3////9///
//f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9///
//T///+q////Dv///6z////5//////////////////////////96dHH/fnp3/9vZ2P//////////////
////////////////////////////////////////oZ2c/6WioP/////5////qv////X/////////////
///////////////////+/v7/nJmX/zUxLv94dHL/8fDw/////////////////////////////////+no
6P9jXlz/BQQE/xcWFf+Sjoz//f399f////r//////////////////////////////////////////93b
2v9DPz3/Lysq/7+8u///////////////////////2NbV/zUxMP8AAAD/AQAA/zMwLv99eXf/7ezs+v//
//r////////////////////////////////////////////////u7e3/Ojc1/xoYF/+/vLv/////////
///o5+b/NTEw/wAAAP8vLCv/mZaU//v6+v//////////+v////r9+vn/1pZ3/7pQG/+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/jDED/wsFAf8sGA//+fn4//////9nY2H/AQAA/2JeW//t7Oz/////////
////////////+v////rWl3j/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ga
A/8AAAD/iV8E/8iMA/8PCQH/bk0F//uwAf/8sQH//Loe//7ptv//////////+v////q6Txr/sjwB/+uW
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6p1BP8BAAD/Qy4D/3ZSBP9ONQP/+a4B//yx
Af/8sQH//LEB//y6Hv//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//KqAv8XDwL/DwoC/z8rBf/RkwP//LEB//yxAf/8sQH//LEB//yxAf//////////+v//
//qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/ZlwL/tX4D/7V+A/+1fgP/tX4D/7V+A/8uHwP/AAAA/0gw
BP+1fgP/tX4D/7V+A/+1fgP/tX4D/7V+A//o5ub/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx
Af+yfAP/m2wD/5tsA/+bbAP/m2wD/5tsA/80IwP/AAAA/2FCA/+bbAP/m2wD/5tsA/94UwT/BQMB/xgQ
Av+urKr/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af9FMAP/AAAA/4BZBP/8sQH//LEB//yxAf/8sQH/gVoE/8OJA///////////+v////qyPAH/sjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf9FMAP/AAAA/3dTBP/8sQH//LEB//yx
Af/8sQH//LEB//yxAf//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf9FMAP/AAAA/y4gA//upwL//LEB//yxAf/8sQH//LEB//yxAf//////////+v//
//qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+mcwT/onAE/7mB
A//8sQH//LEB//yxAf/8sQH//LEB/8NYAf/Eaj3/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8
Af+yPAH/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8Af+yPAH/////+v////qyPAH/sjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB/7I8Af+yPAH/////+v////q6Txr/sjwB/+uXAf/8sQH//LEB//yxAf/8sQH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/65YB/7I8Af+6UBv/////+v//
//rVlXb/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/Wl3j/////+v////r9+vj/1ZV2/7pPGv+yPAH/sjwB/7I8
Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/uk8a/9aW
d//9+vn/////+v////X/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////9f///63////5////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////5////q////xD///+t////9f////f////3////9/////f////3////9///
//f////3////9/////f////3////9/////f////3////9/////f////3////9/////T///+s////DwAA
AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA
AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD///9p////3f///+P////j7u3t5ebk5Ob////j////4////+P////j////4///
/+P////j/Pz84/f29t7///9o////3f////////////////n4+P+GgoD/bGhm/97d3P//////////////
////////1dTT/0dEQ/9aWFb/5+bm3////+H//////////////////////////8jGxf82MzL/s7Gw////
////////ysjH/xwaGf8ZFxb/cG1s/9TT0ub////h7M/A/8+FYf/MfVb/zH1W/8x9Vv/MfVb/mF1A/xIM
CP/FuLH/6unp/yYkI/9jYF7/6ejo///////////h9eTc5bRABv/DWQT/y2MB/8tjAf/LYwH/y2MB/8tj
Af9GIwL/VDgC/31XA/9sSwL/+7AB//y1Dv/+57D/////4eS7peuyPAH/+7AB//yxAf/8sQH//LEB//yx
Af/8sQH/lmkD/xUOAf9XPAT/8aoB//yxAf/8sQH//cxZ/////+Hjt6LrsjwB//yxAf/8sQH/8qsB/5Fj
BP+RZAT/kWQE/3FOBf8AAAD/XUAE/5FkBP+RZAT/h10D/4xwL//+/v7h47ei67I8Af/8sQH//LEB//yx
Af/8sQH//LEB//yxAf++hgP/AAAA/6VzA//8sQH//LEB/4VcA/+ohjr/////4eO3ouuyPAH//LEB//yx
Af/8sQH//LEB//yxAf/8sQH/voYD/wAAAP+RZgP//LEB//yxAf/8sQH//ctW/////+Hjt6LrsjwB//yx
Af/8sQH//LEB//yxAf/8sQH//LEB/9eXAv9xTwP/onED//yxAf/8sQH//LEB/9R9KP/05Nvl47ei67I8
Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/47ei6+O3
ouuyPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/sjwB/+O3
ouvrz7/osjwB/9t+Af/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/230B/7I8
Af/s0MHo////4dSScP+1Qwn/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7VD
Cf/Uk3L/////4f///93/////////////////////////////////////////////////////////////
/////////////////93///9q////3f///+P////j////4////+P////j////4////+P////j////4///
/+P////j////4////93///9pAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
rEEAAKxBAACsQQAArEEAAKxBAACsQQ==
</value>
</data>
</root>

16
source/Program.cs Normal file
View File

@ -0,0 +1,16 @@
namespace SuzuMagnifier
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
Application.Run(new Form1());
}
}
}

View File

@ -0,0 +1,36 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<Title>Suzu Magnifier</Title>
<Version>0.1.0.145</Version>
<Product>Suzu Magnifier</Product>
<Company>Hi, I'm Ray</Company>
<Authors>Ray Lam</Authors>
<PackageIcon>icon-128.png</PackageIcon>
<ApplicationIcon>favicon.ico</ApplicationIcon>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>none</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
</PropertyGroup>
<ItemGroup>
<Content Include="favicon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="..\icon\icon-128.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Compile Update="Form1.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
</Project>

BIN
source/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB