feat: localize model parameters

This commit is contained in:
Myssal
2025-04-27 21:01:54 +07:00
parent 1cb8f077f5
commit ce5be30f1d
13 changed files with 850 additions and 328 deletions

View File

@@ -64,7 +64,7 @@ namespace SpineViewer.Controls
}
}
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件";
label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
}
private void button_AddFile_Click(object sender, EventArgs e)
@@ -75,7 +75,7 @@ namespace SpineViewer.Controls
foreach (var p in openFileDialog_Skel.FileNames)
listBox.Items.Add(Path.GetFullPath(p));
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件";
label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
}
private void listBox_DragEnter(object sender, DragEventArgs e)
@@ -92,7 +92,7 @@ namespace SpineViewer.Controls
return;
AddFromFileDrop((string[])e.Data.GetData(DataFormats.FileDrop));
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件";
label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
}
private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
@@ -110,7 +110,7 @@ namespace SpineViewer.Controls
var paths = new string[fileDropList.Count];
fileDropList.CopyTo(paths, 0);
AddFromFileDrop(paths);
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件";
label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
}
private void toolStripMenuItem_Remove_Click(object sender, EventArgs e)
@@ -119,7 +119,7 @@ namespace SpineViewer.Controls
listBox.SelectedIndices.CopyTo(indices, 0);
for (int i = indices.Length - 1; i >= 0; i--)
listBox.Items.RemoveAt(indices[i]);
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件";
label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
}
}
}

View File

@@ -142,4 +142,29 @@
<data name="label_Tip.Text" xml:space="preserve">
<value>0 file added.</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripMenuItem_SelectAll.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.Text" xml:space="preserve">
<value>Select all</value>
</data>
<data name="toolStripMenuItem_Paste.Text" xml:space="preserve">
<value>Paste</value>
</data>
<data name="toolStripMenuItem_Remove.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="openFileDialog_Skel.TrayLocation" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="openFileDialog_Skel.Filter" xml:space="preserve">
<value>All files (*.*)|*.*|Skel files (*.skel; *.json)|*.skel;*.json</value>
</data>
<data name="openFileDialog_Skel.Title" xml:space="preserve">
<value>Select .skel files</value>
</data>
</root>

View File

@@ -117,11 +117,102 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripStatusLabel_CountInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>206, 20</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripMenuItem_MoveTop.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_BatchAdd.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_ChangeView.Text" xml:space="preserve">
<value>Switch view</value>
</data>
<data name="toolStripMenuItem_MoveTop.Text" xml:space="preserve">
<value>Stick to top</value>
</data>
<data name="toolStripMenuItem_MoveUp.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_RemoveAll.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_Remove.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="toolStripMenuItem_CopyPreview.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_CopyPreview.Text" xml:space="preserve">
<value>Copy preview</value>
</data>
<data name="toolStripMenuItem_MoveBottom.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_LargeIconView.Text" xml:space="preserve">
<value>Large icon</value>
</data>
<data name="toolStripMenuItem_AddFromClipboard.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveUp.Text" xml:space="preserve">
<value>Up</value>
</data>
<data name="toolStripMenuItem_ListView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_DetailsView.Text" xml:space="preserve">
<value>More info</value>
</data>
<data name="toolStripMenuItem_LargeIconView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveBottom.Text" xml:space="preserve">
<value>Bottom</value>
</data>
<data name="toolStripStatusLabel_CountInfo.Text" xml:space="preserve">
<value>0 items selected, 0 items total</value>
</data>
<data name="toolStripMenuItem_SelectAll.Text" xml:space="preserve">
<value>Select all</value>
</data>
<data name="toolStripMenuItem_AddFromClipboard.Text" xml:space="preserve">
<value>Add to clipboard</value>
</data>
<data name="toolStripMenuItem_DetailsView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveTop.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_ChangeView.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_BatchAdd.Text" xml:space="preserve">
<value>Bulk add...</value>
</data>
<data name="toolStripMenuItem_RemoveAll.Text" xml:space="preserve">
<value>Remove all</value>
</data>
<data name="toolStripMenuItem_Add.Text" xml:space="preserve">
<value>Add to...</value>
</data>
<data name="toolStripMenuItem_ListView.Text" xml:space="preserve">
<value>List</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripStatusLabel_CountInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>206, 20</value>
</data>
<data name="toolStripMenuItem_Insert.Text" xml:space="preserve">
<value>Insert...</value>
</data>
<data name="toolStripMenuItem_Remove.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveDown.Text" xml:space="preserve">
<value>Down</value>
</data>
</root>

View File

@@ -12,6 +12,9 @@ using System.Diagnostics;
using NLog;
using SpineViewer.Utils;
using System.Drawing.Design;
using System.Reflection;
using System.Resources;
using SpineViewer.Utils.Localize;
namespace SpineViewer.Controls
{
@@ -30,13 +33,15 @@ namespace SpineViewer.Controls
/// <summary>
/// 要绑定的 Spine 列表控件
/// </summary>
[Category("自定义"), Description("相关联的 SpineListView")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDescription(typeof(Properties.Resources), "descAssociatedSpineListView")]
public SpineListView? SpineListView { get; set; }
/// <summary>
/// 属性信息面板
/// </summary>
[Category("自定义"), Description("用于显示画面属性的属性页")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDescription(typeof(Properties.Resources), "descDisplayImageProperties")]
public PropertyGrid? PropertyGrid
{
get => propertyGrid;
@@ -507,6 +512,7 @@ namespace SpineViewer.Controls
private void panel_RenderContainer_SizeChanged(object sender, EventArgs e)
{
if (renderWindow is null) return;
float parentW = panel_Render.Parent.Width;
@@ -785,37 +791,47 @@ namespace SpineViewer.Controls
[RefreshProperties(RefreshProperties.All)]
[TypeConverter(typeof(ResolutionConverter))]
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayResolution")]
public Size Resolution { get => PreviewPanel.Resolution; set => PreviewPanel.Resolution = value; }
[TypeConverter(typeof(PointFConverter))]
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayCenter")]
public PointF Center { get => PreviewPanel.Center; set => PreviewPanel.Center = value; }
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayZoom")]
public float Zoom { get => PreviewPanel.Zoom; set => PreviewPanel.Zoom = value; }
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayRotation")]
public float Rotation { get => PreviewPanel.Rotation; set => PreviewPanel.Rotation = value; }
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayFlipHorizontal")]
public bool FlipX { get => PreviewPanel.FlipX; set => PreviewPanel.FlipX = value; }
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayFlipVertical")]
public bool FlipY { get => PreviewPanel.FlipY; set => PreviewPanel.FlipY = value; }
[Category("[0] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayRenderSelected")]
public bool RenderSelectedOnly { get => PreviewPanel.RenderSelectedOnly; set => PreviewPanel.RenderSelectedOnly = value; }
[Category("[1] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayShowAxis")]
public bool ShowAxis { get => PreviewPanel.ShowAxis; set => PreviewPanel.ShowAxis = value; }
[Category("[1] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayMaximumFrameRate")]
public uint MaxFps { get => PreviewPanel.MaxFps; set => PreviewPanel.MaxFps = value; }
[Editor(typeof(SFMLColorEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(SFMLColorConverter))]
[Category("[1] "), DisplayName("")]
[LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayBackgroundColor")]
public SFML.Graphics.Color BackgroundColor { get => PreviewPanel.BackgroundColor; set => PreviewPanel.BackgroundColor = value; }
}
}

View File

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

View File

@@ -117,177 +117,178 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>17, 17</value>
</metadata>
</data>
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA8iMAAAJNU0Z0AUkBTAIBAQcB
AAGQAQABkAEAAR8BAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABfAMAATADAAEBAQABIAYAAV0+
AAMEAQUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/A1UB
sWQAA1gB7wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ay0BRbcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9cAANEAXgDAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/swAB/wMAAf8DAAH/AwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/AwAB
/zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf+vAAH/AwAB/wNRAaQnAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8IAANOAZcDAAH/AwAB/wMAAf8D
AAH/Ay4BSE8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+AAAxUBHQMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB
/wMAAf8DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/kAAMmATgDAAH/AwAB/wMAAf8r
AAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8DAAH/QwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/6wAB/wMAAf8D
AAH/KwAB/wMAAf8cAANCAfYDAAH/AwAB/wMAAf8DAAH/AwQBBTsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB
/+8AAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB
/wMAAf/vAAH/AwAB/wMAAf8nAAH/AwAB/ygAAwcBCQMAAf8DAAH/AwAB/wMAAf8DYAHjLwAB/wMAAf8D
AAH/SwAB/wMAAf8DAAH/7AADIAEtAwAB/wMAAf8nAAH/AwAB/zMAAf8DAAH/AwAB/wMAAf8DAAH/KwAB
/wMAAf8DAAH/SwAB/wMAAf8DAAH/8wAB/wMAAf8nAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8nAAH/AwAB
/wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/PAADPwFsAwAB/wMAAf8nAAH/AwAB/wMAAf9L
AAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8D
AAH/AwAB/5sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NAADCAEKAwAB/wMAAf8nAAH/AwAB
/zAAA10BzgMAAf8DAAH/AwAB/wMAAf8EAScAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/LwAB/wMAAf8D
AAH/AwAB/wMAAf8vAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8nAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/NwAB
/wMAAf8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8PAAH/AwAB/wMAAf8DFQEcLwAB/wMAAf8D
AAH/KwAB/wMAAf8cAAM9AWkDAAH/AwAB/wMAAf8DAAH/A0MBdjsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB
/5QAAwUBBgMAAf8DAAH/CwAB/wMAAf8DAAH/AxMBGjMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8D
AAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wcAAf8DAAH/AwAB
/wMbASYzAAH/AwAB/wMAAf8vAAH/AwAB/xMAAf8DAAH/AwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/SwAB
/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMdASgkAANZAe4DAAH/AwAB
/wMAAf8EAS8AAf8DAAH/CAADGAEhAwAB/wMAAf8DAAH/AwAB/wNcActPAAH/AwAB/wMAAf9LAAH/AwAB
/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/A2AB4wMAAf8DAAH/AwAB/wMAAf8DUAGfFwAB/wMAAf8D
AAH/AwAB/wMAAf83AAH/AwAB/wcAAf8DAAH/AwAB/wMAAf8DAAH/VwAB/wMAAf8DAAH/AwAB/wMqAUAD
KgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUAD
AAH/AwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/Ax0BKQQAAwIBAwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBwEJWAAD
WQHDAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/5wAAxIBFwMAAf8UAANKAYkDAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/AyEB+2cAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wNbAcXIAANGAYADWgG/Ay4BSFQAA1oBv3QAA0YBgANaAb8DWgG/A1oBvwNaAb8DWgG/A1oB
vwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DLgFIpwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADPQFpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/KAADGQEiAwAB/wMAAf8jAAH/AwAB/wMAAf8oAAM/AW0D
AAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
AAH/KwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADAwEEAwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/yQAA1YBtgMAAf8DAAH/AwAB
/wMAAf8kAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DPAH4IwAB/wMAAf8DAAH/NwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8D
AAH/AwAB/wMAAf8DAAH/IAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8gAAM1AfkDAAH/AwAB/xwAA1cB
8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB
/wMAAf8DAAH/AxIB/jMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wNZAbsYAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQGeGAADNQH5AwAB/wMAAf8c
AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1ABnRcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB
/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB
/wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8D
AAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8D
AAH/HAADVwHxAwAB/wMAAf8DEQEWBAEDAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8D
AAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8D
AAH/AwAB/wMAAf8jAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB
/wMAAf8DAAH/AwAB/wMAAf8QAANWAbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB
+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf83
AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wNWAbML
AAH/AwAB/wMAAf8DEgH+GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/Az0B
aAgAA2AB2wMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMzAVAIAANgAeMDAAH/AwAB/wMAAf8D
AAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMzAVIDAAH/AwAB/wMAAf8DAAH/AwAB
/wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB
/ycAAf8DAAH/A1YBsw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/DAAD
VAGrAwAB/wMAAf8DPQFoDAADJQE3AwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAzIB
TwMAAf8DAAH/AwAB/wMAAf8IAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB
/wMAAf8DAAH/AxIB/gMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB
/wMAAf8DAAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xAAAwwBDwMAAf8D
QgH2DAADVAGrAwAB/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8D
AAH/AwAB/wMAAf8EAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAA1oB6QMAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB
/0cAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMAAf8D
AAH/AwAB/wNdAc4DAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AyYB+gMAAf8DAAH/HAADVwHxAwAB
/wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB
/wMAAf8PAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8wAANUAasDAAH/AwAB/wM9AWgf
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFQHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB
/wMAAf8DEQEWJwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB
/w8AAf8DAAH/AwAB/08AAf8DAAH/AwAB/wMAAf80AANUAasDAAH/AwAB/wM9AWgjAAH/AwAB/wMAAf8D
AAH/AwAB/wMzAVAjAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFisAAf8DAAH/AwAB
/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB
/wMAAf8DAAH/AxIB/jAAA1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAf
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYkAANcAdkDAAH/AwAB/wMAAf83
AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf9HAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/ywAA1QBqwMAAf8DAAH/Az0BaBsAAf8DAAH/AwAB/wMAAf8DVwHxAwAB
/wMAAf8DMwFQGwAB/wMAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiMAAf8D
AAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8D
AAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xcAAf8DWAG4DAADVAGrAwAB
/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8DAAH/AwAB/wMAAf8E
AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAAzABSgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YB
sw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DEgH+DwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D
PQFoEwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAwkBDAMAAf8DAAH/AwAB/wMAAf8I
AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB/wMAAf8DAAH/AyQB/QMAAf8D
AAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8D
VgGzCwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB
/wM9AWgIAAM6AWADAAH/AwAB/wMAAf8DAAH/DAADVgG1AwAB/wMAAf8DMwFQCAADSwGMAwAB/wMAAf8D
AAH/AwAB/wwAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWDAADBwEJAwAB/wMAAf8DAAH/AwAB
/wMAAf8HAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB
/wMAAf8nAAH/AwAB/wNWAbMHAAH/AwAB/wMAAf8DAAH/IwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB
/wwAA1QBqwMAAf8DAAH/Az0BaAcAAf8DAAH/AwAB/wMAAf8DAAH/EAADVgG1AwAB/wMAAf8DMwFQBwAB
/wMAAf8DAAH/AwAB/wMAAf8QAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgsAAf8DAAH/AwAB
/wMAAf8DAAH/A08BmQsAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB
/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DEgH+AwAB
/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8DAAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB
/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWBwAB
/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB
/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTQH0GAADVgG1AwAB/wMAAf8DAAH/AwAB
/wMAAf8DAAH/A10B7BgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DYQHrAwAB/wMAAf8DAAH/AwAB
/wNNAfQXAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB
/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D
AAH/AwAB/wMAAf8DQwF3HAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8DMAFMHAADNQH5AwAB/wMAAf8c
AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8fAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DKgFAAyoB
QAMqAUADAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DKgFAAyoBQAMqAUADAAH/AwAB/wMAAf8nAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwYBCCAAA1YBtgMAAf8DAAH/AwAB/wMAAf8DAgEDIAAD
NQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB
/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQAA0wBkAMAAf8DAAH/AwAB/wMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/ygAAzYBWAMAAf8DAAH/IwAB
/wMAAf8DAAH/Aw0BESQAA1UBrQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8D
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8sAANaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DFQEcGAAD
TwGZA1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvxgAA04BlzQAA0sBjTAAAwwBDygAA1ABmjAAAygB
PEAAAzgBWwNaAb8DWgG/A1oBvwMwAUwYAANEAXoDWgG/A1oBvwNaAb8DIAEtHAABQgFNAT4HAAE+AwAB
KAMAAXwDAAEwAwABAQEAAQEGAAEDFgAD/wEAAf8B4AEHAf8B+AE/Av8B4AIAAXgEAAH/AcABAQH/AfgB
HwL/AcACAAF4BAAB/wGDAeAB/wH5AQcC/wHAAgABOAQAAf8BjwH4AX8B+QGBAv8BxwH/Af4BOAQAAv8B
/AE/AfkB4AL/AccB/wH+ATgEAAL/Af4BHwH5AfgBPwH/AccB/wH+ATgEAAP/AR8B+QH8AQ8B/wHHAf8B
/gE4BAAD/wGPAfkB/wEHAf8BxwH/Af4BOAQAA/8BjwH5Af8BgQH/AccB/wH+ATgEAAP/AY8B+QH/AeAB
/wHHAf8B/gE4BAAD/wHPAfkB/wH4AX8BxwH/Af4BOAQAA/8BzwH5Af8B/AF/AccB/wH+ATgEAAP/Ac8B
+QH/AfgBfwHHAf8B/gE4BAAB8AEPAf8BjwH5Af8B4AF/AccB/wH+ATgEAAHgAQcB/wGPAfkB/wHBAf8B
xwH/Af4BOAQAAeABBwH/AY8B+QH/AQcB/wHHAf8B/gE4BAAB4wGHAf8BHwH5AfwBDwH/AccB/wH+ATgE
AAHjAQ8B/wEfAfkB+AE/Af8BxwH/Af4BOAQAAeIBHwH+AT8B+QHgAv8BxwH/Af4BOAQAAeABDwH4AT8B
+QGBAv8BxwH/Af4BOAQAAeABAwHgAf8B+QEHAv8BwAIAATgEAAHwAYABAQH/AfgBDwL/AcACAAF4BAAB
8wHgAQcB/wH4AT8C/wHgAgABeAQAAf8B/gE/Af8B/gP/AfgBAAEBAfgEAAHwAQcBwAEPAR8B/AF/AeMB
/AF/AeMB/wHwAR4BAwLwAQcBwAEOAQ8B+AE/AeMB+AEfAeMB/wHgAQwBAQLwAX8B/gEOAQcB+AEfAeMB
+AEPAeMB/wHgAQwBAQLwAT8B/AEOAQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB
+AEBAeMB/wHjAYwBcQHwAfEBDwHwAY4BEAF4AUEB4wH4AWAB4wH/AeMBjAFxAfAB8QGHAeEBjgEYATgB
YAHjAfgBcAEjAf8B4wGMAXEB8AHxAsMBjgEcARgBcAFjAfgBfAEDAf8B4wGMAXEB8AHzAeEBhwGOAR8B
CAF8ASMB+AF+AQMB/wHjAYwBcQHwAf8B8AEPAf4BHwGAAX4BAwH4AX8BgwH/AeMBjAFxAfAB/wH4AR8B
/gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfwBPwH+AR8B4AF/AYMB+AF/AeMB/wHjAYwBcQHwAf8B
+AEfAf4BHwHAAX8BAwH4AX8BwwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGDAf8B4wGMAXEB
8AHzAeEBhwHOAR8BCAF8ASMB+AF+AQMB/wHjAYwBcQHwAfECwwGOAR4BGAFwAWMB+AF8AQMB/wHjAYwB
cQHwAfEBhwHhAY4BGAE4AWAB4wH4AXABIwH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAFjAf8B
4wGMAXEC8AEfAfgBDgEAAfgBAwHjAfgBQQHjAf8B4wGMAXEC8AE/AfwBDgEBAfgBBwHjAfgBAwHjAf8B
4wGMAXEC8AF/Af4BDgEDAfgBDwHjAfgBDwHjAf8B4AEMAQEC8AEHAeABDgEHAfgBHwHjAfgBHwHjAf8B
4AEMAQEC8AEHAcABDwEfAfwBfwHjAfwBPwHjAf8B8AEeAQMB8AH4AQcB4AEfAb8B/gH/AfcB/gH/AfcB
/wH4AT8BBwHwCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0
IwAAAk1TRnQBSQFMAgEBBwEAAZABAAGYAQABHwEAARgBAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAF8
AwABMAMAAQEBAAEgBgABXT4AAwQBBQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MA
Af8DAAH/AwAB/wMAAf8DVQGxZAADWAHvAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DLQFFtwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/1wAA0QBeAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf+zAAH/AwAB/wMAAf8DAAH/AwAB/xcA
Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8HAAH/AwAB/wMAAf8DAAH/AwAB/1cAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/68AAf8DAAH/A1EBpCcAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wgA
A04BlwMAAf8DAAH/AwAB/wMAAf8DLgFITwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/4AADFQEdAwAB/wMA
Af8DAAH/LwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+QA
AyYBOAMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/
AwAB/wMAAf/rAAH/AwAB/wMAAf8rAAH/AwAB/xwAA0IB9gMAAf8DAAH/AwAB/wMAAf8DBAEFOwAB/wMA
Af8DAAH/SwAB/wMAAf8DAAH/7wAB/wMAAf8DAAH/JwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zcA
Af8DAAH/AwAB/0sAAf8DAAH/AwAB/+8AAf8DAAH/AwAB/ycAAf8DAAH/KAADBwEJAwAB/wMAAf8DAAH/
AwAB/wNgAeMvAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/sAAMgAS0DAAH/AwAB/ycAAf8DAAH/MwAB/wMA
Af8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMA
Af8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf88AAM/AWwDAAH/
AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/
JwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf80AAMI
AQoDAAH/AwAB/ycAAf8DAAH/MAADXQHOAwAB/wMAAf8DAAH/AwAB/wQBJwAB/wMAAf8DAAH/SwAB/wMA
Af8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8DAAH/
JwAB/wMAAf8vAAH/AwAB/wMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMA
Af8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/w8AAf8DAAH/
AwAB/wMVARwvAAH/AwAB/wMAAf8rAAH/AwAB/xwAAz0BaQMAAf8DAAH/AwAB/wMAAf8DQwF2OwAB/wMA
Af8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8LAAH/AwAB/wMAAf8DEwEaMwAB/wMAAf8DAAH/
KwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA
Af8DAAH/BwAB/wMAAf8DAAH/AxsBJjMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMA
Af9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
Ax0BKCQAA1kB7gMAAf8DAAH/AwAB/wQBLwAB/wMAAf8IAAMYASEDAAH/AwAB/wMAAf8DAAH/A1wBy08A
Af8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8DAAH/AwAB/wMAAf8DYAHjAwAB/wMAAf8DAAH/
AwAB/wNQAZ8XAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/
AwAB/wMAAf8DAAH/AyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFA
AyoBQAMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wMAAf+bAAH/AwAB/wMAAf8DHQEpBAADAgEDAwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMHAQlYAANZAcMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/nAADEgEXAwAB/xQA
A0oBiQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/wMAAf8DIQH7
ZwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1sBxcgAA0YBgANaAb8DLgFIVAADWgG/dAADRgGAA1oBvwNa
Ab8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwMu
AUinAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAM9AWkDAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8vAAH/AwAB/wMAAf8oAAMZASIDAAH/AwAB/yMA
Af8DAAH/AwAB/ygAAz8BbQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAMD
AQQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/
JAADVgG2AwAB/wMAAf8DAAH/AwAB/yQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wM8
AfgjAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA
Af8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/wMAAf8gAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/yAA
AzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HwAB/wMAAf8DAAH/NwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGr
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBuxgAA1YBtQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNR
AZ4YAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUAGdFwAB/wMA
Af8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMA
Af8DVgGzAwAB/wMAAf8DAAH/AwAB/ysAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/
AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMA
Af8DAAH/FAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYEAQMAAf8DAAH/AwAB/wMAAf8DAAH/
EwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/
JwAB/wMAAf8DVgGzBwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/wMAAf8HAAH/AwAB/wMAAf8MAANU
AasDAAH/AwAB/wM9AWgHAAH/AwAB/wMAAf8DAAH/AwAB/xAAA1YBtQMAAf8DAAH/AzMBUAcAAf8DAAH/
AwAB/wMAAf8DAAH/EAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYLAAH/AwAB/wMAAf8DAAH/
AwAB/w8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/
AwAB/ycAAf8DAAH/A1YBswsAAf8DAAH/AwAB/wMSAf4bAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/
DAADVAGrAwAB/wMAAf8DPQFoCAADYAHbAwAB/wMAAf8DAAH/AwAB/wwAA1YBtQMAAf8DAAH/AzMBUAgA
A2AB4wMAAf8DAAH/AwAB/wMAAf8MAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgwAAzMBUgMA
Af8DAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA
Af8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMA
Af8PAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgMAAMlATcDAAH/AwAB/wMAAf8DAAH/CAADVgG1
AwAB/wMAAf8DMwFQDAADMgFPAwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA
Af8DEQEWFwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMA
Af8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA
Af8DAAH/EAADDAEPAwAB/wNCAfYMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1
AwAB/wMAAf8DMwFQFwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEW
GAADWgHpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA
Af8DAAH/DwAB/wMAAf8DAAH/RwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/AwAB/wMAAf8sAANUAasDAAH/
AwAB/wM9AWgbAAH/AwAB/wMAAf8DAAH/A10BzgMAAf8DAAH/AzMBUBsAAf8DAAH/AwAB/wMAAf8DJgH6
AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYjAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A
Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zAA
A1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAfAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYnAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA
Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/TwAB/wMAAf8DAAH/AwAB/zQAA1QBqwMAAf8DAAH/
Az0BaCMAAf8DAAH/AwAB/wMAAf8DAAH/AzMBUCMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB/wMA
Af8DEQEWKwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA
Af8DAAH/SwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MAADVAGrAwAB/wMAAf8DPQFoHwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AzMBUB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiQA
A1wB2QMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/
AwAB/0cAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMA
Af8DAAH/AwAB/wNXAfEDAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/HAADVwHx
AwAB/wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/
AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/
FwAB/wNYAbgMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1AwAB/wMAAf8DMwFQ
FwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWGAADMAFKAwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA
Af8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMSAf4PAAH/AwAB/wMA
Af8MAANUAasDAAH/AwAB/wM9AWgTAAH/AwAB/wMAAf8DAAH/CAADVgG1AwAB/wMAAf8DMwFQDAADCQEM
AwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWFwAB/wMAAf8DAAH/
AwAB/wMAAf8DJAH9AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/
AwAB/wMAAf8nAAH/AwAB/wNWAbMLAAH/AwAB/wMAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/
AwAB/wwAA1QBqwMAAf8DAAH/Az0BaAgAAzoBYAMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMz
AVAIAANLAYwDAAH/AwAB/wMAAf8DAAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMH
AQkDAAH/AwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA
Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8DAAH/AwAB/wMAAf8jAAH/AwAB/wMA
Af8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB/wMAAf8DAAH/AwAB/wMAAf8QAANW
AbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA
Af8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8DTwGZCwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA
Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzAwAB/wMAAf8DAAH/AwAB/ysA
Af8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/
AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMAAf8DAAH/FAADNQH5AwAB/wMAAf8cAANX
AfEDAAH/AwAB/wMRARYHAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A
Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNNAfQYAANW
AbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHsGAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wNh
AesDAAH/AwAB/wMAAf8DAAH/A00B9BcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA
Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMA
Af8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wNDAXccAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMw
AUwcAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcA
Af8DAAH/AwAB/wMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMqAUADKgFAAyoBQAMA
Af8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DBgEIIAADVgG2AwAB/wMA
Af8DAAH/AwAB/wMCAQMgAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/IwAB/wMA
Af8DAAH/NwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADTAGQ
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/
KAADNgFYAwAB/wMAAf8jAAH/AwAB/wMAAf8DDQERJAADVQGtAwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ywAA1oBvwNaAb8DWgG/A1oBvwNa
Ab8DWgG/A1oBvwMVARwYAANPAZkDWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/GAADTgGXNAADSwGN
MAADDAEPKAADUAGaMAADKAE8QAADOAFbA1oBvwNaAb8DWgG/AzABTBgAA0QBegNaAb8DWgG/A1oBvwMg
AS0cAAFCAU0BPgcAAT4DAAEoAwABfAMAATADAAEBAQABAQYAAQMWAAP/AQAB/wHgAQcB/wH4AT8C/wHg
AgABeAQAAf8BwAEBAf8B+AEfAv8BwAIAAXgEAAH/AYMB4AH/AfkBBwL/AcACAAE4BAAB/wGPAfgBfwH5
AYEC/wHHAf8B/gE4BAAC/wH8AT8B+QHgAv8BxwH/Af4BOAQAAv8B/gEfAfkB+AE/Af8BxwH/Af4BOAQA
A/8BHwH5AfwBDwH/AccB/wH+ATgEAAP/AY8B+QH/AQcB/wHHAf8B/gE4BAAD/wGPAfkB/wGBAf8BxwH/
Af4BOAQAA/8BjwH5Af8B4AH/AccB/wH+ATgEAAP/Ac8B+QH/AfgBfwHHAf8B/gE4BAAD/wHPAfkB/wH8
AX8BxwH/Af4BOAQAA/8BzwH5Af8B+AF/AccB/wH+ATgEAAHwAQ8B/wGPAfkB/wHgAX8BxwH/Af4BOAQA
AeABBwH/AY8B+QH/AcEB/wHHAf8B/gE4BAAB4AEHAf8BjwH5Af8BBwH/AccB/wH+ATgEAAHjAYcB/wEf
AfkB/AEPAf8BxwH/Af4BOAQAAeMBDwH/AR8B+QH4AT8B/wHHAf8B/gE4BAAB4gEfAf4BPwH5AeAC/wHH
Af8B/gE4BAAB4AEPAfgBPwH5AYEC/wHHAf8B/gE4BAAB4AEDAeAB/wH5AQcC/wHAAgABOAQAAfABgAEB
Af8B+AEPAv8BwAIAAXgEAAHzAeABBwH/AfgBPwL/AeACAAF4BAAB/wH+AT8B/wH+A/8B+AEAAQEB+AQA
AfABBwHAAQ8BHwH8AX8B4wH8AX8B4wH/AfABHgEDAvABBwHAAQ4BDwH4AT8B4wH4AR8B4wH/AeABDAEB
AvABfwH+AQ4BBwH4AR8B4wH4AQ8B4wH/AeABDAEBAvABPwH8AQ4BAQH4AQcB4wH4AQMB4wH/AeMBjAFx
AvABHwH4AQ4BAAH4AQMB4wH4AQEB4wH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAHjAf8B4wGM
AXEB8AHxAYcB4QGOARgBOAFgAeMB+AFwASMB/wHjAYwBcQHwAfECwwGOARwBGAFwAWMB+AF8AQMB/wHj
AYwBcQHwAfMB4QGHAY4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGD
Af8B4wGMAXEB8AH/AfgBHwH+AR8BwAF/AQMB+AF/AcMB/wHjAYwBcQHwAf8B/AE/Af4BHwHgAX8BgwH4
AX8B4wH/AeMBjAFxAfAB/wH4AR8B/gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfABDwH+AR8BgAF+
AQMB+AF/AYMB/wHjAYwBcQHwAfMB4QGHAc4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB8QLDAY4BHgEY
AXABYwH4AXwBAwH/AeMBjAFxAfAB8QGHAeEBjgEYATgBYAHjAfgBcAEjAf8B4wGMAXEB8AHxAQ8B8AGO
ARABeAFBAeMB+AFgAWMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB+AFBAeMB/wHjAYwBcQLwAT8B/AEO
AQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAX8B/gEOAQMB+AEPAeMB+AEPAeMB/wHgAQwBAQLwAQcB4AEO
AQcB+AEfAeMB+AEfAeMB/wHgAQwBAQLwAQcBwAEPAR8B/AF/AeMB/AE/AeMB/wHwAR4BAwHwAfgBBwHg
AR8BvwH+Af8B9wH+Af8B9wH/AfgBPwEHAfAWAAs=
</value>
</data>
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<data name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>165, 17</value>
</metadata>
<metadata name="spinePreviewFullScreenForm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
</data>
<data name="spinePreviewFullScreenForm.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>307, 18</value>
</metadata>
<metadata name="wallpaperForm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
</data>
<data name="wallpaperForm.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>618, 18</value>
</metadata>
</data>
</root>

View File

@@ -117,38 +117,48 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="tabPage_BaseInfo.Text" xml:space="preserve">
<value>Basic Information</value>
<data name="tabPage_Animation.Text" xml:space="preserve">
<value>Animation</value>
</data>
<data name="toolStripMenuItem_RemoveAnimation.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="tabPage_Render.Text" xml:space="preserve">
<value>Render</value>
</data>
<data name="tabPage_Slot.Text" xml:space="preserve">
<value>Slot</value>
</data>
<data name="tabPage_Skin.Text" xml:space="preserve">
<value>Skin</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tabPage_Render.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value>
</data>
<data name="tabPage_Render.Text" xml:space="preserve">
<value>Render</value>
<data name="tabPage_Transform.Text" xml:space="preserve">
<value>Transform</value>
</data>
<data name="tabPage_Transform.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value>
</data>
<data name="tabPage_Transform.Text" xml:space="preserve">
<value>Transform</value>
</data>
<data name="tabPage_Skin.Text" xml:space="preserve">
<value>Skin</value>
</data>
<data name="tabPage_Slot.Text" xml:space="preserve">
<value>Slot</value>
</data>
<data name="tabPage_Animation.Text" xml:space="preserve">
<value>Animation</value>
</data>
<data name="tabPage_Debug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="toolStripMenuItem_ReloadSkins.Text" xml:space="preserve">
<value>Reload skin</value>
</data>
<data name="propertyGrid_Render.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripMenuItem_RemoveAnimation.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="propertyGrid_Transform.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value>
</data>
<data name="tabPage_BaseInfo.Text" xml:space="preserve">
<value>Basic Information</value>
</data>
</root>

View File

@@ -6,6 +6,7 @@ using SpineViewer.Natives;
using SpineViewer.Utils;
using SpineViewer.Spine.SpineExporter;
using System.Configuration;
using SpineViewer.Utils.Localize;
namespace SpineViewer
{

View File

@@ -1,5 +1,6 @@
using NLog;
using SpineViewer.Utils;
using SpineViewer.Utils.Localize;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
@@ -46,13 +47,11 @@ namespace SpineViewer
InitializeLogConfiguration();
logger.Info("Program Started");
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
LocalizeConfiguration.SetCulture();
logger.Info($"Culture info: {CultureInfo.CurrentCulture}");
try
{
Application.Run(new SpineViewerForm() { Text = $"SpineViewer - v{Version}"});

View File

@@ -60,6 +60,159 @@ namespace SpineViewer.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to 自定义.
/// </summary>
internal static string categoryCustom {
get {
return ResourceManager.GetString("categoryCustom", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [0] 导出.
/// </summary>
internal static string categoryExport {
get {
return ResourceManager.GetString("categoryExport", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [1] 预览.
/// </summary>
internal static string categoryPreview {
get {
return ResourceManager.GetString("categoryPreview", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 相关联的 SpineListView.
/// </summary>
internal static string descAssociatedSpineListView {
get {
return ResourceManager.GetString("descAssociatedSpineListView", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 用于显示画面属性的属性页.
/// </summary>
internal static string descDisplayImageProperties {
get {
return ResourceManager.GetString("descDisplayImageProperties", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 背景颜色.
/// </summary>
internal static string displayBackgroundColor {
get {
return ResourceManager.GetString("displayBackgroundColor", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 画面中心点.
/// </summary>
internal static string displayCenter {
get {
return ResourceManager.GetString("displayCenter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 水平翻转.
/// </summary>
internal static string displayFlipHorizontal {
get {
return ResourceManager.GetString("displayFlipHorizontal", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 垂直翻转.
/// </summary>
internal static string displayFlipVertical {
get {
return ResourceManager.GetString("displayFlipVertical", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 最大帧率.
/// </summary>
internal static string displayMaximumFrameRate {
get {
return ResourceManager.GetString("displayMaximumFrameRate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 仅渲染选中.
/// </summary>
internal static string displayRenderSelected {
get {
return ResourceManager.GetString("displayRenderSelected", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 分辨率.
/// </summary>
internal static string displayResolution {
get {
return ResourceManager.GetString("displayResolution", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 旋转.
/// </summary>
internal static string displayRotation {
get {
return ResourceManager.GetString("displayRotation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 显示坐标轴.
/// </summary>
internal static string displayShowAxis {
get {
return ResourceManager.GetString("displayShowAxis", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 缩放.
/// </summary>
internal static string displayZoom {
get {
return ResourceManager.GetString("displayZoom", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 已选择 .
/// </summary>
internal static string itemCountPrefix {
get {
return ResourceManager.GetString("itemCountPrefix", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 个文件.
/// </summary>
internal static string itemCountSuffix {
get {
return ResourceManager.GetString("itemCountSuffix", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 语言已设为英语。立即重启应用程序吗?.
/// </summary>

View File

@@ -117,6 +117,58 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="categoryCustom" xml:space="preserve">
<value>Custom</value>
</data>
<data name="categoryExport" xml:space="preserve">
<value>[0] Export</value>
</data>
<data name="categoryPreview" xml:space="preserve">
<value>[1] Preview</value>
</data>
<data name="descAssociatedSpineListView" xml:space="preserve">
<value>Associated SpineListView</value>
</data>
<data name="descDisplayImageProperties" xml:space="preserve">
<value>Property page for displaying image properties</value>
</data>
<data name="displayBackgroundColor" xml:space="preserve">
<value>Background color</value>
</data>
<data name="displayCenter" xml:space="preserve">
<value>Center point of screen</value>
</data>
<data name="displayFlipHorizontal" xml:space="preserve">
<value>Flip horizontal</value>
</data>
<data name="displayFlipVertical" xml:space="preserve">
<value>Flip vertical</value>
</data>
<data name="displayMaximumFrameRate" xml:space="preserve">
<value>Maximum frame rate</value>
</data>
<data name="displayRenderSelected" xml:space="preserve">
<value>Render selected only</value>
</data>
<data name="displayResolution" xml:space="preserve">
<value>Resolution</value>
</data>
<data name="displayRotation" xml:space="preserve">
<value>Rotation</value>
</data>
<data name="displayShowAxis" xml:space="preserve">
<value>Show axis</value>
</data>
<data name="displayZoom" xml:space="preserve">
<value>Zoom</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="itemCountPrefix" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="itemCountSuffix" xml:space="preserve">
<value> item(s) selected.</value>
</data>
<data name="restartPrompt" xml:space="preserve">
<value>Language set to Simplified Chinese. Restart application now?</value>
</data>

View File

@@ -117,6 +117,57 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="categoryCustom" xml:space="preserve">
<value>自定义</value>
</data>
<data name="categoryExport" xml:space="preserve">
<value>[0] 导出</value>
</data>
<data name="categoryPreview" xml:space="preserve">
<value>[1] 预览</value>
</data>
<data name="descAssociatedSpineListView" xml:space="preserve">
<value>相关联的 SpineListView</value>
</data>
<data name="descDisplayImageProperties" xml:space="preserve">
<value>用于显示画面属性的属性页</value>
</data>
<data name="displayBackgroundColor" xml:space="preserve">
<value>背景颜色</value>
</data>
<data name="displayCenter" xml:space="preserve">
<value>画面中心点</value>
</data>
<data name="displayFlipHorizontal" xml:space="preserve">
<value>水平翻转</value>
</data>
<data name="displayFlipVertical" xml:space="preserve">
<value>垂直翻转</value>
</data>
<data name="displayMaximumFrameRate" xml:space="preserve">
<value>最大帧率</value>
</data>
<data name="displayRenderSelected" xml:space="preserve">
<value>仅渲染选中</value>
</data>
<data name="displayResolution" xml:space="preserve">
<value>分辨率</value>
</data>
<data name="displayRotation" xml:space="preserve">
<value>旋转</value>
</data>
<data name="displayShowAxis" xml:space="preserve">
<value>显示坐标轴</value>
</data>
<data name="displayZoom" xml:space="preserve">
<value>缩放</value>
</data>
<data name="itemCountPrefix" xml:space="preserve">
<value>已选择 </value>
</data>
<data name="itemCountSuffix" xml:space="preserve">
<value> 个文件</value>
</data>
<data name="restartPrompt" xml:space="preserve">
<value>语言已设为英语。立即重启应用程序吗?</value>
</data>

View File

@@ -49,6 +49,9 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Controls\SpinePreviewPanel.resx">
<Generator></Generator>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>