From 6f273008c9e01182d3dd7019b4602bbc1938443c Mon Sep 17 00:00:00 2001 From: Miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sun, 7 May 2023 16:29:37 +0200 Subject: [PATCH] Manage Pcks feature (#18) * Add Console Installer Form * Improved FTPClient constructor * Add FTPClient.SetTimeoutLimit and made download and upload file accept a stream * Add new Panels and move old for reference * Update WiiU Install Panel * Update FTPClient.ListDirectory * Add Cemu Installer Panel * CemuInstallPanel - Add path validation * ConsoleInstaller - Removed PS3 support * Rename 'Additional-Features' folder to 'Features' * CemuInstallPanel - Add context item to add new custom pcks * CemuInstallerPanel - Add function to remove pck from DLC folder * CemuInstallPanel - Add directory exist check * Rename 'ConsoleInstaller' to 'PckManager' * Renamed Panels * FTPClient.cs - Prefixed private class members with an underscore * PckManager.cs - Renamed 'selectedPlatformComboBox' to 'supportedPlatformComboBox' * CemuPanel.cs - Add better Directory name validation * WiiUPanel.cs - Renamed some designer component names * PS3Panel.cs - Removed unused text box * PckManager.cs - Added message box for unimplemented panels * CemuPanel.cs - Improved file path handling * Removed PS3Panel.cs * PckManager.cs - For now only Cemu is supported ! * Moved Features folder to project root and changed namespace of PckManager * Removed StringExtensions and made method 'ContainsAny' generic and moved it to EnumerableExtensions --- PCK-Studio/Classes/Misc/FTPClient.cs | 288 +- PCK-Studio/Classes/Misc/OpenFolderDialog.cs | 211 ++ PCK-Studio/Extensions/EnumerableExtensions.cs | 11 + PCK-Studio/Features/CemuPanel.Designer.cs | 283 ++ PCK-Studio/Features/CemuPanel.cs | 222 ++ .../CemuPanel.resx} | 6 +- .../InstallWiiU.ja.resx} | 0 PCK-Studio/Features/PckManager.Designer.cs | 127 + PCK-Studio/Features/PckManager.cs | 76 + PCK-Studio/Features/PckManager.resx | 2633 +++++++++++++++++ PCK-Studio/Features/WiiUPanel.Designer.cs | 428 +++ PCK-Studio/Features/WiiUPanel.cs | 290 ++ .../WiiUPanel.resx} | 0 .../Utilities => Features}/installWiiU.resx | 0 .../Utilities/ConsoleInstaller.Designer.cs | 320 -- .../Forms/Utilities/ConsoleInstaller.cs | 20 - .../Forms/Utilities/installPS3.Designer.cs | 356 --- PCK-Studio/Forms/Utilities/installPS3.cs | 472 --- .../Forms/Utilities/installVita.Designer.cs | 358 --- PCK-Studio/Forms/Utilities/installVita.cs | 472 --- PCK-Studio/Forms/Utilities/installVita.resx | 123 - .../Forms/Utilities/installWiiU.Designer.cs | 350 --- PCK-Studio/Forms/Utilities/installWiiU.cs | 486 --- PCK-Studio/Forms/Utilities/pckCenterOpen.cs | 2 - PCK-Studio/MainForm.Designer.cs | 57 +- PCK-Studio/MainForm.cs | 25 +- PCK-Studio/MainForm.resx | 765 +---- PCK-Studio/PckStudio.csproj | 60 +- PCK-Studio/Program.cs | 10 +- PCK-Studio/Resources/SaveIcon.png | Bin 0 -> 354 bytes 30 files changed, 4482 insertions(+), 3969 deletions(-) create mode 100644 PCK-Studio/Classes/Misc/OpenFolderDialog.cs create mode 100644 PCK-Studio/Features/CemuPanel.Designer.cs create mode 100644 PCK-Studio/Features/CemuPanel.cs rename PCK-Studio/{Forms/Utilities/ConsoleInstaller.resx => Features/CemuPanel.resx} (95%) rename PCK-Studio/{Forms/Utilities/installWiiU.ja.resx => Features/InstallWiiU.ja.resx} (100%) create mode 100644 PCK-Studio/Features/PckManager.Designer.cs create mode 100644 PCK-Studio/Features/PckManager.cs create mode 100644 PCK-Studio/Features/PckManager.resx create mode 100644 PCK-Studio/Features/WiiUPanel.Designer.cs create mode 100644 PCK-Studio/Features/WiiUPanel.cs rename PCK-Studio/{Forms/Utilities/installPS3.resx => Features/WiiUPanel.resx} (100%) rename PCK-Studio/{Forms/Utilities => Features}/installWiiU.resx (100%) delete mode 100644 PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs delete mode 100644 PCK-Studio/Forms/Utilities/ConsoleInstaller.cs delete mode 100644 PCK-Studio/Forms/Utilities/installPS3.Designer.cs delete mode 100644 PCK-Studio/Forms/Utilities/installPS3.cs delete mode 100644 PCK-Studio/Forms/Utilities/installVita.Designer.cs delete mode 100644 PCK-Studio/Forms/Utilities/installVita.cs delete mode 100644 PCK-Studio/Forms/Utilities/installVita.resx delete mode 100644 PCK-Studio/Forms/Utilities/installWiiU.Designer.cs delete mode 100644 PCK-Studio/Forms/Utilities/installWiiU.cs create mode 100644 PCK-Studio/Resources/SaveIcon.png diff --git a/PCK-Studio/Classes/Misc/FTPClient.cs b/PCK-Studio/Classes/Misc/FTPClient.cs index 61af36ad..9752d65d 100644 --- a/PCK-Studio/Classes/Misc/FTPClient.cs +++ b/PCK-Studio/Classes/Misc/FTPClient.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Net; using System.Text; using System.Xml.Linq; @@ -8,40 +10,36 @@ namespace PckStudio.Classes.Misc { public class FTPClient : IDisposable { - private const int bufferSize = 2048; + private Uri _host; + private ICredentials _credentials; - private Uri hostUri; - private NetworkCredential credentials; - - private FtpWebRequest request = null; - private FtpWebResponse response = null; - private Stream _stream = null; + private FtpWebRequest _request = null; + private FtpWebResponse _response = null; + private int _timeout = 1_000; // 1 sec public FTPClient(string host, string username) - : this(new Uri(host), username, string.Empty) - { - } + : this(new Uri(host), username, string.Empty) { } - public FTPClient(Uri uri, string username) - : this(uri, username, string.Empty) - { - } + public FTPClient(Uri host, string username) + : this(host, username, string.Empty) { } public FTPClient(string host, string username, string password) - : this(new Uri(host), username, password) - { - } + : this(new Uri(host), username, password) { } public FTPClient(Uri uri, string username, string password) - { - hostUri = uri; - credentials = new NetworkCredential(username, password); + : this(uri, new NetworkCredential(username, password)) { } - if (hostUri.Scheme != Uri.UriSchemeFtp) + public FTPClient(string host, ICredentials credentials) + : this(new Uri(host), credentials) { } + + public FTPClient(Uri host, ICredentials credentials) + { + if (host.Scheme != Uri.UriSchemeFtp) { throw new InvalidOperationException("Not a valid FTP Scheme"); } - + this._host = host; + _credentials = credentials; } /// @@ -51,7 +49,7 @@ namespace PckStudio.Classes.Misc /// /// See /// - public static FtpWebRequest CreateFTPWebRequest(Uri uri, ICredentials credentials, string method) + public static FtpWebRequest CreateRequest(Uri uri, ICredentials credentials, string method) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); request.Credentials = credentials; @@ -59,44 +57,31 @@ namespace PckStudio.Classes.Misc return request; } - // TODO: let it accept a destination Stream ? public void DownloadFile(string remoteFilepath, string localFilepath) + { + using (var fs = File.OpenWrite(localFilepath)) + { + DownloadFile(remoteFilepath, fs); + } + } + + public void DownloadFile(string remoteFilepath, Stream destination) { try { - request = CreateFTPWebRequest(new Uri(hostUri, remoteFilepath), credentials, WebRequestMethods.Ftp.DownloadFile); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + remoteFile); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.DownloadFile; - - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; + _request = CreateRequest(new Uri(_host, remoteFilepath), _credentials, WebRequestMethods.Ftp.DownloadFile); + SetRequestTimeout(); - response = (FtpWebResponse)request.GetResponse(); - _stream = response.GetResponseStream(); - byte[] buffer = new byte[Convert.ToInt32(GetFileSize(remoteFilepath))]; - int num = _stream.Read(buffer, 0, Convert.ToInt32(GetFileSize(remoteFilepath))); + _response = (FtpWebResponse)_request.GetResponse(); + Stream responseStream = _response.GetResponseStream(); - using (FileStream fileStream = new FileStream(localFilepath, FileMode.OpenOrCreate)) - { - try - { - while (num > 0) - { - fileStream.Write(buffer, 0, num); - num = _stream.Read(buffer, 0, Convert.ToInt32(GetFileSize(remoteFilepath))); - } - } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } - } + long destinationOrigin = destination.Position; + responseStream.CopyTo(destination); + destination.Position = destinationOrigin; - _stream.Close(); - response.Close(); - request = null; + responseStream.Close(); + _response.Close(); + _request = null; } catch (Exception ex) { @@ -108,85 +93,59 @@ namespace PckStudio.Classes.Misc { try { - request = CreateFTPWebRequest(new Uri(hostUri, directory), credentials, WebRequestMethods.Ftp.ListDirectory); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + directory); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.ListDirectory; + _request = CreateRequest(new Uri(_host, directory), _credentials, WebRequestMethods.Ftp.ListDirectory); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; + SetRequestTimeout(); - response = (FtpWebResponse)request.GetResponse(); - _stream = response.GetResponseStream(); - StreamReader streamReader = new StreamReader(_stream); - string text = string.Empty; - try + _response = (FtpWebResponse)_request.GetResponse(); + + Stream responseStream = _response.GetResponseStream(); + StreamReader streamReader = new StreamReader(responseStream); + + IList text = new List(); + + while (streamReader.Peek() != -1) { - while (streamReader.Peek() != -1) - { - text += streamReader.ReadLine() + "|"; - } + text.Add(streamReader.ReadLine()); } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } - streamReader.Close(); - _stream.Close(); - response.Close(); - request = null; + responseStream.Close(); - try - { - return text.Split("|".ToCharArray()); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } + _response.Close(); + _request = null; + return text.ToArray(); } catch (Exception ex) { - Console.WriteLine(ex.Message); + Console.WriteLine(ex.ToString()); } return Array.Empty(); } public void UploadFile(string localFile, string remoteFile) + { + using (var fs = File.OpenRead(localFile)) + { + UploadFile(fs, remoteFile); + } + } + + public void UploadFile(Stream source, string remoteFile) { try { - request = CreateFTPWebRequest(new Uri(hostUri, remoteFile), credentials, WebRequestMethods.Ftp.UploadFile); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + remoteFile); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.UploadFile; + _request = CreateRequest(new Uri(_host, remoteFile), _credentials, WebRequestMethods.Ftp.UploadFile); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; - - _stream = request.GetRequestStream(); - FileStream fileStream = new FileStream(localFile, FileMode.Open); - byte[] buffer = new byte[fileStream.Length]; - int num = fileStream.Read(buffer, 0, (int)fileStream.Length); - try - { - while (num != 0) - { - _stream.Write(buffer, 0, num); - num = fileStream.Read(buffer, 0, (int)fileStream.Length); - } - } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } + SetRequestTimeout(); - fileStream.Close(); - _stream.Close(); - request = null; + Stream requestStream = _request.GetRequestStream(); + source.CopyTo(requestStream); + requestStream.Close(); + + _response = (FtpWebResponse)_request.GetResponse(); + _response.Close(); + + _request = null; } catch (Exception ex) { @@ -198,19 +157,14 @@ namespace PckStudio.Classes.Misc { try { - request = CreateFTPWebRequest(new Uri(hostUri, filename), credentials, WebRequestMethods.Ftp.DeleteFile); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + filename); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.DeleteFile; + _request = CreateRequest(new Uri(_host, filename), _credentials, WebRequestMethods.Ftp.DeleteFile); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; + SetRequestTimeout(); - response = (FtpWebResponse)request.GetResponse(); - response.Close(); + _response = (FtpWebResponse)_request.GetResponse(); + _response.Close(); - request = null; + _request = null; } catch (Exception ex) { @@ -222,19 +176,14 @@ namespace PckStudio.Classes.Misc { try { - request = CreateFTPWebRequest(new Uri(hostUri, name), credentials, WebRequestMethods.Ftp.Rename); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + name); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.Rename; + _request = CreateRequest(new Uri(_host, name), _credentials, WebRequestMethods.Ftp.Rename); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; - - request.RenameTo = newName; - response = (FtpWebResponse)request.GetResponse(); - response.Close(); - request = null; + SetRequestTimeout(); + + _request.RenameTo = newName; + _response = (FtpWebResponse)_request.GetResponse(); + _response.Close(); + _request = null; } catch (Exception ex) { @@ -246,27 +195,21 @@ namespace PckStudio.Classes.Misc { try { - request = CreateFTPWebRequest(new Uri(hostUri, serverFilepath), credentials, WebRequestMethods.Ftp.AppendFile); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + name); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.MakeDirectory; + _request = CreateRequest(new Uri(_host, serverFilepath), _credentials, WebRequestMethods.Ftp.AppendFile); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; + SetRequestTimeout(); - request.ContentLength = data.Length; + _request.ContentLength = data.Length; - // This example assumes the FTP site uses anonymous logon. - Stream requestStream = request.GetRequestStream(); + Stream requestStream = _request.GetRequestStream(); requestStream.Write(data, 0, data.Length); requestStream.Close(); - FtpWebResponse response = (FtpWebResponse)request.GetResponse(); + FtpWebResponse response = (FtpWebResponse)_request.GetResponse(); Console.WriteLine("Append status: {0}", response.StatusDescription); response.Close(); - request = null; + _request = null; } catch (Exception ex) { @@ -278,19 +221,14 @@ namespace PckStudio.Classes.Misc { try { - request = CreateFTPWebRequest(new Uri(hostUri, name), credentials, WebRequestMethods.Ftp.MakeDirectory); - //request = (FtpWebRequest)WebRequest.Create(host + "/" + name); - //request.Credentials = credentials; - //request.Method = WebRequestMethods.Ftp.MakeDirectory; + _request = CreateRequest(new Uri(_host, name), _credentials, WebRequestMethods.Ftp.MakeDirectory); - request.UseBinary = true; - request.UsePassive = true; - request.KeepAlive = true; + SetRequestTimeout(); - response = (FtpWebResponse)request.GetResponse(); - response.Close(); + _response = (FtpWebResponse)_request.GetResponse(); + _response.Close(); - request = null; + _request = null; } catch (Exception ex) { @@ -300,26 +238,34 @@ namespace PckStudio.Classes.Misc public long GetFileSize(string filepath) { - FtpWebRequest ftpWebRequest = CreateFTPWebRequest(new Uri(hostUri, filepath), credentials, WebRequestMethods.Ftp.GetFileSize); - //FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(host + "/" + fileName); - //ftpWebRequest.Credentials = credentials; - //ftpWebRequest.Method = WebRequestMethods.Ftp.GetFileSize; + _request = CreateRequest(new Uri(_host, filepath), _credentials, WebRequestMethods.Ftp.GetFileSize); - ftpWebRequest.UseBinary = true; + SetRequestTimeout(); + + _response = (FtpWebResponse)_request.GetResponse(); + long contentLength = _response.ContentLength; + _response.Close(); - FtpWebResponse response = (FtpWebResponse)ftpWebRequest.GetResponse(); - long contentLength = response.ContentLength; - response.Close(); + _request = null; return contentLength; } + public void SetTimeoutLimit(TimeSpan delay) + { + _timeout = (int)delay.TotalMilliseconds; + } + + private void SetRequestTimeout() + { + if (_request != null) + _request.Timeout = _timeout; + } + public void Dispose() { - _stream.Dispose(); - response.Dispose(); - request = null; - response = null; - _stream = null; + _response?.Dispose(); + _request = null; + _response = null; } } } \ No newline at end of file diff --git a/PCK-Studio/Classes/Misc/OpenFolderDialog.cs b/PCK-Studio/Classes/Misc/OpenFolderDialog.cs new file mode 100644 index 00000000..5af8c808 --- /dev/null +++ b/PCK-Studio/Classes/Misc/OpenFolderDialog.cs @@ -0,0 +1,211 @@ +/* + * Source by: Simon Mourier(https://stackoverflow.com/users/403671/simon-mourier) + */ + +namespace PckStudio.Classes.Misc +{ + using System; + using System.Diagnostics; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + using System.Windows; // for WPF support + using System.Windows.Interop; // for WPF support + + public class OpenFolderDialog + { + public virtual string ResultPath { get; protected set; } + public virtual string ResultName { get; protected set; } + public virtual string InputPath { get; set; } + public virtual bool ForceFileSystem { get; set; } + public virtual string Title { get; set; } + public virtual string OkButtonLabel { get; set; } + public virtual string FileNameLabel { get; set; } + + protected virtual int SetOptions(int options) + { + if (ForceFileSystem) + { + options |= (int)FOS.FOS_FORCEFILESYSTEM; + } + return options; + } + + // for WPF support + public bool? ShowDialog(Window owner = null, bool throwOnError = false) + { + owner ??= Application.Current.MainWindow; + return ShowDialog(owner != null ? new WindowInteropHelper(owner).Handle : IntPtr.Zero, throwOnError); + } + + // for all .NET + public virtual bool? ShowDialog(IntPtr owner, bool throwOnError = false) + { + var dialog = (IFileOpenDialog)new FileOpenDialog(); + if (!string.IsNullOrEmpty(InputPath)) + { + if (CheckHr(SHCreateItemFromParsingName(InputPath, null, typeof(IShellItem).GUID, out var item), throwOnError) != 0) + return null; + + dialog.SetFolder(item); + } + + var options = FOS.FOS_PICKFOLDERS; + options = (FOS)SetOptions((int)options); + dialog.SetOptions(options); + + if (Title != null) + { + dialog.SetTitle(Title); + } + + if (OkButtonLabel != null) + { + dialog.SetOkButtonLabel(OkButtonLabel); + } + + if (FileNameLabel != null) + { + dialog.SetFileName(FileNameLabel); + } + + if (owner == IntPtr.Zero) + { + owner = Process.GetCurrentProcess().MainWindowHandle; + if (owner == IntPtr.Zero) + { + owner = GetDesktopWindow(); + } + } + + var hr = dialog.Show(owner); + if (hr == ERROR_CANCELLED) + return null; + + if (CheckHr(hr, throwOnError) != 0) + return null; + + if (CheckHr(dialog.GetResult(out var result), throwOnError) != 0) + return null; + + if (CheckHr(result.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEPARSING, out var path), throwOnError) != 0) + return null; + + ResultPath = path; + + if (CheckHr(result.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEEDITING, out path), false) == 0) + { + ResultName = path; + } + return true; + } + + private static int CheckHr(int hr, bool throwOnError) + { + if (hr != 0) + { + if (throwOnError) + Marshal.ThrowExceptionForHR(hr); + } + return hr; + } + + [DllImport("shell32")] + private static extern int SHCreateItemFromParsingName([MarshalAs(UnmanagedType.LPWStr)] string pszPath, IBindCtx pbc, [MarshalAs(UnmanagedType.LPStruct)] Guid riid, out IShellItem ppv); + + [DllImport("user32")] + private static extern IntPtr GetDesktopWindow(); + +#pragma warning disable IDE1006 // Naming Styles + private const int ERROR_CANCELLED = unchecked((int)0x800704C7); +#pragma warning restore IDE1006 // Naming Styles + + [ComImport, Guid("DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7")] // CLSID_FileOpenDialog + private class FileOpenDialog + { + } + + [ComImport, Guid("42f85136-db7e-439c-85f1-e4075d135fc8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + private interface IFileOpenDialog + { + [PreserveSig] int Show(IntPtr parent); // IModalWindow + [PreserveSig] int SetFileTypes(); // not fully defined + [PreserveSig] int SetFileTypeIndex(int iFileType); + [PreserveSig] int GetFileTypeIndex(out int piFileType); + [PreserveSig] int Advise(); // not fully defined + [PreserveSig] int Unadvise(); + [PreserveSig] int SetOptions(FOS fos); + [PreserveSig] int GetOptions(out FOS pfos); + [PreserveSig] int SetDefaultFolder(IShellItem psi); + [PreserveSig] int SetFolder(IShellItem psi); + [PreserveSig] int GetFolder(out IShellItem ppsi); + [PreserveSig] int GetCurrentSelection(out IShellItem ppsi); + [PreserveSig] int SetFileName([MarshalAs(UnmanagedType.LPWStr)] string pszName); + [PreserveSig] int GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName); + [PreserveSig] int SetTitle([MarshalAs(UnmanagedType.LPWStr)] string pszTitle); + [PreserveSig] int SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr)] string pszText); + [PreserveSig] int SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr)] string pszLabel); + [PreserveSig] int GetResult(out IShellItem ppsi); + [PreserveSig] int AddPlace(IShellItem psi, int alignment); + [PreserveSig] int SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension); + [PreserveSig] int Close(int hr); + [PreserveSig] int SetClientGuid(); // not fully defined + [PreserveSig] int ClearClientData(); + [PreserveSig] int SetFilter([MarshalAs(UnmanagedType.IUnknown)] object pFilter); + [PreserveSig] int GetResults([MarshalAs(UnmanagedType.IUnknown)] out object ppenum); + [PreserveSig] int GetSelectedItems([MarshalAs(UnmanagedType.IUnknown)] out object ppsai); + } + + [ComImport, Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + private interface IShellItem + { + [PreserveSig] int BindToHandler(); // not fully defined + [PreserveSig] int GetParent(); // not fully defined + [PreserveSig] int GetDisplayName(SIGDN sigdnName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName); + [PreserveSig] int GetAttributes(); // not fully defined + [PreserveSig] int Compare(); // not fully defined + } + +#pragma warning disable CA1712 // Do not prefix enum values with type name + private enum SIGDN : uint + { + SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000, + SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000, + SIGDN_FILESYSPATH = 0x80058000, + SIGDN_NORMALDISPLAY = 0, + SIGDN_PARENTRELATIVE = 0x80080001, + SIGDN_PARENTRELATIVEEDITING = 0x80031001, + SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001, + SIGDN_PARENTRELATIVEPARSING = 0x80018001, + SIGDN_URL = 0x80068000 + } + + [Flags] + private enum FOS + { + FOS_OVERWRITEPROMPT = 0x2, + FOS_STRICTFILETYPES = 0x4, + FOS_NOCHANGEDIR = 0x8, + FOS_PICKFOLDERS = 0x20, + FOS_FORCEFILESYSTEM = 0x40, + FOS_ALLNONSTORAGEITEMS = 0x80, + FOS_NOVALIDATE = 0x100, + FOS_ALLOWMULTISELECT = 0x200, + FOS_PATHMUSTEXIST = 0x800, + FOS_FILEMUSTEXIST = 0x1000, + FOS_CREATEPROMPT = 0x2000, + FOS_SHAREAWARE = 0x4000, + FOS_NOREADONLYRETURN = 0x8000, + FOS_NOTESTFILECREATE = 0x10000, + FOS_HIDEMRUPLACES = 0x20000, + FOS_HIDEPINNEDPLACES = 0x40000, + FOS_NODEREFERENCELINKS = 0x100000, + FOS_OKBUTTONNEEDSINTERACTION = 0x200000, + FOS_DONTADDTORECENT = 0x2000000, + FOS_FORCESHOWHIDDEN = 0x10000000, + FOS_DEFAULTNOMINIMODE = 0x20000000, + FOS_FORCEPREVIEWPANEON = 0x40000000, + FOS_SUPPORTSTREAMABLEITEMS = unchecked((int)0x80000000) + } +#pragma warning restore CA1712 // Do not prefix enum values with type name + } +} diff --git a/PCK-Studio/Extensions/EnumerableExtensions.cs b/PCK-Studio/Extensions/EnumerableExtensions.cs index ed95e29f..275d2093 100644 --- a/PCK-Studio/Extensions/EnumerableExtensions.cs +++ b/PCK-Studio/Extensions/EnumerableExtensions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; namespace PckStudio.Extensions { @@ -13,5 +14,15 @@ namespace PckStudio.Extensions } yield break; } + + public static bool ContainsAny(this IEnumerable array, params T[] items) + { + foreach (var item in array) + { + if (items.Contains(item)) + return true; + } + return false; + } } } diff --git a/PCK-Studio/Features/CemuPanel.Designer.cs b/PCK-Studio/Features/CemuPanel.Designer.cs new file mode 100644 index 00000000..d9860d21 --- /dev/null +++ b/PCK-Studio/Features/CemuPanel.Designer.cs @@ -0,0 +1,283 @@ +namespace PckStudio.Features +{ + partial class CemuPanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.TableLayoutPanel layoutPanel; + this.radioButtonEur = new System.Windows.Forms.RadioButton(); + this.radioButtonUs = new System.Windows.Forms.RadioButton(); + this.radioButtonJap = new System.Windows.Forms.RadioButton(); + this.GameDirectoryTextBox = new MetroFramework.Controls.MetroTextBox(); + this.BrowseDirectoryBtn = new System.Windows.Forms.Button(); + this.DLCTreeView = new System.Windows.Forms.TreeView(); + this.DLCContextMenu = new MetroFramework.Controls.MetroContextMenu(this.components); + this.openSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openTexturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addCustomPckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removePckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + layoutPanel = new System.Windows.Forms.TableLayoutPanel(); + layoutPanel.SuspendLayout(); + this.DLCContextMenu.SuspendLayout(); + this.SuspendLayout(); + // + // layoutPanel + // + layoutPanel.BackColor = System.Drawing.Color.Black; + layoutPanel.ColumnCount = 3; + layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + layoutPanel.Controls.Add(this.radioButtonEur, 0, 1); + layoutPanel.Controls.Add(this.radioButtonUs, 1, 1); + layoutPanel.Controls.Add(this.radioButtonJap, 2, 1); + layoutPanel.Controls.Add(this.GameDirectoryTextBox, 0, 0); + layoutPanel.Controls.Add(this.BrowseDirectoryBtn, 2, 0); + layoutPanel.Controls.Add(this.DLCTreeView, 0, 2); + layoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + layoutPanel.Location = new System.Drawing.Point(0, 0); + layoutPanel.Margin = new System.Windows.Forms.Padding(0); + layoutPanel.Name = "layoutPanel"; + layoutPanel.RowCount = 3; + layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); + layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + layoutPanel.Size = new System.Drawing.Size(430, 550); + layoutPanel.TabIndex = 4; + // + // radioButtonEur + // + this.radioButtonEur.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonEur.AutoSize = true; + this.radioButtonEur.BackColor = System.Drawing.Color.Transparent; + this.radioButtonEur.CheckAlign = System.Drawing.ContentAlignment.BottomRight; + this.radioButtonEur.Checked = true; + this.radioButtonEur.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue; + this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonEur.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonEur.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonEur.ForeColor = System.Drawing.Color.White; + this.radioButtonEur.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonEur.Location = new System.Drawing.Point(3, 36); + this.radioButtonEur.Name = "radioButtonEur"; + this.radioButtonEur.Size = new System.Drawing.Size(137, 30); + this.radioButtonEur.TabIndex = 1; + this.radioButtonEur.TabStop = true; + this.radioButtonEur.Text = "EUR"; + this.radioButtonEur.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonEur.UseVisualStyleBackColor = false; + this.radioButtonEur.Click += new System.EventHandler(this.radioButton_Click); + // + // radioButtonUs + // + this.radioButtonUs.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonUs.AutoSize = true; + this.radioButtonUs.BackColor = System.Drawing.Color.Transparent; + this.radioButtonUs.CheckAlign = System.Drawing.ContentAlignment.BottomRight; + this.radioButtonUs.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue; + this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonUs.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonUs.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonUs.ForeColor = System.Drawing.Color.White; + this.radioButtonUs.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonUs.Location = new System.Drawing.Point(146, 36); + this.radioButtonUs.Name = "radioButtonUs"; + this.radioButtonUs.Size = new System.Drawing.Size(137, 30); + this.radioButtonUs.TabIndex = 0; + this.radioButtonUs.Text = "US"; + this.radioButtonUs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonUs.UseVisualStyleBackColor = false; + this.radioButtonUs.Click += new System.EventHandler(this.radioButton_Click); + // + // radioButtonJap + // + this.radioButtonJap.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonJap.AutoSize = true; + this.radioButtonJap.BackColor = System.Drawing.Color.Transparent; + this.radioButtonJap.CheckAlign = System.Drawing.ContentAlignment.BottomRight; + this.radioButtonJap.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue; + this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonJap.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonJap.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonJap.ForeColor = System.Drawing.Color.White; + this.radioButtonJap.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonJap.Location = new System.Drawing.Point(289, 36); + this.radioButtonJap.Name = "radioButtonJap"; + this.radioButtonJap.Size = new System.Drawing.Size(138, 30); + this.radioButtonJap.TabIndex = 2; + this.radioButtonJap.Text = "JAP"; + this.radioButtonJap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonJap.UseVisualStyleBackColor = false; + this.radioButtonJap.Click += new System.EventHandler(this.radioButton_Click); + // + // GameDirectoryTextBox + // + this.GameDirectoryTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + layoutPanel.SetColumnSpan(this.GameDirectoryTextBox, 2); + // + // + // + this.GameDirectoryTextBox.CustomButton.Image = null; + this.GameDirectoryTextBox.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.GameDirectoryTextBox.CustomButton.Location = new System.Drawing.Point(252, 1); + this.GameDirectoryTextBox.CustomButton.Name = ""; + this.GameDirectoryTextBox.CustomButton.Size = new System.Drawing.Size(25, 25); + this.GameDirectoryTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.GameDirectoryTextBox.CustomButton.TabIndex = 1; + this.GameDirectoryTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.GameDirectoryTextBox.CustomButton.UseSelectable = true; + this.GameDirectoryTextBox.CustomButton.Visible = false; + this.GameDirectoryTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.GameDirectoryTextBox.Lines = new string[0]; + this.GameDirectoryTextBox.Location = new System.Drawing.Point(3, 3); + this.GameDirectoryTextBox.MaxLength = 32767; + this.GameDirectoryTextBox.Name = "GameDirectoryTextBox"; + this.GameDirectoryTextBox.PasswordChar = '\0'; + this.GameDirectoryTextBox.PromptText = "Cemu Game Directory"; + this.GameDirectoryTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.GameDirectoryTextBox.SelectedText = ""; + this.GameDirectoryTextBox.SelectionLength = 0; + this.GameDirectoryTextBox.SelectionStart = 0; + this.GameDirectoryTextBox.ShortcutsEnabled = true; + this.GameDirectoryTextBox.Size = new System.Drawing.Size(280, 27); + this.GameDirectoryTextBox.Style = MetroFramework.MetroColorStyle.Blue; + this.GameDirectoryTextBox.TabIndex = 11; + this.GameDirectoryTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.GameDirectoryTextBox.UseSelectable = true; + this.GameDirectoryTextBox.WaterMark = "Cemu Game Directory"; + this.GameDirectoryTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.GameDirectoryTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // BrowseDirectoryBtn + // + this.BrowseDirectoryBtn.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.BrowseDirectoryBtn.BackColor = System.Drawing.Color.DarkCyan; + this.BrowseDirectoryBtn.Dock = System.Windows.Forms.DockStyle.Fill; + this.BrowseDirectoryBtn.FlatAppearance.BorderSize = 0; + this.BrowseDirectoryBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.BrowseDirectoryBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.BrowseDirectoryBtn.ForeColor = System.Drawing.Color.White; + this.BrowseDirectoryBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.BrowseDirectoryBtn.Location = new System.Drawing.Point(289, 3); + this.BrowseDirectoryBtn.Name = "BrowseDirectoryBtn"; + this.BrowseDirectoryBtn.Size = new System.Drawing.Size(138, 27); + this.BrowseDirectoryBtn.TabIndex = 12; + this.BrowseDirectoryBtn.Text = "Browse"; + this.BrowseDirectoryBtn.UseVisualStyleBackColor = false; + this.BrowseDirectoryBtn.Click += new System.EventHandler(this.BrowseDirectoryBtn_Click); + // + // DLCTreeView + // + this.DLCTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + layoutPanel.SetColumnSpan(this.DLCTreeView, 3); + this.DLCTreeView.ContextMenuStrip = this.DLCContextMenu; + this.DLCTreeView.Location = new System.Drawing.Point(3, 72); + this.DLCTreeView.Name = "DLCTreeView"; + this.DLCTreeView.Size = new System.Drawing.Size(424, 475); + this.DLCTreeView.TabIndex = 13; + this.DLCTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.DLCTreeView_AfterSelect); + this.DLCTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.DLCTreeView_NodeMouseDoubleClick); + // + // DLCContextMenu + // + this.DLCContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.openSkinPackToolStripMenuItem, + this.openTexturePackToolStripMenuItem, + this.addCustomPckToolStripMenuItem, + this.removePckToolStripMenuItem}); + this.DLCContextMenu.Name = "DLCContextMenu"; + this.DLCContextMenu.Size = new System.Drawing.Size(173, 92); + // + // openSkinPackToolStripMenuItem + // + this.openSkinPackToolStripMenuItem.Name = "openSkinPackToolStripMenuItem"; + this.openSkinPackToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.openSkinPackToolStripMenuItem.Text = "Open Pack"; + this.openSkinPackToolStripMenuItem.Click += new System.EventHandler(this.openSkinPackToolStripMenuItem_Click); + // + // openTexturePackToolStripMenuItem + // + this.openTexturePackToolStripMenuItem.Name = "openTexturePackToolStripMenuItem"; + this.openTexturePackToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.openTexturePackToolStripMenuItem.Text = "Open Texture Pack"; + this.openTexturePackToolStripMenuItem.Click += new System.EventHandler(this.openTexturePackToolStripMenuItem_Click); + // + // addCustomPckToolStripMenuItem + // + this.addCustomPckToolStripMenuItem.Name = "addCustomPckToolStripMenuItem"; + this.addCustomPckToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.addCustomPckToolStripMenuItem.Text = "Add pck"; + this.addCustomPckToolStripMenuItem.Click += new System.EventHandler(this.addCustomPckToolStripMenuItem_Click); + // + // removePckToolStripMenuItem + // + this.removePckToolStripMenuItem.Name = "removePckToolStripMenuItem"; + this.removePckToolStripMenuItem.Size = new System.Drawing.Size(172, 22); + this.removePckToolStripMenuItem.Text = "Remove pck"; + this.removePckToolStripMenuItem.Click += new System.EventHandler(this.removePckToolStripMenuItem_Click); + // + // CemuPanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.BackColor = System.Drawing.SystemColors.ActiveCaptionText; + this.Controls.Add(layoutPanel); + this.Name = "CemuPanel"; + this.Size = new System.Drawing.Size(430, 550); + layoutPanel.ResumeLayout(false); + layoutPanel.PerformLayout(); + this.DLCContextMenu.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button BrowseDirectoryBtn; + private MetroFramework.Controls.MetroTextBox GameDirectoryTextBox; + private System.Windows.Forms.RadioButton radioButtonEur; + private System.Windows.Forms.RadioButton radioButtonUs; + private System.Windows.Forms.RadioButton radioButtonJap; + private System.Windows.Forms.TreeView DLCTreeView; + private MetroFramework.Controls.MetroContextMenu DLCContextMenu; + private System.Windows.Forms.ToolStripMenuItem openSkinPackToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openTexturePackToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem addCustomPckToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem removePckToolStripMenuItem; + } +} diff --git a/PCK-Studio/Features/CemuPanel.cs b/PCK-Studio/Features/CemuPanel.cs new file mode 100644 index 00000000..0893f184 --- /dev/null +++ b/PCK-Studio/Features/CemuPanel.cs @@ -0,0 +1,222 @@ +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using PckStudio.Extensions; +using PckStudio.Classes.Misc; + +namespace PckStudio.Features +{ + /// + /// Wishlist: + /// - add the ability to save the currently open pck file to the desired folder destination. + /// (even if the pck file has not yet be saved to disk) + /// + public partial class CemuPanel : UserControl + { + public CemuPanel() + { + InitializeComponent(); + } + + private string GetSelectedRegionTitleId() + { + if (radioButtonEur.Checked) + { + return "101d7500"; + } + if (radioButtonUs.Checked) + { + return "101d9d00"; + } + if (radioButtonJap.Checked) + { + return "101dbe00"; + } + throw new Exception("how did you get here ?"); + } + + private string GetGameContentPath() + { + string region = GetSelectedRegionTitleId(); + return $"{GameDirectoryTextBox.Text}/usr/title/0005000e/{region}/content"; + } + + private string GetContentSubDirectory(params string[] subpaths) + { + return Path.Combine(GetGameContentPath(), Path.Combine(subpaths)); + } + + private void BrowseDirectoryBtn_Click(object sender, EventArgs e) + { + OpenFolderDialog openFolderDialog = new OpenFolderDialog + { + Title = "Select Cemu Game Directory" + }; + if (openFolderDialog.ShowDialog(Handle) == true && Directory.Exists(openFolderDialog.ResultPath)) + { + GameDirectoryTextBox.Text = openFolderDialog.ResultPath; + ListDLCs(); + } + } + + private class DLCDirectoryInfo + { + private readonly bool _hasTexturePack; + private readonly string _basePckPath; + private readonly string _texturePackPath; + + public bool HasTexturePack => _hasTexturePack; + public string PackPath => _basePckPath; + public string TexturePackPath => _texturePackPath; + + public DLCDirectoryInfo(DirectoryInfo directory) + { + _basePckPath = directory.GetFiles().FirstOrDefault(f => f.Name.EndsWith(".pck")).FullName; + _ = _basePckPath ?? throw new NullReferenceException($"Could not find any '.pck' inside {directory.Name}"); + if (TryGetDataDirectory(directory, out var dataDir)) + { + var tpFileInfo = dataDir.GetFiles().FirstOrDefault(f => !f.Name.Equals("audio.pck") && f.Name.EndsWith(".pck")); + _hasTexturePack = tpFileInfo is not null; + _texturePackPath = _hasTexturePack ? tpFileInfo.FullName : string.Empty; + } + } + + public DLCDirectoryInfo(string path) + : this(new DirectoryInfo(path)) + { + } + + private bool TryGetDataDirectory(DirectoryInfo directory, out DirectoryInfo dataDirectory) + { + var dirs = directory.GetDirectories("Data", SearchOption.TopDirectoryOnly); + dataDirectory = dirs.Length != 0 ? dirs[0] : null; + return dirs.Length != 0; + } + } + + private void ListDLCs() + { + DLCTreeView.Nodes.Clear(); + if (!IsValidInstallDirectory()) + { + MessageBox.Show("Please select a valid Game Directory!", "Invalid Directory Specified", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (!IsValidGameDirectory()) + { + MessageBox.Show($"Could not find '{GetGameContentPath()}'!", "Not Found", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + string dirPath = GetContentSubDirectory("WiiU", "DLC"); + DirectoryInfo dlcDirectory = new DirectoryInfo(dirPath); + + if (!dlcDirectory.Exists) + { + MessageBox.Show($"'{dirPath}' does not exist!", "Not Found", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + foreach (var directoryInfo in dlcDirectory.GetDirectories()) + { + if (directoryInfo.GetFileSystemInfos().Length != 0) + { + var node = DLCTreeView.Nodes.Add(directoryInfo.Name); + node.Tag = new DLCDirectoryInfo(directoryInfo); + } + } + } + + private bool IsValidInstallDirectory() + { + return !string.IsNullOrWhiteSpace(GameDirectoryTextBox.Text) && Directory.Exists(GameDirectoryTextBox.Text); + } + + private void radioButton_Click(object sender, EventArgs e) + { + ListDLCs(); + } + + private bool IsValidGameDirectory() + { + return IsValidInstallDirectory() && Directory.Exists(GetGameContentPath()); + } + + private void openSkinPackToolStripMenuItem_Click(object sender, EventArgs e) + { + if (DLCTreeView.SelectedNode.Tag is DLCDirectoryInfo dlcDir) + { + Program.MainInstance.LoadPckFromFile(dlcDir.PackPath); + } + } + + private void openTexturePackToolStripMenuItem_Click(object sender, EventArgs e) + { + if (DLCTreeView.SelectedNode.Tag is DLCDirectoryInfo dlcDir && dlcDir.HasTexturePack) + { + Program.MainInstance.LoadPckFromFile(dlcDir.TexturePackPath); + } + } + + private void DLCTreeView_AfterSelect(object sender, TreeViewEventArgs e) + { + openTexturePackToolStripMenuItem.Visible = e.Node.Tag is DLCDirectoryInfo dlcDir && dlcDir.HasTexturePack; + } + + private void addCustomPckToolStripMenuItem_Click(object sender, EventArgs e) + { + RenamePrompt prompt = new RenamePrompt(string.Empty); + prompt.OKButton.Text = "OK"; + prompt.TextLabel.Text = "Folder:"; + + if (prompt.ShowDialog(this) != DialogResult.OK) + return; + + if (prompt.NewText.ContainsAny(Path.GetInvalidPathChars())) + { + MessageBox.Show("Invalid Folder name entered!", "Invalid Folder Name", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + string directoryPath = GetContentSubDirectory("WiiU", "DLC", prompt.NewText); + + if (Directory.Exists(directoryPath)) + { + MessageBox.Show("A Folder with the same name already exists!", "Folder Name taken", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + Directory.CreateDirectory(directoryPath); + + using OpenFileDialog fileDialog = new OpenFileDialog + { + Filter = "PCK (Minecraft Console Package)|*.pck" + }; + if (fileDialog.ShowDialog(this) == DialogResult.OK) + { + File.Copy(fileDialog.FileName, Path.Combine(directoryPath, fileDialog.SafeFileName)); + } + } + + private void removePckToolStripMenuItem_Click(object sender, EventArgs e) + { + string pckName = DLCTreeView.SelectedNode.Text; + var result = MessageBox.Show($"Are you sure you want to permanently delete '{pckName}'?", "Hold up!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (result == DialogResult.Yes) + { + string directoryPath = GetContentSubDirectory("WiiU", "DLC", pckName); + Directory.Delete(directoryPath, recursive: true); + DLCTreeView.SelectedNode.Remove(); + } + } + + private void DLCTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) + { + openSkinPackToolStripMenuItem_Click(sender, e); + } + } +} diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.resx b/PCK-Studio/Features/CemuPanel.resx similarity index 95% rename from PCK-Studio/Forms/Utilities/ConsoleInstaller.resx rename to PCK-Studio/Features/CemuPanel.resx index b5e534e5..e04b8618 100644 --- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.resx +++ b/PCK-Studio/Features/CemuPanel.resx @@ -117,10 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + False - - False + + 17, 17 \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/installWiiU.ja.resx b/PCK-Studio/Features/InstallWiiU.ja.resx similarity index 100% rename from PCK-Studio/Forms/Utilities/installWiiU.ja.resx rename to PCK-Studio/Features/InstallWiiU.ja.resx diff --git a/PCK-Studio/Features/PckManager.Designer.cs b/PCK-Studio/Features/PckManager.Designer.cs new file mode 100644 index 00000000..9d06e8dc --- /dev/null +++ b/PCK-Studio/Features/PckManager.Designer.cs @@ -0,0 +1,127 @@ +namespace PckStudio.Features +{ + partial class PckManager + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + MetroFramework.Controls.MetroLabel metroLabel1; + MetroFramework.Controls.MetroLabel metroLabel2; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PckManager)); + this.supportedPlatformComboBox = new MetroFramework.Controls.MetroComboBox(); + this.mainPanel = new System.Windows.Forms.TableLayoutPanel(); + metroLabel1 = new MetroFramework.Controls.MetroLabel(); + metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.mainPanel.SuspendLayout(); + this.SuspendLayout(); + // + // metroLabel1 + // + metroLabel1.AutoSize = true; + metroLabel1.Location = new System.Drawing.Point(264, 73); + metroLabel1.Name = "metroLabel1"; + metroLabel1.Size = new System.Drawing.Size(90, 19); + metroLabel1.Style = MetroFramework.MetroColorStyle.Black; + metroLabel1.TabIndex = 1; + metroLabel1.Text = "Console Type:"; + metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroLabel2 + // + metroLabel2.AutoSize = true; + metroLabel2.Dock = System.Windows.Forms.DockStyle.Fill; + metroLabel2.Location = new System.Drawing.Point(3, 0); + metroLabel2.Name = "metroLabel2"; + metroLabel2.Size = new System.Drawing.Size(183, 35); + metroLabel2.Style = MetroFramework.MetroColorStyle.Black; + metroLabel2.TabIndex = 13; + metroLabel2.Text = "Platform type:"; + metroLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // supportedPlatformComboBox + // + this.supportedPlatformComboBox.BackColor = System.Drawing.SystemColors.Window; + this.supportedPlatformComboBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.supportedPlatformComboBox.FormattingEnabled = true; + this.supportedPlatformComboBox.ItemHeight = 23; + this.supportedPlatformComboBox.Location = new System.Drawing.Point(192, 3); + this.supportedPlatformComboBox.Name = "supportedPlatformComboBox"; + this.supportedPlatformComboBox.PromptText = "Select Platform"; + this.supportedPlatformComboBox.Size = new System.Drawing.Size(184, 29); + this.supportedPlatformComboBox.Style = MetroFramework.MetroColorStyle.Black; + this.supportedPlatformComboBox.TabIndex = 0; + this.supportedPlatformComboBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.supportedPlatformComboBox.UseSelectable = true; + this.supportedPlatformComboBox.SelectedIndexChanged += new System.EventHandler(this.supportedPlatformComboBox_SelectedIndexChanged); + // + // mainPanel + // + this.mainPanel.BackColor = System.Drawing.Color.Transparent; + this.mainPanel.ColumnCount = 2; + this.mainPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.mainPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.mainPanel.Controls.Add(this.supportedPlatformComboBox, 1, 0); + this.mainPanel.Controls.Add(metroLabel2, 0, 0); + this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainPanel.Location = new System.Drawing.Point(20, 60); + this.mainPanel.Margin = new System.Windows.Forms.Padding(0); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.RowCount = 2; + this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.mainPanel.Size = new System.Drawing.Size(379, 560); + this.mainPanel.TabIndex = 3; + // + // PckManager + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(419, 640); + this.Controls.Add(this.mainPanel); + this.Controls.Add(metroLabel1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(419, 640); + this.Name = "PckManager"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Text = "Pck Manager"; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.mainPanel.ResumeLayout(false); + this.mainPanel.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private MetroFramework.Controls.MetroComboBox supportedPlatformComboBox; + private System.Windows.Forms.TableLayoutPanel mainPanel; + } +} \ No newline at end of file diff --git a/PCK-Studio/Features/PckManager.cs b/PCK-Studio/Features/PckManager.cs new file mode 100644 index 00000000..774b1b88 --- /dev/null +++ b/PCK-Studio/Features/PckManager.cs @@ -0,0 +1,76 @@ +/* Copyright (c) 2022-present miku-666 + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. +**/ +using System; +using System.Windows.Forms; + +namespace PckStudio.Features +{ + public partial class PckManager : MetroFramework.Forms.MetroForm + { + private Control currentlyShowingControl; + private const string CemU = "Cemu"; + + // TODO: Implement these Panels + private const string WiiU = "Wii U"; + private const string PS3 = "Play Station 3"; + private const string PSVita = "PS Vita"; + private const string RPCS3 = "RPCS3"; + + public PckManager() + { + InitializeComponent(); + supportedPlatformComboBox.Items.AddRange(new string[] + { + // WiiU, + // PS3, + // PSVita, + CemU, + // RPCS3, + }); + } + + private void supportedPlatformComboBox_SelectedIndexChanged(object sender, EventArgs e) + { + mainPanel.Controls.Remove(currentlyShowingControl); + if (supportedPlatformComboBox.SelectedIndex > -1) + { + string text = supportedPlatformComboBox.Items[supportedPlatformComboBox.SelectedIndex].ToString(); + try + { + currentlyShowingControl = text switch + { + CemU => new CemuPanel(), + //WiiU => new WiiUPanel(), + //PS3 => throw new NotImplementedException($"{text}-Panel is currently not implemented."), + //PSVita => throw new NotImplementedException($"{text}-Panel is currently not implemented."), + //RPCS3 => throw new NotImplementedException($"{text}-Panel is currently not implemented."), + _ => throw new Exception($"No Panel found for: {text}"), + }; + currentlyShowingControl.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right; + mainPanel.SetColumnSpan(currentlyShowingControl, 2); + mainPanel.Controls.Add(currentlyShowingControl, 0, 1); + } + catch (NotImplementedException ex) + { + MessageBox.Show(ex.Message, "Not Implemented"); + } + + } + } + } +} \ No newline at end of file diff --git a/PCK-Studio/Features/PckManager.resx b/PCK-Studio/Features/PckManager.resx new file mode 100644 index 00000000..8f491558 --- /dev/null +++ b/PCK-Studio/Features/PckManager.resx @@ -0,0 +1,2633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + False + + + + + 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 + Tfr6LE9nbYpX/JKYCgGFwgAh6szKQQZn6KfRZOPDjLQMGLihYBm9ZdUWA4hO/4UYIBaICWKDNfzM5xMz + xA6tSh4qxBQV35v7JTYKhcJBCGgRsHoQxUYMWJpJYdI64B0DFC4wduD0X4gBdpsSE8QGDw2e9MQMsUMM + EUvElFf8DjBtDagQMDpLq4BxAroIKDkFywxCCAM6Tv8hXv7EBLFBhedJT8wQO1rxvbnfgRaKAeMEQIEC + TTnHUTQuiBGt8F7pu8woTMdJws3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N + zc3Nzc3Nzc3Nza2M9r73/T9XFdyT+zuuLAAAAABJRU5ErkJggigAAACAAAAAAAEAAAEAIAAAAAAAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAA + CAAAAAoAAAAKAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA + CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA + CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA + CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA + CwAAAAsAAAALAAAACwAAAAsAAAALAAAACgAAAAoAAAAIAAAABQAAAAMAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAFAAAAB4AAAAlAAAAKwAAACwAAAAtAAAALQAAAC0AAAAtAAAA + LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA + LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA + LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA + LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAsAAAA + KgAAACUAAAAdAAAAFAAAAAsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAAFwAAACoAAABBAAAA + VAAAAGEAAABpAAAAbAAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA + bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA + bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA + bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA + bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAGwAAABpAAAAYQAAAFIAAABBAAAALAAAABkAAAAMAAAA + AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAEAAAADwAAACMAAABBAAAAYgAAAIGmpqbN/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + ///////+/v7/p6enzAAAAIEAAABlAAAARgAAACoAAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABEAAAArAAAAUgAAAHz///////// + //7+/v+YmJj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/5mZmf////////////////8AAACEAAAA + XAAAADcAAAAaAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAIAAAAPAAAALAAAAFgAAACL//////v7+/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/5OTk///////Y2NjlAAAAawAAAD0AAAAbAAAACAAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAACUAAABTJSUllf////9LS0v/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC + ////////////AAAAbgAAADwAAAAYAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAQAAAAaAAAARQAAAID/////ExMT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA///////+/v7/AAAAaAAAADQAAAAQAAAA + AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAAC8AAABo/v7+/2tra/8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA////////////AAAAVgAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAQAAAAZAAAASc3Nzdj+/v7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAB7AAAA + PQAAABMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAACgAAABi/////wMDA/8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA/8ZGRn/Gxsb/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc + /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc + /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc + /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc + /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/Gxsb/woKCv8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/sbGx//////8AAABYAAAAIgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAPAAAANwAAAHj/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF/8fHx//IyMj + /yUlJf8nJyf/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo + /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo + /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo + /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo + /ycnJ/8nJyf/JiYm/yMjI/8gICD/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///// + /wAAAHEAAAAyAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABUAAABE/////4iIiP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8TExP/Hx8f/yUlJf8pKSn/Kysr/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8sLCz/Kioq/ycnJ/8iIiL/Gxsb + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/r6+v/ycnJ0gAAAEAAAAATAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAADAAAAGgAAAE/+/v7/Dw8P/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8kJCT/Kioq + /y4uLv8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx + /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx + /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx + /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx + /zExMf8xMTH/MTEx/zAwMP8vLy//LCws/ygoKP8hISH/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /xEREf/+/v7/AAAATQAAABkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAeAAAAVv////8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/ycnJ/8tLS3/MTEx/zIyMv8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MjIy/zIyMv8wMDD/LCws + /yUlJf8eHh7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABVAAAAHQAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABQAAACAAAABa/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP8iIiL/KSkp + /y8vL/8yMjL/MzMz/zQ0NP80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/paWl + /zQ0NP80NDT/NDQ0/0tLS/+np6f/p6en/6enp/+np6f/NDQ0/zQ0NP80NDT/Q0ND/6enp/+np6f/p6en + /6enp/+np6f/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en + /0pKSv80NDT/NDQ0/6enp/+np6f/p6en/6enp/80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en + /6enp/+np6f/p6en/zQ0NP80NDT/MzMz/zExMf8uLi7/KCgo/yEhIf8HBwf/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD//////wAAAFkAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAIQAAAFv/////AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/GRkZ/yQkJP8rKyv/MTEx/zMzM/80NDT/NDQ0/zQ0NP+urq7/rq6u + /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+rq6v/NDQ0/zQ0NP80NDT/TExM/66urv+urq7/rq6u + /66urv80NDT/NDQ0/zQ0NP9ERET/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0 + /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv80NDT/rq6u/66urv+urq7/rq6u + /zQ0NP+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0/zQ0NP80NDT/MjIy + /y8vL/8qKir/IyMj/xkZGf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAWwAAACEAAAAFAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAUAAAAhAAAAW/////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/JSUl + /ywsLP8xMTH/MzMz/zU1Nf81NTX/NTU1/6Ghof+hoaH/oaGh/6Ghof+hoaH/oqKi/7Ozs/+zs7P/s7Oz + /7CwsP81NTX/NTU1/zU1Nf9OTk7/s7Oz/7Ozs/+zs7P/s7Oz/zU1Nf81NTX/NTU1/0RERP+zs7P/s7Oz + /7Ozs/+zs7P/oaGh/7Ozs/+zs7P/s7Oz/7Ozs/80NDT/s7Oz/7Ozs/+zs7P/s7Oz/6CgoP+goKD/s7Oz + /7Ozs/+zs7P/s7Oz/zQ0NP+zs7P/s7Oz/7Ozs/+zs7P/NDQ0/7Ozs/+zs7P/s7Oz/7Ozs/+goKD/oKCg + /7Ozs/+zs7P/s7Oz/7Ozs/80NDT/NDQ0/zQ0NP8yMjL/MDAw/ysrK/8kJCT/Gxsb/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA//////8AAABbAAAAIQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xwcHP8lJSX/LCws/zExMf8zMzP/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NTU1/zU1Nf81NTX/urq6/7q6uv+6urr/t7e3/zU1Nf81NTX/NTU1/05OTv+6urr/urq6 + /7q6uv+6urr/NTU1/zU1Nf81NTX/RUVF/7q6uv+6urr/urq6/7S0tP81NTX/urq6/7q6uv+6urr/urq6 + /zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/7q6uv+6urr/urq6 + /7q6uv81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/NTU1 + /zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAA + BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HBwc + /yUlJf8sLCz/MTEx/zMzM/81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf/BwcH/wcHB + /8HBwf++vr7/NTU1/zU1Nf81NTX/T09P/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1/zU1Nf9ERET/wcHB + /8HBwf/BwcH/u7u7/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1 + /8HBwf/BwcH/wcHB/8HBwf81NTX/wcHB/8HBwf/BwcH/wcHB/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1 + /zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/zU1Nf81NTX/MzMz/zExMf8sLCz/JSUl/xwcHP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2 + /8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8TExP82Njb/NjY2/zY2Nv9RUVH/yMjI + /8jIyP/IyMj/yMjI/zY2Nv82Njb/NTU1/0ZGRv/IyMj/yMjI/8jIyP/BwcH/NTU1/8jIyP/IyMj/yMjI + /8jIyP81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf/IyMj/yMjI + /8jIyP/IyMj/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1 + /zU1Nf8zMzP/MTEx/ywsLP8lJSX/HBwc/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAA + IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /x0dHf8mJib/LS0t/zIyMv80NDT/NjY2/zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P + /8/Pz//Pz8//y8vL/zY2Nv82Njb/NjY2/1FRUf/Pz8//z8/P/8/Pz//Pz8//NjY2/zY2Nv82Njb/R0dH + /8/Pz//Pz8//z8/P/8jIyP82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2 + /zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2/8/Pz//Pz8//z8/P/8/Pz/82Njb/z8/P/8/Pz//Pz8//z8/P + /zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv82Njb/NTU1/zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + IgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HR0d/yYmJv8tLS3/MjIy/zQ0NP82Njb/NjY2 + /zY2Nv/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/R0dH/NjY2/zY2Nv82Njb/UlJS + /9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/zY2Nv9HR0f/1dXV/9XV1f/V1dX/zc3N/zY2Nv/V1dX/1dXV + /9XV1f/V1dX/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/1dXV + /9XV1f/V1dX/1dXV/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2 + /zY2Nv82Njb/NDQ0/zIyMv8tLS3/JiYm/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA + XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2 + /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv9TU1P/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv82Njb/NjY2 + /0hISP/c3Nz/3Nzc/9zc3P/U1NT/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/3Nzc/9zc3P/c3Nz/3Nzc + /zY2Nv82Njb/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv/c3Nz/3Nzc/9zc3P/c3Nz/NjY2/9zc3P/c3Nz/3Nzc + /9zc3P82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2/zY2Nv80NDT/MjIy/y0tLf8mJib/HR0d + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8nJyf/Li4u/zMzM/81NTX/Nzc3 + /zc3N/83Nzf/4+Pj/+Pj4//j4+P/4+Pj/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3 + /1VVVf/j4+P/4+Pj/+Pj4//j4+P/Nzc3/zc3N/83Nzf/SUlJ/+Pj4//j4+P/4+Pj/9ra2v83Nzf/4+Pj + /+Pj4//j4+P/4+Pj/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2 + /+Pj4//j4+P/4+Pj/+Pj4/82Njb/4+Pj/+Pj4//j4+P/4+Pj/zY2Nv82Njb/4+Pj/+Pj4//j4+P/4+Pj + /zY2Nv82Njb/NjY2/zQ0NP8yMjL/LS0t/yYmJv8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///// + /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/HR0d/ycnJ/8uLi7/MzMz/zU1Nf83Nzf/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3 + /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/VVVV/+rq6v/q6ur/6urq/+rq6v83Nzf/Nzc3 + /zc3N/9KSkr/6urq/+rq6v/q6ur/4eHh/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/+rq6v/q6ur/6urq + /+rq6v83Nzf/Nzc3/+rq6v/q6ur/6urq/+rq6v83Nzf/6urq/+rq6v/q6ur/6urq/zc3N//q6ur/6urq + /+rq6v/q6ur/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn + /x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/Jycn/y4uLv8zMzP/NTU1 + /zc3N/83Nzf/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+zs7P83Nzf/8fHx + //Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/Nzc3/0pKSv/x8fH/8fHx//Hx8f/n5+f/Nzc3 + //Hx8f/x8fH/8fHx//Hx8f83Nzf/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx + /zc3N//x8fH/8fHx//Hx8f/x8fH/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx + //Hx8f83Nzf/Nzc3/zc3N/81NTX/MzMz/y4uLv8nJyf/HR0d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v/zQ0NP82Njb/ODg4/zg4OP84ODj/+Pj4//j4+P/4+Pj/+Pj4 + //j4+P/4+Pj/+Pj4//j4+P/4+Pj/8vLy/zg4OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4 + //j4+P83Nzf/SkpK//j4+P/4+Pj/+Pj4/+7u7v83Nzf/+Pj4//j4+P/4+Pj/+Pj4/zc3N//4+Pj/+Pj4 + //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/1VVVf83Nzf/Nzc3//j4+P/4+Pj/+Pj4//j4+P83Nzf/+Pj4 + //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/zc3N/83Nzf/Nzc3/zU1Nf8zMzP/Li4u + /ycnJ/8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Hh4e/ygoKP8vLy//NDQ0 + /zY2Nv84ODj/ODg4/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9vb2//ODg4 + /3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/zg4OP87Ozv/cXFx/3Fxcf9xcXH/bW1t + /zg4OP9xcXH/cXFx/3Fxcf9xcXH/ODg4/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/Pj4+ + /zg4OP84ODj/cXFx/3Fxcf9xcXH/cXFx/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx + /3Fxcf9xcXH/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8eHh7/KCgo/y8vL/80NDT/NjY2/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP82Njb/NDQ0 + /y8vL/8oKCj/Hh4e/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v + /zQ0NP82Njb/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk + /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/zg4OP84ODj/pKSk + /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4/zg4OP+kpKT/pKSk/6SkpP+kpKT/pKSk + /6SkpP+kpKT/pKSk/zg4OP84ODj/ODg4/zY2Nv80NDT/Ly8v/ygoKP8eHh7/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AQEB + /wEBAf8BAQH/AQEB/wEBAf8BAQH/Hh4e/ygoKP8vLy//NTU1/zc3N/85OTn/OTk5/zk5Of+np6f/p6en + /6enp/+np6f/p6en/6enp/+np6f/p6en/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5 + /zk5Of85OTn/OTk5/zk5Of+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en + /6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en + /zg4OP84ODj/ODg4/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP84ODj/NjY2 + /zQ0NP8vLy//KCgo/x4eHv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8eHh7/KCgo + /y8vL/81NTX/Nzc3/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5 + /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur + /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/85OTn/OTk5 + /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5/zk5Of85OTn/q6ur/6urq/+rq6v/q6ur + /6urq/+rq6v/q6ur/6urq/85OTn/OTk5/zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wEBAf8BAQH/AQEB + /wEBAf8BAQH/AQEB//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/x4eHv8oKCj/Ly8v/zU1Nf83Nzf/OTk5/zk5Of85OTn/rq6u + /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5 + /zk5Of85OTn/OTk5/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u + /66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u + /66urv85OTn/OTk5/zk5Of+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/OTk5 + /zc3N/81NTX/Ly8v/ygoKP8eHh7/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL//////wAAAFwAAAAiAAAA + BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/Hx8f + /ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6/zo6Ov+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy + /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+ysrL/srKy + /7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5 + /zk5Of+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/zk5Of85OTn/OTk5/7Kysv+ysrL/srKy + /7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5/zk5Of85OTn/Nzc3/zU1Nf8vLy//KCgo/x4eHv8DAwP/AwMD + /wMDA/8DAwP/AwMD/wMDA///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8fHx//KSkp/zAwMP82Njb/ODg4/zo6Ov86Ojr/Ojo6 + /7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1 + /7W1tf+1tbX/Ojo6/zo6Ov86Ojr/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf85OTn/OTk5 + /zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD//////8AAABcAAAA + IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE + /x8fH/8pKSn/MDAw/zY2Nv84ODj/Ojo6/zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5 + /7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/ubm5 + /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov+5ubn/ubm5 + /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/zo6Ov86Ojr/Ojo6/zg4OP82Njb/MDAw/ykpKf8fHx//BAQE + /wQEBP8EBAT/BAQE/wQEBP8EBAT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + IgAAAFz/////BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/Hx8f/ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6 + /zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8 + /7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/Ojo6 + /zo6Ov86Ojr/ODg4/zY2Nv8wMDD/KSkp/x8fH/8FBQX/BAQE/wQEBP8EBAT/BAQE/wQEBP//////AAAA + XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8GBgb/BgYG/wYGBv8GBgb/BgYG + /wYGBv8gICD/Kioq/zExMf83Nzf/OTk5/zs7O/87Ozv/Ozs7/7+/v/+/v7//v7+//7+/v/+/v7//v7+/ + /7+/v/+/v7//Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/Ojo6/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/ + /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/86Ojr/Ojo6/zo6Ov84ODj/NjY2/zAwMP8pKSn/Hx8f + /wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BgAAACIAAABc/////wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH/yAgIP8qKir/MTEx/zc3N/85OTn/Ozs7 + /zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD + /8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD + /8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD + /zs7O/87Ozv/Ozs7/zg4OP82Njb/MDAw/ykpKf8fHx//BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb///// + /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////BwcH/wcHB/8HBwf/BwcH + /wcHB/8HBwf/ICAg/yoqKv8xMTH/Nzc3/zk5Of87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG + /8bGxv/Gxsb/xsbG/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/Ozs7 + /zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG + /8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/Ozs7/zs7O/87Ozv/OTk5/zc3N/8xMTH/Kioq + /yAgIP8HBwf/BwcH/wcHB/8HBwf/BwcH/wcHB///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAYAAAAiAAAAXP////8ICAj/CAgI/wgICP8ICAj/CAgI/wgICP8gICD/Kioq/zIyMv84ODj/Ojo6 + /zw8PP88PDz/PDw8/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK + /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv87Ozv/Ozs7/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK + /8rKyv/Kysr/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/8rKyv/Kysr/ysrK + /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK + /8rKyv87Ozv/Ozs7/zs7O/85OTn/Nzc3/zExMf8qKir/ICAg/wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH + //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wkJCf8JCQn/CQkJ + /wkJCf8JCQn/CAgI/yAgIP8qKir/MjIy/zg4OP86Ojr/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O + /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O + /zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv88PDz/PDw8/zw8PP88PDz/PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O + /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/zs7O/87Ozv/Ozs7/zk5Of83Nzf/MTEx + /yoqKv8gICD/CAgI/wgICP8ICAj/CAgI/wgICP8ICAj//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGAAAAIgAAAFz/////CQkJ/wkJCf8JCQn/CQkJ/wkJCf8JCQn/ICAg/yoqKv8yMjL/ODg4 + /zo6Ov88PDz/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR + /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR + /9HR0f/R0dH/0dHR/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP/R0dH/0dHR + /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/qamp/zw8PP88PDz/PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/Ojo6/zg4OP8yMjL/Kioq/yAgIP8JCQn/CQkJ/wkJCf8JCQn/CQkJ + /wkJCf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8KCgr/CgoK + /woKCv8KCgr/CgoK/woKCv8hISH/Kysr/zMzM/84ODj/Ojo6/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU + /9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU + /9TU1P88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/PDw8/zw8PP88PDz/PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU + /9TU1P/U1NT/1NTU/9TU1P+rq6v/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP86Ojr/ODg4 + /zIyMv8qKir/ICAg/wkJCf8JCQn/CQkJ/wkJCf8JCQn/CQkJ//////8AAABcAAAAIgAAAAYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAACIAAABc/////wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/yEhIf8rKyv/MzMz + /zg4OP87Ozv/PT09/z09Pf89PT3/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX + /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/z09Pf89PT3/19fX/9fX1//X19f/19fX + /9fX1//X19f/19fX/9fX1/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP88PDz/19fX + /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/6ysrP88PDz/PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zo6Ov84ODj/MjIy/yoqKv8gICD/CgoK/woKCv8KCgr/CgoK + /woKCv8KCgr//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////CwsL + /wsLC/8LCwv/CwsL/wsLC/8LCwv/ISEh/ysrK/8zMzP/ODg4/zs7O/89PT3/PT09/z09Pf/b29v/29vb + /9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09/9vb2//b29v/29vb/9vb2//b29v/29vb + /9vb2//b29v/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09 + /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb + /9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/PT09/z09Pf89PT3/Ozs7 + /zg4OP8zMzP/Kysr/yEhIf8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC///////AAAAXAAAACIAAAAGAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8MDAz/DAwM/wwMDP8MDAz/DAwM/wwMDP8hISH/Kysr + /zMzM/84ODj/Ozs7/z09Pf89PT3/PT09/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/PT09 + /z09Pf89PT3/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v89PT3/PT09/97e3v/e3t7/3t7e + /97e3v/e3t7/3t7e/97e3v/e3t7/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09 + /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e + /97e3v/e3t7/3t7e/97e3v89PT3/PT09/z09Pf87Ozv/ODg4/zMzM/8rKyv/ISEh/wsLC/8LCwv/CwsL + /wsLC/8LCwv/CwsL//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N/yEhIf8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v8+Pj7/PT09/z09Pf/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v89PT3/PT09 + /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/FxcX/xcXF/8XFxf/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/z09Pf89PT3/PT09 + /zs7O/84ODj/MzMz/ysrK/8hISH/DAwM/wwMDP8MDAz/DAwM/wwMDP8MDAz//////wAAAFwAAAAiAAAA + BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////DQ0N/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/ISEh + /ywsLP80NDT/OTk5/zw8PP8+Pj7/Pj4+/z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl + /z4+Pv8+Pj7/Pj4+/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/Pj4+/z4+Pv/l5eX/5eXl + /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+ + /z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z09Pf89PT3/PT09/+Xl5f/l5eX/5eXl + /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/PT09/z09Pf89PT3/Ozs7/zg4OP8zMzP/Kysr/yEhIf8NDQ3/DQ0N + /w0NDf8NDQ3/DQ0N/w0NDf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8hISH/LCws/zQ0NP85OTn/PDw8/z4+Pv8+Pj7/Pj4+ + /+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp + /+np6f/p6en/6enp/+np6f8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+ + /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp + /+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f8+Pj7/Pj4+ + /z4+Pv88PDz/OTk5/zQ0NP8sLCz/ISEh/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N//////8AAABcAAAA + IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O + /yIiIv8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs + /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/7Ozs + /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs + /z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P8+Pj7/Pj4+/z4+Pv/s7Oz/7Ozs + /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/Pj4+/zw8PP85OTn/NDQ0/ywsLP8hISH/Dg4O + /w4ODv8ODg7/Dg4O/w4ODv8ODg7//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + IgAAAFz/////Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//IiIi/y0tLf80NDT/Ojo6/z09Pf8/Pz//Pz8/ + /z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw + //Dw8P/w8PD/8PDw//Dw8P/w8PD/Pz8//z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw + //Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+/z4+Pv/w8PD/8PDw//Dw8P/w8PD/8PDw + //Dw8P/w8PD/8PDw/z4+Pv8+Pj7/Pj4+//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+ + /z4+Pv8+Pj7/PDw8/zk5Of80NDT/LCws/yEhIf8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv//////AAAA + XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8QEBD/EBAQ/xAQEP8QEBD/EBAQ + /xAQEP8iIiL/LS0t/zQ0NP86Ojr/PT09/z8/P/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz + //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8/ + //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz + //Pz8/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/Pz8//z8/P/8/Pz//8/Pz + //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi + /w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BgAAACIAAABc/////xEREf8RERH/ERER/xEREf8RERH/ERER/yIiIv8tLS3/NDQ0/zo6Ov89PT3/Pz8/ + /z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2 + //b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2 + //b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2 + //b29v/29vb/9vb2//b29v8/Pz//Pz8//z8/P//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2 + /z8/P/8/Pz//Pz8//z09Pf86Ojr/NDQ0/y0tLf8iIiL/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD///// + /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ERER/xEREf8RERH/ERER + /xEREf8RERH/IiIi/y0tLf81NTX/Ozs7/z4+Pv9AQED/QEBA/0BAQP/6+vr/+vr6//r6+v/6+vr/+vr6 + //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/Pz8/ + /z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6 + //r6+v/6+vr/Pz8//z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/z8/P/8/Pz//Pz8/ + //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/Pz8//z8/P/8/Pz//PT09/zo6Ov80NDT/LS0t + /yIiIv8RERH/ERER/xEREf8RERH/ERER/xEREf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAYAAAAiAAAAXP////8SEhL/EhIS/xISEv8SEhL/EhIS/xISEv8iIiL/LS0t/zU1Nf87Ozv/Pj4+ + /0BAQP9AQED/QEBA/8DAwP/AwMD/v7+//7+/v//AwMD/wMDA/8DAwP/AwMD/v7+//7+/v/+/v7//v7+/ + /8DAwP/AwMD/v7+//7+/v/+/v7//v7+//7+/v/9AQED/QEBA/7+/v/+/v7//v7+//8DAwP/AwMD/wMDA + /8DAwP+/v7//v7+//7+/v//AwMD/wMDA/8DAwP+/v7//v7+//7+/v/9AQED/QEBA/8DAwP/AwMD/v7+/ + /7+/v/+/v7//v7+//7+/v/+/v7//Pz8//z8/P/8/Pz//vr6+/76+vv+/v7//v7+//7+/v/++vr7/vr6+ + /76+vv8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi/xEREf8RERH/ERER/xEREf8RERH/ERER + //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xISEv8SEhL/EhIS + /xISEv8SEhL/EhIS/yIiIv8tLS3/NTU1/zs7O/8+Pj7/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/z4+Pv87Ozv/NTU1 + /y0tLf8iIiL/EhIS/xISEv8SEhL/EhIS/xISEv8SEhL//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGAAAAIgAAAFz/////ExMT/xMTE/8TExP/ExMT/xMTE/8TExP/IiIi/y0tLf81NTX/Ozs7 + /z4+Pv9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zs7O/81NTX/LS0t/yIiIv8TExP/ExMT/xMTE/8TExP/EhIS + /xISEv//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8UFBT/FBQU + /xQUFP8UFBT/FBQU/xQUFP8jIyP/Li4u/zY2Nv88PDz/Pz8//0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8+Pj7/Ozs7 + /zU1Nf8tLS3/IiIi/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT//////8AAABcAAAAIgAAAAYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAACIAAABc/////xUVFf8VFRX/FRUV/xUVFf8VFRX/FRUV/yMjI/8uLi7/NjY2 + /zw8PP8/Pz//QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/z8/P/88PDz/NjY2/y4uLv8iIiL/FBQU/xQUFP8UFBT/FBQU + /xQUFP8UFBT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FRUV + /xUVFf8VFRX/FRUV/xUVFf8VFRX/IyMj/y4uLv82Njb/PDw8/z8/P/9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/Pz8/ + /zw8PP82Njb/Li4u/yMjI/8VFRX/FRUV/xUVFf8VFRX/FRUV/xUVFf//////AAAAXAAAACIAAAAGAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8jIyP/Ly8v + /zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA/0BAQP9AQED/Pz8/ + /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/ + /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Ozs7/zU1Nf8tLS3/IiIi/xUVFf8VFRX/FRUV + /xUVFf8VFRX/FRUV//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/yMjI/8vLy//Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0FBQf9BQUH/QEBA/0BAQP8/Pz//Pz8//z4+Pv8+Pj7/Pj4+/z09Pf89PT3/PT09/z09Pf89PT3/PT09 + /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09 + /zs7O/84ODj/MzMz/ysrK/8hISH/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb//////wAAAFwAAAAiAAAA + BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/IyMj + /y8vL/83Nzf/PT09/0BAQP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QEBA/z8/P/8+Pj7/PT09/zs7O/86Ojr/OTk5 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/Nzc3/zQ0NP8uLi7/Jycn/x4eHv8XFxf/FxcX + /xcXF/8XFxf/FxcX/xcXF///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8YGBj/GBgY/xgYGP8YGBj/GBgY/xgYGP8jIyP/Ly8v/zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB + /0BAQP8/Pz//PT09/zs7O/84ODj/NTU1/zMzM/8yMjL/MTEx/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw + /zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw + /zAwMP8vLy//LS0t/ygoKP8iIiL/Ghoa/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX//////8AAABbAAAA + IQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ + /yQkJP8vLy//ODg4/z4+Pv9BQUH/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/QkJC/0FBQf9AQED/Pj4+/zs7O/84ODj/NDQ0/y8vL/8sLCz/KSkp + /ycnJ/8mJib/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl + /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yQkJP8iIiL/Hh4e/xoaGv8VFRX/GBgY + /xgYGP8YGBj/GBgY/xgYGP8YGBj//////wAAAFoAAAAhAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + IgAAAFz/////GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/JCQk/y8vL/84ODj/Pj4+/0FBQf9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB + /z8/P/87Ozv/Nzc3/zIyMv8sLCz/JiYm/yEhIf8ZGRn/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW + /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW + /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAA + VwAAAB8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8aGhr/Ghoa/xoaGv8aGhr/Ghoa + /xoaGv8kJCT/Ly8v/zg4OP8+Pj7/QUFB/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9AQED/PDw8/zc3N/8wMDD/KSkp/yEhIf8aGhr/Ghoa + /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa + /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa + /xoaGv8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ//////8AAABPAAAAGgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BgAAACIAAABc/////xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE + /0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB + /z09Pf84ODj/MTEx/ygoKP8eHh7/Ghoa/xoaGv8aGhr/Ghoa/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ + /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ + /xkZGf8ZGRn/GRkZ/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr///// + /wAAAD8AAAATAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Gxsb/xsbG/8bGxv/Gxsb + /xsbG/8bGxv/JCQk/zAwMP85OTn/Pz8//0JCQv9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9AQED/PDw8/zU1Nf8sLCz/ISEh/xsbG/8bGxv/Gxsb + /ysrK/82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2 + /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/xsbG/8bGxv/Gxsb + /xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb////////////AAAAKwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAYAAAAiAAAAXP////8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8kJCT/MDAw/zk5Of8/Pz//QkJC + /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9DQ0P/QkJC + /z8/P/85OTn/MDAw/yYmJv8cHBz/HBwc/xwcHP82Njb/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3 + /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3 + /zY2Nv82Njb/NjY2/zY2Nv8sLCz/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG//+/v7///// + /wAAADkAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////x0dHf8dHR3/HR0d + /x0dHf8dHR3/HR0d/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9BQUH/PT09/zU1Nf8sLCz/GBgY/xwcHP8cHBz/NTU1 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP83Nzf/Nzc3/zc3N/83Nzf/LS0t/xwcHP8cHBz/HBwc + /xwcHP8cHBz/HBwc/xwcHP8cHBz//v7+//////8AAAA+AAAAGgAAAAcAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGAAAAIgAAAFz/////HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/JSUl/zExMf85OTn/QEBA + /0NDQ/9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0RERP9ERET/Q0ND + /0FBQf88PDz/MzMz/ygoKP8dHR3/HR0d/xYWFv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5 + /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/y0tLf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/HR0d////////////AAAA + PgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8eHh7/Hh4e + /x4eHv8eHh7/Hh4e/x4eHv8lJSX/MTEx/zk5Of9AQED/Q0ND/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9DQ0P/QUFB/zs7O/8xMTH/JiYm/x4eHv8eHh7/Nzc3 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of8vLy//HR0d/x0dHf8dHR3/HR0d + /x0dHf8dHR3/HR0d/x0dHf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAACIAAABc/////x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/yUlJf8xMTH/OTk5 + /0BAQP9DQ0P/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0NDQ/9AQED/Ojo6/zAwMP8eHh7/Hh4e/x4eHv87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zs7O/86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/ICAg/x4eHv8eHh7/Hh4e/x4eHv8eHh7/Hh4e/x4eHv8eHh7///////////8AAAA+AAAA + GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Hx8f + /x8fH/8fHx//Hx8f/x8fH/8fHx//JiYm/zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/Q0ND/0BAQP85OTn/Ly8v/x4eHv8fHx//Hx8f + /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/yEhIf8fHx//Hx8f/x8fH/8fHx//Hx8f + /x8fH/8fHx//Hx8f////////////AAAAPgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8gICD/ICAg/yAgIP8gICD/ICAg/yAgIP8mJib/MjIy + /zo6Ov9BQUH/RERE/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9ERET/QUFB/zo6Ov8vLy//Hx8f/yAgIP8gICD/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8 + /zw8PP8hISH/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH////////////wAAAD8AAAAbAAAA + BwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /yEhIf8hISH/ISEh/yEhIf8hISH/ISEh/yYmJv8yMjL/Ojo6/0FBQf9ERET/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0RERP9AQED/OTk5/y8vL/8eHh7/ICAg + /x8fH/89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09 + /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/ISEh/yAgIP8gICD/ICAg/yAgIP8gICD/ICAg + /yAgIP8gICD///////////8AAAA/AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/JiYm + /zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RERE/0BAQP85OTn/Ly8v/x8fH/8hISH/ICAg/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+ + /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+ + /xoaGv8hISH/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh////////////AAAAPgAAABsAAAAIAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8mJib/MjIy/zs7O/9CQkL/RUVF/0dHR/9HR0f/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0ZGRv9GRkb/RkZG/0VFRf9ERET/QEBA/zk5Of8vLy//Hx8f + /yIiIv8hISH/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/ + /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8YGBj/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh + /yEhIf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj + /yYmJv8yMjL/Ozs7/0JCQv9FRUX/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/RkZG/0VFRf9BQUH/Ojo6/y8vL/8gICD/IiIi/yEhIf9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Ghoa + /yIiIv8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8iIiL//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + IgAAAFz/////IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/JiYm/zIyMv87Ozv/QkJC/0VFRf9HR0f/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9GRkb/RUVF/0FBQf86Ojr/Ly8v + /yAgIP8jIyP/IiIi/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/xwcHP8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj + //7+/v//////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8kJCT/JCQk/yQkJP8kJCT/JCQk + /yQkJP8nJyf/MzMz/zw8PP9DQ0P/RkZG/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/R0dH/0ZGRv9FRUX/QUFB/zo6Ov8vLy//ICAg/yQkJP8jIyP/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf8eHh7/JCQk + /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP/+/v7//////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BgAAACIAAABc/////yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/ycnJ/8zMzP/PDw8/0NDQ/9GRkb/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7 + /zAwMP8hISH/JSUl/yQkJP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/HBwc/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT///// + //////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////JSUl/yUlJf8lJSX/JSUl + /yUlJf8lJSX/Jycn/zMzM/88PDz/Q0ND/0ZGRv9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9HR0f/RkZG/0JCQv87Ozv/MDAw/yEhIf8lJSX/JCQk/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/x8fH/8lJSX/JSUl + /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl////////////AAAAPwAAABsAAAAHAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAYAAAAiAAAAXP////8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8nJyf/MzMz/zw8PP9DQ0P/RkZG + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/9GRkb/QkJC + /zs7O/8wMDD/ISEh/yYmJv8lJSX/RUVF/0VFRf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP8jIyP/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf/+/v7///// + /wAAAD8AAAAcAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////ycnJ/8nJyf/Jycn + /ycnJ/8nJyf/Jycn/ycnJ/80NDT/PT09/0RERP9HR0f/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7/zAwMP8hISH/JiYm/yUlJf9GRkb/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/IiIi/yYmJv8mJib/JiYm + /yYmJv8mJib/JiYm/yYmJv8mJib//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGAAAAIgAAAFz/////KCgo/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/zQ0NP89PT3/RERE + /0dHR/9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/R0dH + /0NDQ/88PDz/MTEx/yEhIf8nJyf/JiYm/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/yMjI/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn////////////AAAA + PgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8oKCj/KCgo + /ygoKP8oKCj/KCgo/ygoKP8nJyf/NDQ0/z09Pf9ERET/R0dH/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0hISP9HR0f/Q0ND/zw8PP8xMTH/IiIi/ygoKP8nJyf/R0dH + /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/8lJSX/KCgo/ygoKP8oKCj/KCgo + /ygoKP8oKCj/KCgo/ygoKP///////f39/gAAAD4AAAAbAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAACIAAABc/////ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp/ygoKP80NDT/Pj4+ + /0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI + /0dHR/9DQ0P/PDw8/zExMf8iIiL/KSkp/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9HR0f/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj///////////8AAAA+AAAA + GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////KSkp + /ykpKf8pKSn/KSkp/ykpKf8pKSn/KCgo/zQ0NP8+Pj7/RUVF/0hISP9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yMjI/8pKSn/KCgo + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp + /ykpKf8pKSn/KSkp////////////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8oKCj/NDQ0 + /z4+Pv9FRUX/SEhI/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0lJSf9HR0f/RERE/zw8PP8xMTH/IyMj/yoqKv8pKSn/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv8pKSn/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv///////f39/gAAAD4AAAAbAAAA + CAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc//// + /ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP80NDT/Pj4+/0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ/0dHR/9ERET/PDw8/zExMf8jIyP/Kioq + /ykpKf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/KSkp/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq + /yoqKv8qKir///////39/f4AAAA+AAAAGwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/KCgo + /zU1Nf8+Pj7/RkZG/0lJSf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yQkJP8rKyv/Kioq/0xMTP9MTEz/TExM/0xMTP9MTEz/S0tL + /yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr////////////AAAAPAAAABoAAAAIAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA + XP////8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8oKCj/NTU1/z4+Pv9GRkb/SUlJ/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0pKSv9ISEj/RUVF/z09Pf8yMjL/JSUl + /ywsLP8rKyv/TU1N/01NTf9NTU3/TExM/0tLS/8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/LCws + /ywsLP///////Pz8/QAAADkAAAAZAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAACEAAABb/////y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + /ycnJ/80NDT/Pj4+/0VFRf9JSUn/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/SkpK/0hISP9FRUX/PT09/zIyMv8lJSX/LCws/ysrK/9OTk7/TU1N/01NTf9LS0v/LCws + /ywsLP8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz///////v7+/sAAAA5AAAAFwAAAAYAAAABAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAA + IQAAAFr/////LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/JiYm/zMzM/89PT3/RUVF/0lJSf9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9KSkr/SEhI/0VFRf89PT3/MjIy + /yUlJf8tLS3/LCws/05OTv9OTk7/TU1N/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t + ////////////AAAAOAAAABcAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAfAAAAWP////8uLi7/Li4u/y4uLv8uLi7/Li4u + /y4uLv8kJCT/MDAw/zo6Ov9DQ0P/SEhI/0pKSv9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0pKSv9JSUn/RUVF/z4+Pv8yMjL/JiYm/y4uLv8uLi7/T09P/05OTv8uLi7/Li4u + /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv///////////wAAADgAAAAXAAAABgAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AwAAABwAAABT/////y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/yQkJP8rKyv/NjY2/z4+Pv9ERET/RkZG + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0ZGRv9CQkL/Ozs7 + /zAwMP8lJSX/Li4u/y4uLv81NTX/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7///// + //////8AAAA5AAAAFwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAFwAAAEn/////MDAw/zAwMP8wMDD/MDAw + /zAwMP8wMDD/LS0t/yUlJf8uLi7/Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QEBA/z09Pf82Njb/LCws/yQkJP8vLy//Ly8v/y8vL/8vLy//Ly8v + /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v////////////AAAAOQAAABcAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAEAAAARAAAAPf////9DQ0P/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/HR0d/yYmJv8tLS3/MzMz + /zc3N/85OTn/OTk5/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of83Nzf/NDQ0 + /y4uLv8lJSX/IiIi/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP//////+/v7 + +gAAADkAAAAXAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAv0dHRyvv7+/8xMTH/MTEx + /zExMf8xMTH/MTEx/zExMf8xMTH/HBwc/yMjI/8oKCj/Kysr/y0tLf8uLi7/Li4u/y4uLv8uLi7/Li4u + /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u + /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y0tLf8qKir/JSUl/x4eHv8lJSX/MDAw/zAwMP8wMDD/MDAw + /zAwMP8wMDD/MDAw/zAwMP8wMDD///////////8AAAA4AAAAGAAAAAcAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAAB8AAABT/////zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MDAw + /ykpKf8iIiL/IyMj/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk + /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/IyMj + /yIiIv8eHh7/JSUl/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx////////////AAAA + NwAAABYAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEQAAADj9/f3+6enp + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8yMjL/MjIy/zIyMv///////////wAAADYAAAAWAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAIAAAAFD/////NTU1/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP///////////8AAAA1AAAA + FQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAOAAAA + LmxsbIH/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz///////7+/v7AAAANQAAABUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAATAAAANP//////////NTU1/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP//////29vbzgAAADQAAAAVAAAA + BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAUAAAAVAAAAMvf39/D/////4ODg/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT//////83Nzb4AAAA0AAAAFQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAATAAAAKAAAAEb9/f3+//// + //X19f+rq6v/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/ra2t///////IyMi2AAAAMgAAABUAAAAFAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAQAAAALAAAAGgAAAC4AAABD0NDQuv/////9/f3+/f39/v39/f79/f3+/f39 + /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39 + /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39 + /v39/f79/f3+AAAARAAAACoAAAATAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAA + DAAAABUAAAAfAAAAJgAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA + LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA + LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAArAAAAKAAAACEAAAAXAAAADAAAAAMAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAUAAAAHAAAACQAAAAkAAAAKAAAA + CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA + CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA + CgAAAAkAAAAIAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////+AAAAAAAAAAAA/////////AAAAAAAAAAAAD////////AAAAAAAAAAAAAf// + /////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAD//////+AAAAAAAAAAA + AAA///////gAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAA + AAAAAAAAf//////wAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////w + AAAAAAAAAAAAB///////8AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP/// + ////8AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAA + A/////////AAAAAAAAAAAAf////////wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAA + AAAAAD/////////wAAAAAAAAAAB/////////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////w + AAAAAAAAAAP/////////8AAAAAAAAAAH//////////AAAAAAAAAAD//////////wAAAAAAAAAB////// + ////8AAAAAAAAAA///////////AAAAAAAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH/ + //////////AAAAAAAAAD///////////wAAAAAAAAB///////////8AAAAAAAAA////////////gAAAAA + AAAf///////////4AAAAAAAAP////////////AAAAAAAAH////////////wAAAAAAAD////////////+ + AAAAAAAB/////////////wAAAAAAA//////////////AAAAAAAf/////////////8AAAAAAf//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////8oAAAAgAAAAAABAAABAAgAAAAA + AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ + /woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY + /xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn + /ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2 + /zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF + /0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O/09PT/9QUFD/UVFR/1JSUv9TU1P/VFRU + /1VVVf9WVlb/V1dX/1hYWP9ZWVn/Wlpa/1tbW/9cXFz/XV1d/15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj + /2RkZP9lZWX/ZmZm/2dnZ/9oaGj/aWlp/2pqav9ra2v/bGxs/21tbf9ubm7/b29v/3BwcP9ycnL/c3Nz + /3R0dP91dXX/dnZ2/3d3d/94eHj/eXl5/3p6ev97e3v/fHx8/319ff9+fn7/f39//4CAgP+BgYH/goKC + /4SEhP+FhYX/hoaG/4eHh/+IiIj/iYmJ/4qKiv+Li4v/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/kpKS + /5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY/5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh + /6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw + /7Gxsf+ysrL/s7Oz/7S0tP+1tbX/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/v7+/ + /8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/y8vL/8zMzP/Nzc3/zs7O + /8/Pz//Q0ND/0dHR/9LS0v/T09P/1NTU/9XV1f/W1tb/19fX/9jY2P/Z2dn/2tra/9vb2//c3Nz/3d3d + /97e3v/f39//4eHh/+Li4v/j4+P/5OTk/+Xl5f/m5ub/5+fn/+jo6P/p6en/6urq/+vr6//s7Oz/7e3t + /+7u7v/v7+//8PDw//Hx8f/y8vL/8/Pz//T09P/39/f/+Pj4//r6+v/7+/v//Pz8//////8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAARqfP1dTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU + 1NTU1NTU1NTU1NTU1NTU1NTU1NTV2cihPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAOsj2xoBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRk + ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRniMf2zlgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAH/xuDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATen9bAKAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACX9HYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG5NYZAQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAefRVAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa + zd0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLwfgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAQ1sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAuMoEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYp8nYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABr0RAAAAAAAAAAGCxEXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcS + FxEUFBcSFxIXEhcSFxIXDwsEAAAAAAAAAACG5QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAjtoEAAAAAAAAER8kKCcpKCooKigqKConKCkqKCooKigqKCooKigqKCooKigqKCooKigq + KCooKigqKCopKSkoKigqKCooKigpJicmJCAQBgAAAAAAABDsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAADNhQAAAAAAAAwhJiovKi8qMCowKjAqMCovMC8qMCowKjAqMCowKjAqMCow + KjAqMCowKjAqMCowKjAqMCowKiovKjAqMCowKjApLywqJyUYAAAAAAAAAKW4BgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOdSAAAAAAAEGigpKjAxMS8vMTExMTEyNCovMTExMTIyLy8w + LzExMTExMTExMTExMDExMTExMTEwLzExMTExNzAxMTExMTEyMjAvMTEsKCEXAAAAAAABWeMAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO9B8AAAAAAAogJyk2MTA3OkdAQUFBQUFBOjcw + MjlBQUE6NzQ3OEFBQUFBQUFBQTc6REFBQUFBQTk3MkFBQUEyOkRBQUFBQUFBOjcxMSosKCAGAAAAAAAf + 8w0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb3HwAAAAAADyQpKi83NzaWpaek + paWmpqZ5NzcyZqekp3k0NDRmpaanpKWlpqenOoaopqSlpaWmaDQ3pqakpjqCpqekpaWmp6aINzcwNyop + IQ0AAAAAASH2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvcfAAAAAAAQJCkx + NzExNJeorqiura2qp4U0MjdmqqeugDIxMWmqqqqnra2tqqg/iK6oqK6qra2ceTqqqKitOoavraiuqq2t + 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 + 9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3KAsLCwwNHCo0Ojw6PEDH1tbW + 1tbW18XDyNbW1tbW1ta6OknV1tbW1tbW0kc6QDpAOjo/PD+41tbW1tbW1tbW1tbYl1hYWFlWPD86ODg0 + LBoKCgoKCij2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpDAsLCwsaKjY4 + OkA6Qc7a2dnZ2dnZVTpk2NnZ2dnZ2bo8S9jZ2dnZ2dnVQDo/Oj86Pzw6QMLZ2dnZ2dnZ2dnZ2dnZ2dnZ + 2cM6Pzo6PDQqGg4LCwsLKPcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ikM + DAwMDxoqNjo6QDo6zdvb29vb29tRPGfb3dvb29vbvTpK2t3b29vb3NxBPz8/Pz9AOj88w9vb29vb29vd + 3d3b29vb29zcxkBAOjo4MikcCwsLCwwp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAABf2LA4NDQ0NGik3Nzo6OkbV4eHh4eHh4VU8Z+Te4eHh4eHCPEzc3uHh4eHh3Do6Ojo6Ojo6QTrH + 4eHh4eHh4aaWo+Hh4eHh4eHHPzo6Pzo3KhwMDAwMDCn2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAF/YqDQ0NDg8aLDQ6OkY6QNbj4+Pj4+PjWDpn4+Pj4+Pj48Q6SuTj4+Pj4+PcRjpG + OkY6RjpBP8fj4+Pj4+PkYjxc4+Th4+Pj480/Pzo6OjIqHA0NDQ0OLPYXAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAX9iwODg4ODBovNzo6QDpE2ubl5+bn5uZVOmrl5+bn5ufmxz9K5Ofl + 5+bn5uRHOkA6QDpAOkA6x+bn5ufm5+ZnOl/m5+fn5+bnzjw6QDo8NykgDg0NDQ0q9hcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3Kg8PDg4XGiw2OjpAOkDc7Ofs5+zn59XN1ufs5+zn + 7efIQUvl7Ofs5+zn6c3Nzc3Nzc3GQTzU5+zn7Ofs52Y6X+fn7Ofs5+nVRj9AOjg3KRwODg4ODiz2FwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpEQ8PDw8aKjk6P0A/Qd7t7e3t7e3t + 7e3t7e3t7e3t7cc/S+fv7e3t7e3t7e3t7e3t7eNHOtXu7e3t7e3tZzpg7e3t7e3t7dU/Ojo8OjQsGhAO + Dg4OKvcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ywOEBAREh8pNjo8Pz9B + 4fDw8PDw8PDw8PDw8PDw8PDv1T9M7PDw8PDw8PDw8PDw8PDx50c61PDw8PDw8PBmP1/w8PDw8PDw2EA/ + Rjo5NywcDQ8PDxEp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3LBcRERER + Gi83OTpBQEDj8vLy8vLy8vLy8vLy8vLy8vLOOkzy8/Ly8vLy8vLy8vLy8vLsRjrZ8vLy8vLy8mc/X/Ly + 8vLy8vLbQD8/Ojo3LB8XEBAQDiz3FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + FPcqEREREhQgLDc6Pzo/Ruf09PT09PT09PT09PT09PT09NVATPL09PT09PT09PT09PT09OxGP9r09PT0 + 9PT0Zz9g9PT09PT09N1BQUA8PDkqGhERERIXKfYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAX9i8SEhISEBoqOjw/R0BBnqenp6enp6enp6enp6enp6enlD9Ipaenp6enp6enp6enp6en + okc/laenp6enp6dWP1Knp6anp6aml0A/Ojo/NikgEREREQ8p9xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAABf3LxISEhIXICk4OjpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA + QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFHOjw4LB8SERARFy/2FwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YxEhIREhEaMDY8P0BAQEBAQEBAQEBAQEBAQEBAQEBAQEBA + QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEA6OjkpIhYUFxISL/YXAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/c5IRohGhokMTpAQEdGR0ZBRkFGQUZBRkFGR0ZHRkdGR0ZH + RkdGR0FBRjg3KRoaJDo6Ojk5ODg6ODo6OTg3OTk6Ojc6NzY4ODk6KRogGiAaGho01+EkAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9jofGiAaICQxOEBHREZBR0ZGRkZGRkZGRkZE + R0FGQUZBRkFGQUZBRkZAOjclGiIwOTo8Ojo6Ojo6PDw6Ojo6Ojw6Ojo6Ojo5OSkfGiEaIRohN9bhJQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2Oh8fHx8fJDI6Oj9GR0dHR0dH + R0dHR0dHR0RGRkZGRkZGRkZGRkZGQUA6MSQaHzo6Ojw8Ojw/Ojo6PDk6PDo6Ojo6Ojo8OjkqGiAaIBog + GjjX4SYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/Y5ICAfHx8lMDhG + RkdHRkZGRkZGRkZGRkZGRkdHR0dHR0dHR0dHR0dHPzkwIh8fOTo/Ojo6Pzw6Oj86Ojw8PDo6Ojo6Ojo6 + KSAfHx8fHx841+ElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9zog + ICAgICQ3Oj9GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkRAOjAgISY6QEA6QDpAOkA6OjxBOjxB + OkA6PD86PCofICAgICAgONjhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAABf3OiIiISEhJTA6QUZERkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGREA5LyUgJzpBOjpBOkE6 + QTpBOkE6OkA6Ojo6QTosICAgICAgIDjZ4SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAFPc6ISEhISElNzk/RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEPzkvISIp + OjxAOkA6QDpAOkA6P0E6P0E6Rzo8KCEhISEhISE52eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAX9zoiICIiIiYwOkFGRkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRkZG + REY6PDAlIig/Rj8/Pz8/Pz8/Pz8/PzpAPzo/OikiISEhHyEhONfhJgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT3PCUlISEhJjc5RkdHR0dHR0dHR0dHR0dHR0dHR0dH + R0dHR0dHR0dHR0E6MCQhKTpAQEBAQEBAQEBAQEBARj9ARjopICAgICElITzY4SUAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/c6KCUlJSUmMDpBREdHR0dHR0dHR0dH + R0dHR0dHR0dHR0dHR0dHR0ZHQTowJCUqRj9AQUFBQUFBQT9AQUE/OkY6KSQlJSUlJSI62+EkAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9zokJCQkJCY3PEdGR0hI + SEhISEhISEhISEdHR0dHR0dHR0dHR0dHR0Q/OjAkJSk/RkE/P0BBQEE/RkFAQUZHPyokJCQkJCImOtjh + JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2QCUlJSUl + JzE6REdISEhISEhISEhISEhISEhISEhISEhISEhISEhHREY4MSYlLEZAQEZGRkBGQEZAQEY/QUEpJSQk + JCQkJT/a4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + F/c/JSUlJSUmNzpBRkhISEhISEhISEhISEhISEhISEhISEhISEhISEdHQTowJigpR0dGQUFBR0FGQEZG + QEdAKiUlJSUlJSc63eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAX9kEnJiYmJic3OkdHSEhISEhISEhISEhISEhISEhISEhISEhISEhIR0ZGOjAmJilJRkdH + R0ZBRkFGQURGPyomJiYmJiYlP9zhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAARf2PycnJycnKTc6REdJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSEhISEhIRkE5 + MSYoKkZGRkZHR0dHR0dHREYqJiYmJiYmJkHc4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKCgoKCgoNDpHSElJSUlJSUlJSUlJSUlJSUlJSUlJSUlJ + SUlJSUhHRzoyJicvRkZGRkZGRkZGRkRBLCgnJycnJyVB4eEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9kAoKCgoKCk3OkRHSUlJSUlJSUlJSUlJSUlJ + SUlJSUlJSUlJSUlJSEhEOjEnKDBHR0dHR0dHR0ZERikoKCgoKCgoR+HhJAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2RigqKikpKTQ6RklJSkpKSkpK + SUlJSUlJSUlJSUlJSUlJSUlJSUlIR0E6MicpMUhISEhISEhISEYoKSkoKCgoJkTh4SUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKSooKSkqNzpH + SEpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSklHRzowKCgvSUlJSUlJSUlELCkpKCkpKSlH5OEmAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9kYq + KSksLCo0OkZJSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSUhGOjcnKTdKSUpMS0pKRikpLykpKios + SOHhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAARf2RyopLyksKTc6R0hKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpJRkY8MSopNEtLS0tKTEcp + KSksLCwpKUjh5CUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAF/ZHLCovKSopNzpKSktLS0tLS0tLS0tLS0tLS0tKSkpKSkpKSkpKSkpIRjo3KCk4 + S0xMTExGKSosLCopKipR59omAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAEY9kopLC8pLCo3OkRJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL + SklHOjQpKTRPTEtLRCkvLykpLyksVufVDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb2SCoqMSkwLDc/R0dLS0tLS0tLS0tLS0tLS0tLS0tL + S0tLS0tLS0tKSUc6NiosN0xMTEcpLywqKi8vKVjs1g4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGPZIMSkxKikqNDpHSUtLTExMS0tLS0tL + S0tLS0tLS0tLS0tLS0tLS0pJRzo0Ki80TExGMSkxKTEqKi9Z59UOAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW9kkvKjAqMCkxOkdHSEtJ + SUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlLSklHPDQpLypVRzAvKjAqMCkyWufXDAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARr2SC8vLzAw + KCw5OkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0ZJR0Q6MSkxKjoqLy8vMDIyKlXs1A0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BPFYMDAwMDApJzA3P0ZBR0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkFBOjkpKTAvLy8vLy8vLypZ8dcN + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAEB24IwMDAwMDAkJyo2OTk8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8OTg2MSYnMDAwMDAw + MDAxWe7UBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAC4wjIxMTExMS8lJSgpKjAqMCowKjAqMCowKjAqMCowKjAqMCowKjAqLyol + GigwMDAwMDAwL1zx1QoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlr0RzAyMjIxMTEsKigoKSkpKSkpKSkpKSkpKSkpKSkpKSkp + KSkpKSgoJyUlMDExMTEyMjJZ8ccBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeSnNzQxMTAxMDEwMTAxMDEwMTAxMDEwMTIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjAxWfHPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf/ZqMjcwNzI3MjcyNzI3Mjcy + NzI3MjcyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyN1/xxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuO1YNjc0NDQ0 + NDQ0NDQ0NDQ0NDQ0NDQ3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzJh8MoBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH + 2+dvNDQyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjQ0NDQ0YvDCBgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAGx/awVzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NDQ0NGLuxAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAiOf0xJeCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKe + 8M4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITV4+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl + 5eXl5eXl5uSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////4AAAAAAAAAAAD////////8AAAAAAAAAAAAP///////8AAAAAAAAAAAAB///////+ + AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAD// + ////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA + AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA + AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w + AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA// + ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAD//////8AAAAAAAAAAA + AAB///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAP///////AAAAAA + AAAAAAAH///////wAAAAAAAAAAAAD///////8AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////w + AAAAAAAAAAAAf///////8AAAAAAAAAAAAP////////AAAAAAAAAAAAH////////wAAAAAAAAAAAD//// + ////8AAAAAAAAAAAB/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAf////////8AAAAAAAAAAA + P/////////AAAAAAAAAAAH/////////wAAAAAAAAAAD/////////8AAAAAAAAAAB//////////AAAAAA + AAAAA//////////wAAAAAAAAAAf/////////8AAAAAAAAAAP//////////AAAAAAAAAAH//////////w + AAAAAAAAAD//////////8AAAAAAAAAB///////////AAAAAAAAAA///////////wAAAAAAAAAf////// + ////8AAAAAAAAAP///////////AAAAAAAAAH///////////wAAAAAAAAD///////////+AAAAAAAAB// + //////////gAAAAAAAA////////////8AAAAAAAAf////////////AAAAAAAAP////////////4AAAAA + AAH/////////////AAAAAAAD/////////////8AAAAAAB//////////////wAAAAAB////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////ygAAABAAAAAgAAAAAEAIAAAAAAAAIAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA + AwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA + AwAAAAMAAAADAAAAAwAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABgAAAB8AAAA8AAAASQAAAEoAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA + SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA + SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEoAAABKAAAAQwAAAC4AAAASAAAAAgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEtJSUmm//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////AAAA + dQAAADEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAFj/////AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/zIyMv//////AAAAPgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADv/////AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAsAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAA8AAAB3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/AAAA + awAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAj/////wAAAP8AAAD/AAAA/xcXF/8kJCT/KSkp/yoqKv8qKir/Kioq + /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq + /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/ygoKP8hISH/AAAA + /wAAAP8AAAD/AAAA//7+/v8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANP////8AAAD/AAAA/wAAAP8jIyP/Li4u + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8xMTH/LCws/yEhIf8AAAD/AAAA/wAAAP//////AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr/////AAAA + /wAAAP8AAAD/Jycn/zExMf80NDT/NDQ0/6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/6qqqv+qqqr/NDQ0 + /zQ0NP+qqqr/qqqq/6qqqv+qqqr/qqqq/zQ0NP+qqqr/qqqq/6qqqv+qqqr/NDQ0/6qqqv+qqqr/NDQ0 + /6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/zExMf8nJyf/AAAA/wAAAP8AAAD//////wAAADkAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAEAAAA7/////wAAAP8AAAD/AAAA/ykpKf8yMjL/NTU1/zU1Nf81NTX/NTU1/7e3t/+3t7f/NTU1 + /zU1Nf+3t7f/t7e3/zU1Nf81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/+3t7f/t7e3 + /zU1Nf+3t7f/t7e3/zU1Nf+3t7f/t7e3/7e3t/+3t7f/NDQ0/zQ0NP8xMTH/KCgo/wAAAP8AAAD/AAAA + //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8qKir/MzMz/zY2Nv82Njb/NTU1 + /zU1Nf/FxcX/xcXF/zU1Nf81NTX/xcXF/8XFxf81NTX/NTU1/8XFxf/FxcX/NTU1/8XFxf/FxcX/NTU1 + /8XFxf/FxcX/xcXF/8XFxf81NTX/xcXF/8XFxf81NTX/xcXF/8XFxf/FxcX/xcXF/zU1Nf81NTX/MjIy + /ykpKf8AAAD/AAAA/wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/Kioq + /zMzM/82Njb/NjY2/9PT0//T09P/09PT/9PT0/82Njb/NjY2/9PT0//T09P/NjY2/zY2Nv/T09P/09PT + /zY2Nv/T09P/09PT/zY2Nv/T09P/09PT/9PT0//T09P/NjY2/9PT0//T09P/NjY2/9PT0//T09P/09PT + /9PT0/82Njb/NjY2/zMzM/8qKir/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7//// + /wAAAP8AAAD/AAAA/ysrK/80NDT/Nzc3/zc3N//g4OD/4ODg/zc3N/83Nzf/NjY2/zY2Nv/g4OD/4ODg + /zY2Nv82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P/g4OD/4ODg/zY2Nv/g4OD/4ODg + /zY2Nv/g4OD/4ODg/+Dg4P/g4OD/NjY2/zY2Nv8zMzP/Kioq/wAAAP8AAAD/AAAA//////8AAAA7AAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8rKyv/NDQ0/zc3N/83Nzf/7e3t/+3t7f/t7e3/7e3t + /zc3N//t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/Nzc3/+3t7f/t7e3/Nzc3/+3t7f/t7e3/7e3t + /+3t7f83Nzf/7e3t/+3t7f83Nzf/7e3t/+3t7f/t7e3/7e3t/zc3N/83Nzf/NDQ0/ysrK/8AAAD/AAAA + /wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/LCws/zU1Nf84ODj/ODg4 + //r6+v/6+vr/+vr6//r6+v84ODj/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/zg4OP/6+vr/+vr6 + /zg4OP/6+vr/+vr6//r6+v/6+vr/Nzc3//r6+v/6+vr/Nzc3//r6+v/6+vr/+vr6//r6+v83Nzf/Nzc3 + /zQ0NP8rKyv/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wAAAP8AAAD/AAAA + /ywsLP81NTX/ODg4/01NTf+jo6P/o6Oj/6Ojo/+ZmZn/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/o6Oj + /6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/84ODj/o6Oj/6Ojo/+jo6P/o6Oj/zg4OP+fn5//o6Oj + /6Ojo/+jo6P/RUVF/zg4OP81NTX/LCws/wAAAP8AAAD/AAAA//////8AAAA7AAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + O/////8CAgL/AQEB/wEBAf8sLCz/NjY2/zk5Of9RUVH/qamp/6mpqf+pqan/oKCg/zk5Of85OTn/OTk5 + /zk5Of85OTn/OTk5/6mpqf+pqan/qamp/6mpqf+pqan/qamp/6mpqf+pqan/OTk5/6mpqf+pqan/qamp + /6mpqf84ODj/pqam/6mpqf+pqan/qamp/0ZGRv84ODj/NTU1/ywsLP8BAQH/AQEB/wEBAf//////AAAA + OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAQAAADv/////AwMD/wMDA/8DAwP/LCws/zY2Nv85OTn/UlJS/7CwsP+wsLD/sLCw + /6Wlpf85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+wsLD/sLCw/7CwsP+wsLD/sLCw/7CwsP+wsLD/sLCw + /zk5Of+wsLD/sLCw/7CwsP+wsLD/OTk5/6ysrP+wsLD/sLCw/7CwsP9ISEj/OTk5/zY2Nv8sLCz/AgIC + /wICAv8CAgL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wQEBP8EBAT/BAQE/y0tLf83Nzf/Ojo6 + /1NTU/+3t7f/t7e3/7e3t/+rq6v/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3 + /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3/zo6Ov+ysrL/t7e3/7e3t/+3t7f/SUlJ + /zo6Ov83Nzf/LS0t/wMDA/8DAwP/AwMD//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8GBgb/BgYG + /wYGBv8uLi7/ODg4/zs7O/9VVVX/vr6+/76+vv++vr7/sbGx/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6 + /76+vv++vr7/vr6+/76+vv86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/76+vv++vr7/vr6+/76+vv+/v7//vr6+ + /76+vv++vr7/vr6+/0lJSf86Ojr/Nzc3/y0tLf8FBQX/BQUF/wUFBf//////AAAAOwAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AQAAADv/////BwcH/wcHB/8HBwf/Li4u/zg4OP87Ozv/VlZW/8XFxf/FxcX/xcXF/7e3t/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF/8XFxf/FxcX/Ozs7/zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF + /8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf9KSkr/Ozs7/zg4OP8uLi7/BgYG/wYGBv8GBgb///// + /wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wgICP8ICAj/CAgI/y8vL/85OTn/PDw8/1hYWP/MzMz/zMzM + /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP88PDz/zMzM/8zMzP/MzMz/zMzM/zw8PP87Ozv/Ozs7 + /zs7O/87Ozv/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/SkpK/zs7O/84ODj/Li4u + /wcHB/8HBwf/BwcH//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8KCgr/CgoK/woKCv8vLy//OTk5 + /zw8PP9YWFj/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/PDw8/9LS0v/S0tL/0tLS + /9LS0v88PDz/PDw8/zw8PP88PDz/PDw8/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v88PDz/PDw8 + /zw8PP88PDz/OTk5/y8vL/8JCQn/CQkJ/wkJCf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////CwsL + /wsLC/8LCwv/MDAw/zo6Ov89PT3/WVlZ/9nZ2f/Z2dn/2dnZ/8vLy/9PT0//2dnZ/9nZ2f/Z2dn/2dnZ + /z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/PT09/z09Pf89PT3/PT09/z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ + /9nZ2f/Z2dn/09PT/9PT0/9KSkr/PDw8/zk5Of8vLy//CgoK/woKCv8KCgr//////wAAADsAAAABAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAEAAAA7/////wwMDP8MDAz/DAwM/zAwMP86Ojr/PT09/1paWv/g4OD/4ODg/+Dg4P/Nzc3/PT09 + /+Dg4P/g4OD/4ODg/+Dg4P89PT3/4ODg/+Dg4P/g4OD/4ODg/z09Pf89PT3/PT09/z09Pf89PT3/4ODg + /+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/TU1N/z09Pf86Ojr/MDAw/wwMDP8MDAz/CwsL + //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8ODg7/Dg4O/w4ODv8wMDD/Ozs7/z4+Pv9cXFz/5+fn + /+fn5//n5+f/1NTU/z4+Pv/n5+f/5+fn/+fn5//n5+f/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/Pj4+ + /z4+Pv8+Pj7/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/39/f/+fn5//n5+f/5+fn/05OTv8+Pj7/Ozs7 + /zAwMP8NDQ3/DQ0N/w0NDf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Dw8P/w8PD/8PDw//MTEx + /zw8PP8/Pz//XV1d/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u + /+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u/+7u7v/u7u7/Pj4+/+bm5v/u7u7/7u7u + /+7u7v9OTk7/Pj4+/zs7O/8wMDD/Dg4O/w4ODv8ODg7//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7//// + /xAQEP8QEBD/EBAQ/zExMf88PDz/Pz8//11dXf/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1 + //X19f8/Pz//9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f8/Pz//9fX1//X19f/19fX/9fX1 + /z8/P//s7Oz/9fX1//X19f/19fX/UFBQ/z8/P/88PDz/MTEx/xAQEP8QEBD/EBAQ//////8AAAA7AAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAAAAO/////8SEhL/EhIS/xISEv8yMjL/PT09/0BAQP9eXl7//Pz8//z8/P/8/Pz//Pz8 + //z8/P/8/Pz//Pz8//z8/P/8/Pz/QEBA//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/Pz8/ + //z8/P/8/Pz//Pz8//z8/P8/Pz//8/Pz//z8/P/8/Pz//Pz8/1BQUP8/Pz//PDw8/zExMf8RERH/ERER + /xEREf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////ExMT/xMTE/8TExP/MjIy/z09Pf9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /z09Pf8yMjL/EhIS/xISEv8SEhL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xQUFP8UFBT/FBQU + /zMzM/8+Pj7/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP89PT3/MjIy/xQUFP8UFBT/FBQU//////8AAAA7AAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + O/////8WFhb/FhYW/xYWFv8zMzP/Pj4+/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zMzM/8VFRX/FRUV/xUVFf//////AAAA + OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAQAAADv/////FxcX/xcXF/8XFxf/NDQ0/z8/P/9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0FBQf8/Pz//PT09 + /zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zg4OP8uLi7/FhYW + /xYWFv8WFhb//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xgYGP8YGBj/GBgY/zQ0NP9AQED/Q0ND + /0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0BAQP88PDz/NjY2/y8vL/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr + /ysrK/8pKSn/ISEh/xgYGP8YGBj/GBgY//////8AAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8aGhr/Ghoa + /xoaGv80NDT/QEBA/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0FBQf88PDz/MTEx/yQkJP8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ + /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAANAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AQAAADv/////Gxsb/xsbG/8bGxv/NTU1/0FBQf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0NDQ/9DQ0P/Q0ND/0JCQv8+Pj7/MjIy/x8fH/8bGxv/GBgY/zY2Nv82Njb/NjY2 + /zY2Nv82Njb/NjY2/zY2Nv81NTX/NTU1/zU1Nf81NTX/NTU1/xwcHP8aGhr/Ghoa/xoaGv8aGhr///// + /wAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xwcHP8cHBz/HBwc/zU1Nf9BQUH/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9CQkL/Ozs7/ykpKf8cHBz/Nzc3 + /zg4OP84ODj/ODg4/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc + /xwcHP8cHBz//v7+/wAAADwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8eHh7/Hh4e/x4eHv82Njb/QkJC + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/QkJC + /zc3N/8ZGRn/HR0d/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5 + /zk5Of8dHR3/HR0d/x0dHf8dHR3//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Hx8f + /x8fH/8fHx//NjY2/0JCQv9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0JCQv81NTX/Hx8f/ykpKf87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7 + /zs7O/87Ozv/Ozs7/zo6Ov8eHh7/Hh4e/x4eHv8eHh7//v7+/wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAEAAAA7/////yAgIP8gICD/ICAg/zc3N/9DQ0P/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9CQkL/NTU1/yAgIP86Ojr/PT09/z09Pf89PT3/PT09 + /z09Pf89PT3/PT09/z09Pf89PT3/PT09/zw8PP8gICD/ICAg/yAgIP8gICD//v7+/wAAAD4AAAAHAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8iIiL/IiIi/yIiIv84ODj/RERE/0dHR/9HR0f/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/QkJC/zU1Nf8hISH/Pz8/ + /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf8hISH///// + /wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////IyMj/yMjI/8jIyP/ODg4 + /0RERP9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0NDQ/81NTX/IyMj/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8iIiL/IiIi + /yIiIv8iIiL//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7//// + /yUlJf8lJSX/JSUl/zg4OP9FRUX/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9DQ0P/NTU1/yQkJP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC + /0JCQv8kJCT/JCQk/yQkJP8kJCT//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAAAAO/////8mJib/JiYm/yYmJv84ODj/RUVF/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/RERE/zY2Nv8lJSX/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP8lJSX/JSUl/yUlJf8lJSX//////wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Jycn/ycnJ/8nJyf/OTk5/0ZGRv9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0VFRf83Nzf/Jycn + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv8nJyf/Jycn/ycnJ/8nJyf//////wAAAD4AAAAHAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////ykpKf8pKSn/KSkp + /zk5Of9GRkb/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ + /0lJSf9FRUX/Nzc3/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/8oKCj/KCgo/ygoKP8oKCj///// + /wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + O/////8qKir/Kioq/yoqKv86Ojr/R0dH/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/RkZG/zc3N/8pKSn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf8pKSn/KSkp + /ykpKf8pKSn//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAQAAADv/////Kysr/ysrK/8rKyv/Ojo6/0dHR/9KSkr/SkpK/0pKSv9KSkr/SkpK + /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0ZGRv83Nzf/Kysr/0tLS/9LS0v/S0tL + /0tLS/8rKyv/Kysr/ysrK/8rKyv//////wAAAD0AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA6/////ywsLP8sLCz/LCws/zo6Ov9ISEj/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9HR0f/ODg4 + /ywsLP9NTU3/TU1N/0tLS/8sLCz/LCws/ywsLP8sLCz//////wAAADoAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOf////8uLi7/Li4u + /y4uLv84ODj/R0dH/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0pKSv9KSkr/RkZG/zg4OP8tLS3/SUlJ/05OTv8tLS3/LS0t/y0tLf8tLS3//////wAAADkAAAAHAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAADD/////Ly8v/y8vL/8vLy//Li4u/z4+Pv9FRUX/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG + /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0JCQv80NDT/Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy////// + /wAAADgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAd/////zAwMP8wMDD/MDAw/x0dHf8rKyv/MjIy/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8xMTH/JiYm/zAwMP8wMDD/MDAw + /zAwMP8wMDD//////wAAADcAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsXFxbkyMjL/MjIy/zIyMv8yMjL/MjIy + /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH/MTEx + /zExMf8xMTH/MTEx/zExMf8xMTH//////wAAADYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn//// + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP//////wAAADUAAAAFAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAABQAAADT/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0 + /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT//////wAAADUAAAAGAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIrS0tJ3///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /wAAAC8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + EgAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAA + FwAAABcAAAAXAAAAFgAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////// + ///4AAAAAD////AAAAAAD///4AAAAAAH///gAAAAAAf//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA + AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD + ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA + AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD + ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAB///wAAAAAAP///AAAAAAB///8AA + AAAAP///wAAAAAB////AAAAAAP///8AAAAAB////wAAAAAP////AAAAAB////8AAAAAP////wAAAAB// + ///AAAAAP////8AAAAB/////wAAAAP/////AAAAB/////8AAAAP/////wAAAB//////gAAAP//////AA + AB//////+AAAP/////////////////////////////////////////////////////////8oAAAAQAAA + AIAAAAABAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG + /wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV + /xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk + /yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz + /zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC + /0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/01NTf9PT0//UFBQ/1FRUf9TU1P/VVVV + /1ZWVv9XV1f/WFhY/1lZWf9bW1v/XV1d/15eXv9fX1//YGBg/2NjY/9kZGT/ZWVl/2ZmZv9nZ2f/aGho + /2lpaf9qamr/a2tr/2xsbP9tbW3/bm5u/29vb/9wcHD/cXFx/3Nzc/90dHT/dXV1/3Z2dv93d3f/eHh4 + /3l5ef96enr/e3t7/3x8fP99fX3/fn5+/39/f/+AgID/gYGB/4KCgv+Dg4P/hISE/4WFhf+Ghob/h4eH + /4iIiP+JiYn/ioqK/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY + /5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en + /6ioqP+pqan/qqqq/62trf+urq7/r6+v/7CwsP+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/vb29 + /76+vv+/v7//wMDA/8LCwv/Dw8P/xMTE/8XFxf/Gxsb/x8fH/8rKyv/Ly8v/zMzM/83Nzf/Ozs7/z8/P + /9DQ0P/R0dH/0tLS/9PT0//U1NT/1tbW/9fX1//Y2Nj/2dnZ/9ra2v/c3Nz/3d3d/97e3v/f39//4ODg + /+Hh4f/j4+P/5eXl/+bm5v/n5+f/6Ojo/+np6f/r6+v/7e3t/+7u7v/x8fH/9PT0//X19f8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + 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 + AAAAA///wAAAAAAH///AAAAAAA///8AAAAAAH///wAAAAAA////AAAAAAH///8AAAAAA////wAAAAAH/ + ///AAAAAA////8AAAAAH////wAAAAA/////AAAAAH////8AAAAA/////wAAAAH/////AAAAA/////8AA + AAH/////wAAAA//////AAAAH/////+AAAA//////8AAAH//////4AAA///////////////////////// + /////////////////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA + AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAF4AAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA + YQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA + YQAAAGEAAABXAAAALgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJeXl6tOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAHQAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAB5AAAACQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ubm7/AAAA + NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + bQAAAP8AAAD/AAAA/ykpKf8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v + /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y4uLv8mJib/AAAA + /wAAAP8AAAD/AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAD3Nzc3AAAAP8AAAD/Hh4e/zAwMP80NDT/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en + /zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/NDQ0/6enp/+np6f/p6en/6enp/+np6f/p6en + /zQ0NP8vLy//HR0d/wAAAP8AAAD/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zIyMv81NTX/NTU1/zU1Nf+6urr/urq6 + /zU1Nf+6urr/urq6/zU1Nf+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6 + /7q6uv+6urr/urq6/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zMzM/82Njb/zMzM + /8zMzP/MzMz/zMzM/zY2Nv/MzMz/zMzM/zY2Nv/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM + /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/IiIi + /zQ0NP83Nzf/3t7e/97e3v82Njb/NjY2/zY2Nv/e3t7/3t7e/zY2Nv/e3t7/3t7e/97e3v/e3t7/3t7e + /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/zY2Nv8zMzP/ISEh/wAAAP8AAAD/3Nzc + 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3AAAAP8AAAD/IiIi/zQ0NP83Nzf/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v + /+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/zc3N/80NDT/IiIi + /wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3AAAAP8AAAD/IyMj/zU1Nf84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4 + /zg4OP81NTX/IyMj/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AEBAf8BAQH/IyMj/zY2Nv85OTn/qKio/6ioqP+oqKj/OTk5 + /zk5Of85OTn/OTk5/zk5Of+oqKj/qKio/6ioqP+oqKj/qKio/6ioqP84ODj/qKio/6ioqP+oqKj/ODg4 + /6ioqP+oqKj/qKio/zg4OP81NTX/IyMj/wEBAf8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AMDA/8DAwP/JCQk/zc3N/86Ojr/sbGx + /7Gxsf+xsbH/OTk5/zk5Of85OTn/OTk5/zk5Of+xsbH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf85OTn/sbGx + /7Gxsf+xsbH/OTk5/7Gxsf+xsbH/sbGx/zk5Of82Njb/IyMj/wICAv8CAgL/3Nzc3gAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AUFBf8FBQX/JCQk + /zc3N/86Ojr/urq6/7q6uv+6urr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+6urr/urq6/7q6uv86Ojr/Ojo6 + /zo6Ov86Ojr/urq6/7q6uv+6urr/Ojo6/7q6uv+6urr/urq6/zo6Ov83Nzf/JCQk/wQEBP8EBAT/3Nzc + 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3AcHB/8HBwf/JSUl/zg4OP87Ozv/xMTE/8TExP/ExMT/Ozs7/zs7O/87Ozv/Ozs7/zs7O//ExMT/xMTE + /8TExP87Ozv/Ozs7/zs7O/87Ozv/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMTE/zs7O/84ODj/JSUl + /wYGBv8GBgb/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3AgICP8ICAj/JSUl/zg4OP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N + /zw8PP/Nzc3/zc3N/83Nzf88PDz/PDw8/zw8PP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N + /zs7O/84ODj/JSUl/wgICP8ICAj/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AoKCv8KCgr/JiYm/zk5Of89PT3/1tbW/9bW1v/W1tb/1tbW + /9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW/9bW1v88PDz/PDw8/zw8PP88PDz/1tbW/9bW1v/W1tb/1tbW + /9bW1v88PDz/PDw8/zw8PP84ODj/JSUl/woKCv8KCgr/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AwMDP8MDAz/JiYm/zk5Of89PT3/39/f + /9/f3//f39//PT09/9/f3//f39//39/f/z09Pf/f39//39/f/9/f3/89PT3/PT09/z09Pf89PT3/39/f + /9/f3//f39//39/f/9/f3//f39//39/f/z09Pf85OTn/JiYm/wsLC/8LCwv/3Nzc3gAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3A4ODv8ODg7/JiYm + /zo6Ov8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv/o6Oj/6Ojo/+jo6P8+Pj7/Pj4+ + /z4+Pv8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv86Ojr/JiYm/w0NDf8NDQ3/3Nzc + 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3BAQEP8QEBD/Jycn/zs7O/8/Pz//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/z8/P//y8vL/8vLy + //Ly8v/y8vL/8vLy//Ly8v8/Pz//8vLy//Ly8v/y8vL/Pz8///Ly8v/y8vL/8vLy/z4+Pv86Ojr/JiYm + /w8PD/8PDw//3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3BISEv8RERH/KCgo/zw8PP9AQED/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7 + /z8/P//7+/v/+/v7//v7+//7+/v/+/v7//v7+/8/Pz//+/v7//v7+//7+/v/Pz8///v7+//7+/v/+/v7 + /z8/P/87Ozv/Jycn/xEREf8RERH/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BMTE/8TExP/KCgo/zw8PP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /0BAQP9AQED/QEBA/0BAQP88PDz/KCgo/xISEv8SEhL/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BUVFf8VFRX/KCgo/z09Pf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf89PT3/KCgo/xQUFP8UFBT/3Nzc3gAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BcXF/8XFxf/KSkp + /z4+Pv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB + /z8/P/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP85OTn/JSUl/xYWFv8WFhb/3Nzc + 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3BkZGf8ZGRn/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC + /0JCQv8/Pz//Nzc3/y0tLf8oKCj/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8kJCT/GBgY + /xgYGP8YGBj/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3BoaGv8aGhr/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND + /0NDQ/9DQ0P/Q0ND/0FBQf81NTX/ICAg/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa + /xoaGv8aGhr/Ghoa/xoaGv8aGhr/wcHBuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BwcHP8cHBz/Kioq/0BAQP9ERET/RERE/0RERP9ERET/RERE + /0RERP9ERET/RERE/0RERP9ERET/RERE/z09Pf8nJyf/HBwc/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3 + /zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc/xwcHP//////AAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3B4eHv8eHh7/Kysr/0FBQf9FRUX/RUVF + /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RERE/zk5Of8dHR3/Ojo6/zo6Ov86Ojr/Ojo6 + /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/x0dHf8dHR3/HR0d//7+/v8AAAAlAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CAgIP8gICD/LCws + /0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/zc3N/8fHx//PDw8 + /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Hx8f/x8fH/8fHx///v7+/wAAACUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3CEhIf8hISH/LCws/0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF + /zc3N/8hISH/Pz8//z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf/+/v7/AAAA + JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3CMjI/8jIyP/LCws/0NDQ/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH + /0dHR/9HR0f/RkZG/zg4OP8jIyP/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/yMjI/8jIyP/IyMj + //////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CUlJf8lJSX/LS0t/0RERP9ISEj/SEhI/0hISP9ISEj/SEhI + /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/zk5Of8lJSX/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/JSUl + /yUlJf8lJSX//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CcnJ/8nJyf/LS0t/0VFRf9JSUn/SUlJ + /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/R0dH/zk5Of8nJyf/RkZG/0ZGRv9GRkb/RUVF + /0VFRf8mJib/JiYm/yYmJv//////AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CkpKf8pKSn/Li4u + /0VFRf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/zo6Ov8oKCj/SEhI + /0hISP9ISEj/SEhI/ygoKP8oKCj/KCgo//////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc + 3CoqKv8qKir/Li4u/0ZGRv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ + /zo6Ov8qKir/SkpK/0pKSv9KSkr/Kioq/yoqKv8qKir//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAE3Nzc3CwsLP8sLCz/Li4u/0dHR/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/SkpK/zs7O/8sLCz/TU1N/01NTf8sLCz/LCws/ywsLP//////AAAAIgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAC3Nzc3C4uLv8uLi7/Kioq/0VFRf9LS0v/S0tL/0tLS/9LS0v/S0tL + /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/zs7O/8uLi7/T09P/y4uLv8uLi7/Li4u//////8AAAAhAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZTAwMP8wMDD/IiIi/zQ0NP89PT3/Pj4+ + /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/PT09/zExMf8wMDD/MDAw/zAwMP8wMDD///// + /wAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyMv8yMjL/MjIy + /zIyMv8pKSn/KSkp/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8xMTH/MTEx + /zExMf//////AAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + CP39/f4zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz + /zMzM/8zMzP/MzMz//////8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAA7/////TExM/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1 + /zU1Nf81NTX/NTU1/zU1Nf81NTX//////wAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAACMAAAAkAAAAJAAAACQAAAAkAAAA + JAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA//// + ////AAD///////8AAP+AAAAD/wAA/wAAAAH/AAD/AAAAAP8AAP8AAAAA/wAA/gAAAAB/AAD+AAAAAH8A + AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAA + AAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8A + AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAD/AAD+AAAAAf8AAP4AAAAD/wAA/gAA + AAf/AAD+AAAAD/8AAP4AAAAf/wAA/gAAAD//AAD+AAAAf/8AAP4AAAD//wAA/gAAAf//AAD+AAAD//8A + AP8AAAf//wAA/wAAD///AAD/AAAf//8AAP+AAD///wAA////////AAD///////8AAP///////wAA//// + ////AAAoAAAAMAAAAGAAAAABAAgAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD + /wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS + /xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh + /yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw + /zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8/ + /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O + /09PT/9RUVH/U1NT/1RUVP9VVVX/VlZW/1dXV/9aWlr/XFxc/11dXf9eXl7/X19f/2FhYf9iYmL/Y2Nj + /2VlZf9nZ2f/aGho/2lpaf9sbGz/bW1t/25ubv9zc3P/dnZ2/3d3d/95eXn/enp6/3t7e/98fHz/fX19 + /35+fv9/f3//gYGB/4iIiP+JiYn/kpKS/5WVlf+Wlpb/l5eX/5iYmP+ZmZn/mpqa/5ubm/+cnJz/nZ2d + /56env+fn5//oKCg/6Ghof+ioqL/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t + /6+vr/+xsbH/srKy/7S0tP+1tbX/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/v7+//8DAwP/BwcH/wsLC + /8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/zMzM/83Nzf/Ozs7/z8/P/9LS0v/U1NT/1dXV + /9bW1v/Y2Nj/2tra/9vb2//e3t7/39/f/+Dg4P/h4eH/4uLi/+Pj4//k5OT/5+fn/+jo6P/v7+//8fHx + //Ly8v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAP8AAAD/Ly8v/zU1Nf81NTX/vr6+/zU1Nf++vr7/NTU1 + /76+vv9tbW3/sLCw/76+vv++vr7/i4uL/6urq/++vr7/vr6+/zU1Nf8vLy//AAAA/wAAAP8AAAARAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA/wAAAP8wMDD/NjY2/9nZ2f+NjY3/NjY2 + /9nZ2f82Njb/2dnZ/3R0dP/IyMj/2dnZ/9nZ2f+Xl5f/wMDA/9nZ2f/Z2dn/NjY2/zAwMP8AAAD/AAAA + /wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD/AAAA/zExMf83Nzf/9PT0 + //T09P/v7+//9PT0//T09P/09PT/enp6/+Hh4f/09PT/9PT0/6Ojo//W1tb/9PT0//T09P83Nzf/MDAw + /wAAAP8AAAD/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQEBAf8BAQH/MjIy + /zk5Of+mpqb/pqam/zg4OP84ODj/ODg4/6ampv+mpqb/pqam/6ampv85OTn/pqam/6Wlpf+mpqb/pqam + /zg4OP8xMTH/AAAA/wAAAP8AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAwMD + /wMDA/8zMzP/Ojo6/7Ozs/+zs7P/Ojo6/zo6Ov86Ojr/s7Oz/7Ozs/+ysrL/srKy/zo6Ov+zs7P/s7Oz + /7Ozs/+zs7P/OTk5/zIyMv8DAwP/AwMD/wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAABEGBgb/BgYG/zQ0NP87Ozv/wcHB/8HBwf87Ozv/Ozs7/zs7O//BwcH/wcHB/zs7O/87Ozv/PDw8 + /8HBwf/BwcH/wcHB/8HBwf86Ojr/MzMz/wYGBv8FBQX/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAEQkJCf8JCQn/NTU1/zw8PP/Pz8//z8/P/8/Pz//Pz8//Pz8//8/Pz//Pz8//PDw8 + /zw8PP89PT3/z8/P/8/Pz//Pz8//z8/P/zw8PP81NTX/CAgI/wgICP8AAAARAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAARCwsL/wsLC/82Njb/PT09/93d3f/d3d3/3Nzc/93d3f9AQED/3d3d + /93d3f89PT3/PT09/z4+Pv/d3d3/3d3d/93d3f/d3d3/PT09/zY2Nv8LCwv/CwsL/wAAABEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEODg7/Dg4O/zc3N/8+Pj7/6urq/+rq6v/p6en/6urq + /0FBQf/q6ur/6urq/0NDQ/9DQ0P/Pz8//+rq6v/o6Oj/6urq/+rq6v8+Pj7/Nzc3/w4ODv8ODg7/AAAA + EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREREf8RERH/ODg4/z8/P//4+Pj/+Pj4 + //j4+P/4+Pj/QkJC//j4+P/4+Pj/+Pj4//j4+P9AQED/+Pj4//b29v/4+Pj/+Pj4/z8/P/84ODj/EBAQ + /xAQEP8AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBQU/xQUFP85OTn/QUFB + /0FBQf9BQUH/QUFB/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA + /zk5Of8TExP/ExMT/wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEWFhb/FhYW + /zo6Ov9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf8/Pz//Pj4+/z4+Pv8+Pj7/Pj4+ + /z4+Pv8+Pj7/Nzc3/xYWFv8WFhb/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ERkZGf8ZGRn/Ozs7/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/PDw8/ykpKf8gICD/Hx8f + /x8fH/8fHx//Hx8f/x8fH/8bGxv/GBgY/xgYGP8AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAARHBwc/xwcHP88PDz/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0FBQf8kJCT/NDQ0 + /zc3N/82Njb/NjY2/zY2Nv82Njb/NjY2/xsbG/8bGxv//v7+/wAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + /yAgIP8iIiL/IyMj/yQkJP8lJSX/JiYm/ycnJ/8oKCj/KSkp/yoqKv8rKyv/LCws/y0tLf8uLi7/Ly8v + /zAwMP8xMTH/MjIy/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/zw8PP89PT3/Pj4+ + /z8/P/9AQED/QUFB/0JCQv9DQ0P/RERE/0VFRf9GRkb/R0dH/0hISP9JSUn/SkpK/0tLS/9MTEz/TU1N + /05OTv9PT0//UFBQ/1FRUf9SUlL/U1NT/1RUVP9VVVX/VlZW/1dXV/9YWFj/WVlZ/1paWv9bW1v/XV1d + /15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj/2VlZf9mZmb/Z2dn/2lpaf9qamr/bGxs/3Jycv95eXn/e3t7 + /3x8fP9+fn7/f39//4CAgP+BgYH/hYWF/4aGhv+IiIj/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/k5OT + /5WVlf+ampr/m5ub/5ycnP+enp7/oaGh/6ampv+np6f/qKio/6mpqf+qqqr/q6ur/7CwsP+zs7P/tLS0 + /7a2tv+7u7v/vLy8/729vf++vr7/v7+//8HBwf/CwsL/w8PD/8fHx//IyMj/ysrK/87Ozv/Pz8//09PT + /9TU1P/V1dX/19fX/9zc3P/d3d3/4eHh/+Pj4//q6ur/6+vr/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + 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 + APAD/wDwB/8A////AP///wAoAAAAGAAAADAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAA + /wICAv8FBQX/BgYG/wkJCf8MDAz/DQ0N/w8PD/8QEBD/ERER/xMTE/8UFBT/FxcX/xgYGP8bGxv/HBwc + /x8fH/8gICD/IiIi/yMjI/8kJCT/JSUl/yYmJv8nJyf/KCgo/ykpKf8qKir/Kysr/ywsLP8tLS3/Li4u + /y8vL/8wMDD/MTEx/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/z09Pf8+Pj7/Pz8/ + /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0dHR/9ISEj/SkpK/0tLS/9NTU3/Tk5O/09PT/9QUFD/UlJS + /1VVVf9aWlr/W1tb/19fX/9hYWH/aWlp/2pqav9sbGz/bm5u/3BwcP9xcXH/c3Nz/3R0dP91dXX/eXl5 + /3x8fP+AgID/goKC/4SEhP+FhYX/hoaG/4uLi/+MjIz/kZGR/5SUlP+Wlpb/mJiY/5qamv+cnJz/oaGh + /6Kiov+jo6P/pqam/6urq/+srKz/ra2t/6+vr/+xsbH/s7Oz/7W1tf+/v7//y8vL/9HR0f/j4+P/5OTk + /+bm5v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAMz4+Pj4+Pj4+PT4+PiUAAAAAAAAAAQFBHxMTExQU + EhQVERMTEyVDAAAAAAAAAFEPCBERERARDxIQERIREAUQTwAAAAABAFkAFThQQFJBVlJWUFJXQRYAWQAA + AAAAAFkBF0ZaPmFJXmJhYmFeShcAWQEAAAABAFgAGEVeTV5WWVthVVhkRBkAWQAAAAAAAFkCGkJgMyhJ + X1pLYUlgQxkBWQABAAABAFkCHEllPDVNZSg0ZV1lSRkEWQAAAAAAAFkFHE1nZmdWZyw1Z2ddPxkGWQAA + AAABAFkHGk9pWGlaaDo9aWNpURoGWQEAAAAAAFkLIVFqampcampbalVqTxkIWQEAAAAAAFkLIS0vLy8v + Ly8sLi4sLSUMWQAAAAAAAFoMIzMwMDAwMCwlISElIRcMWQAAAAAAAFoNIzIyMjIzMBkZHxkcHA4nWgAA + AAAAAFoRJzMzMzMzLBkrKCgoGihUAAAAAAAAAFkSJjQ0NDQ0LCAvLygaLlQAAAAAAAAAAFoXKDU1NTU1 + LiUyMxozVAAAAAAAAAABAFoaKTY2NjY2Lyc1ITVWAAAAAAAAAAAAAFwfKTc3Nzc2LiglOFUAAAAAAAAA + AAAAAFowISMjJSUlJRo5VgAAAAAAAAAAAAAAAABRPjs7Ozo5OUBWAAAAAAAAAAAAAAAAAAAATVZWVlZW + Vk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A8AAPAPAADwDwAA8A8AAP + APAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAAHwDwAD8A8AB/APAA/wDwAf8A8AP/ + APAH/wD///8A////ACgAAAAQAAAAIAAAAAEAIAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAbQAAAP8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/wAAAP8AAABpAAAA + AAAAAAAAAAAAAAAAANzc3N0hISH/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP8hISH/3Nzc + 3QAAAAAAAAAAAAAAAAAAAADc3NzdIyMj/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/IyMj + /9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SQkJP+6urr/Ojo6/zo6Ov+6urr/Ojo6/7q6uv86Ojr/urq6 + /yQkJP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0mJib/1tbW/9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW + /zw8PP8lJSX/3Nzc3QAAAAAAAAAAAAAAAAAAAADc3NzdJycn//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy + /z8/P//y8vL/JiYm/9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SgoKP9BQUH/QUFB/0FBQf9BQUH/QUFB + /0FBQf9BQUH/QUFB/ygoKP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0qKir/Q0ND/0NDQ/9DQ0P/Q0ND + /yAgIP8aGhr/Ghoa/xoaGv8aGhr/wMDAvAAAAAAAAAAAAAAAAAAAAADc3NzdLCws/0ZGRv9GRkb/RkZG + /0VFRf88PDz/PDw8/zw8PP8fHx///v7+/wAAAAAAAAAAAAAAAAAAAAAAAAAA3Nzc3S0tLf9ISEj/SEhI + /0hISP9HR0f/Q0ND/0NDQ/8lJSX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3N0uLi7/SkpK + /0pKSv9KSkr/SUlJ/0pKSv8qKir//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlIiIi + /z4+Pv8+Pj7/Pj4+/z09Pf8wMDD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AExMTP81NTX/NTU1/zU1Nf81NTX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A + AOAHAADgBwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAHAADADwAAwB8AAOA/AADgfwAA//8A + ACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAANDQ3/Dw8P/xoaGv8bGxv/HBwc + /x4eHv8hISH/JCQk/yUlJf8nJyf/KCgo/yoqKv8rKyv/LS0t/y8vL/8xMTH/MjIy/zU1Nf82Njb/ODg4 + /zk5Of87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RkZG/0hISP9KSkr/W1tb + /3BwcP9xcXH/cnJy/3x8fP9/f3//goKC/4ODg/+IiIj/iYmJ/5aWlv+YmJj/mZmZ/5ubm/+ioqL/o6Oj + /6Wlpf+mpqb/qKio/6mpqf+qqqr/ra2t/7CwsP+4uLj/urq6/8HBwf/Q0ND/1dXV/9jY2P/n5+f/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA + AAAAIxIODQwNCw0MDhkjAAAAACEAFBURHx8WGxMAHwAAAAASAiMkKDM2MzUpAhsAAAAAGwMpJyYzNSws + KAISAAAAABQDKyUbOSItMyoEHgAAAAAgBy87Nz0WNzwmBRYAAAAAGAczPjo/Ojo4MwcgAAAAACEJGRsY + GRkYGRsKHwAAAAAfCR8aHx8NCwwLAiIAAAAAIg4gHx8aDxUYCyIiAAAAACEPICAfHxIfDiIlAAAAAAAi + ESEhIR4VFCIiAAAAAAAAIg4WGBUUESMiAAAAAAAAACwiISIhISMhAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AP//AADgBwAA4AcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADABwAAwA8AAMAfAADgPwAA4H8A + AP//AAA= + + + \ No newline at end of file diff --git a/PCK-Studio/Features/WiiUPanel.Designer.cs b/PCK-Studio/Features/WiiUPanel.Designer.cs new file mode 100644 index 00000000..26c792f3 --- /dev/null +++ b/PCK-Studio/Features/WiiUPanel.Designer.cs @@ -0,0 +1,428 @@ +namespace PckStudio.Features +{ + partial class WiiUPanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.buttonServerToggle = new System.Windows.Forms.Button(); + this.IPv4TextBox = new MetroFramework.Controls.MetroTextBox(); + this.listViewPCKS = new System.Windows.Forms.ListView(); + this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components); + this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.radioButtonUSB = new System.Windows.Forms.RadioButton(); + this.TextBoxPackImage = new MetroFramework.Controls.MetroTextBox(); + this.radioButtonSystem = new System.Windows.Forms.RadioButton(); + this.buttonSelect = new System.Windows.Forms.Button(); + this.PackImageSelection = new System.Windows.Forms.Button(); + this.regionLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.radioButtonEur = new System.Windows.Forms.RadioButton(); + this.radioButtonUs = new System.Windows.Forms.RadioButton(); + this.radioButtonJap = new System.Windows.Forms.RadioButton(); + this.myTablePanel1.SuspendLayout(); + this.contextMenuStripCaffiine.SuspendLayout(); + this.regionLayoutPanel.SuspendLayout(); + this.SuspendLayout(); + // + // myTablePanel1 + // + this.myTablePanel1.BackColor = System.Drawing.Color.Black; + this.myTablePanel1.ColumnCount = 3; + this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0); + this.myTablePanel1.Controls.Add(this.IPv4TextBox, 0, 0); + this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4); + this.myTablePanel1.Controls.Add(this.radioButtonUSB); + this.myTablePanel1.Controls.Add(this.TextBoxPackImage, 0, 1); + this.myTablePanel1.Controls.Add(this.radioButtonSystem, 1, 2); + this.myTablePanel1.Controls.Add(this.buttonSelect, 0, 2); + this.myTablePanel1.Controls.Add(this.PackImageSelection, 2, 1); + this.myTablePanel1.Controls.Add(this.regionLayoutPanel, 0, 3); + this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.myTablePanel1.Location = new System.Drawing.Point(0, 0); + this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0); + this.myTablePanel1.Name = "myTablePanel1"; + this.myTablePanel1.RowCount = 8; + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.myTablePanel1.Size = new System.Drawing.Size(430, 550); + this.myTablePanel1.TabIndex = 3; + // + // buttonServerToggle + // + this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.buttonServerToggle.BackColor = System.Drawing.Color.SpringGreen; + this.buttonServerToggle.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonServerToggle.Enabled = false; + this.buttonServerToggle.FlatAppearance.BorderSize = 0; + this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.buttonServerToggle.ForeColor = System.Drawing.Color.White; + this.buttonServerToggle.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.buttonServerToggle.Location = new System.Drawing.Point(289, 3); + this.buttonServerToggle.Name = "buttonServerToggle"; + this.buttonServerToggle.Size = new System.Drawing.Size(138, 27); + this.buttonServerToggle.TabIndex = 9; + this.buttonServerToggle.Text = "Start"; + this.buttonServerToggle.UseVisualStyleBackColor = false; + this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click); + // + // IPv4TextBox + // + this.IPv4TextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.myTablePanel1.SetColumnSpan(this.IPv4TextBox, 2); + // + // + // + this.IPv4TextBox.CustomButton.Image = null; + this.IPv4TextBox.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.IPv4TextBox.CustomButton.Location = new System.Drawing.Point(312, 1); + this.IPv4TextBox.CustomButton.Name = ""; + this.IPv4TextBox.CustomButton.Size = new System.Drawing.Size(25, 25); + this.IPv4TextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.IPv4TextBox.CustomButton.TabIndex = 1; + this.IPv4TextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.IPv4TextBox.CustomButton.UseSelectable = true; + this.IPv4TextBox.CustomButton.Visible = false; + this.IPv4TextBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.IPv4TextBox.IconRight = true; + this.IPv4TextBox.Lines = new string[0]; + this.IPv4TextBox.Location = new System.Drawing.Point(3, 3); + this.IPv4TextBox.MaxLength = 32767; + this.IPv4TextBox.Name = "IPv4TextBox"; + this.IPv4TextBox.PasswordChar = '\0'; + this.IPv4TextBox.PromptText = "Wii U IP"; + this.IPv4TextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.IPv4TextBox.SelectedText = ""; + this.IPv4TextBox.SelectionLength = 0; + this.IPv4TextBox.SelectionStart = 0; + this.IPv4TextBox.ShortcutsEnabled = true; + this.IPv4TextBox.Size = new System.Drawing.Size(280, 27); + this.IPv4TextBox.Style = MetroFramework.MetroColorStyle.Blue; + this.IPv4TextBox.TabIndex = 10; + this.IPv4TextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.IPv4TextBox.UseSelectable = true; + this.IPv4TextBox.WaterMark = "Wii U IP"; + this.IPv4TextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.IPv4TextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // listViewPCKS + // + this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick; + this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3); + this.listViewPCKS.ContextMenuStrip = this.contextMenuStripCaffiine; + this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill; + this.listViewPCKS.Enabled = false; + this.listViewPCKS.HideSelection = false; + this.listViewPCKS.Location = new System.Drawing.Point(3, 151); + this.listViewPCKS.Name = "listViewPCKS"; + this.listViewPCKS.Size = new System.Drawing.Size(424, 396); + this.listViewPCKS.TabIndex = 3; + this.listViewPCKS.UseCompatibleStateImageBehavior = false; + this.listViewPCKS.View = System.Windows.Forms.View.Details; + this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown); + // + // contextMenuStripCaffiine + // + this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.replaceToolStripMenuItem, + this.replacePCKToolStripMenuItem}); + this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine"; + this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48); + // + // replaceToolStripMenuItem + // + this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; + this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; + this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.replaceToolStripMenuItem.Text = "Replace"; + this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage; + this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); + // + // replacePCKToolStripMenuItem + // + this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; + this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem"; + this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.replacePCKToolStripMenuItem.Text = "Replace with external PCK"; + this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click); + // + // radioButtonUSB + // + this.radioButtonUSB.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonUSB.BackColor = System.Drawing.Color.Transparent; + this.radioButtonUSB.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonUSB.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonUSB.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; + this.radioButtonUSB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonUSB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonUSB.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonUSB.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonUSB.ForeColor = System.Drawing.Color.White; + this.radioButtonUSB.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonUSB.Location = new System.Drawing.Point(289, 69); + this.radioButtonUSB.Name = "radioButtonUSB"; + this.radioButtonUSB.Size = new System.Drawing.Size(138, 30); + this.radioButtonUSB.TabIndex = 6; + this.radioButtonUSB.Text = "USB"; + this.radioButtonUSB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonUSB.UseVisualStyleBackColor = false; + this.radioButtonUSB.Click += new System.EventHandler(this.radioButton_Click); + // + // TextBoxPackImage + // + this.TextBoxPackImage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.myTablePanel1.SetColumnSpan(this.TextBoxPackImage, 2); + // + // + // + this.TextBoxPackImage.CustomButton.Image = null; + this.TextBoxPackImage.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.TextBoxPackImage.CustomButton.Location = new System.Drawing.Point(312, 1); + this.TextBoxPackImage.CustomButton.Name = ""; + this.TextBoxPackImage.CustomButton.Size = new System.Drawing.Size(25, 25); + this.TextBoxPackImage.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.TextBoxPackImage.CustomButton.TabIndex = 1; + this.TextBoxPackImage.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.TextBoxPackImage.CustomButton.UseSelectable = true; + this.TextBoxPackImage.CustomButton.Visible = false; + this.TextBoxPackImage.Dock = System.Windows.Forms.DockStyle.Fill; + this.TextBoxPackImage.IconRight = true; + this.TextBoxPackImage.Lines = new string[0]; + this.TextBoxPackImage.Location = new System.Drawing.Point(3, 36); + this.TextBoxPackImage.MaxLength = 32767; + this.TextBoxPackImage.Name = "TextBoxPackImage"; + this.TextBoxPackImage.PasswordChar = '\0'; + this.TextBoxPackImage.PromptText = "Pack Image"; + this.TextBoxPackImage.ReadOnly = true; + this.TextBoxPackImage.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.TextBoxPackImage.SelectedText = ""; + this.TextBoxPackImage.SelectionLength = 0; + this.TextBoxPackImage.SelectionStart = 0; + this.TextBoxPackImage.ShortcutsEnabled = true; + this.TextBoxPackImage.Size = new System.Drawing.Size(280, 27); + this.TextBoxPackImage.Style = MetroFramework.MetroColorStyle.Blue; + this.TextBoxPackImage.TabIndex = 11; + this.TextBoxPackImage.Theme = MetroFramework.MetroThemeStyle.Dark; + this.TextBoxPackImage.UseSelectable = true; + this.TextBoxPackImage.WaterMark = "Pack Image"; + this.TextBoxPackImage.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.TextBoxPackImage.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // radioButtonSystem + // + this.radioButtonSystem.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonSystem.BackColor = System.Drawing.Color.Transparent; + this.radioButtonSystem.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonSystem.Checked = true; + this.radioButtonSystem.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonSystem.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue; + this.radioButtonSystem.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonSystem.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonSystem.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonSystem.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonSystem.ForeColor = System.Drawing.Color.White; + this.radioButtonSystem.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonSystem.Location = new System.Drawing.Point(146, 69); + this.radioButtonSystem.Name = "radioButtonSystem"; + this.radioButtonSystem.Size = new System.Drawing.Size(137, 30); + this.radioButtonSystem.TabIndex = 5; + this.radioButtonSystem.TabStop = true; + this.radioButtonSystem.Text = "System"; + this.radioButtonSystem.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonSystem.UseVisualStyleBackColor = false; + this.radioButtonSystem.Click += new System.EventHandler(this.radioButton_Click); + // + // buttonSelect + // + this.buttonSelect.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonSelect.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonSelect.Font = new System.Drawing.Font("Segoe UI", 12F); + this.buttonSelect.ForeColor = System.Drawing.Color.White; + this.buttonSelect.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.buttonSelect.Location = new System.Drawing.Point(3, 69); + this.buttonSelect.Name = "buttonSelect"; + this.buttonSelect.Size = new System.Drawing.Size(137, 30); + this.buttonSelect.TabIndex = 1; + this.buttonSelect.UseVisualStyleBackColor = true; + this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click); + // + // PackImageSelection + // + this.PackImageSelection.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.PackImageSelection.BackColor = System.Drawing.Color.DarkCyan; + this.PackImageSelection.Dock = System.Windows.Forms.DockStyle.Fill; + this.PackImageSelection.Enabled = false; + this.PackImageSelection.FlatAppearance.BorderSize = 0; + this.PackImageSelection.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.PackImageSelection.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.PackImageSelection.ForeColor = System.Drawing.Color.White; + this.PackImageSelection.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.PackImageSelection.Location = new System.Drawing.Point(289, 36); + this.PackImageSelection.Name = "PackImageSelection"; + this.PackImageSelection.Size = new System.Drawing.Size(138, 27); + this.PackImageSelection.TabIndex = 12; + this.PackImageSelection.Text = "Browse"; + this.PackImageSelection.UseVisualStyleBackColor = false; + this.PackImageSelection.Click += new System.EventHandler(this.PackImageSelection_Click); + // + // regionLayoutPanel + // + this.regionLayoutPanel.ColumnCount = 3; + this.myTablePanel1.SetColumnSpan(this.regionLayoutPanel, 3); + this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.regionLayoutPanel.Controls.Add(this.radioButtonEur, 0, 0); + this.regionLayoutPanel.Controls.Add(this.radioButtonUs, 1, 0); + this.regionLayoutPanel.Controls.Add(this.radioButtonJap, 2, 0); + this.regionLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.regionLayoutPanel.Location = new System.Drawing.Point(3, 105); + this.regionLayoutPanel.Name = "regionLayoutPanel"; + this.regionLayoutPanel.RowCount = 1; + this.regionLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.regionLayoutPanel.Size = new System.Drawing.Size(424, 40); + this.regionLayoutPanel.TabIndex = 13; + // + // radioButtonEur + // + this.radioButtonEur.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonEur.AutoSize = true; + this.radioButtonEur.BackColor = System.Drawing.Color.Transparent; + this.radioButtonEur.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonEur.Checked = true; + this.radioButtonEur.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue; + this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonEur.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonEur.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonEur.ForeColor = System.Drawing.Color.White; + this.radioButtonEur.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonEur.Location = new System.Drawing.Point(3, 3); + this.radioButtonEur.Name = "radioButtonEur"; + this.radioButtonEur.Size = new System.Drawing.Size(135, 34); + this.radioButtonEur.TabIndex = 1; + this.radioButtonEur.TabStop = true; + this.radioButtonEur.Text = "EUR"; + this.radioButtonEur.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonEur.UseVisualStyleBackColor = false; + this.radioButtonEur.Click += new System.EventHandler(this.radioButton_Click); + // + // radioButtonUs + // + this.radioButtonUs.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonUs.AutoSize = true; + this.radioButtonUs.BackColor = System.Drawing.Color.Transparent; + this.radioButtonUs.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonUs.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; + this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonUs.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonUs.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonUs.ForeColor = System.Drawing.Color.White; + this.radioButtonUs.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonUs.Location = new System.Drawing.Point(144, 3); + this.radioButtonUs.Name = "radioButtonUs"; + this.radioButtonUs.Size = new System.Drawing.Size(135, 34); + this.radioButtonUs.TabIndex = 0; + this.radioButtonUs.Text = "US"; + this.radioButtonUs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonUs.UseVisualStyleBackColor = false; + this.radioButtonUs.Click += new System.EventHandler(this.radioButton_Click); + // + // radioButtonJap + // + this.radioButtonJap.Appearance = System.Windows.Forms.Appearance.Button; + this.radioButtonJap.AutoSize = true; + this.radioButtonJap.BackColor = System.Drawing.Color.Transparent; + this.radioButtonJap.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonJap.Dock = System.Windows.Forms.DockStyle.Fill; + this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; + this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; + this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.radioButtonJap.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.radioButtonJap.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radioButtonJap.ForeColor = System.Drawing.Color.White; + this.radioButtonJap.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.radioButtonJap.Location = new System.Drawing.Point(285, 3); + this.radioButtonJap.Name = "radioButtonJap"; + this.radioButtonJap.Size = new System.Drawing.Size(136, 34); + this.radioButtonJap.TabIndex = 2; + this.radioButtonJap.Text = "JAP"; + this.radioButtonJap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radioButtonJap.UseVisualStyleBackColor = false; + this.radioButtonJap.Click += new System.EventHandler(this.radioButton_Click); + // + // WiiUPanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ActiveCaptionText; + this.Controls.Add(this.myTablePanel1); + this.Name = "WiiUPanel"; + this.Size = new System.Drawing.Size(430, 550); + this.myTablePanel1.ResumeLayout(false); + this.contextMenuStripCaffiine.ResumeLayout(false); + this.regionLayoutPanel.ResumeLayout(false); + this.regionLayoutPanel.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel myTablePanel1; + private System.Windows.Forms.Button buttonServerToggle; + private System.Windows.Forms.Button buttonSelect; + private System.Windows.Forms.RadioButton radioButtonSystem; + private System.Windows.Forms.RadioButton radioButtonUSB; + private System.Windows.Forms.RadioButton radioButtonEur; + private System.Windows.Forms.RadioButton radioButtonUs; + private System.Windows.Forms.RadioButton radioButtonJap; + private MetroFramework.Controls.MetroTextBox IPv4TextBox; + private System.Windows.Forms.ListView listViewPCKS; + private MetroFramework.Controls.MetroTextBox TextBoxPackImage; + private System.Windows.Forms.Button PackImageSelection; + private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine; + private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem; + private System.Windows.Forms.TableLayoutPanel regionLayoutPanel; + } +} diff --git a/PCK-Studio/Features/WiiUPanel.cs b/PCK-Studio/Features/WiiUPanel.cs new file mode 100644 index 00000000..e1f3aab4 --- /dev/null +++ b/PCK-Studio/Features/WiiUPanel.cs @@ -0,0 +1,290 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using OMI.Formats.Archive; +using OMI.Formats.Pck; +using OMI.Workers.Archive; +using OMI.Workers.Pck; +using PckStudio.Classes.Misc; + +namespace PckStudio.Features +{ + public partial class WiiUPanel : UserControl + { + string DLCPath = string.Empty; + string mod = string.Empty; + bool serverOn = false; + ConsoleArchive archive = new ConsoleArchive(); + PckFile currentPCK = null; + + private const string FtpUsername = "PCK_Studio_Client"; + // TODO: randomize per 'session'(instance) + private const string FtpSessionPassword = "a3262443"; + private ICredentials sessionCredentials = new NetworkCredential(FtpUsername, FtpSessionPassword); + + public WiiUPanel() + { + InitializeComponent(); + UpdateDLCPath(); + buttonServerToggle.Enabled = true; + if (listViewPCKS.Columns.Count == 0) + { + listViewPCKS.Columns.Add(DLCPath, listViewPCKS.Width); + } + } + + [Obsolete("Prompt user to use Aroma instead!")] + private void buttonSelect_Click(object sender, EventArgs e) + { + MessageBox.Show("Please use Aroma's ftp Plugin!"); + return; + } + + private enum ButtonState + { + Start, + Stop, + Wait + } + + private void SetButtonState(ButtonState state) + { + switch(state) + { + case ButtonState.Start: + buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13); + serverOn = false; + buttonServerToggle.Text = "Start"; + listViewPCKS.Enabled = false; + break; + case ButtonState.Stop: + serverOn = true; + buttonServerToggle.BackColor = Color.Red; + buttonServerToggle.Text = "Stop"; + listViewPCKS.Enabled = true; + break; + case ButtonState.Wait: + buttonServerToggle.BackColor = Color.MediumAquamarine; + buttonServerToggle.Text = "Wait.."; + break; + default: + break; + } + } + + private string GetConsoleDevice() + { + if (radioButtonSystem.Checked) + { + return "storage_mlc"; + } + if (radioButtonUSB.Checked) + { + return "storage_usb"; + } + throw new Exception("how did you get here ?"); + } + + private string GetConsoleRegion() + { + if (radioButtonEur.Checked) + { + return "101d7500"; + } + if (radioButtonUs.Checked) + { + return "101d9d00"; + } + if (radioButtonJap.Checked) + { + return "101dbe00"; + } + throw new Exception("how did you get here ?"); + } + + private string GetGameContentPath() + { + string device = GetConsoleDevice(); + string region = GetConsoleRegion(); + return $"{device}/usr/title/0005000e/{region}/content"; + } + + private void UpdateDLCPath() + { + DLCPath = $"{GetGameContentPath()}/WiiU/DLC/"; + } + + private void buttonServerToggle_Click(object sender, EventArgs e) + { + //Turn off server + if (serverOn) + { + listViewPCKS.Items.Clear(); + try + { + SetButtonState(ButtonState.Start); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + return; + } + + if (!Regex.IsMatch(IPv4TextBox.Text, @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")) + { + MessageBox.Show("Please enter a valid Wii U IP!"); + return; + } + + // Turn on server + try + { + SetButtonState(ButtonState.Wait); + + ServicePointManager.Expect100Continue = true; + + using (var client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials)) + { + client.SetTimeoutLimit(TimeSpan.FromSeconds(10)); + string[] dirList = client.ListDirectory(DLCPath); + listViewPCKS.Items.AddRange(dirList.Select(s => new ListViewItem(s)).ToArray()); + foreach (ListViewItem pck in listViewPCKS.Items) + { + string[] res = client.ListDirectory($"{DLCPath}/{pck.Text}"); + if (res.Length != 1) + { + pck.Remove(); + } + } + } + + SetButtonState(ButtonState.Stop); + } + catch (Exception ex) + { + SetButtonState(ButtonState.Start); + MessageBox.Show(ex.ToString()); + } + } + + private void radioButton_Click(object sender, EventArgs e) + { + UpdateDLCPath(); + listViewPCKS.Columns[0].Text = DLCPath; + } + + private void listViewPCKS_MouseDown(object sender, MouseEventArgs e) + { + ListViewHitTestInfo hitTestInfo = listViewPCKS.HitTest(e.Location); + if (e.Button == MouseButtons.Right && hitTestInfo.Location != ListViewHitTestLocations.None) + { + contextMenuStripCaffiine.Show(Cursor.Position); + } + } + + private void replaceToolStripMenuItem_Click(object sender, EventArgs e) + { + if (listViewPCKS.SelectedItems.Count != 0) + { + SetButtonState(ButtonState.Wait); + ReplacePck(mod); + MessageBox.Show("PCK Replaced!"); + } + SetButtonState(ButtonState.Stop); + UpdateDLCPath(); + } + + private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e) + { + if (listViewPCKS.SelectedItems.Count != 0) + { + SetButtonState(ButtonState.Wait); + OpenFileDialog openPCK = new OpenFileDialog(); + openPCK.Filter = "PCK File|*.pck"; + + if (openPCK.ShowDialog() == DialogResult.OK) + { + ReplacePck(openPCK.FileName); + MessageBox.Show("PCK Replaced!"); + } + } + SetButtonState(ButtonState.Stop); + UpdateDLCPath(); + } + + private void ReplacePck(string filename) + { + using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials)) + client.UploadFile(filename, DLCPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); + if (!string.IsNullOrWhiteSpace(TextBoxPackImage.Text)) + { + string PackID = GetPackId(filename); + GetARCFromConsole(); + AddOrReplacePackImage(PackID); + SendARCToConsole(); + } + } + + private string GetPackId(string filepath) + { + var reader = new PckFileReader(); + currentPCK = reader.FromFile(filepath); + if (currentPCK is null) return string.Empty; + return currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out var file) + ? file.Properties.GetProperty("PACKID").Item2 + : string.Empty; + } + + private void GetARCFromConsole() + { + using var ms = new MemoryStream(); + using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials)) + { + client.DownloadFile(GetGameContentPath() + "/Common/Media/MediaWiiU.arc", ms); + ms.Position = 0; + var reader = new ARCFileReader(); + archive = reader.FromStream(ms); + } + } + + private void AddOrReplacePackImage(string packId) + { + string arcPath = $"Graphics\\PackGraphics\\{packId}.png"; + byte[] data = File.ReadAllBytes(TextBoxPackImage.Text); + if (archive.ContainsKey(arcPath)) archive[arcPath] = data; + else archive.Add(arcPath, data); + } + + private void SendARCToConsole() + { + using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials)) + { + using (var ms = new MemoryStream()) + { + var writer = new ARCFileWriter(archive); + writer.WriteToStream(ms); + ms.Position = 0; + client.UploadFile(ms, GetGameContentPath() + "/Common/Media/MediaWiiU.arc"); + } + archive.Clear(); + currentPCK?.Files.Clear(); + currentPCK = null; + } + GC.Collect(); + } + + private void PackImageSelection_Click(object sender, EventArgs e) + { + OpenFileDialog ofd = new OpenFileDialog(); + ofd.Filter = "Pack Image|*.png"; + if (ofd.ShowDialog() == DialogResult.OK) + TextBoxPackImage.Text = ofd.FileName; + } + } +} diff --git a/PCK-Studio/Forms/Utilities/installPS3.resx b/PCK-Studio/Features/WiiUPanel.resx similarity index 100% rename from PCK-Studio/Forms/Utilities/installPS3.resx rename to PCK-Studio/Features/WiiUPanel.resx diff --git a/PCK-Studio/Forms/Utilities/installWiiU.resx b/PCK-Studio/Features/installWiiU.resx similarity index 100% rename from PCK-Studio/Forms/Utilities/installWiiU.resx rename to PCK-Studio/Features/installWiiU.resx diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs b/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs deleted file mode 100644 index d6a260c6..00000000 --- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs +++ /dev/null @@ -1,320 +0,0 @@ -namespace PckStudio.Forms.Utilities -{ - partial class ConsoleInstaller - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - MetroFramework.Controls.MetroLabel metroLabel1; - MetroFramework.Controls.MetroLabel metroLabel2; - this.selectedConsoleComboBox = new MetroFramework.Controls.MetroComboBox(); - this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.EurDig = new System.Windows.Forms.RadioButton(); - this.USDig = new System.Windows.Forms.RadioButton(); - this.textBoxHost = new MetroFramework.Controls.MetroTextBox(); - this.EurDisc = new System.Windows.Forms.RadioButton(); - this.USDisc = new System.Windows.Forms.RadioButton(); - this.listViewPCKS = new System.Windows.Forms.ListView(); - this.JPDig = new System.Windows.Forms.RadioButton(); - this.buttonServerToggle = new System.Windows.Forms.Button(); - metroLabel1 = new MetroFramework.Controls.MetroLabel(); - metroLabel2 = new MetroFramework.Controls.MetroLabel(); - this.myTablePanel1.SuspendLayout(); - this.SuspendLayout(); - // - // metroLabel1 - // - metroLabel1.AutoSize = true; - metroLabel1.Location = new System.Drawing.Point(264, 73); - metroLabel1.Name = "metroLabel1"; - metroLabel1.Size = new System.Drawing.Size(90, 19); - metroLabel1.Style = MetroFramework.MetroColorStyle.Black; - metroLabel1.TabIndex = 1; - metroLabel1.Text = "Console Type:"; - metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroLabel2 - // - metroLabel2.AutoSize = true; - metroLabel2.Dock = System.Windows.Forms.DockStyle.Fill; - metroLabel2.Location = new System.Drawing.Point(129, 0); - metroLabel2.Name = "metroLabel2"; - metroLabel2.Size = new System.Drawing.Size(120, 35); - metroLabel2.Style = MetroFramework.MetroColorStyle.Black; - metroLabel2.TabIndex = 13; - metroLabel2.Text = "Console Type:"; - metroLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // selectedConsoleComboBox - // - this.selectedConsoleComboBox.BackColor = System.Drawing.SystemColors.Window; - this.selectedConsoleComboBox.FormattingEnabled = true; - this.selectedConsoleComboBox.ItemHeight = 23; - this.selectedConsoleComboBox.Items.AddRange(new object[] { - "Wii U", - "Play Station 3", - "PS Vita"}); - this.selectedConsoleComboBox.Location = new System.Drawing.Point(255, 3); - this.selectedConsoleComboBox.Name = "selectedConsoleComboBox"; - this.selectedConsoleComboBox.PromptText = "Select console"; - this.selectedConsoleComboBox.Size = new System.Drawing.Size(121, 29); - this.selectedConsoleComboBox.Style = MetroFramework.MetroColorStyle.Black; - this.selectedConsoleComboBox.TabIndex = 0; - this.selectedConsoleComboBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.selectedConsoleComboBox.UseSelectable = true; - // - // myTablePanel1 - // - this.myTablePanel1.BackColor = System.Drawing.Color.Transparent; - this.myTablePanel1.ColumnCount = 3; - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.Controls.Add(this.EurDig, 1, 2); - this.myTablePanel1.Controls.Add(this.USDig, 2, 2); - this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 1); - this.myTablePanel1.Controls.Add(this.EurDisc, 1, 3); - this.myTablePanel1.Controls.Add(this.USDisc, 2, 3); - this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4); - this.myTablePanel1.Controls.Add(this.JPDig, 0, 2); - this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 1); - this.myTablePanel1.Controls.Add(this.selectedConsoleComboBox, 2, 0); - this.myTablePanel1.Controls.Add(metroLabel2, 1, 0); - this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.myTablePanel1.Location = new System.Drawing.Point(20, 60); - this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0); - this.myTablePanel1.Name = "myTablePanel1"; - this.myTablePanel1.RowCount = 5; - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.myTablePanel1.Size = new System.Drawing.Size(379, 561); - this.myTablePanel1.TabIndex = 3; - // - // EurDig - // - this.EurDig.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDig.AutoSize = true; - this.EurDig.BackColor = System.Drawing.Color.Transparent; - this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDig.ForeColor = System.Drawing.Color.White; - this.EurDig.Location = new System.Drawing.Point(129, 71); - this.EurDig.Name = "EurDig"; - this.EurDig.Size = new System.Drawing.Size(100, 30); - this.EurDig.TabIndex = 11; - this.EurDig.Text = "EUR Digital"; - this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDig.UseVisualStyleBackColor = false; - // - // USDig - // - this.USDig.Appearance = System.Windows.Forms.Appearance.Button; - this.USDig.AutoSize = true; - this.USDig.BackColor = System.Drawing.Color.Transparent; - this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDig.ForeColor = System.Drawing.Color.White; - this.USDig.Location = new System.Drawing.Point(255, 71); - this.USDig.Name = "USDig"; - this.USDig.Size = new System.Drawing.Size(91, 30); - this.USDig.TabIndex = 12; - this.USDig.Text = "US Digital"; - this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDig.UseVisualStyleBackColor = false; - // - // textBoxHost - // - this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2); - // - // - // - this.textBoxHost.CustomButton.Image = null; - this.textBoxHost.CustomButton.Location = new System.Drawing.Point(274, 2); - this.textBoxHost.CustomButton.Name = ""; - this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15); - this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.CustomButton.TabIndex = 1; - this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.textBoxHost.CustomButton.UseSelectable = true; - this.textBoxHost.CustomButton.Visible = false; - this.textBoxHost.IconRight = true; - this.textBoxHost.Lines = new string[0]; - this.textBoxHost.Location = new System.Drawing.Point(3, 38); - this.textBoxHost.MaxLength = 32767; - this.textBoxHost.Name = "textBoxHost"; - this.textBoxHost.PasswordChar = '\0'; - this.textBoxHost.PromptText = "IP Address"; - this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.textBoxHost.SelectedText = ""; - this.textBoxHost.SelectionLength = 0; - this.textBoxHost.SelectionStart = 0; - this.textBoxHost.ShortcutsEnabled = true; - this.textBoxHost.Size = new System.Drawing.Size(246, 20); - this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.TabIndex = 10; - this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark; - this.textBoxHost.UseSelectable = true; - this.textBoxHost.WaterMark = "IP Address"; - this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // EurDisc - // - this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDisc.AutoSize = true; - this.EurDisc.BackColor = System.Drawing.Color.Transparent; - this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDisc.ForeColor = System.Drawing.Color.White; - this.EurDisc.Location = new System.Drawing.Point(129, 107); - this.EurDisc.Name = "EurDisc"; - this.EurDisc.Size = new System.Drawing.Size(84, 30); - this.EurDisc.TabIndex = 0; - this.EurDisc.Text = "EUR Disc"; - this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDisc.UseVisualStyleBackColor = false; - // - // USDisc - // - this.USDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.USDisc.AutoSize = true; - this.USDisc.BackColor = System.Drawing.Color.Transparent; - this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDisc.ForeColor = System.Drawing.Color.White; - this.USDisc.Location = new System.Drawing.Point(255, 107); - this.USDisc.Name = "USDisc"; - this.USDisc.Size = new System.Drawing.Size(75, 30); - this.USDisc.TabIndex = 2; - this.USDisc.Text = "US Disc"; - this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDisc.UseVisualStyleBackColor = false; - // - // listViewPCKS - // - this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick; - this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3); - this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill; - this.listViewPCKS.Enabled = false; - this.listViewPCKS.HideSelection = false; - this.listViewPCKS.Location = new System.Drawing.Point(3, 143); - this.listViewPCKS.Name = "listViewPCKS"; - this.listViewPCKS.Size = new System.Drawing.Size(373, 415); - this.listViewPCKS.TabIndex = 3; - this.listViewPCKS.UseCompatibleStateImageBehavior = false; - this.listViewPCKS.View = System.Windows.Forms.View.Details; - // - // JPDig - // - this.JPDig.Appearance = System.Windows.Forms.Appearance.Button; - this.JPDig.AutoSize = true; - this.JPDig.BackColor = System.Drawing.Color.Transparent; - this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.JPDig.ForeColor = System.Drawing.Color.White; - this.JPDig.Location = new System.Drawing.Point(3, 71); - this.JPDig.Name = "JPDig"; - this.JPDig.Size = new System.Drawing.Size(47, 30); - this.JPDig.TabIndex = 1; - this.JPDig.Text = "JAP"; - this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.JPDig.UseVisualStyleBackColor = false; - // - // buttonServerToggle - // - this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13))))); - this.buttonServerToggle.FlatAppearance.BorderSize = 0; - this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.buttonServerToggle.ForeColor = System.Drawing.Color.White; - this.buttonServerToggle.Location = new System.Drawing.Point(255, 38); - this.buttonServerToggle.Name = "buttonServerToggle"; - this.buttonServerToggle.Size = new System.Drawing.Size(121, 27); - this.buttonServerToggle.TabIndex = 9; - this.buttonServerToggle.Text = "Start"; - this.buttonServerToggle.UseVisualStyleBackColor = false; - // - // ConsoleInstaller - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(419, 641); - this.Controls.Add(this.myTablePanel1); - this.Controls.Add(metroLabel1); - this.Name = "ConsoleInstaller"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Text = "Console Installer"; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.myTablePanel1.ResumeLayout(false); - this.myTablePanel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private MetroFramework.Controls.MetroComboBox selectedConsoleComboBox; - private System.Windows.Forms.TableLayoutPanel myTablePanel1; - private System.Windows.Forms.RadioButton EurDig; - private System.Windows.Forms.RadioButton USDig; - private System.Windows.Forms.Button buttonServerToggle; - private MetroFramework.Controls.MetroTextBox textBoxHost; - private System.Windows.Forms.RadioButton EurDisc; - private System.Windows.Forms.RadioButton USDisc; - private System.Windows.Forms.ListView listViewPCKS; - private System.Windows.Forms.RadioButton JPDig; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs b/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs deleted file mode 100644 index 95f1d3ec..00000000 --- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace PckStudio.Forms.Utilities -{ - public partial class ConsoleInstaller : MetroFramework.Forms.MetroForm - { - public ConsoleInstaller() - { - InitializeComponent(); - } - } -} diff --git a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs b/PCK-Studio/Forms/Utilities/installPS3.Designer.cs deleted file mode 100644 index 88b5cb3a..00000000 --- a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs +++ /dev/null @@ -1,356 +0,0 @@ -namespace PckStudio.Forms -{ - partial class installPS3 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage(); - this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.EurDig = new System.Windows.Forms.RadioButton(); - this.USDig = new System.Windows.Forms.RadioButton(); - this.buttonServerToggle = new System.Windows.Forms.Button(); - this.textBoxHost = new MetroFramework.Controls.MetroTextBox(); - this.EurDisc = new System.Windows.Forms.RadioButton(); - this.USDisc = new System.Windows.Forms.RadioButton(); - this.listViewPCKS = new System.Windows.Forms.ListView(); - this.JPDig = new System.Windows.Forms.RadioButton(); - this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl(); - this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components); - this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.metroTabPageMain.SuspendLayout(); - this.myTablePanel1.SuspendLayout(); - this.metroTabControlMain.SuspendLayout(); - this.contextMenuStripCaffiine.SuspendLayout(); - this.SuspendLayout(); - // - // metroTabPageMain - // - this.metroTabPageMain.Controls.Add(this.myTablePanel1); - this.metroTabPageMain.HorizontalScrollbarBarColor = true; - this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.HorizontalScrollbarSize = 10; - this.metroTabPageMain.Location = new System.Drawing.Point(4, 38); - this.metroTabPageMain.Name = "metroTabPageMain"; - this.metroTabPageMain.Size = new System.Drawing.Size(427, 537); - this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTabPageMain.TabIndex = 0; - this.metroTabPageMain.Text = "Installer"; - this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabPageMain.VerticalScrollbarBarColor = true; - this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.VerticalScrollbarSize = 10; - // - // myTablePanel1 - // - this.myTablePanel1.BackColor = System.Drawing.Color.Transparent; - this.myTablePanel1.ColumnCount = 3; - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.Controls.Add(this.EurDig, 1, 1); - this.myTablePanel1.Controls.Add(this.USDig, 2, 1); - this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0); - this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0); - this.myTablePanel1.Controls.Add(this.EurDisc, 1, 2); - this.myTablePanel1.Controls.Add(this.USDisc, 2, 2); - this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 3); - this.myTablePanel1.Controls.Add(this.JPDig, 0, 1); - this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.myTablePanel1.Location = new System.Drawing.Point(0, 0); - this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0); - this.myTablePanel1.Name = "myTablePanel1"; - this.myTablePanel1.RowCount = 7; - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.Size = new System.Drawing.Size(427, 537); - this.myTablePanel1.TabIndex = 2; - // - // EurDig - // - this.EurDig.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDig.AutoSize = true; - this.EurDig.BackColor = System.Drawing.Color.Transparent; - this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDig.ForeColor = System.Drawing.Color.White; - this.EurDig.Location = new System.Drawing.Point(145, 36); - this.EurDig.Name = "EurDig"; - this.EurDig.Size = new System.Drawing.Size(100, 30); - this.EurDig.TabIndex = 11; - this.EurDig.Text = "EUR Digital"; - this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDig.UseVisualStyleBackColor = false; - this.EurDig.CheckedChanged += new System.EventHandler(this.EurDig_CheckedChanged); - // - // USDig - // - this.USDig.Appearance = System.Windows.Forms.Appearance.Button; - this.USDig.AutoSize = true; - this.USDig.BackColor = System.Drawing.Color.Transparent; - this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDig.ForeColor = System.Drawing.Color.White; - this.USDig.Location = new System.Drawing.Point(287, 36); - this.USDig.Name = "USDig"; - this.USDig.Size = new System.Drawing.Size(91, 30); - this.USDig.TabIndex = 12; - this.USDig.Text = "US Digital"; - this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDig.UseVisualStyleBackColor = false; - this.USDig.CheckedChanged += new System.EventHandler(this.USDig_CheckedChanged); - // - // buttonServerToggle - // - this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13))))); - this.buttonServerToggle.FlatAppearance.BorderSize = 0; - this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.buttonServerToggle.ForeColor = System.Drawing.Color.White; - this.buttonServerToggle.Location = new System.Drawing.Point(287, 3); - this.buttonServerToggle.Name = "buttonServerToggle"; - this.buttonServerToggle.Size = new System.Drawing.Size(137, 27); - this.buttonServerToggle.TabIndex = 9; - this.buttonServerToggle.Text = "Start"; - this.buttonServerToggle.UseVisualStyleBackColor = false; - this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click); - // - // textBoxHost - // - this.textBoxHost.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2); - // - // - // - this.textBoxHost.CustomButton.Image = null; - this.textBoxHost.CustomButton.Location = new System.Drawing.Point(260, 2); - this.textBoxHost.CustomButton.Name = ""; - this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15); - this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.CustomButton.TabIndex = 1; - this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.textBoxHost.CustomButton.UseSelectable = true; - this.textBoxHost.CustomButton.Visible = false; - this.textBoxHost.IconRight = true; - this.textBoxHost.Lines = new string[0]; - this.textBoxHost.Location = new System.Drawing.Point(3, 6); - this.textBoxHost.MaxLength = 32767; - this.textBoxHost.Name = "textBoxHost"; - this.textBoxHost.PasswordChar = '\0'; - this.textBoxHost.PromptText = "PS3 IP"; - this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.textBoxHost.SelectedText = ""; - this.textBoxHost.SelectionLength = 0; - this.textBoxHost.SelectionStart = 0; - this.textBoxHost.ShortcutsEnabled = true; - this.textBoxHost.Size = new System.Drawing.Size(278, 20); - this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.TabIndex = 10; - this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark; - this.textBoxHost.UseSelectable = true; - this.textBoxHost.WaterMark = "PS3 IP"; - this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // EurDisc - // - this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDisc.AutoSize = true; - this.EurDisc.BackColor = System.Drawing.Color.Transparent; - this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDisc.ForeColor = System.Drawing.Color.White; - this.EurDisc.Location = new System.Drawing.Point(145, 72); - this.EurDisc.Name = "EurDisc"; - this.EurDisc.Size = new System.Drawing.Size(84, 30); - this.EurDisc.TabIndex = 0; - this.EurDisc.Text = "EUR Disc"; - this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDisc.UseVisualStyleBackColor = false; - this.EurDisc.CheckedChanged += new System.EventHandler(this.EurDisc_CheckedChanged); - // - // USDisc - // - this.USDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.USDisc.AutoSize = true; - this.USDisc.BackColor = System.Drawing.Color.Transparent; - this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDisc.ForeColor = System.Drawing.Color.White; - this.USDisc.Location = new System.Drawing.Point(287, 72); - this.USDisc.Name = "USDisc"; - this.USDisc.Size = new System.Drawing.Size(75, 30); - this.USDisc.TabIndex = 2; - this.USDisc.Text = "US Disc"; - this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDisc.UseVisualStyleBackColor = false; - this.USDisc.CheckedChanged += new System.EventHandler(this.USDisc_CheckedChanged); - // - // listViewPCKS - // - this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick; - this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3); - this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill; - this.listViewPCKS.Enabled = false; - this.listViewPCKS.HideSelection = false; - this.listViewPCKS.Location = new System.Drawing.Point(3, 108); - this.listViewPCKS.Name = "listViewPCKS"; - this.listViewPCKS.Size = new System.Drawing.Size(421, 426); - this.listViewPCKS.TabIndex = 3; - this.listViewPCKS.UseCompatibleStateImageBehavior = false; - this.listViewPCKS.View = System.Windows.Forms.View.Details; - this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged); - this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click); - this.listViewPCKS.DoubleClick += new System.EventHandler(this.listViewPCKS_DoubleClick); - this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown); - // - // JPDig - // - this.JPDig.Appearance = System.Windows.Forms.Appearance.Button; - this.JPDig.AutoSize = true; - this.JPDig.BackColor = System.Drawing.Color.Transparent; - this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.JPDig.ForeColor = System.Drawing.Color.White; - this.JPDig.Location = new System.Drawing.Point(3, 36); - this.JPDig.Name = "JPDig"; - this.JPDig.Size = new System.Drawing.Size(47, 30); - this.JPDig.TabIndex = 1; - this.JPDig.Text = "JAP"; - this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.JPDig.UseVisualStyleBackColor = false; - this.JPDig.CheckedChanged += new System.EventHandler(this.JPDig_CheckedChanged); - // - // metroTabControlMain - // - this.metroTabControlMain.Controls.Add(this.metroTabPageMain); - this.metroTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill; - this.metroTabControlMain.Location = new System.Drawing.Point(20, 60); - this.metroTabControlMain.Name = "metroTabControlMain"; - this.metroTabControlMain.SelectedIndex = 0; - this.metroTabControlMain.Size = new System.Drawing.Size(435, 579); - this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White; - this.metroTabControlMain.TabIndex = 0; - this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabControlMain.UseSelectable = true; - // - // contextMenuStripCaffiine - // - this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.replaceToolStripMenuItem, - this.replacePCKToolStripMenuItem}); - this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine"; - this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48); - this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening); - // - // replaceToolStripMenuItem - // - this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; - this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22); - this.replaceToolStripMenuItem.Text = "Replace"; - this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage; - this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); - // - // replacePCKToolStripMenuItem - // - this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem"; - this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22); - this.replacePCKToolStripMenuItem.Text = "Replace with external PCK"; - this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click); - // - // installPS3 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle; - this.ClientSize = new System.Drawing.Size(475, 659); - this.Controls.Add(this.metroTabControlMain); - this.MaximizeBox = false; - this.Name = "installPS3"; - this.Resizable = false; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.SystemShadow; - this.Style = MetroFramework.MetroColorStyle.White; - this.Text = "Install to Playstation®3"; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.Load += new System.EventHandler(this.installPS3_Load); - this.metroTabPageMain.ResumeLayout(false); - this.myTablePanel1.ResumeLayout(false); - this.myTablePanel1.PerformLayout(); - this.metroTabControlMain.ResumeLayout(false); - this.contextMenuStripCaffiine.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private MetroFramework.Controls.MetroTabPage metroTabPageMain; - private System.Windows.Forms.TableLayoutPanel myTablePanel1; - private System.Windows.Forms.RadioButton USDisc; - private System.Windows.Forms.RadioButton JPDig; - private System.Windows.Forms.RadioButton EurDisc; - private System.Windows.Forms.ListView listViewPCKS; - private MetroFramework.Controls.MetroTabControl metroTabControlMain; - private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine; - private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem; - private System.Windows.Forms.Button buttonServerToggle; - private MetroFramework.Controls.MetroTextBox textBoxHost; - private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem; - private System.Windows.Forms.RadioButton USDig; - private System.Windows.Forms.RadioButton EurDig; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/installPS3.cs b/PCK-Studio/Forms/Utilities/installPS3.cs deleted file mode 100644 index b0c1e4b8..00000000 --- a/PCK-Studio/Forms/Utilities/installPS3.cs +++ /dev/null @@ -1,472 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.IO; -using System.Net; -using System.Windows.Forms; -using MetroFramework.Forms; -using PckStudio.Classes.Misc; - -namespace PckStudio.Forms -{ - public partial class installPS3 : MetroForm - { - string loca = ""; - string dlcPath = ""; - string mod = ""; - bool serverOn = false; - string currentpath = ""; - - public installPS3(string mod) - { - InitializeComponent(); - - this.mod = mod; - - if (mod == null) - { - replaceToolStripMenuItem.Visible = false; - } - else - { - replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod); - } - } - - - - //items class for use in bedrock skin conversion - public class pckDir - { - public string folder { get; set; } - public string file { get; set; } - } - - List pcks = new List(); - - private void updateDatabase() - { - pcks.Clear(); - pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" }); - pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" }); - //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" }); - pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" }); - pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" }); - pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" }); - pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" }); - pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" }); - pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" }); - pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" }); - pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" }); - pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" }); - pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" }); - pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" }); - pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" }); - } - - public void buttonMode(string mode) - { - if (mode == "start") - { - buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13); - serverOn = false; - buttonServerToggle.Text = "Start"; - listViewPCKS.Enabled = false; - } - else if (mode == "stop") - { - serverOn = true; - buttonServerToggle.BackColor = Color.Red; - buttonServerToggle.Text = "Stop"; - listViewPCKS.Enabled = true; - } - else if (mode == "loading") - { - buttonServerToggle.BackColor = Color.MediumAquamarine; - buttonServerToggle.Text = "Wait.."; - } - } - - private void loadPcks() - { - - string region = ""; - if (JPDig.Checked) - { - region = "NPJB00549/"; - } - else if (EurDisc.Checked) - { - region = "BLES01976/"; - } - else if (EurDig.Checked) - { - region = "NPEB01899/"; - } - else if (USDisc.Checked) - { - region = "BLUS31426/"; - } - else if (USDig.Checked) - { - region = "NPUB31419/"; - } - - string device = "/dev_hdd0/"; - - if (region != "" && device != "") - { - dlcPath = device + "game/" + region; - buttonServerToggle.Enabled = true; - if (listViewPCKS.Columns.Count == 0) - { - listViewPCKS.Columns.Add(dlcPath, 395); - } - } - } - - private void buttonServerToggle_Click(object sender, EventArgs e) - { - string mode = ""; - if (serverOn == false) - { - //Makes sure user typed in their ip - if (textBoxHost.Text == "") - { - MessageBox.Show("Please enter a valid Playstation®3 IP!"); - return; - } - - //Turns Server On - try - { - buttonMode(mode = "loading"); - - ServicePointManager.Expect100Continue = true; - - //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate); - FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath); - currentpath = textBoxHost.Text + "/" + dlcPath; - request.Method = WebRequestMethods.Ftp.ListDirectory; - request.Credentials = new NetworkCredential("", ""); - request.EnableSsl = false; - request.Timeout = 1200000; - - ServicePoint sp = request.ServicePoint; - Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit); - sp.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - listViewPCKS.Items.Add(line); - Console.WriteLine(line); - line = reader.ReadLine(); - } - } - } - } - - foreach (ListViewItem pck in listViewPCKS.Items) - { - int i = 0; - FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/"); - request2.Method = WebRequestMethods.Ftp.ListDirectory; - request2.Credentials = new NetworkCredential("", ""); - request2.EnableSsl = false; - request2.Timeout = 1200000; - - ServicePoint sp2 = request2.ServicePoint; - Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit); - sp2.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request2.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - i += 1; - pck.Tag = line; - line = reader.ReadLine(); - } - } - } - } - if (i != 1) - { - pck.Remove(); - } - else - { - } - if(pck.Text != ".") - listViewPCKS.Items.Add(pck); - } - - buttonMode(mode = "stop"); - } - catch (Exception disc) - { - buttonMode(mode = "start"); - MessageBox.Show(disc.ToString()); - } - } - else if (serverOn == true) - { - //Turns Server Off - listViewPCKS.Items.Clear(); - try - { - buttonMode(mode = "start"); - } - catch (Exception disc) - { - MessageBox.Show(disc.ToString()); - } - } - } - - private void radioButtonEur_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonUs_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonJap_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void listViewPCKS_Click(object sender, EventArgs e) - { - - } - - private void listViewPCKS_MouseDown(object sender, MouseEventArgs e) - { - ListViewHitTestInfo HI = listViewPCKS.HitTest(e.Location); - if (e.Button == MouseButtons.Right) - { - if (HI.Location == ListViewHitTestLocations.None) - { - } - else - { - contextMenuStripCaffiine.Show(Cursor.Position); - } - } - } - - private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - OpenFileDialog openPCK = new OpenFileDialog(); - - if (openPCK.ShowDialog() == DialogResult.OK) - { - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "")) - client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - MessageBox.Show("PCK Replaced!"); - } - } - buttonMode("stop"); - loadPcks(); - } - - private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e) - { - - } - - private void buttonInstall_Click(object sender, EventArgs e) - { - if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/")) - { - Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"); - } - File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file); - } - loadPcks(); - } - - private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e) - { - Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true); - loadPcks(); - } - - private void buttonServerToggle_Clic(object sender, EventArgs e) - { - - } - - private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e) - { - - } - - - private void replaceToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "")) - client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - MessageBox.Show("PCK Replaced!"); - } - buttonMode("stop"); - loadPcks(); - } - - private void EurDisc_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void EurDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void USDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void USDisc_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void JPDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void installPS3_Load(object sender, EventArgs e) - { - loadPcks(); - } - - private void listViewPCKS_DoubleClick(object sender, EventArgs e) - { - try - { - string folname = listViewPCKS.SelectedItems[0].Text; - if (folname.Contains(".") && folname != "..") - return; - Console.WriteLine("ftp://" + currentpath + listViewPCKS.SelectedItems[0].Text); - listViewPCKS.Items.Clear(); - FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace("//", "/") + folname); - if (folname == "..") - { - string[] tmp = currentpath.Split(new[] { "/" }, StringSplitOptions.None); - Console.WriteLine(tmp[(tmp).Length - 2]); - string foldr = tmp[(tmp).Length - 2]; - request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace(foldr, "").Replace("//", "/")); - } - request.Method = WebRequestMethods.Ftp.ListDirectory; - request.Credentials = new NetworkCredential("", ""); - request.EnableSsl = false; - request.Timeout = 1200000; - - currentpath = currentpath + "/" + folname + "/"; - - ServicePoint sp = request.ServicePoint; - Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit); - sp.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - listViewPCKS.Items.Add(line); - Console.WriteLine(line); - line = reader.ReadLine(); - } - } - } - } - - foreach (ListViewItem pck in listViewPCKS.Items) - { - int i = 0; - FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath); - request2.Method = WebRequestMethods.Ftp.ListDirectory; - request2.Credentials = new NetworkCredential("", ""); - request2.EnableSsl = false; - request2.Timeout = 1200000; - - ServicePoint sp2 = request2.ServicePoint; - Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit); - sp2.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request2.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - i += 1; - pck.Tag = line; - line = reader.ReadLine(); - } - } - } - } - if (i != 1) - { - pck.Remove(); - } - else - { - } - listViewPCKS.Items.Add(pck); - } - } - catch - { - - } - } - } -} diff --git a/PCK-Studio/Forms/Utilities/installVita.Designer.cs b/PCK-Studio/Forms/Utilities/installVita.Designer.cs deleted file mode 100644 index 152822a8..00000000 --- a/PCK-Studio/Forms/Utilities/installVita.Designer.cs +++ /dev/null @@ -1,358 +0,0 @@ - -namespace PckStudio.Forms -{ - partial class installVita - { - - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage(); - this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.EurDig = new System.Windows.Forms.RadioButton(); - this.USDig = new System.Windows.Forms.RadioButton(); - this.buttonServerToggle = new System.Windows.Forms.Button(); - this.textBoxHost = new MetroFramework.Controls.MetroTextBox(); - this.EurDisc = new System.Windows.Forms.RadioButton(); - this.USDisc = new System.Windows.Forms.RadioButton(); - this.listViewPCKS = new System.Windows.Forms.ListView(); - this.JPDig = new System.Windows.Forms.RadioButton(); - this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl(); - this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components); - this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.metroTabPageMain.SuspendLayout(); - this.myTablePanel1.SuspendLayout(); - this.metroTabControlMain.SuspendLayout(); - this.contextMenuStripCaffiine.SuspendLayout(); - this.SuspendLayout(); - // - // metroTabPageMain - // - this.metroTabPageMain.Controls.Add(this.myTablePanel1); - this.metroTabPageMain.HorizontalScrollbarBarColor = true; - this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.HorizontalScrollbarSize = 10; - this.metroTabPageMain.Location = new System.Drawing.Point(4, 38); - this.metroTabPageMain.Name = "metroTabPageMain"; - this.metroTabPageMain.Size = new System.Drawing.Size(427, 537); - this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTabPageMain.TabIndex = 0; - this.metroTabPageMain.Text = "Installer"; - this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabPageMain.VerticalScrollbarBarColor = true; - this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.VerticalScrollbarSize = 10; - // - // myTablePanel1 - // - this.myTablePanel1.BackColor = System.Drawing.Color.Transparent; - this.myTablePanel1.ColumnCount = 3; - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); - this.myTablePanel1.Controls.Add(this.EurDig, 1, 1); - this.myTablePanel1.Controls.Add(this.USDig, 2, 1); - this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0); - this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0); - this.myTablePanel1.Controls.Add(this.EurDisc, 1, 2); - this.myTablePanel1.Controls.Add(this.USDisc, 2, 2); - this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 3); - this.myTablePanel1.Controls.Add(this.JPDig, 0, 1); - this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.myTablePanel1.Location = new System.Drawing.Point(0, 0); - this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0); - this.myTablePanel1.Name = "myTablePanel1"; - this.myTablePanel1.RowCount = 7; - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.myTablePanel1.Size = new System.Drawing.Size(427, 537); - this.myTablePanel1.TabIndex = 2; - // - // EurDig - // - this.EurDig.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDig.AutoSize = true; - this.EurDig.BackColor = System.Drawing.Color.Transparent; - this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDig.ForeColor = System.Drawing.Color.White; - this.EurDig.Location = new System.Drawing.Point(145, 36); - this.EurDig.Name = "EurDig"; - this.EurDig.Size = new System.Drawing.Size(100, 30); - this.EurDig.TabIndex = 11; - this.EurDig.Text = "EUR Digital"; - this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDig.UseVisualStyleBackColor = false; - this.EurDig.CheckedChanged += new System.EventHandler(this.EurDig_CheckedChanged); - // - // USDig - // - this.USDig.Appearance = System.Windows.Forms.Appearance.Button; - this.USDig.AutoSize = true; - this.USDig.BackColor = System.Drawing.Color.Transparent; - this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDig.ForeColor = System.Drawing.Color.White; - this.USDig.Location = new System.Drawing.Point(287, 36); - this.USDig.Name = "USDig"; - this.USDig.Size = new System.Drawing.Size(91, 30); - this.USDig.TabIndex = 12; - this.USDig.Text = "US Digital"; - this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDig.UseVisualStyleBackColor = false; - this.USDig.CheckedChanged += new System.EventHandler(this.USDig_CheckedChanged); - // - // buttonServerToggle - // - this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13))))); - this.buttonServerToggle.FlatAppearance.BorderSize = 0; - this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.buttonServerToggle.ForeColor = System.Drawing.Color.White; - this.buttonServerToggle.Location = new System.Drawing.Point(287, 3); - this.buttonServerToggle.Name = "buttonServerToggle"; - this.buttonServerToggle.Size = new System.Drawing.Size(137, 27); - this.buttonServerToggle.TabIndex = 9; - this.buttonServerToggle.Text = "Start"; - this.buttonServerToggle.UseVisualStyleBackColor = false; - this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click); - // - // textBoxHost - // - this.textBoxHost.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2); - // - // - // - this.textBoxHost.CustomButton.Image = null; - this.textBoxHost.CustomButton.Location = new System.Drawing.Point(260, 2); - this.textBoxHost.CustomButton.Name = ""; - this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15); - this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.CustomButton.TabIndex = 1; - this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.textBoxHost.CustomButton.UseSelectable = true; - this.textBoxHost.CustomButton.Visible = false; - this.textBoxHost.IconRight = true; - this.textBoxHost.Lines = new string[0]; - this.textBoxHost.Location = new System.Drawing.Point(3, 6); - this.textBoxHost.MaxLength = 32767; - this.textBoxHost.Name = "textBoxHost"; - this.textBoxHost.PasswordChar = '\0'; - this.textBoxHost.PromptText = "PS Vita IP"; - this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.textBoxHost.SelectedText = ""; - this.textBoxHost.SelectionLength = 0; - this.textBoxHost.SelectionStart = 0; - this.textBoxHost.ShortcutsEnabled = true; - this.textBoxHost.Size = new System.Drawing.Size(278, 20); - this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.TabIndex = 10; - this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark; - this.textBoxHost.UseSelectable = true; - this.textBoxHost.WaterMark = "PS Vita IP"; - this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // EurDisc - // - this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.EurDisc.AutoSize = true; - this.EurDisc.BackColor = System.Drawing.Color.Transparent; - this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.EurDisc.ForeColor = System.Drawing.Color.White; - this.EurDisc.Location = new System.Drawing.Point(145, 72); - this.EurDisc.Name = "EurDisc"; - this.EurDisc.Size = new System.Drawing.Size(84, 30); - this.EurDisc.TabIndex = 0; - this.EurDisc.Text = "EUR Disc"; - this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.EurDisc.UseVisualStyleBackColor = false; - this.EurDisc.CheckedChanged += new System.EventHandler(this.EurDisc_CheckedChanged); - // - // USDisc - // - this.USDisc.Appearance = System.Windows.Forms.Appearance.Button; - this.USDisc.AutoSize = true; - this.USDisc.BackColor = System.Drawing.Color.Transparent; - this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.USDisc.ForeColor = System.Drawing.Color.White; - this.USDisc.Location = new System.Drawing.Point(287, 72); - this.USDisc.Name = "USDisc"; - this.USDisc.Size = new System.Drawing.Size(75, 30); - this.USDisc.TabIndex = 2; - this.USDisc.Text = "US Disc"; - this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.USDisc.UseVisualStyleBackColor = false; - this.USDisc.CheckedChanged += new System.EventHandler(this.USDisc_CheckedChanged); - // - // listViewPCKS - // - this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick; - this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3); - this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill; - this.listViewPCKS.Enabled = false; - this.listViewPCKS.HideSelection = false; - this.listViewPCKS.Location = new System.Drawing.Point(3, 108); - this.listViewPCKS.Name = "listViewPCKS"; - this.listViewPCKS.Size = new System.Drawing.Size(421, 426); - this.listViewPCKS.TabIndex = 3; - this.listViewPCKS.UseCompatibleStateImageBehavior = false; - this.listViewPCKS.View = System.Windows.Forms.View.Details; - this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged); - this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click); - this.listViewPCKS.DoubleClick += new System.EventHandler(this.listViewPCKS_DoubleClick); - this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown); - // - // JPDig - // - this.JPDig.Appearance = System.Windows.Forms.Appearance.Button; - this.JPDig.AutoSize = true; - this.JPDig.BackColor = System.Drawing.Color.Transparent; - this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight; - this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.JPDig.ForeColor = System.Drawing.Color.White; - this.JPDig.Location = new System.Drawing.Point(3, 36); - this.JPDig.Name = "JPDig"; - this.JPDig.Size = new System.Drawing.Size(47, 30); - this.JPDig.TabIndex = 1; - this.JPDig.Text = "JAP"; - this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.JPDig.UseVisualStyleBackColor = false; - this.JPDig.CheckedChanged += new System.EventHandler(this.JPDig_CheckedChanged); - // - // metroTabControlMain - // - this.metroTabControlMain.Controls.Add(this.metroTabPageMain); - this.metroTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill; - this.metroTabControlMain.Location = new System.Drawing.Point(20, 60); - this.metroTabControlMain.Name = "metroTabControlMain"; - this.metroTabControlMain.SelectedIndex = 0; - this.metroTabControlMain.Size = new System.Drawing.Size(435, 579); - this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White; - this.metroTabControlMain.TabIndex = 0; - this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabControlMain.UseSelectable = true; - // - // contextMenuStripCaffiine - // - this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.replaceToolStripMenuItem, - this.replacePCKToolStripMenuItem}); - this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine"; - this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48); - this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening); - // - // replaceToolStripMenuItem - // - this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; - this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22); - this.replaceToolStripMenuItem.Text = "Replace"; - this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage; - this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); - // - // replacePCKToolStripMenuItem - // - this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem"; - this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22); - this.replacePCKToolStripMenuItem.Text = "Replace with external PCK"; - this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click); - // - // installVita - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle; - this.ClientSize = new System.Drawing.Size(475, 659); - this.Controls.Add(this.metroTabControlMain); - this.MaximizeBox = false; - this.Name = "installVita"; - this.Resizable = false; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.SystemShadow; - this.Style = MetroFramework.MetroColorStyle.White; - this.Text = "Install to Playstation®Vita"; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.Load += new System.EventHandler(this.installVita_Load); - this.metroTabPageMain.ResumeLayout(false); - this.myTablePanel1.ResumeLayout(false); - this.myTablePanel1.PerformLayout(); - this.metroTabControlMain.ResumeLayout(false); - this.contextMenuStripCaffiine.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private MetroFramework.Controls.MetroTabPage metroTabPageMain; - private System.Windows.Forms.TableLayoutPanel myTablePanel1; - private System.Windows.Forms.RadioButton USDisc; - private System.Windows.Forms.RadioButton JPDig; - private System.Windows.Forms.RadioButton EurDisc; - private System.Windows.Forms.ListView listViewPCKS; - private MetroFramework.Controls.MetroTabControl metroTabControlMain; - private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine; - private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem; - private System.Windows.Forms.Button buttonServerToggle; - private MetroFramework.Controls.MetroTextBox textBoxHost; - private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem; - private System.Windows.Forms.RadioButton USDig; - private System.Windows.Forms.RadioButton EurDig; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/installVita.cs b/PCK-Studio/Forms/Utilities/installVita.cs deleted file mode 100644 index 25203963..00000000 --- a/PCK-Studio/Forms/Utilities/installVita.cs +++ /dev/null @@ -1,472 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.IO; -using System.Net; -using System.Windows.Forms; -using MetroFramework.Forms; -using PckStudio.Classes.Misc; - -namespace PckStudio.Forms -{ - public partial class installVita : MetroForm - { - public installVita(string mod) - { - InitializeComponent(); - - this.mod = mod; - - if (mod == null) - { - replaceToolStripMenuItem.Visible = false; - } - else - { - replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod); - } - } - - string loca = ""; - string dlcPath = ""; - string mod = ""; - bool serverOn = false; - string currentpath = ""; - - - - - //items class for use in bedrock skin conversion - public class pckDir - { - public string folder { get; set; } - public string file { get; set; } - } - - List pcks = new List(); - - private void updateDatabase() - { - pcks.Clear(); - pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" }); - pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" }); - //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" }); - pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" }); - pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" }); - pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" }); - pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" }); - pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" }); - pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" }); - pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" }); - pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" }); - pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" }); - pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" }); - pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" }); - pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" }); - } - - public void buttonMode(string mode) - { - if (mode == "start") - { - buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13); - serverOn = false; - buttonServerToggle.Text = "Start"; - listViewPCKS.Enabled = false; - } - else if (mode == "stop") - { - serverOn = true; - buttonServerToggle.BackColor = Color.Red; - buttonServerToggle.Text = "Stop"; - listViewPCKS.Enabled = true; - } - else if (mode == "loading") - { - buttonServerToggle.BackColor = Color.MediumAquamarine; - buttonServerToggle.Text = "Wait.."; - } - } - - private void loadPcks() - { - - string region = ""; - if (JPDig.Checked) - { - region = "NPJB00549/"; - } - else if (EurDisc.Checked) - { - region = "BLES01976/"; - } - else if (EurDig.Checked) - { - region = "NPEB01899/"; - } - else if (USDisc.Checked) - { - region = "BLUS31426/"; - } - else if (USDig.Checked) - { - region = "NPUB31419/"; - } - - string device = "/dev_hdd0/"; - - if (region != "" && device != "") - { - dlcPath = device + "game/" + region; - buttonServerToggle.Enabled = true; - if (listViewPCKS.Columns.Count == 0) - { - listViewPCKS.Columns.Add(dlcPath, 395); - } - } - } - - private void buttonServerToggle_Click(object sender, EventArgs e) - { - if (serverOn == false) - { - //Makes sure user typed in their ip - if (textBoxHost.Text == "") - { - MessageBox.Show("Please enter a valid Playstation®3 IP!"); - return; - } - - //Turns Server On - try - { - buttonMode("loading"); - - ServicePointManager.Expect100Continue = true; - - //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate); - FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath); - currentpath = textBoxHost.Text + "/" + dlcPath; - request.Method = WebRequestMethods.Ftp.ListDirectory; - request.Credentials = new NetworkCredential("", ""); - request.EnableSsl = false; - request.Timeout = 1200000; - - ServicePoint sp = request.ServicePoint; - Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit); - sp.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - listViewPCKS.Items.Add(line); - Console.WriteLine(line); - line = reader.ReadLine(); - } - } - } - } - - foreach (ListViewItem pck in listViewPCKS.Items) - { - int i = 0; - FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/"); - request2.Method = WebRequestMethods.Ftp.ListDirectory; - request2.Credentials = new NetworkCredential("", ""); - request2.EnableSsl = false; - request2.Timeout = 1200000; - - ServicePoint sp2 = request2.ServicePoint; - Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit); - sp2.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request2.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - i += 1; - pck.Tag = line; - line = reader.ReadLine(); - } - } - } - } - if (i != 1) - { - pck.Remove(); - } - else - { - } - if (pck.Text != ".") - listViewPCKS.Items.Add(pck); - } - - buttonMode("stop"); - } - catch (Exception disc) - { - buttonMode("start"); - MessageBox.Show(disc.ToString()); - } - } - else if (serverOn == true) - { - //Turns Server Off - listViewPCKS.Items.Clear(); - try - { - buttonMode("start"); - } - catch (Exception disc) - { - MessageBox.Show(disc.ToString()); - } - } - } - - private void radioButtonEur_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonUs_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonJap_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void listViewPCKS_Click(object sender, EventArgs e) - { - - } - - private void listViewPCKS_MouseDown(object sender, MouseEventArgs e) - { - ListViewHitTestInfo HI = listViewPCKS.HitTest(e.Location); - if (e.Button == MouseButtons.Right) - { - if (HI.Location == ListViewHitTestLocations.None) - { - } - else - { - contextMenuStripCaffiine.Show(Cursor.Position); - } - } - } - - private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - OpenFileDialog openPCK = new OpenFileDialog(); - - if (openPCK.ShowDialog() == DialogResult.OK) - { - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "")) - client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - MessageBox.Show("PCK Replaced!"); - } - } - buttonMode("stop"); - loadPcks(); - } - - private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e) - { - - } - - private void buttonInstall_Click(object sender, EventArgs e) - { - if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/")) - { - Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"); - } - File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file); - } - loadPcks(); - } - - private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e) - { - Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true); - loadPcks(); - } - - private void buttonServerToggle_Clic(object sender, EventArgs e) - { - - } - - private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e) - { - - } - - - private void replaceToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "")) - client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - MessageBox.Show("PCK Replaced!"); - } - buttonMode("stop"); - loadPcks(); - } - - private void EurDisc_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void EurDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void USDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void USDisc_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void JPDig_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void installVita_Load(object sender, EventArgs e) - { - loadPcks(); - } - - private void listViewPCKS_DoubleClick(object sender, EventArgs e) - { - try - { - string folname = listViewPCKS.SelectedItems[0].Text; - if (folname.Contains(".") && folname != "..") - return; - Console.WriteLine("ftp://" + currentpath + listViewPCKS.SelectedItems[0].Text); - listViewPCKS.Items.Clear(); - FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace("//", "/") + folname); - if (folname == "..") - { - string[] tmp = currentpath.Split(new[] { "/" }, StringSplitOptions.None); - Console.WriteLine(tmp[(tmp).Length - 2]); - string foldr = tmp[(tmp).Length - 2]; - request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace(foldr, "").Replace("//", "/")); - } - request.Method = WebRequestMethods.Ftp.ListDirectory; - request.Credentials = new NetworkCredential("", ""); - request.EnableSsl = false; - request.Timeout = 1200000; - - currentpath = currentpath + "/" + folname + "/"; - - ServicePoint sp = request.ServicePoint; - Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit); - sp.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - listViewPCKS.Items.Add(line); - Console.WriteLine(line); - line = reader.ReadLine(); - } - } - } - } - - foreach (ListViewItem pck in listViewPCKS.Items) - { - int i = 0; - FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath); - request2.Method = WebRequestMethods.Ftp.ListDirectory; - request2.Credentials = new NetworkCredential("", ""); - request2.EnableSsl = false; - request2.Timeout = 1200000; - - ServicePoint sp2 = request2.ServicePoint; - Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit); - sp2.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request2.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - i += 1; - pck.Tag = line; - line = reader.ReadLine(); - } - } - } - } - if (i != 1) - { - pck.Remove(); - } - else - { - } - listViewPCKS.Items.Add(pck); - } - } - catch - { - - } - } - } -} diff --git a/PCK-Studio/Forms/Utilities/installVita.resx b/PCK-Studio/Forms/Utilities/installVita.resx deleted file mode 100644 index 8a3a7dc8..00000000 --- a/PCK-Studio/Forms/Utilities/installVita.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs b/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs deleted file mode 100644 index 4d00f7a1..00000000 --- a/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs +++ /dev/null @@ -1,350 +0,0 @@ -namespace PckStudio.Forms -{ - partial class installWiiU - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(installWiiU)); - this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage(); - this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.buttonServerToggle = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.radioButtonSystem = new System.Windows.Forms.RadioButton(); - this.buttonSelect = new System.Windows.Forms.Button(); - this.radioButtonUSB = new System.Windows.Forms.RadioButton(); - this.textBoxHost = new MetroFramework.Controls.MetroTextBox(); - this.radioButtonEur = new System.Windows.Forms.RadioButton(); - this.radioButtonUs = new System.Windows.Forms.RadioButton(); - this.radioButtonJap = new System.Windows.Forms.RadioButton(); - this.listViewPCKS = new System.Windows.Forms.ListView(); - this.TextBoxPackImage = new MetroFramework.Controls.MetroTextBox(); - this.PackImageSelection = new System.Windows.Forms.Button(); - this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl(); - this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components); - this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.metroTabPageMain.SuspendLayout(); - this.myTablePanel1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.metroTabControlMain.SuspendLayout(); - this.contextMenuStripCaffiine.SuspendLayout(); - this.SuspendLayout(); - // - // metroTabPageMain - // - this.metroTabPageMain.Controls.Add(this.myTablePanel1); - this.metroTabPageMain.HorizontalScrollbarBarColor = true; - this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.HorizontalScrollbarSize = 10; - resources.ApplyResources(this.metroTabPageMain, "metroTabPageMain"); - this.metroTabPageMain.Name = "metroTabPageMain"; - this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabPageMain.VerticalScrollbarBarColor = true; - this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false; - this.metroTabPageMain.VerticalScrollbarSize = 10; - // - // myTablePanel1 - // - this.myTablePanel1.BackColor = System.Drawing.Color.Transparent; - resources.ApplyResources(this.myTablePanel1, "myTablePanel1"); - this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0); - this.myTablePanel1.Controls.Add(this.panel1, 0, 2); - this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0); - this.myTablePanel1.Controls.Add(this.radioButtonEur, 0, 3); - this.myTablePanel1.Controls.Add(this.radioButtonUs, 1, 3); - this.myTablePanel1.Controls.Add(this.radioButtonJap, 2, 3); - this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4); - this.myTablePanel1.Controls.Add(this.TextBoxPackImage, 0, 1); - this.myTablePanel1.Controls.Add(this.PackImageSelection, 2, 1); - this.myTablePanel1.Name = "myTablePanel1"; - // - // buttonServerToggle - // - resources.ApplyResources(this.buttonServerToggle, "buttonServerToggle"); - this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13))))); - this.buttonServerToggle.FlatAppearance.BorderSize = 0; - this.buttonServerToggle.ForeColor = System.Drawing.Color.White; - this.buttonServerToggle.Name = "buttonServerToggle"; - this.buttonServerToggle.UseVisualStyleBackColor = false; - this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click); - // - // panel1 - // - this.myTablePanel1.SetColumnSpan(this.panel1, 3); - this.panel1.Controls.Add(this.radioButtonSystem); - this.panel1.Controls.Add(this.buttonSelect); - this.panel1.Controls.Add(this.radioButtonUSB); - resources.ApplyResources(this.panel1, "panel1"); - this.panel1.Name = "panel1"; - // - // radioButtonSystem - // - resources.ApplyResources(this.radioButtonSystem, "radioButtonSystem"); - this.radioButtonSystem.BackColor = System.Drawing.Color.Transparent; - this.radioButtonSystem.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.radioButtonSystem.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.radioButtonSystem.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.radioButtonSystem.ForeColor = System.Drawing.Color.White; - this.radioButtonSystem.Name = "radioButtonSystem"; - this.radioButtonSystem.TabStop = true; - this.radioButtonSystem.UseVisualStyleBackColor = false; - this.radioButtonSystem.CheckedChanged += new System.EventHandler(this.radioButtonSystem_CheckedChanged); - // - // buttonSelect - // - resources.ApplyResources(this.buttonSelect, "buttonSelect"); - this.buttonSelect.ForeColor = System.Drawing.Color.White; - this.buttonSelect.Name = "buttonSelect"; - this.buttonSelect.UseVisualStyleBackColor = true; - this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click); - // - // radioButtonUSB - // - resources.ApplyResources(this.radioButtonUSB, "radioButtonUSB"); - this.radioButtonUSB.BackColor = System.Drawing.Color.Transparent; - this.radioButtonUSB.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.radioButtonUSB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.radioButtonUSB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.radioButtonUSB.ForeColor = System.Drawing.Color.White; - this.radioButtonUSB.Name = "radioButtonUSB"; - this.radioButtonUSB.TabStop = true; - this.radioButtonUSB.UseVisualStyleBackColor = false; - this.radioButtonUSB.CheckedChanged += new System.EventHandler(this.radioButtonUSB_CheckedChanged); - // - // textBoxHost - // - resources.ApplyResources(this.textBoxHost, "textBoxHost"); - this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2); - // - // - // - this.textBoxHost.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.textBoxHost.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.textBoxHost.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.textBoxHost.CustomButton.Name = ""; - this.textBoxHost.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.textBoxHost.CustomButton.UseSelectable = true; - this.textBoxHost.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.textBoxHost.IconRight = true; - this.textBoxHost.Lines = new string[0]; - this.textBoxHost.MaxLength = 32767; - this.textBoxHost.Name = "textBoxHost"; - this.textBoxHost.PasswordChar = '\0'; - this.textBoxHost.PromptText = "Wii U IP"; - this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.textBoxHost.SelectedText = ""; - this.textBoxHost.SelectionLength = 0; - this.textBoxHost.SelectionStart = 0; - this.textBoxHost.ShortcutsEnabled = true; - this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue; - this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark; - this.textBoxHost.UseSelectable = true; - this.textBoxHost.WaterMark = "Wii U IP"; - this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // radioButtonEur - // - resources.ApplyResources(this.radioButtonEur, "radioButtonEur"); - this.radioButtonEur.BackColor = System.Drawing.Color.Transparent; - this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.radioButtonEur.ForeColor = System.Drawing.Color.White; - this.radioButtonEur.Name = "radioButtonEur"; - this.radioButtonEur.TabStop = true; - this.radioButtonEur.UseVisualStyleBackColor = false; - this.radioButtonEur.Click += new System.EventHandler(this.radioButtonEur_Click); - // - // radioButtonUs - // - resources.ApplyResources(this.radioButtonUs, "radioButtonUs"); - this.radioButtonUs.BackColor = System.Drawing.Color.Transparent; - this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.radioButtonUs.ForeColor = System.Drawing.Color.White; - this.radioButtonUs.Name = "radioButtonUs"; - this.radioButtonUs.TabStop = true; - this.radioButtonUs.UseVisualStyleBackColor = false; - this.radioButtonUs.Click += new System.EventHandler(this.radioButtonUs_Click); - // - // radioButtonJap - // - resources.ApplyResources(this.radioButtonJap, "radioButtonJap"); - this.radioButtonJap.BackColor = System.Drawing.Color.Transparent; - this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal; - this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua; - this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.radioButtonJap.ForeColor = System.Drawing.Color.White; - this.radioButtonJap.Name = "radioButtonJap"; - this.radioButtonJap.TabStop = true; - this.radioButtonJap.UseVisualStyleBackColor = false; - this.radioButtonJap.Click += new System.EventHandler(this.radioButtonJap_Click); - // - // listViewPCKS - // - this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick; - this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3); - resources.ApplyResources(this.listViewPCKS, "listViewPCKS"); - this.listViewPCKS.HideSelection = false; - this.listViewPCKS.Name = "listViewPCKS"; - this.listViewPCKS.UseCompatibleStateImageBehavior = false; - this.listViewPCKS.View = System.Windows.Forms.View.Details; - this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged); - this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click); - this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown); - // - // TextBoxPackImage - // - resources.ApplyResources(this.TextBoxPackImage, "TextBoxPackImage"); - this.TextBoxPackImage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.myTablePanel1.SetColumnSpan(this.TextBoxPackImage, 2); - // - // - // - this.TextBoxPackImage.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); - this.TextBoxPackImage.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); - this.TextBoxPackImage.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); - this.TextBoxPackImage.CustomButton.Name = ""; - this.TextBoxPackImage.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); - this.TextBoxPackImage.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.TextBoxPackImage.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); - this.TextBoxPackImage.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.TextBoxPackImage.CustomButton.UseSelectable = true; - this.TextBoxPackImage.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); - this.TextBoxPackImage.IconRight = true; - this.TextBoxPackImage.Lines = new string[0]; - this.TextBoxPackImage.MaxLength = 32767; - this.TextBoxPackImage.Name = "TextBoxPackImage"; - this.TextBoxPackImage.PasswordChar = '\0'; - this.TextBoxPackImage.PromptText = "Pack Image"; - this.TextBoxPackImage.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.TextBoxPackImage.SelectedText = ""; - this.TextBoxPackImage.SelectionLength = 0; - this.TextBoxPackImage.SelectionStart = 0; - this.TextBoxPackImage.ShortcutsEnabled = true; - this.TextBoxPackImage.Style = MetroFramework.MetroColorStyle.Blue; - this.TextBoxPackImage.Theme = MetroFramework.MetroThemeStyle.Dark; - this.TextBoxPackImage.UseSelectable = true; - this.TextBoxPackImage.WaterMark = "Pack Image"; - this.TextBoxPackImage.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.TextBoxPackImage.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // PackImageSelection - // - resources.ApplyResources(this.PackImageSelection, "PackImageSelection"); - this.PackImageSelection.BackColor = System.Drawing.Color.Sienna; - this.PackImageSelection.FlatAppearance.BorderSize = 0; - this.PackImageSelection.ForeColor = System.Drawing.Color.White; - this.PackImageSelection.Name = "PackImageSelection"; - this.PackImageSelection.UseVisualStyleBackColor = false; - this.PackImageSelection.Click += new System.EventHandler(this.PackImageSelection_Click); - // - // metroTabControlMain - // - this.metroTabControlMain.Controls.Add(this.metroTabPageMain); - resources.ApplyResources(this.metroTabControlMain, "metroTabControlMain"); - this.metroTabControlMain.Name = "metroTabControlMain"; - this.metroTabControlMain.SelectedIndex = 0; - this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White; - this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabControlMain.UseSelectable = true; - // - // contextMenuStripCaffiine - // - this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.replaceToolStripMenuItem, - this.replacePCKToolStripMenuItem}); - this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine"; - resources.ApplyResources(this.contextMenuStripCaffiine, "contextMenuStripCaffiine"); - this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening); - // - // replaceToolStripMenuItem - // - this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; - resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem"); - this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); - // - // replacePCKToolStripMenuItem - // - this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; - this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem"; - resources.ApplyResources(this.replacePCKToolStripMenuItem, "replacePCKToolStripMenuItem"); - this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click); - // - // installWiiU - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle; - this.Controls.Add(this.metroTabControlMain); - this.MaximizeBox = false; - this.Name = "installWiiU"; - this.Resizable = false; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.SystemShadow; - this.Style = MetroFramework.MetroColorStyle.White; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabPageMain.ResumeLayout(false); - this.myTablePanel1.ResumeLayout(false); - this.myTablePanel1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.metroTabControlMain.ResumeLayout(false); - this.contextMenuStripCaffiine.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private MetroFramework.Controls.MetroTabPage metroTabPageMain; - private System.Windows.Forms.TableLayoutPanel myTablePanel1; - private System.Windows.Forms.RadioButton radioButtonJap; - private System.Windows.Forms.RadioButton radioButtonEur; - private System.Windows.Forms.RadioButton radioButtonUs; - private System.Windows.Forms.ListView listViewPCKS; - private MetroFramework.Controls.MetroTabControl metroTabControlMain; - private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine; - private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.RadioButton radioButtonSystem; - private System.Windows.Forms.Button buttonSelect; - private System.Windows.Forms.RadioButton radioButtonUSB; - private System.Windows.Forms.Button buttonServerToggle; - private MetroFramework.Controls.MetroTextBox textBoxHost; - private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem; - private MetroFramework.Controls.MetroTextBox TextBoxPackImage; - private System.Windows.Forms.Button PackImageSelection; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Utilities/installWiiU.cs b/PCK-Studio/Forms/Utilities/installWiiU.cs deleted file mode 100644 index 77e9d786..00000000 --- a/PCK-Studio/Forms/Utilities/installWiiU.cs +++ /dev/null @@ -1,486 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.IO; -using System.IO.Compression; -using System.Net; -using System.Windows.Forms; -using System.Diagnostics; - -using PckStudio.Classes.FileTypes; -using PckStudio.Classes.IO.PCK; -using PckStudio.Classes.Misc; -using OMI.Formats.Archive; -using OMI.Workers.Archive; -using OMI.Workers.Pck; -using OMI.Formats.Pck; - -namespace PckStudio.Forms -{ - public partial class installWiiU : MetroFramework.Forms.MetroForm - { - string loca = ""; - string dlcPath = ""; - string mod = ""; - bool serverOn = false; - ConsoleArchive archive = new ConsoleArchive(); - - public installWiiU(string mod) - { - InitializeComponent(); - - this.mod = mod; - - if (mod == null) - { - replaceToolStripMenuItem.Visible = false; - } - else - { - replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod); - } - } - - //items class for use in bedrock skin conversion - public class pckDir - { - public string folder { get; set; } - public string file { get; set; } - } - - private void buttonSelect_Click(object sender, EventArgs e) - { - FolderBrowserDialog sdFind = new FolderBrowserDialog(); - if (sdFind.ShowDialog() == DialogResult.OK) - { - try - { - string sdRoot = Directory.GetDirectoryRoot(sdFind.SelectedPath); - - if (!Directory.Exists(sdRoot + "/wiiu/apps/")) - { - Directory.CreateDirectory(sdRoot + "/wiiu/apps/"); - } - - using (WebClient client = new WebClient()) - { - try - { - // File.WriteAllBytes(sdRoot + "/wiiu/apps/apps.zip", PckStudio.Properties.Resources.apps); - } - catch - { - MessageBox.Show("Could not extract resources to:\n" + sdRoot + "/wiiu/apps/apps.zip"); - return; - } - } - - string zipPath = sdRoot + "/wiiu/apps/apps.zip"; - string extractPath = sdRoot + "/wiiu/apps/temp"; - ZipFile.ExtractToDirectory(zipPath, extractPath); - - if (!Directory.Exists(sdRoot + "/wiiu/apps/ftpiiu_everywhere")) - { - Directory.Move(sdRoot + "/wiiu/apps/temp/ftpiiu_everywhere", sdRoot + "/wiiu/apps/ftpiiu_everywhere"); - } - if (!Directory.Exists(sdRoot + "/wiiu/apps/homebrew_launcher")) - { - Directory.Move(sdRoot + "/wiiu/apps/temp/homebrew_launcher", sdRoot + "/wiiu/apps/homebrew_launcher"); - } - if (!Directory.Exists(sdRoot + "/wiiu/apps/mocha_fshax")) - { - Directory.Move(sdRoot + "/wiiu/apps/temp/mocha_fshax", sdRoot + "/wiiu/apps/mocha_fshax"); - } - if (!File.Exists(sdRoot + "/wiiu/apps/sign_c2w_patcher.elf")) - { - File.Move(sdRoot + "/wiiu/apps/temp/sign_c2w_patcher.elf", sdRoot + "/wiiu/apps/sign_c2w_patcher.elf"); - } - - File.Delete(sdRoot + "/wiiu/apps/apps.zip"); - Directory.Delete(sdRoot + "/wiiu/apps/temp/", true); - } - catch (Exception er) - { - MessageBox.Show(er.ToString()); - } - MessageBox.Show("Done"); - } - } - List pcks = new List(); - PckFile currentPCK = null; - - private void updateDatabase() - { - pcks.Clear(); - pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" }); - pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" }); - pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" }); - //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" }); - pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" }); - pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" }); - pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" }); - pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" }); - pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" }); - pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" }); - pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" }); - pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" }); - pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" }); - pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" }); - pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" }); - pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" }); - pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" }); - pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" }); - pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" }); - } - - public void buttonMode(string mode) - { - if (mode == "start") - { - buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13); - serverOn = false; - buttonServerToggle.Text = "Start"; - listViewPCKS.Enabled = false; - } - else if (mode == "stop") - { - serverOn = true; - buttonServerToggle.BackColor = Color.Red; - buttonServerToggle.Text = "Stop"; - listViewPCKS.Enabled = true; - } - else if (mode == "loading") - { - buttonServerToggle.BackColor = Color.MediumAquamarine; - buttonServerToggle.Text = "Wait.."; - } - } - - private void loadPcks() - { - string region = ""; - if (radioButtonEur.Checked) - { - region = "101d7500"; - } - else if (radioButtonUs.Checked) - { - region = "101d9d00"; - } - else if (radioButtonJap.Checked) - { - region = "101dbe00"; - } - - string device = ""; - if (radioButtonSystem.Checked) - { - device = "storage_mlc"; - } - else if (radioButtonUSB.Checked) - { - device = "storage_usb"; - } - - if (region != "" && device != "") - { - dlcPath = device + "/usr/title/0005000e/" + region + "/content/WiiU/DLC/"; - buttonServerToggle.Enabled = true; - if (listViewPCKS.Columns.Count == 0) - { - listViewPCKS.Columns.Add(dlcPath, 395); - } - } - } - - private void buttonServerToggle_Click(object sender, EventArgs e) - { - if (serverOn == false) - { - //Makes sure user typed in their ip - if (textBoxHost.Text == "") - { - MessageBox.Show("Please enter a valid Wii U IP!"); - return; - } - - //Turns Server On - try - { - buttonMode("loading"); - - ServicePointManager.Expect100Continue = true; - - //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate); - FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath); - request.Method = WebRequestMethods.Ftp.ListDirectory; - request.Credentials = new NetworkCredential("", "a3262443"); - request.EnableSsl = false; - request.Timeout = 1200000; - - ServicePoint sp = request.ServicePoint; - Debug.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit); - sp.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - listViewPCKS.Items.Add(line); - line = reader.ReadLine(); - } - } - } - } - - foreach (ListViewItem pck in listViewPCKS.Items) - { - int i = 0; - FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/" + pck.Text + "/"); - request2.Method = WebRequestMethods.Ftp.ListDirectory; - request2.Credentials = new NetworkCredential("", "a3262443"); - request2.EnableSsl = false; - request2.Timeout = 1200000; - - ServicePoint sp2 = request2.ServicePoint; - Console.WriteLine("NOBLEDEZ//PHOENIXARC WAS HERE", sp2.ConnectionLimit); - sp2.ConnectionLimit = 1; - - using (var response = (FtpWebResponse)request2.GetResponse()) - { - using (var stream = response.GetResponseStream()) - { - using (var reader = new StreamReader(stream, true)) - { - string line = reader.ReadLine(); - while (line != null) - { - i += 1; - pck.Tag = line; - line = reader.ReadLine(); - } - } - } - } - if (i != 1) - { - pck.Remove(); - } - } - - buttonMode("stop"); - } - catch (Exception disc) - { - buttonMode("start"); - MessageBox.Show(disc.ToString()); - } - } - else if (serverOn == true) - { - //Turns Server Off - listViewPCKS.Items.Clear(); - try - { - buttonMode("start"); - } - catch (Exception disc) - { - MessageBox.Show(disc.ToString()); - } - } - } - - private void radioButtonEur_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonUs_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonJap_Click(object sender, EventArgs e) - { - loadPcks(); - } - - private void listViewPCKS_Click(object sender, EventArgs e) - { - - } - - private void listViewPCKS_MouseDown(object sender, MouseEventArgs e) - { - ListViewHitTestInfo hitTestInfo = listViewPCKS.HitTest(e.Location); - if (e.Button == MouseButtons.Right) - { - if (hitTestInfo.Location == ListViewHitTestLocations.None) - { - } - else - { - contextMenuStripCaffiine.Show(Cursor.Position); - } - } - } - - private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - OpenFileDialog openPCK = new OpenFileDialog(); - - openPCK.Filter = "PCK File|*.pck"; - - if (openPCK.ShowDialog() == DialogResult.OK) - { - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443")) - client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - if(TextBoxPackImage.Text != "") - { - string PackID = GetPackID(openPCK.FileName); - GetARCFromConsole(); - ReplacePackImage(PackID); - SendARCToConsole(); - } - MessageBox.Show("PCK Replaced!"); - } - } - buttonMode("stop"); - loadPcks(); - } - - private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e) - { - - } - - private void buttonInstall_Click(object sender, EventArgs e) - { - if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/")) - { - Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"); - } - File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file); - } - loadPcks(); - } - - private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e) - { - Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true); - loadPcks(); - } - - private void buttonServerToggle_Clic(object sender, EventArgs e) - { - - } - - private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e) - { - - } - - private void radioButtonSystem_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void radioButtonUSB_CheckedChanged(object sender, EventArgs e) - { - loadPcks(); - } - - private void replaceToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listViewPCKS.SelectedItems.Count != 0) - { - buttonMode("loading"); - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443")) - client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString()); - if (TextBoxPackImage.Text != "") - { - string PackID = GetPackID(mod); - GetARCFromConsole(); - ReplacePackImage(PackID); - SendARCToConsole(); - } - MessageBox.Show("PCK Replaced!"); - } - buttonMode("stop"); - loadPcks(); - } - - private string GetPackID(string filename) - { - var reader = new PckFileReader(); - currentPCK = reader.FromFile(filename); - if (currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out var file) && - file.Properties.HasProperty("PACKID")) - { - file.Properties.GetProperty("PACKID"); - } - throw new KeyNotFoundException(); - } - - private void GetARCFromConsole() - { - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443")) - client.DownloadFile(dlcPath + "../../Common/Media/MediaWiiU.arc", Program.AppData + "MediaWiiU.arc"); - var reader = new ARCFileReader(); - archive = reader.FromStream(new MemoryStream(File.ReadAllBytes(Program.AppData + "MediaWiiU.arc"))); - } - - private void ReplacePackImage(string PackID) - { - if (archive.ContainsKey("Graphics\\PackGraphics\\" + PackID + ".png")) - archive["Graphics\\PackGraphics\\" + PackID + ".png"] = File.ReadAllBytes(TextBoxPackImage.Text); - else - archive.Add("Graphics\\PackGraphics\\" + PackID + ".png", File.ReadAllBytes(TextBoxPackImage.Text)); - } - - private void SendARCToConsole() - { - using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443")) - { - MemoryStream ms = new MemoryStream(); - var writer = new ARCFileWriter(archive); - writer.WriteToStream(ms); - File.WriteAllBytes(Program.AppData + "MediaWiiU.arc", ms.ToArray()); - client.UploadFile(Program.AppData + "MediaWiiU.arc", dlcPath + "../../Common/Media/MediaWiiU.arc"); - archive.Clear(); - currentPCK.Files.Clear(); - currentPCK = null; - ms.Dispose(); - } - GC.Collect(); - } - - private void PackImageSelection_Click(object sender, EventArgs e) - { - OpenFileDialog ofd = new OpenFileDialog(); - ofd.Filter = "PNG Image|*.png"; - if(ofd.ShowDialog() == DialogResult.OK) - TextBoxPackImage.Text = ofd.FileName; - } - } -} diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs index 7a978f68..66967f39 100644 --- a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs +++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs @@ -1135,8 +1135,6 @@ namespace PckStudio.Forms private void buttonInstallWiiU_Click(object sender, EventArgs e) { - installWiiU install = new installWiiU(Program.AppData + "/PCK Center/myPcks/" + mod + ".pck"); - install.ShowDialog(); } } } diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs index acd60ca9..f7320f39 100644 --- a/PCK-Studio/MainForm.Designer.cs +++ b/PCK-Studio/MainForm.Designer.cs @@ -104,9 +104,6 @@ this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openPckCenterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.wiiUPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.PS3PCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.VitaPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.trelloBoardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -141,8 +138,9 @@ this.label11 = new MetroFramework.Controls.MetroLabel(); this.treeViewMain = new System.Windows.Forms.TreeView(); this.imageList = new System.Windows.Forms.ImageList(this.components); - this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode(); this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode(); this.contextMenuPCKEntries.SuspendLayout(); this.menuStrip.SuspendLayout(); this.contextMenuMetaTree.SuspendLayout(); @@ -665,9 +663,6 @@ // this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.openPckCenterToolStripMenuItem, - this.wiiUPCKInstallerToolStripMenuItem, - this.PS3PCKInstallerToolStripMenuItem, - this.VitaPCKInstallerToolStripMenuItem, this.joinDevelopmentDiscordToolStripMenuItem, this.trelloBoardToolStripMenuItem}); this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White; @@ -682,24 +677,6 @@ resources.ApplyResources(this.openPckCenterToolStripMenuItem, "openPckCenterToolStripMenuItem"); this.openPckCenterToolStripMenuItem.Click += new System.EventHandler(this.openPckCenterToolStripMenuItem_Click); // - // wiiUPCKInstallerToolStripMenuItem - // - resources.ApplyResources(this.wiiUPCKInstallerToolStripMenuItem, "wiiUPCKInstallerToolStripMenuItem"); - this.wiiUPCKInstallerToolStripMenuItem.Name = "wiiUPCKInstallerToolStripMenuItem"; - this.wiiUPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.wiiUPCKInstallerToolStripMenuItem_Click); - // - // PS3PCKInstallerToolStripMenuItem - // - resources.ApplyResources(this.PS3PCKInstallerToolStripMenuItem, "PS3PCKInstallerToolStripMenuItem"); - this.PS3PCKInstallerToolStripMenuItem.Name = "PS3PCKInstallerToolStripMenuItem"; - this.PS3PCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.PS3PCKInstallerToolStripMenuItem_Click); - // - // VitaPCKInstallerToolStripMenuItem - // - resources.ApplyResources(this.VitaPCKInstallerToolStripMenuItem, "VitaPCKInstallerToolStripMenuItem"); - this.VitaPCKInstallerToolStripMenuItem.Name = "VitaPCKInstallerToolStripMenuItem"; - this.VitaPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.VitaPCKInstallerToolStripMenuItem_Click); - // // joinDevelopmentDiscordToolStripMenuItem // resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem"); @@ -716,6 +693,7 @@ // this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addCustomPackImageToolStripMenuItem, + this.openPckManagerToolStripMenuItem, this.convertMusicFilesToolStripMenuItem}); this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.White; this.miscToolStripMenuItem.Name = "miscToolStripMenuItem"; @@ -1048,14 +1026,6 @@ resources.ApplyResources(this.imageList, "imageList"); this.imageList.TransparentColor = System.Drawing.Color.Transparent; // - // pictureBoxImagePreview - // - resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview"); - this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent; - this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; - this.pictureBoxImagePreview.Name = "pictureBoxImagePreview"; - this.pictureBoxImagePreview.TabStop = false; - // // LittleEndianCheckBox // resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox"); @@ -1065,6 +1035,20 @@ this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; this.LittleEndianCheckBox.UseSelectable = true; // + // openPckManagerToolStripMenuItem + // + this.openPckManagerToolStripMenuItem.Name = "openPckManagerToolStripMenuItem"; + resources.ApplyResources(this.openPckManagerToolStripMenuItem, "openPckManagerToolStripMenuItem"); + this.openPckManagerToolStripMenuItem.Click += new System.EventHandler(this.openPckManagerToolStripMenuItem_Click); + // + // pictureBoxImagePreview + // + resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview"); + this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent; + this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; + this.pictureBoxImagePreview.Name = "pictureBoxImagePreview"; + this.pictureBoxImagePreview.TabStop = false; + // // MainForm // this.ApplyImageInvert = true; @@ -1144,11 +1128,9 @@ private MetroFramework.Controls.MetroTabPage editorTab; private MetroFramework.Controls.MetroCheckBox LittleEndianCheckBox; private MetroFramework.Controls.MetroLabel label11; - private System.Windows.Forms.ToolStripMenuItem wiiUPCKInstallerToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem PS3PCKInstallerToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem OpenInstallerToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem administrativeToolsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem VitaPCKInstallerToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toNobledezJackToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toPhoenixARCDeveloperToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem joinDevelopmentDiscordToolStripMenuItem; @@ -1217,6 +1199,7 @@ private System.Windows.Forms.ToolStripMenuItem convertMusicFilesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem wavBinkaToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem binkaWavToolStripMenuItem; - } + private System.Windows.Forms.ToolStripMenuItem openPckManagerToolStripMenuItem; + } } diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index ab20a8a5..7f735e35 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -28,6 +28,7 @@ using PckStudio.Classes.Misc; using PckStudio.Classes.IO.PCK; using PckStudio.Classes.IO._3DST; using PckStudio.Internal; +using PckStudio.Features; namespace PckStudio { @@ -104,7 +105,7 @@ namespace PckStudio }; } - public void LoadPck(string filepath) + public void LoadPckFromFile(string filepath) { checkSaveState(); treeViewMain.Nodes.Clear(); @@ -152,7 +153,7 @@ namespace PckStudio ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; if (ofd.ShowDialog() == DialogResult.OK) { - LoadPck(ofd.FileName); + LoadPckFromFile(ofd.FileName); } } } @@ -1741,12 +1742,6 @@ namespace PckStudio #endif } - private void wiiUPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) - { - installWiiU install = new installWiiU(null); - install.ShowDialog(); - } - private void howToMakeABasicSkinPackToolStripMenuItem_Click(object sender, EventArgs e) { Process.Start("https://www.youtube.com/watch?v=A43aHRHkKxk"); @@ -1784,8 +1779,7 @@ namespace PckStudio private void PS3PCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) { - installPS3 install = new installPS3(null); - install.ShowDialog(); + } private void settingsToolStripMenuItem_Click(object sender, EventArgs e) @@ -1802,9 +1796,6 @@ namespace PckStudio private void VitaPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) { - - installVita install = new installVita(null); - install.ShowDialog(); } private void toPhoenixARCDeveloperToolStripMenuItem_Click(object sender, EventArgs e) @@ -1874,7 +1865,7 @@ namespace PckStudio string[] Filepaths = (string[])e.Data.GetData(DataFormats.FileDrop, false); if (Filepaths.Length > 1) MessageBox.Show("Only one pck file at a time is currently supported"); - LoadPck(Filepaths[0]); + LoadPckFromFile(Filepaths[0]); } private void OpenPck_DragLeave(object sender, EventArgs e) @@ -2273,6 +2264,12 @@ namespace PckStudio Process.Start("https://trello.com/b/0XLNOEbe/pck-studio"); } + private void openPckManagerToolStripMenuItem_Click(object sender, EventArgs e) + { + PckManager installer = new PckManager(); + installer.Show(this); + } + private async void wavBinkaToolStripMenuItem_Click(object sender, EventArgs e) { using OpenFileDialog fileDialog = new OpenFileDialog diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx index 7876b459..6f1b8b52 100644 --- a/PCK-Studio/MainForm.resx +++ b/PCK-Studio/MainForm.resx @@ -23984,738 +23984,6 @@ Open PCK Center - - - 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 - - - - 212, 22 - - - Wii U PCK Installer - - - False - - - - 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 - - - - 212, 22 - - - PS3 PCK Installer - - - False - - - - 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 - - - - 212, 22 - - - PSVita PCK Installer - iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -24855,6 +24123,12 @@ Add Custom Pack Icon + + 195, 22 + + + Open Pck Manager + 195, 22 @@ -30031,6 +29305,9 @@ AP//AAA= + + NoControl + 1064, 660 @@ -30472,24 +29749,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - wiiUPCKInstallerToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - PS3PCKInstallerToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VitaPCKInstallerToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - joinDevelopmentDiscordToolStripMenuItem @@ -30562,6 +29821,12 @@ System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + openPckManagerToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + MainForm diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index f9679a80..99d929f5 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -167,6 +167,7 @@ + @@ -189,6 +190,7 @@ + @@ -223,6 +225,18 @@ + + UserControl + + + CemuPanel.cs + + + UserControl + + + WiiUPanel.cs + Form @@ -359,6 +373,12 @@ Form + + Form + + + PckManager.cs + BoxEditor.cs @@ -404,25 +424,6 @@ AudioEditor.cs - - Form - - - installPS3.cs - - - Form - - - installVita.cs - - - Form - - - installWiiU.cs - - Form @@ -472,6 +473,12 @@ + + CemuPanel.cs + + + WiiUPanel.cs + AddEntry.cs @@ -557,6 +564,9 @@ InProgressPrompt.cs + + PckManager.cs + BoxEditor.cs @@ -590,18 +600,6 @@ AudioEditor.cs Designer - - installPS3.cs - - - installVita.cs - - - installWiiU.cs - - - installWiiU.cs - PCK Manager.cs diff --git a/PCK-Studio/Program.cs b/PCK-Studio/Program.cs index bcac4a6f..243382fc 100644 --- a/PCK-Studio/Program.cs +++ b/PCK-Studio/Program.cs @@ -13,6 +13,8 @@ namespace PckStudio public static readonly string AppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PCK-Studio"); public static readonly string AppDataCache = Path.Combine(AppData, "cache"); + public static MainForm MainInstance { get; private set; } + /// /// The main entry point for the application. /// @@ -20,11 +22,11 @@ namespace PckStudio static void Main(string[] args) { System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; - - var mainForm = new MainForm(); + + MainInstance = new MainForm(); if (args.Length > 0 && File.Exists(args[0]) && args[0].EndsWith(".pck")) - mainForm.LoadPck(args[0]); - Application.Run(mainForm); + MainInstance.LoadPckFromFile(args[0]); + Application.Run(MainInstance); } } } diff --git a/PCK-Studio/Resources/SaveIcon.png b/PCK-Studio/Resources/SaveIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c1bc4793b48b0b2784b7fa5fccd4b0b4aaba9e GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGK$vmro+3}6pk#?_L`iUdT1k0gQ7S`0VrE{6US4X6f{C7io{`~4h0LiyMfW{j z978PplO=2%cGvx`nJl^ezgS-Fm;Yzm`wMEmeq8;3wcp*}^$%`M{;y!Ekid}0!*Ge` zNP_DLwl%i@zwAHQ^7;SgYxkK>H(q&Q#GuoecVL&d{=-KG%nlN(co`FfI9I>_SO4=J z^PPs*=kGQ0T2}lvjp$pz=oY;0@Aa1!O`^?DIHVkO+OnJ(COo(kd_M3`KX3Du2PO

NL*}nj-{baX@B_Wd;OXk;vd$@?2>_vNk!b(` literal 0 HcmV?d00001