From e977fd5b3ef266894c26f69562dfc8094b615910 Mon Sep 17 00:00:00 2001 From: phacoxcll <36426650+phacoxcll@users.noreply.github.com> Date: Mon, 22 Jul 2019 18:31:05 -0500 Subject: [PATCH] Usability improvements The graphic mode saves the output folder. Now the common key is no case sensitive. When an injection error occurs, the user is instructed to find more information in the log file. Other minor fixes. --- 64Inject.csproj | 268 +++ 64Inject.csproj.user | 16 + 64InjectCMD.cs | 1089 ++++++++++++ 64InjectGUI.Designer.cs | 840 ++++++++++ 64InjectGUI.cs | 892 ++++++++++ 64InjectGUI.resx | 2662 ++++++++++++++++++++++++++++++ 64Injector.cs | 700 ++++++++ BootImage.cs | 247 +++ CllAssemblyVersion.exe | Bin 0 -> 188416 bytes IconImage.cs | 139 ++ Log.cs | 125 ++ NusContent.cs | 365 ++++ Program.cs | 31 + Properties/AssemblyInfo.cs | 36 + Properties/Resources.Designer.cs | 102 ++ Properties/Resources.resx | 220 +++ Resources/checkmark-16.png | Bin 0 -> 373 bytes Resources/icon.ico | Bin 0 -> 151814 bytes Resources/x-mark-16.png | Bin 0 -> 242 bytes RomN64.cs | 218 +++ Security.cs | 183 ++ Useful.cs | 180 ++ VCN64.cs | 40 + app.config | 3 + 24 files changed, 8356 insertions(+) create mode 100644 64Inject.csproj create mode 100644 64Inject.csproj.user create mode 100644 64InjectCMD.cs create mode 100644 64InjectGUI.Designer.cs create mode 100644 64InjectGUI.cs create mode 100644 64InjectGUI.resx create mode 100644 64Injector.cs create mode 100644 BootImage.cs create mode 100644 CllAssemblyVersion.exe create mode 100644 IconImage.cs create mode 100644 Log.cs create mode 100644 NusContent.cs create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Resources/checkmark-16.png create mode 100644 Resources/icon.ico create mode 100644 Resources/x-mark-16.png create mode 100644 RomN64.cs create mode 100644 Security.cs create mode 100644 Useful.cs create mode 100644 VCN64.cs create mode 100644 app.config diff --git a/64Inject.csproj b/64Inject.csproj new file mode 100644 index 0000000..1e77c90 --- /dev/null +++ b/64Inject.csproj @@ -0,0 +1,268 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {7980ACD9-F023-4721-BE4F-5C71343711D6} + Exe + Properties + _64Inject + 64Inject + v3.5 + 512 + icon.ico + false + + + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + false + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + false + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + false + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + false + + + bin\Beta\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x86\Beta\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x64\Beta\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\Minor release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x86\Minor release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x64\Minor release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\Revision release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x86\Revision release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\x64\Revision release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + + + + + + + + + + Form + + + 64InjectGUI.cs + + + + + + + + + True + True + Resources.resx + + + + + + + + + + 64InjectGUI.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + + "C:\Users\Alberto\source\repos\64Inject\64Inject\CllAssemblyVersion.exe" assemblyInfo "$(ProjectDir)Properties\AssemblyInfo.cs" projectPath "$(ProjectPath)" config "$(ConfigurationName)" platform "$(PlatformName)" title "$(SolutionName)" format "major.minor.build.revision" replaceIn "$(ProjectDir)64Injector.cs" + + \ No newline at end of file diff --git a/64Inject.csproj.user b/64Inject.csproj.user new file mode 100644 index 0000000..beee08b --- /dev/null +++ b/64Inject.csproj.user @@ -0,0 +1,16 @@ + + + publish\ + + + + + + + + + es-ES + false + + + \ No newline at end of file diff --git a/64InjectCMD.cs b/64InjectCMD.cs new file mode 100644 index 0000000..4b3e7e5 --- /dev/null +++ b/64InjectCMD.cs @@ -0,0 +1,1089 @@ +using System; +using System.IO; + +namespace _64Inject +{ + public class _64InjectCMD + { + private _64Injector injector; + + public _64InjectCMD() + { + Cll.Log.SaveIn("64Inject_log.txt"); + Cll.Log.WriteLine(DateTime.UtcNow.ToString()); + Cll.Log.WriteLine("64Inject open in CMD mode."); + + injector = new _64Injector(); + } + + public void Run(string[] args) + { + Cll.Log.WriteLine("64Inject " + _64Injector.Release + " - by phacox.cll"); + Cll.Log.WriteLine(""); + + if (NusContent.GetJavaVersion() == null) + { + Cll.Log.WriteLine("Warning! Apparently the system does not have Java installed!"); + Cll.Log.WriteLine("Java is needed to NUSPacker (encrypt) and JNUSTool (decrypt)."); + Cll.Log.WriteLine(""); + } + else + { + if (!File.Exists("resources\\nuspacker\\NUSPacker.jar")) + { + Cll.Log.WriteLine("Warning! \"resources\\nuspacker\\NUSPacker.jar\" not found!"); + Cll.Log.WriteLine("NUSPacker allows you to encrypt the result for WUPInstaller."); + Cll.Log.WriteLine(""); + } + if (!File.Exists("resources\\jnustool\\JNUSTool.jar")) + { + Cll.Log.WriteLine("Warning! \"resources\\jnustool\\JNUSTool.jar\" not found!"); + Cll.Log.WriteLine("JNUSTool allows you to decrypt Wii U VC games to use as a base."); + Cll.Log.WriteLine(""); + } + } + + if (NusContent.CheckCommonKeyFiles()) + Cll.Log.WriteLine("Common Key found successfully."); + else + Cll.Log.WriteLine("Common Key not found. Use load-key option."); + + if (injector.BaseIsLoaded) + Cll.Log.WriteLine("Base loaded: " + injector.LoadedBase); + else + Cll.Log.WriteLine("Base not found. Use load-base option or specify one using the -base option."); + Cll.Log.WriteLine(""); + + if (args.Length == 0) + { + ConsoleHelp(); + } + else if (args.Length == 1 && args[0] == "help") + { + ConsoleHelp(); + } + else if (args.Length == 2 && args[0] == "load-key") + { + Cll.Log.WriteLine("load-key: " + args[1]); + + if (NusContent.LoadKey(args[1])) + Cll.Log.WriteLine("Common Key loaded successfully."); + else + Cll.Log.WriteLine("The load of the key failed. Is a valid Common Key?"); + } + else if (args.Length == 2 && args[0] == "load-base") + { + Cll.Log.WriteLine("load-base: " + args[1]); + Cll.Log.WriteLine("Loading base, please wait..."); + + if (injector.LoadBase(args[1])) + Cll.Log.WriteLine("Base loaded: " + injector.LoadedBase); + else + Cll.Log.WriteLine("The base was not loaded correctly."); + } + else if (args.Length >= 1 && args[0] == "create-image") + { + if (CreateImage(args)) + Cll.Log.WriteLine("Image created."); + else + Cll.Log.WriteLine("Image not created."); + } + else if (args.Length >= 1 && args[0] == "create-icon") + { + if (CreateIcon(args)) + Cll.Log.WriteLine("Icon created."); + else + Cll.Log.WriteLine("Icon not created."); + } + else if ((args.Length == 3 || args.Length == 5) && + (args[0] == "pack" || args[0] == "unpack")) + { + PackUnpack(args); + } + else + { + bool _continue = LoadArgs(args); + + if (_continue) + _continue = ValidArgs(); + + if (_continue) + Inject(); + } + Cll.Log.WriteLine("Close."); + Cll.Log.WriteLine("----------------------------------------------------------------"); + } + + private void ConsoleHelp() + { + Cll.Log.WriteText(global::_64Inject.Properties.Resources.Help, 80, 0, Cll.Log.TabMode.All); + } + + private bool CreateImage(string[] args) + { + BootImage bootImg = new BootImage(); + string framePath = null; + string titlePath = null; + string released = null; + string players = null; + string outPath = null; + + for (int i = 0; i < args.Length; i++) + { + switch (args[i]) + { + case "create-image": + break; + case "-frame": + if (i + 1 < args.Length && framePath == null) + { + framePath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-frame\" option."); + return false; + } + case "-title": + if (i + 1 < args.Length && titlePath == null) + { + titlePath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-title\" option."); + return false; + } + case "-name": + if (i + 1 < args.Length && bootImg.NameLine1 == null) + { + bootImg.NameLine1 = args[++i]; + bootImg.NameLine2 = ""; + bootImg.Longname = false; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-name\" option."); + return false; + } + case "-longname": + if (i + 2 < args.Length && bootImg.NameLine1 == null) + { + bootImg.NameLine1 = args[++i]; + bootImg.NameLine2 = args[++i]; + bootImg.Longname = true; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-longname\" option."); + return false; + } + case "-r": + if (i + 1 < args.Length && released == null) + { + released = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-r\" option."); + return false; + } + case "-p": + if (i + 1 < args.Length && players == null) + { + players = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-p\" option."); + return false; + } + case "-out": + if (i + 1 < args.Length && outPath == null) + { + outPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-out\" option."); + return false; + } + default: + Cll.Log.WriteLine("Invalid option \"" + args[i] + "\"."); + return false; + } + } + + if (framePath != null && !File.Exists(framePath)) + { + Cll.Log.WriteLine("The frame image \"" + framePath + "\" not exists."); + return false; + } + if (titlePath != null && !File.Exists(titlePath)) + { + Cll.Log.WriteLine("The title screen \"" + titlePath + "\" not exists."); + return false; + } + if (released != null) + { + try + { + bootImg.Released = Convert.ToInt32(released); + if (bootImg.Released < 1996) + { + Cll.Log.WriteLine("The year of release is less than 1996."); + return false; + } + } + catch + { + Cll.Log.WriteLine("The year of release is not an integer."); + return false; + } + } + if (players != null) + { + try + { + bootImg.Players = Convert.ToInt32(players); + if (bootImg.Players < 1 || bootImg.Players > 4) + { + Cll.Log.WriteLine("The number of players must be between 1 and 4."); + return false; + } + } + catch + { + Cll.Log.WriteLine("The number of players is not an integer."); + return false; + } + } + if (outPath != null) + { + if (!Directory.Exists(outPath)) + { + Cll.Log.WriteLine("The \"" + outPath + "\" folder not exist."); + return false; + } + } + else + outPath = Environment.CurrentDirectory; + + outPath += "\\image.png"; + Cll.Log.WriteLine("Creating image ----------------------------------------------------------------"); + if (titlePath != null) Cll.Log.WriteLine("title: " + titlePath); + if (framePath != null) Cll.Log.WriteLine("frame: " + framePath); + if (bootImg.NameLine1 != "") + { + if (bootImg.NameLine2 == "") Cll.Log.WriteLine("name: " + bootImg.NameLine1); + else Cll.Log.WriteLine("longname:\n" + bootImg.NameLine1 + "\n" + bootImg.NameLine2); + } + if (released != null) Cll.Log.WriteLine("released: " + released); + if (players != null) Cll.Log.WriteLine("players: " + players); + if (outPath != null) Cll.Log.WriteLine("out: " + outPath); + + System.Drawing.Bitmap image = null; + try + { + if (framePath != null) + bootImg.Frame = new System.Drawing.Bitmap(framePath); + if (titlePath != null) + bootImg.TitleScreen = new System.Drawing.Bitmap(titlePath); + image = bootImg.Create(); + image.Save(outPath, System.Drawing.Imaging.ImageFormat.Png); + image.Dispose(); + return true; + } + catch + { + return false; + } + finally + { + bootImg.Dispose(); + if (image != null) + image.Dispose(); + } + } + + private bool CreateIcon(string[] args) + { + IconImage iconImg = new IconImage(); + string framePath = null; + string titlePath = null; + string outPath = null; + + for (int i = 0; i < args.Length; i++) + { + switch (args[i]) + { + case "create-icon": + break; + case "-frame": + if (i + 1 < args.Length && framePath == null) + { + framePath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-frame\" option."); + return false; + } + case "-title": + if (i + 1 < args.Length && titlePath == null) + { + titlePath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-title\" option."); + return false; + } + case "-out": + if (i + 1 < args.Length && outPath == null) + { + outPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-out\" option."); + return false; + } + default: + Cll.Log.WriteLine("Invalid option \"" + args[i] + "\"."); + return false; + } + } + + if (framePath != null && !File.Exists(framePath)) + { + Cll.Log.WriteLine("The frame image \"" + framePath + "\" not exists."); + return false; + } + if (titlePath != null && !File.Exists(titlePath)) + { + Cll.Log.WriteLine("The title screen \"" + titlePath + "\" not exists."); + return false; + } + if (outPath != null) + { + if (!Directory.Exists(outPath)) + { + Cll.Log.WriteLine("The \"" + outPath + "\" folder not exist."); + return false; + } + } + else + outPath = Environment.CurrentDirectory; + + outPath += "\\icon.png"; + Cll.Log.WriteLine("Creating icon -----------------------------------------------------------------"); + if (titlePath != null) Cll.Log.WriteLine("title: " + titlePath); + if (framePath != null) Cll.Log.WriteLine("frame: " + framePath); + if (outPath != null) Cll.Log.WriteLine("out: " + outPath); + + System.Drawing.Bitmap icon = null; + try + { + if (framePath != null) + iconImg.Frame = new System.Drawing.Bitmap(framePath); + if (titlePath != null) + iconImg.TitleScreen = new System.Drawing.Bitmap(titlePath); + icon = iconImg.Create(); + icon.Save(outPath, System.Drawing.Imaging.ImageFormat.Png); + icon.Dispose(); + return true; + } + catch + { + return false; + } + finally + { + iconImg.Dispose(); + if (icon != null) + icon.Dispose(); + } + } + + private void PackUnpack(string[] args) + { + bool _continue = true; + if (args.Length == 3 && args[1] == "-in") + { + injector.InPath = args[2]; + injector.OutPath = Environment.CurrentDirectory + "\\" + args[0] + "_result"; + + if (Directory.Exists(injector.OutPath)) + Directory.Delete(injector.OutPath, true); + Directory.CreateDirectory(injector.OutPath); + } + else if (args.Length == 5 && args[1] == "-in" && args[3] == "-out") + { + injector.InPath = args[2]; + injector.OutPath = args[4]; + } + else + { + Cll.Log.WriteLine("Incorrect " + args[0] + " syntax."); + Cll.Log.WriteLine(""); + _continue = false; + } + + if (_continue) + { + if (!Directory.Exists(injector.InPath) || !Path.IsPathRooted(injector.InPath)) + { + Cll.Log.WriteLine("The input folder \"" + injector.InPath + "\" not exist."); + Cll.Log.WriteLine("Do not use relative paths."); + Cll.Log.WriteLine(""); + _continue = false; + } + if (!Directory.Exists(injector.OutPath) || !Path.IsPathRooted(injector.OutPath)) + { + Cll.Log.WriteLine("The output folder \"" + injector.OutPath + "\" not exist."); + Cll.Log.WriteLine("Do not use relative paths."); + Cll.Log.WriteLine(""); + _continue = false; + } + } + + if (_continue && Directory.Exists(injector.OutPath)) + if (Directory.GetDirectories(injector.OutPath).Length != 0 || + Directory.GetFiles(injector.OutPath).Length != 0) + { + Cll.Log.WriteLine("The \"" + injector.OutPath + "\" folder exist and not empty."); + Cll.Log.WriteLine(""); + _continue = false; + } + + if (_continue) + { + Cll.Log.WriteLine("in: " + injector.InPath); + Cll.Log.WriteLine("out: " + injector.OutPath); + Cll.Log.WriteLine(""); + + if (args[0] == "pack") + { + if (NusContent.Encrypt(injector.InPath, injector.OutPath)) + Cll.Log.WriteLine("The encryption was successful."); + else + Cll.Log.WriteLine("The encryption failed."); + } + else if (args[0] == "unpack") + { + if (NusContent.Decrypt(injector.InPath, injector.OutPath)) + Cll.Log.WriteLine("The decryption was successful."); + else + Cll.Log.WriteLine("The decryption failed."); + } + } + else if (args[0] == "pack") + Cll.Log.WriteLine("The encryption failed."); + else + Cll.Log.WriteLine("The decryption failed."); + } + + private bool Inject() + { + Cll.Log.WriteLine("Injecting - - - - - - - - - - - - - - - - - - - - - - - - - - - "); + if (injector.BasePath != null) Cll.Log.WriteLine("base: " + injector.BasePath); + if (injector.ShortName != null) Cll.Log.WriteLine("name: " + injector.ShortName); + if (injector.LongName != null) Cll.Log.WriteLine("longname:\n" + injector.LongName); + if (injector.InPath != null) Cll.Log.WriteLine("in: " + injector.InPath); + if (injector.RomPath != null) Cll.Log.WriteLine("rom: " + injector.RomPath); + if (injector.IniPath != null) Cll.Log.WriteLine("ini: " + injector.IniPath); + if (injector.BootTvPath != null) Cll.Log.WriteLine("tv: " + injector.BootTvPath); + if (injector.BootDrcPath != null) Cll.Log.WriteLine("drc: " + injector.BootDrcPath); + if (injector.IconPath != null) Cll.Log.WriteLine("icon: " + injector.IconPath); + if (injector.OutPath != null) Cll.Log.WriteLine("out: " + injector.OutPath); + Cll.Log.WriteLine("encrypt: " + injector.Encrypt.ToString()); + Cll.Log.WriteLine("Please wait..."); + + return injector.Inject(); + } + + private bool LoadArgs(string[] args) + { + for (int i = 0; i < args.Length; i++) + { + switch (args[i]) + { + case "-base": + if (i + 1 < args.Length && injector.BasePath == null) + { + injector.BasePath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-base\" option."); + return false; + } + case "-name": + if (i + 1 < args.Length && injector.ShortName == null) + { + injector.ShortName = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-name\" option."); + return false; + } + case "-longname": + if (i + 2 < args.Length && injector.LongName == null) + { + injector.LongName = args[++i] + "\n" + args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-longname\" option."); + return false; + } + case "no-darkfilter": + injector.DarkFilter = false; + break; + case "widescreen": + injector.Widescreen = true; + break; + case "-zoom": + if (i + 1 < args.Length && injector.Zoom == null) + { + injector.Zoom = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-zoom\" option."); + return false; + } + case "-in": + if (i + 1 < args.Length && injector.InPath == null) + { + injector.InPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-in\" option."); + return false; + } + case "-rom": + if (i + 1 < args.Length && injector.RomPath == null) + { + injector.RomPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-rom\" option."); + return false; + } + case "-ini": + if (i + 1 < args.Length && injector.IniPath == null) + { + injector.IniPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-ini\" option."); + return false; + } + case "-icon": + if (i + 1 < args.Length && injector.IconPath == null) + { + injector.IconPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-icon\" option."); + return false; + } + case "-tv": + if (i + 1 < args.Length && injector.BootTvPath == null) + { + injector.BootTvPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-tv\" option."); + return false; + } + case "-drc": + if (i + 1 < args.Length && injector.BootDrcPath == null) + { + injector.BootDrcPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-drc\" option."); + return false; + } + case "-out": + if (i + 1 < args.Length && injector.OutPath == null) + { + injector.OutPath = args[++i]; + break; + } + else + { + Cll.Log.WriteLine("Error in the \"-out\" option."); + return false; + } + case "not-encrypt": + injector.Encrypt = false; + break; + default: + Cll.Log.WriteLine("Invalid option \"" + args[i] + "\"."); + return false; + } + } + return true; + } + + #region Validations + + private bool ValidArgs() + { + if (!ValidBasePath()) + return false; + + if (!ValidInPath()) + return false; + + if (!ValidRomPath()) + return false; + + if (!ValidIniPath()) + return false; + + if (!ValidShortName()) + return false; + + if (!ValidLongName()) + return false; + + if (!ValidZoom()) + return false; + + if (!ValidBootTvPath()) + return false; + + if (!ValidBootDrcPath()) + return false; + + if (!ValidIconPath()) + return false; + + if (!ValidOutPath()) + return false; + + return true; + } + + private bool ValidBasePath() + { + if (injector.BasePath != null) + { + Cll.Log.WriteLine("Loading base, please wait..."); + + if (injector.LoadBase(injector.BasePath)) + { + Cll.Log.WriteLine("Base loaded: " + injector.LoadedBase); + Cll.Log.WriteLine(""); + } + else + { + Cll.Log.WriteLine("The base was not loaded correctly."); + Cll.Log.WriteLine(""); + return false; + } + } + else if (!injector.BaseIsLoaded) + { + Cll.Log.WriteLine("There is not a loaded base."); + Cll.Log.WriteLine(""); + return false; + } + return true; + } + + private bool ValidShortName() + { + if (injector.ShortName != null) + { + if (injector.ShortName.Length == 0) + { + Cll.Log.WriteLine("The name of the game is empty."); + return false; + } + else if (injector.ShortName.Length > 256) + { + Cll.Log.WriteLine("The name is not valid, it has more than 256 characters."); + return false; + } + } + else + { + injector.ShortName = injector.Rom.Title; + } + return true; + } + + private bool ValidLongName() + { + if (injector.LongName != null) + { + if (injector.ShortName.Length == 0) + { + Cll.Log.WriteLine("The long name of the game is empty."); + return false; + } + else if (injector.LongName.Length > 512) + { + Cll.Log.WriteLine("The long name is not valid, it has more than 512 characters."); + return false; + } + } + else + { + injector.LongName = injector.ShortName; + } + return true; + } + + private bool ValidZoom() + { + if (injector.Zoom != null) + { + try + { + injector.Scale = Convert.ToSingle(injector.Zoom); + if (injector.Scale < 50.0F || injector.Scale > 200.0F) + { + Cll.Log.WriteLine("The zoom value must be between 50 and 200."); + return false; + } + } + catch + { + Cll.Log.WriteLine("The zoom value is not a number."); + return false; + } + + if (injector.ShortName.Length == 0) + { + Cll.Log.WriteLine("The name of the game is empty."); + return false; + } + else if (injector.ShortName.Length > 256) + { + Cll.Log.WriteLine("The name is not valid, it has more than 256 characters."); + return false; + } + } + else + { + injector.Scale = 100.0F; + } + return true; + } + + private bool ValidInPath() + { + if (injector.InPath != null) + { + if (!Directory.Exists(injector.InPath)) + { + Cll.Log.WriteLine("The input folder \"" + injector.InPath + "\" not exists."); + return false; + } + } + else + Cll.Log.WriteLine("The input folder was not specified."); + return true; + } + + private bool ValidRomPath() + { + if (injector.RomPath != null) + { + if (File.Exists(injector.RomPath)) + { + injector.Rom = new RomN64(injector.RomPath); + if (!injector.Rom.IsValid) + { + Cll.Log.WriteLine("The ROM file is not valid."); + return false; + } + } + else + { + Cll.Log.WriteLine("The ROM file \"" + injector.RomPath + "\" not exists."); + return false; + } + } + else + { + if (injector.InPath != null) + { + injector.RomPath = injector.InPath + "\\rom.z64"; + if (File.Exists(injector.RomPath)) + { + injector.Rom = new RomN64(injector.RomPath); + if (!injector.Rom.IsValid) + { + Cll.Log.WriteLine("The ROM file is not valid."); + return false; + } + } + else + { + Cll.Log.WriteLine("The ROM file \"" + injector.RomPath + "\" not exists."); + return false; + } + } + else + { + //Cll.Log.WriteLine("The input folder was not specified."); + Cll.Log.WriteLine("ROM not found."); + return false; + } + } + return true; + } + + private bool ValidIniPath() + { + if (injector.IniPath != null) + { + if (File.Exists(injector.IniPath)) + { + if (!injector.LoadIni(injector.IniPath)) + { + Cll.Log.WriteLine("The INI file is not valid."); + return false; + } + } + else + { + Cll.Log.WriteLine("The INI file \"" + injector.IniPath + "\" not exists."); + return false; + } + } + else + { + if (injector.InPath != null) + { + injector.IniPath = injector.InPath + "\\vc.ini"; + if (File.Exists(injector.IniPath)) + { + if (!injector.LoadIni(injector.IniPath)) + { + Cll.Log.WriteLine("The INI file is not valid."); + return false; + } + } + else + { + injector.IniPath = null; + Cll.Log.WriteLine("The INI file \"" + injector.IniPath + "\" not exists."); + Cll.Log.WriteLine("An empty INI file will be used."); + } + } + else + { + //Cll.Log.WriteLine("The input folder was not specified."); + Cll.Log.WriteLine("An empty INI file will be used."); + } + } + return true; + } + + private bool ValidBootTvPath() + { + if (injector.BootTvPath != null) + { + if (!File.Exists(injector.BootTvPath)) + { + Cll.Log.WriteLine("The boot tv image file \"" + injector.BootTvPath + "\" not exists."); + return false; + } + else + injector.BootTvImg.IsDefault = false; + } + else + { + if (injector.InPath != null) + { + injector.BootTvPath = injector.InPath + "\\tv.png"; + if (!File.Exists(injector.BootTvPath)) + { + Cll.Log.WriteLine("The boot tv image file \"" + injector.BootTvPath + "\" not exists."); + if (File.Exists("resources\\boot.png")) + injector.BootTvPath = "resources\\boot.png"; + else + injector.BootTvPath = null; + Cll.Log.WriteLine("A default image will be used as boot tv."); + } + else + injector.BootTvImg.IsDefault = false; + } + else + { + //Cll.Log.WriteLine("The input folder was not specified."); + if (File.Exists("resources\\boot.png")) + injector.BootTvPath = "resources\\boot.png"; + else + injector.BootTvPath = null; + Cll.Log.WriteLine("A default image will be used as boot tv."); + } + } + return true; + } + + private bool ValidBootDrcPath() + { + if (injector.BootDrcPath != null) + { + if (!File.Exists(injector.BootDrcPath)) + { + Cll.Log.WriteLine("The boot drc image file \"" + injector.BootDrcPath + "\" not exists."); + return false; + } + else + injector.BootDrcImg.IsDefault = false; + } + else + { + if (injector.InPath != null) + { + injector.BootDrcPath = injector.InPath + "\\drc.png"; + if (!File.Exists(injector.BootDrcPath)) + { + Cll.Log.WriteLine("The boot drc image file \"" + injector.BootDrcPath + "\" not exists."); + injector.BootDrcPath = injector.BootTvPath; + if (!File.Exists(injector.BootDrcPath)) + { + if (File.Exists("resources\\boot.png")) + injector.BootDrcPath = "resources\\boot.png"; + else + injector.BootDrcPath = null; + Cll.Log.WriteLine("A default image will be used as boot drc."); + } + else + Cll.Log.WriteLine("The boot tv image will be used as boot drc."); + } + else + injector.BootDrcImg.IsDefault = false; + } + else + { + //Cll.Log.WriteLine("The input folder was not specified."); + injector.BootDrcPath = injector.BootTvPath; + if (!File.Exists(injector.BootDrcPath)) + { + if (File.Exists("resources\\boot.png")) + injector.BootDrcPath = "resources\\boot.png"; + else + injector.BootDrcPath = null; + Cll.Log.WriteLine("A default image will be used as boot drc."); + } + else + Cll.Log.WriteLine("The boot tv image will be used as boot drc."); + } + } + return true; + } + + private bool ValidIconPath() + { + if (injector.IconPath != null) + { + if (!File.Exists(injector.IconPath)) + { + Cll.Log.WriteLine("The icon file \"" + injector.IconPath + "\" not exists."); + return false; + } + else + injector.IconImg.IsDefault = false; + } + else + { + if (injector.InPath != null) + { + injector.IconPath = injector.InPath + "\\icon.png"; + if (!File.Exists(injector.IconPath)) + { + Cll.Log.WriteLine("The icon file \"" + injector.IconPath + "\" not exists."); + if (File.Exists("resources\\icon.png")) + injector.IconPath = "resources\\icon.png"; + else + injector.IconPath = null; + Cll.Log.WriteLine("A default image will be used as icon."); + } + else + injector.IconImg.IsDefault = false; + } + else + { + //Cll.Log.WriteLine("The input folder was not specified."); + if (File.Exists("resources\\icon.png")) + injector.IconPath = "resources\\icon.png"; + else + injector.IconPath = null; + Cll.Log.WriteLine("A default image will be used as icon."); + } + } + return true; + } + + private bool ValidOutPath() + { + if (injector.OutPath != null) + { + if (!Directory.Exists(injector.OutPath)) + { + Cll.Log.WriteLine("The \"" + injector.OutPath + "\" folder not exist."); + return false; + } + } + else + { + Cll.Log.WriteLine("The output folder was not specified."); + injector.OutPath = Environment.CurrentDirectory; + Cll.Log.WriteLine("The root folder of 64Inject will be used as the output folder."); + } + + injector.OutPath += "\\" + injector.ShortNameASCII + " [" + injector.TitleId + "]"; + + if (Directory.Exists(injector.OutPath)) + if (Directory.GetDirectories(injector.OutPath).Length != 0 || + Directory.GetFiles(injector.OutPath).Length != 0) + { + Cll.Log.WriteLine("The \"" + injector.OutPath + "\" folder exist and not empty."); + return false; + } + + return true; + } + + #endregion + } +} diff --git a/64InjectGUI.Designer.cs b/64InjectGUI.Designer.cs new file mode 100644 index 0000000..e99a227 --- /dev/null +++ b/64InjectGUI.Designer.cs @@ -0,0 +1,840 @@ +namespace _64Inject +{ + partial class _64InjectGUI + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(_64InjectGUI)); + this.buttonRom = new System.Windows.Forms.Button(); + this.buttonIni = new System.Windows.Forms.Button(); + this.textBoxShortName = new System.Windows.Forms.TextBox(); + this.labelRom = new System.Windows.Forms.Label(); + this.labelIni = new System.Windows.Forms.Label(); + this.labeShortName = new System.Windows.Forms.Label(); + this.labelProductCode = new System.Windows.Forms.Label(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.textBoxRom = new System.Windows.Forms.TextBox(); + this.textBoxIni = new System.Windows.Forms.TextBox(); + this.buttonInject = new System.Windows.Forms.Button(); + this.groupBoxImages = new System.Windows.Forms.GroupBox(); + this.buttonTitleScreen = new System.Windows.Forms.Button(); + this.comboBoxPlayers = new System.Windows.Forms.ComboBox(); + this.comboBoxReleased = new System.Windows.Forms.ComboBox(); + this.labelPlayers = new System.Windows.Forms.Label(); + this.labelReleased = new System.Windows.Forms.Label(); + this.checkBoxShowName = new System.Windows.Forms.CheckBox(); + this.buttonBootDrc = new System.Windows.Forms.Button(); + this.pictureBoxBootDrc = new System.Windows.Forms.PictureBox(); + this.pictureBoxIcon = new System.Windows.Forms.PictureBox(); + this.buttonIcon = new System.Windows.Forms.Button(); + this.buttonBootTv = new System.Windows.Forms.Button(); + this.pictureBoxBootTv = new System.Windows.Forms.PictureBox(); + this.tabControlMain = new System.Windows.Forms.TabControl(); + this.tabPageMain = new System.Windows.Forms.TabPage(); + this.groupBoxGameLayout = new System.Windows.Forms.GroupBox(); + this.checkBoxDarkFilter = new System.Windows.Forms.CheckBox(); + this.numericUpDownZoom = new System.Windows.Forms.NumericUpDown(); + this.checkBoxWidescreen = new System.Windows.Forms.CheckBox(); + this.labelZoom = new System.Windows.Forms.Label(); + this.checkBoxPackUpResult = new System.Windows.Forms.CheckBox(); + this.labelTitleId = new System.Windows.Forms.Label(); + this.textBoxLNLine2 = new System.Windows.Forms.TextBox(); + this.textBoxLNLine1 = new System.Windows.Forms.TextBox(); + this.checkBoxLongName = new System.Windows.Forms.CheckBox(); + this.tabPageConfig = new System.Windows.Forms.TabPage(); + this.labelBy = new System.Windows.Forms.Label(); + this.labelBaseFrom = new System.Windows.Forms.Label(); + this.panelLoadedBase = new System.Windows.Forms.Panel(); + this.labelLoadedBase = new System.Windows.Forms.Label(); + this.panelValidKey = new System.Windows.Forms.Panel(); + this.checkBoxImagesDir = new System.Windows.Forms.CheckBox(); + this.buttonImagesDir = new System.Windows.Forms.Button(); + this.textBoxImagesDir = new System.Windows.Forms.TextBox(); + this.labelCommonKey = new System.Windows.Forms.Label(); + this.textBoxCommonKey = new System.Windows.Forms.TextBox(); + this.buttonBaseFrom = new System.Windows.Forms.Button(); + this.buttonIniDir = new System.Windows.Forms.Button(); + this.buttonRomDir = new System.Windows.Forms.Button(); + this.textBoxBaseFrom = new System.Windows.Forms.TextBox(); + this.textBoxIniDir = new System.Windows.Forms.TextBox(); + this.textBoxRomDir = new System.Windows.Forms.TextBox(); + this.checkBoxAskBase = new System.Windows.Forms.CheckBox(); + this.checkBoxIniDir = new System.Windows.Forms.CheckBox(); + this.checkBoxRomDir = new System.Windows.Forms.CheckBox(); + this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); + this.groupBoxImages.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBootDrc)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBootTv)).BeginInit(); + this.tabControlMain.SuspendLayout(); + this.tabPageMain.SuspendLayout(); + this.groupBoxGameLayout.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownZoom)).BeginInit(); + this.tabPageConfig.SuspendLayout(); + this.SuspendLayout(); + // + // buttonRom + // + this.buttonRom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRom.Location = new System.Drawing.Point(644, 4); + this.buttonRom.Name = "buttonRom"; + this.buttonRom.Size = new System.Drawing.Size(24, 23); + this.buttonRom.TabIndex = 0; + this.buttonRom.Text = "..."; + this.buttonRom.UseVisualStyleBackColor = true; + this.buttonRom.Click += new System.EventHandler(this.buttonRom_Click); + // + // buttonIni + // + this.buttonIni.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonIni.Location = new System.Drawing.Point(644, 108); + this.buttonIni.Name = "buttonIni"; + this.buttonIni.Size = new System.Drawing.Size(24, 23); + this.buttonIni.TabIndex = 1; + this.buttonIni.Text = "..."; + this.buttonIni.UseVisualStyleBackColor = true; + this.buttonIni.Click += new System.EventHandler(this.buttonIni_Click); + // + // textBoxShortName + // + this.textBoxShortName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxShortName.Location = new System.Drawing.Point(81, 32); + this.textBoxShortName.MaxLength = 256; + this.textBoxShortName.Name = "textBoxShortName"; + this.textBoxShortName.Size = new System.Drawing.Size(587, 20); + this.textBoxShortName.TabIndex = 2; + this.textBoxShortName.TextChanged += new System.EventHandler(this.textBoxShortName_TextChanged); + // + // labelRom + // + this.labelRom.AutoSize = true; + this.labelRom.Location = new System.Drawing.Point(8, 9); + this.labelRom.Name = "labelRom"; + this.labelRom.Size = new System.Drawing.Size(59, 13); + this.labelRom.TabIndex = 4; + this.labelRom.Text = "ROM path:"; + // + // labelIni + // + this.labelIni.AutoSize = true; + this.labelIni.Location = new System.Drawing.Point(8, 113); + this.labelIni.Name = "labelIni"; + this.labelIni.Size = new System.Drawing.Size(48, 13); + this.labelIni.TabIndex = 5; + this.labelIni.Text = "INI path:"; + // + // labeShortName + // + this.labeShortName.AutoSize = true; + this.labeShortName.Location = new System.Drawing.Point(8, 35); + this.labeShortName.Name = "labeShortName"; + this.labeShortName.Size = new System.Drawing.Size(64, 13); + this.labeShortName.TabIndex = 6; + this.labeShortName.Text = "Short name:"; + // + // labelProductCode + // + this.labelProductCode.AutoSize = true; + this.labelProductCode.Location = new System.Drawing.Point(330, 156); + this.labelProductCode.Name = "labelProductCode"; + this.labelProductCode.Size = new System.Drawing.Size(74, 13); + this.labelProductCode.TabIndex = 7; + this.labelProductCode.Text = "Product code:"; + // + // textBoxRom + // + this.textBoxRom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxRom.Location = new System.Drawing.Point(81, 6); + this.textBoxRom.Name = "textBoxRom"; + this.textBoxRom.Size = new System.Drawing.Size(557, 20); + this.textBoxRom.TabIndex = 8; + // + // textBoxIni + // + this.textBoxIni.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxIni.Location = new System.Drawing.Point(81, 110); + this.textBoxIni.Name = "textBoxIni"; + this.textBoxIni.Size = new System.Drawing.Size(557, 20); + this.textBoxIni.TabIndex = 9; + // + // buttonInject + // + this.buttonInject.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.buttonInject.Enabled = false; + this.buttonInject.Location = new System.Drawing.Point(3, 480); + this.buttonInject.Name = "buttonInject"; + this.buttonInject.Size = new System.Drawing.Size(570, 40); + this.buttonInject.TabIndex = 10; + this.buttonInject.Text = "Inject"; + this.buttonInject.UseVisualStyleBackColor = true; + this.buttonInject.Click += new System.EventHandler(this.buttonInject_Click); + // + // groupBoxImages + // + this.groupBoxImages.Controls.Add(this.buttonTitleScreen); + this.groupBoxImages.Controls.Add(this.comboBoxPlayers); + this.groupBoxImages.Controls.Add(this.comboBoxReleased); + this.groupBoxImages.Controls.Add(this.labelPlayers); + this.groupBoxImages.Controls.Add(this.labelReleased); + this.groupBoxImages.Controls.Add(this.checkBoxShowName); + this.groupBoxImages.Controls.Add(this.buttonBootDrc); + this.groupBoxImages.Controls.Add(this.pictureBoxBootDrc); + this.groupBoxImages.Controls.Add(this.pictureBoxIcon); + this.groupBoxImages.Controls.Add(this.buttonIcon); + this.groupBoxImages.Controls.Add(this.buttonBootTv); + this.groupBoxImages.Controls.Add(this.pictureBoxBootTv); + this.groupBoxImages.Location = new System.Drawing.Point(8, 187); + this.groupBoxImages.Name = "groupBoxImages"; + this.groupBoxImages.Size = new System.Drawing.Size(660, 288); + this.groupBoxImages.TabIndex = 11; + this.groupBoxImages.TabStop = false; + this.groupBoxImages.Text = "Images"; + // + // buttonTitleScreen + // + this.buttonTitleScreen.Location = new System.Drawing.Point(327, 257); + this.buttonTitleScreen.Name = "buttonTitleScreen"; + this.buttonTitleScreen.Size = new System.Drawing.Size(94, 23); + this.buttonTitleScreen.TabIndex = 13; + this.buttonTitleScreen.Text = "Title screen"; + this.buttonTitleScreen.UseVisualStyleBackColor = true; + this.buttonTitleScreen.Click += new System.EventHandler(this.buttonTitleScreen_Click); + // + // comboBoxPlayers + // + this.comboBoxPlayers.FormattingEnabled = true; + this.comboBoxPlayers.Items.AddRange(new object[] { + "None", + "1", + "2", + "3", + "4"}); + this.comboBoxPlayers.Location = new System.Drawing.Point(168, 259); + this.comboBoxPlayers.Name = "comboBoxPlayers"; + this.comboBoxPlayers.Size = new System.Drawing.Size(50, 21); + this.comboBoxPlayers.TabIndex = 12; + this.comboBoxPlayers.Text = "None"; + this.comboBoxPlayers.SelectedIndexChanged += new System.EventHandler(this.comboBoxPlayers_SelectedIndexChanged); + // + // comboBoxReleased + // + this.comboBoxReleased.FormattingEnabled = true; + this.comboBoxReleased.Items.AddRange(new object[] { + "None", + "1996", + "1997", + "1998", + "1999", + "2000", + "2001", + "2002", + "2018"}); + this.comboBoxReleased.Location = new System.Drawing.Point(62, 259); + this.comboBoxReleased.Name = "comboBoxReleased"; + this.comboBoxReleased.Size = new System.Drawing.Size(50, 21); + this.comboBoxReleased.TabIndex = 11; + this.comboBoxReleased.Text = "None"; + this.comboBoxReleased.SelectedIndexChanged += new System.EventHandler(this.comboBoxReleased_SelectedIndexChanged); + // + // labelPlayers + // + this.labelPlayers.AutoSize = true; + this.labelPlayers.Location = new System.Drawing.Point(123, 262); + this.labelPlayers.Name = "labelPlayers"; + this.labelPlayers.Size = new System.Drawing.Size(44, 13); + this.labelPlayers.TabIndex = 10; + this.labelPlayers.Text = "Players:"; + // + // labelReleased + // + this.labelReleased.AutoSize = true; + this.labelReleased.Location = new System.Drawing.Point(6, 262); + this.labelReleased.Name = "labelReleased"; + this.labelReleased.Size = new System.Drawing.Size(55, 13); + this.labelReleased.TabIndex = 9; + this.labelReleased.Text = "Released:"; + // + // checkBoxShowName + // + this.checkBoxShowName.AutoSize = true; + this.checkBoxShowName.Checked = true; + this.checkBoxShowName.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxShowName.Location = new System.Drawing.Point(237, 261); + this.checkBoxShowName.Name = "checkBoxShowName"; + this.checkBoxShowName.Size = new System.Drawing.Size(82, 17); + this.checkBoxShowName.TabIndex = 8; + this.checkBoxShowName.Text = "Show name"; + this.checkBoxShowName.UseVisualStyleBackColor = true; + this.checkBoxShowName.CheckedChanged += new System.EventHandler(this.checkBoxShowName_CheckedChanged); + // + // buttonBootDrc + // + this.buttonBootDrc.Location = new System.Drawing.Point(426, 198); + this.buttonBootDrc.Name = "buttonBootDrc"; + this.buttonBootDrc.Size = new System.Drawing.Size(94, 38); + this.buttonBootDrc.TabIndex = 7; + this.buttonBootDrc.Text = "Boot Drc"; + this.buttonBootDrc.UseVisualStyleBackColor = true; + this.buttonBootDrc.Click += new System.EventHandler(this.buttonBootDrc_Click); + // + // pictureBoxBootDrc + // + this.pictureBoxBootDrc.BackColor = System.Drawing.SystemColors.Window; + this.pictureBoxBootDrc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBoxBootDrc.Location = new System.Drawing.Point(426, 19); + this.pictureBoxBootDrc.Name = "pictureBoxBootDrc"; + this.pictureBoxBootDrc.Size = new System.Drawing.Size(228, 128); + this.pictureBoxBootDrc.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBoxBootDrc.TabIndex = 6; + this.pictureBoxBootDrc.TabStop = false; + // + // pictureBoxIcon + // + this.pictureBoxIcon.BackColor = System.Drawing.SystemColors.Window; + this.pictureBoxIcon.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBoxIcon.Location = new System.Drawing.Point(526, 153); + this.pictureBoxIcon.Name = "pictureBoxIcon"; + this.pictureBoxIcon.Size = new System.Drawing.Size(128, 128); + this.pictureBoxIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBoxIcon.TabIndex = 5; + this.pictureBoxIcon.TabStop = false; + // + // buttonIcon + // + this.buttonIcon.Location = new System.Drawing.Point(426, 243); + this.buttonIcon.Name = "buttonIcon"; + this.buttonIcon.Size = new System.Drawing.Size(94, 38); + this.buttonIcon.TabIndex = 4; + this.buttonIcon.Text = "Icon"; + this.buttonIcon.UseVisualStyleBackColor = true; + this.buttonIcon.Click += new System.EventHandler(this.buttonIcon_Click); + // + // buttonBootTv + // + this.buttonBootTv.Location = new System.Drawing.Point(426, 153); + this.buttonBootTv.Name = "buttonBootTv"; + this.buttonBootTv.Size = new System.Drawing.Size(94, 38); + this.buttonBootTv.TabIndex = 3; + this.buttonBootTv.Text = "Boot Tv"; + this.buttonBootTv.UseVisualStyleBackColor = true; + this.buttonBootTv.Click += new System.EventHandler(this.buttonBootTv_Click); + // + // pictureBoxBootTv + // + this.pictureBoxBootTv.BackColor = System.Drawing.SystemColors.Window; + this.pictureBoxBootTv.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBoxBootTv.Location = new System.Drawing.Point(6, 19); + this.pictureBoxBootTv.Name = "pictureBoxBootTv"; + this.pictureBoxBootTv.Size = new System.Drawing.Size(414, 232); + this.pictureBoxBootTv.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBoxBootTv.TabIndex = 2; + this.pictureBoxBootTv.TabStop = false; + // + // tabControlMain + // + this.tabControlMain.Controls.Add(this.tabPageMain); + this.tabControlMain.Controls.Add(this.tabPageConfig); + this.tabControlMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControlMain.Location = new System.Drawing.Point(0, 0); + this.tabControlMain.Name = "tabControlMain"; + this.tabControlMain.SelectedIndex = 0; + this.tabControlMain.Size = new System.Drawing.Size(684, 549); + this.tabControlMain.TabIndex = 12; + // + // tabPageMain + // + this.tabPageMain.BackColor = System.Drawing.SystemColors.Control; + this.tabPageMain.Controls.Add(this.groupBoxGameLayout); + this.tabPageMain.Controls.Add(this.checkBoxPackUpResult); + this.tabPageMain.Controls.Add(this.labelTitleId); + this.tabPageMain.Controls.Add(this.textBoxLNLine2); + this.tabPageMain.Controls.Add(this.textBoxLNLine1); + this.tabPageMain.Controls.Add(this.checkBoxLongName); + this.tabPageMain.Controls.Add(this.labelRom); + this.tabPageMain.Controls.Add(this.groupBoxImages); + this.tabPageMain.Controls.Add(this.buttonRom); + this.tabPageMain.Controls.Add(this.buttonInject); + this.tabPageMain.Controls.Add(this.buttonIni); + this.tabPageMain.Controls.Add(this.textBoxIni); + this.tabPageMain.Controls.Add(this.textBoxShortName); + this.tabPageMain.Controls.Add(this.textBoxRom); + this.tabPageMain.Controls.Add(this.labelProductCode); + this.tabPageMain.Controls.Add(this.labelIni); + this.tabPageMain.Controls.Add(this.labeShortName); + this.tabPageMain.Location = new System.Drawing.Point(4, 22); + this.tabPageMain.Name = "tabPageMain"; + this.tabPageMain.Padding = new System.Windows.Forms.Padding(3); + this.tabPageMain.Size = new System.Drawing.Size(676, 523); + this.tabPageMain.TabIndex = 0; + this.tabPageMain.Text = "Main"; + // + // groupBoxGameLayout + // + this.groupBoxGameLayout.Controls.Add(this.checkBoxDarkFilter); + this.groupBoxGameLayout.Controls.Add(this.numericUpDownZoom); + this.groupBoxGameLayout.Controls.Add(this.checkBoxWidescreen); + this.groupBoxGameLayout.Controls.Add(this.labelZoom); + this.groupBoxGameLayout.Location = new System.Drawing.Point(8, 136); + this.groupBoxGameLayout.Name = "groupBoxGameLayout"; + this.groupBoxGameLayout.Size = new System.Drawing.Size(296, 45); + this.groupBoxGameLayout.TabIndex = 21; + this.groupBoxGameLayout.TabStop = false; + this.groupBoxGameLayout.Text = "Game layout"; + // + // checkBoxDarkFilter + // + this.checkBoxDarkFilter.AutoSize = true; + this.checkBoxDarkFilter.Checked = true; + this.checkBoxDarkFilter.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxDarkFilter.Location = new System.Drawing.Point(6, 19); + this.checkBoxDarkFilter.Name = "checkBoxDarkFilter"; + this.checkBoxDarkFilter.Size = new System.Drawing.Size(71, 17); + this.checkBoxDarkFilter.TabIndex = 17; + this.checkBoxDarkFilter.Text = "Dark filter"; + this.checkBoxDarkFilter.UseVisualStyleBackColor = true; + this.checkBoxDarkFilter.CheckedChanged += new System.EventHandler(this.checkBoxDarkFilter_CheckedChanged); + // + // numericUpDownZoom + // + this.numericUpDownZoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.numericUpDownZoom.Increment = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDownZoom.Location = new System.Drawing.Point(251, 18); + this.numericUpDownZoom.Maximum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.numericUpDownZoom.Minimum = new decimal(new int[] { + 50, + 0, + 0, + 0}); + this.numericUpDownZoom.Name = "numericUpDownZoom"; + this.numericUpDownZoom.Size = new System.Drawing.Size(40, 20); + this.numericUpDownZoom.TabIndex = 20; + this.numericUpDownZoom.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.numericUpDownZoom.ValueChanged += new System.EventHandler(this.numericUpDownZoom_ValueChanged); + // + // checkBoxWidescreen + // + this.checkBoxWidescreen.AutoSize = true; + this.checkBoxWidescreen.Location = new System.Drawing.Point(92, 19); + this.checkBoxWidescreen.Name = "checkBoxWidescreen"; + this.checkBoxWidescreen.Size = new System.Drawing.Size(83, 17); + this.checkBoxWidescreen.TabIndex = 18; + this.checkBoxWidescreen.Text = "Widescreen"; + this.checkBoxWidescreen.UseVisualStyleBackColor = true; + this.checkBoxWidescreen.CheckedChanged += new System.EventHandler(this.checkBoxWidescreen_CheckedChanged); + // + // labelZoom + // + this.labelZoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.labelZoom.AutoSize = true; + this.labelZoom.Location = new System.Drawing.Point(213, 20); + this.labelZoom.Name = "labelZoom"; + this.labelZoom.Size = new System.Drawing.Size(37, 13); + this.labelZoom.TabIndex = 19; + this.labelZoom.Text = "Zoom:"; + // + // checkBoxPackUpResult + // + this.checkBoxPackUpResult.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.checkBoxPackUpResult.AutoSize = true; + this.checkBoxPackUpResult.Location = new System.Drawing.Point(579, 493); + this.checkBoxPackUpResult.Name = "checkBoxPackUpResult"; + this.checkBoxPackUpResult.Size = new System.Drawing.Size(94, 17); + this.checkBoxPackUpResult.TabIndex = 16; + this.checkBoxPackUpResult.Text = "Pack up result"; + this.checkBoxPackUpResult.UseVisualStyleBackColor = true; + // + // labelTitleId + // + this.labelTitleId.AutoSize = true; + this.labelTitleId.Location = new System.Drawing.Point(500, 156); + this.labelTitleId.Name = "labelTitleId"; + this.labelTitleId.Size = new System.Drawing.Size(44, 13); + this.labelTitleId.TabIndex = 15; + this.labelTitleId.Text = "Title ID:"; + // + // textBoxLNLine2 + // + this.textBoxLNLine2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxLNLine2.Enabled = false; + this.textBoxLNLine2.Location = new System.Drawing.Point(100, 84); + this.textBoxLNLine2.MaxLength = 255; + this.textBoxLNLine2.Name = "textBoxLNLine2"; + this.textBoxLNLine2.Size = new System.Drawing.Size(568, 20); + this.textBoxLNLine2.TabIndex = 14; + this.textBoxLNLine2.TextChanged += new System.EventHandler(this.textBoxLNLine2_TextChanged); + // + // textBoxLNLine1 + // + this.textBoxLNLine1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxLNLine1.Enabled = false; + this.textBoxLNLine1.Location = new System.Drawing.Point(100, 58); + this.textBoxLNLine1.MaxLength = 255; + this.textBoxLNLine1.Name = "textBoxLNLine1"; + this.textBoxLNLine1.Size = new System.Drawing.Size(568, 20); + this.textBoxLNLine1.TabIndex = 13; + this.textBoxLNLine1.TextChanged += new System.EventHandler(this.textBoxLNLine1_TextChanged); + // + // checkBoxLongName + // + this.checkBoxLongName.AutoSize = true; + this.checkBoxLongName.Location = new System.Drawing.Point(12, 66); + this.checkBoxLongName.Name = "checkBoxLongName"; + this.checkBoxLongName.Size = new System.Drawing.Size(82, 17); + this.checkBoxLongName.TabIndex = 12; + this.checkBoxLongName.Text = "Long name:"; + this.checkBoxLongName.UseVisualStyleBackColor = true; + this.checkBoxLongName.CheckedChanged += new System.EventHandler(this.checkBoxLongName_CheckedChanged); + // + // tabPageConfig + // + this.tabPageConfig.BackColor = System.Drawing.SystemColors.Control; + this.tabPageConfig.Controls.Add(this.labelBy); + this.tabPageConfig.Controls.Add(this.labelBaseFrom); + this.tabPageConfig.Controls.Add(this.panelLoadedBase); + this.tabPageConfig.Controls.Add(this.labelLoadedBase); + this.tabPageConfig.Controls.Add(this.panelValidKey); + this.tabPageConfig.Controls.Add(this.checkBoxImagesDir); + this.tabPageConfig.Controls.Add(this.buttonImagesDir); + this.tabPageConfig.Controls.Add(this.textBoxImagesDir); + this.tabPageConfig.Controls.Add(this.labelCommonKey); + this.tabPageConfig.Controls.Add(this.textBoxCommonKey); + this.tabPageConfig.Controls.Add(this.buttonBaseFrom); + this.tabPageConfig.Controls.Add(this.buttonIniDir); + this.tabPageConfig.Controls.Add(this.buttonRomDir); + this.tabPageConfig.Controls.Add(this.textBoxBaseFrom); + this.tabPageConfig.Controls.Add(this.textBoxIniDir); + this.tabPageConfig.Controls.Add(this.textBoxRomDir); + this.tabPageConfig.Controls.Add(this.checkBoxAskBase); + this.tabPageConfig.Controls.Add(this.checkBoxIniDir); + this.tabPageConfig.Controls.Add(this.checkBoxRomDir); + this.tabPageConfig.Location = new System.Drawing.Point(4, 22); + this.tabPageConfig.Name = "tabPageConfig"; + this.tabPageConfig.Padding = new System.Windows.Forms.Padding(3); + this.tabPageConfig.Size = new System.Drawing.Size(676, 523); + this.tabPageConfig.TabIndex = 1; + this.tabPageConfig.Text = "Config"; + // + // labelBy + // + this.labelBy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.labelBy.AutoSize = true; + this.labelBy.Location = new System.Drawing.Point(592, 482); + this.labelBy.Name = "labelBy"; + this.labelBy.Size = new System.Drawing.Size(55, 13); + this.labelBy.TabIndex = 18; + this.labelBy.Text = "phacox.cll"; + // + // labelBaseFrom + // + this.labelBaseFrom.AutoSize = true; + this.labelBaseFrom.Location = new System.Drawing.Point(6, 165); + this.labelBaseFrom.Name = "labelBaseFrom"; + this.labelBaseFrom.Size = new System.Drawing.Size(83, 13); + this.labelBaseFrom.TabIndex = 17; + this.labelBaseFrom.Text = "Load base from:"; + // + // panelLoadedBase + // + this.panelLoadedBase.BackColor = System.Drawing.SystemColors.Control; + this.panelLoadedBase.BackgroundImage = global::_64Inject.Properties.Resources.x_mark_16; + this.panelLoadedBase.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.panelLoadedBase.Location = new System.Drawing.Point(120, 194); + this.panelLoadedBase.Name = "panelLoadedBase"; + this.panelLoadedBase.Size = new System.Drawing.Size(20, 20); + this.panelLoadedBase.TabIndex = 16; + // + // labelLoadedBase + // + this.labelLoadedBase.AutoSize = true; + this.labelLoadedBase.Location = new System.Drawing.Point(146, 191); + this.labelLoadedBase.Name = "labelLoadedBase"; + this.labelLoadedBase.Size = new System.Drawing.Size(69, 13); + this.labelLoadedBase.TabIndex = 15; + this.labelLoadedBase.Text = "Base loaded:\r\n"; + // + // panelValidKey + // + this.panelValidKey.BackColor = System.Drawing.SystemColors.Control; + this.panelValidKey.BackgroundImage = global::_64Inject.Properties.Resources.x_mark_16; + this.panelValidKey.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.panelValidKey.Location = new System.Drawing.Point(342, 110); + this.panelValidKey.Name = "panelValidKey"; + this.panelValidKey.Size = new System.Drawing.Size(20, 20); + this.panelValidKey.TabIndex = 14; + // + // checkBoxImagesDir + // + this.checkBoxImagesDir.AutoSize = true; + this.checkBoxImagesDir.Checked = true; + this.checkBoxImagesDir.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxImagesDir.Location = new System.Drawing.Point(8, 34); + this.checkBoxImagesDir.Name = "checkBoxImagesDir"; + this.checkBoxImagesDir.Size = new System.Drawing.Size(106, 17); + this.checkBoxImagesDir.TabIndex = 13; + this.checkBoxImagesDir.Text = "Images directory:"; + this.checkBoxImagesDir.UseVisualStyleBackColor = true; + // + // buttonImagesDir + // + this.buttonImagesDir.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonImagesDir.Location = new System.Drawing.Point(644, 30); + this.buttonImagesDir.Name = "buttonImagesDir"; + this.buttonImagesDir.Size = new System.Drawing.Size(24, 23); + this.buttonImagesDir.TabIndex = 12; + this.buttonImagesDir.Text = "..."; + this.buttonImagesDir.UseVisualStyleBackColor = true; + this.buttonImagesDir.Click += new System.EventHandler(this.buttonImagesDir_Click); + // + // textBoxImagesDir + // + this.textBoxImagesDir.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxImagesDir.Location = new System.Drawing.Point(120, 32); + this.textBoxImagesDir.Name = "textBoxImagesDir"; + this.textBoxImagesDir.Size = new System.Drawing.Size(518, 20); + this.textBoxImagesDir.TabIndex = 11; + // + // labelCommonKey + // + this.labelCommonKey.AutoSize = true; + this.labelCommonKey.Location = new System.Drawing.Point(6, 113); + this.labelCommonKey.Name = "labelCommonKey"; + this.labelCommonKey.Size = new System.Drawing.Size(100, 13); + this.labelCommonKey.TabIndex = 10; + this.labelCommonKey.Text = "Wii U Common key:"; + // + // textBoxCommonKey + // + this.textBoxCommonKey.Location = new System.Drawing.Point(120, 110); + this.textBoxCommonKey.Name = "textBoxCommonKey"; + this.textBoxCommonKey.Size = new System.Drawing.Size(216, 20); + this.textBoxCommonKey.TabIndex = 9; + this.textBoxCommonKey.TextChanged += new System.EventHandler(this.textBoxCommonKey_TextChanged); + // + // buttonBaseFrom + // + this.buttonBaseFrom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonBaseFrom.Location = new System.Drawing.Point(644, 160); + this.buttonBaseFrom.Name = "buttonBaseFrom"; + this.buttonBaseFrom.Size = new System.Drawing.Size(24, 23); + this.buttonBaseFrom.TabIndex = 8; + this.buttonBaseFrom.Text = "..."; + this.buttonBaseFrom.UseVisualStyleBackColor = true; + this.buttonBaseFrom.Click += new System.EventHandler(this.buttonBaseFrom_Click); + // + // buttonIniDir + // + this.buttonIniDir.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonIniDir.Location = new System.Drawing.Point(644, 56); + this.buttonIniDir.Name = "buttonIniDir"; + this.buttonIniDir.Size = new System.Drawing.Size(24, 23); + this.buttonIniDir.TabIndex = 7; + this.buttonIniDir.Text = "..."; + this.buttonIniDir.UseVisualStyleBackColor = true; + this.buttonIniDir.Click += new System.EventHandler(this.buttonIniDir_Click); + // + // buttonRomDir + // + this.buttonRomDir.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRomDir.Location = new System.Drawing.Point(644, 4); + this.buttonRomDir.Name = "buttonRomDir"; + this.buttonRomDir.Size = new System.Drawing.Size(24, 23); + this.buttonRomDir.TabIndex = 6; + this.buttonRomDir.Text = "..."; + this.buttonRomDir.UseVisualStyleBackColor = true; + this.buttonRomDir.Click += new System.EventHandler(this.buttonRomDir_Click); + // + // textBoxBaseFrom + // + this.textBoxBaseFrom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxBaseFrom.Location = new System.Drawing.Point(120, 162); + this.textBoxBaseFrom.Name = "textBoxBaseFrom"; + this.textBoxBaseFrom.Size = new System.Drawing.Size(518, 20); + this.textBoxBaseFrom.TabIndex = 5; + // + // textBoxIniDir + // + this.textBoxIniDir.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxIniDir.Location = new System.Drawing.Point(120, 58); + this.textBoxIniDir.Name = "textBoxIniDir"; + this.textBoxIniDir.Size = new System.Drawing.Size(518, 20); + this.textBoxIniDir.TabIndex = 4; + // + // textBoxRomDir + // + this.textBoxRomDir.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxRomDir.Location = new System.Drawing.Point(120, 6); + this.textBoxRomDir.Name = "textBoxRomDir"; + this.textBoxRomDir.Size = new System.Drawing.Size(518, 20); + this.textBoxRomDir.TabIndex = 3; + // + // checkBoxAskBase + // + this.checkBoxAskBase.AutoSize = true; + this.checkBoxAskBase.Location = new System.Drawing.Point(8, 226); + this.checkBoxAskBase.Name = "checkBoxAskBase"; + this.checkBoxAskBase.Size = new System.Drawing.Size(165, 17); + this.checkBoxAskBase.TabIndex = 2; + this.checkBoxAskBase.Text = "Ask for a base when injecting"; + this.checkBoxAskBase.UseVisualStyleBackColor = true; + this.checkBoxAskBase.CheckedChanged += new System.EventHandler(this.checkBoxAskBase_CheckedChanged); + // + // checkBoxIniDir + // + this.checkBoxIniDir.AutoSize = true; + this.checkBoxIniDir.Checked = true; + this.checkBoxIniDir.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxIniDir.Location = new System.Drawing.Point(8, 60); + this.checkBoxIniDir.Name = "checkBoxIniDir"; + this.checkBoxIniDir.Size = new System.Drawing.Size(86, 17); + this.checkBoxIniDir.TabIndex = 1; + this.checkBoxIniDir.Text = "INI directory:"; + this.checkBoxIniDir.UseVisualStyleBackColor = true; + // + // checkBoxRomDir + // + this.checkBoxRomDir.AutoSize = true; + this.checkBoxRomDir.Checked = true; + this.checkBoxRomDir.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxRomDir.Location = new System.Drawing.Point(8, 8); + this.checkBoxRomDir.Name = "checkBoxRomDir"; + this.checkBoxRomDir.Size = new System.Drawing.Size(97, 17); + this.checkBoxRomDir.TabIndex = 0; + this.checkBoxRomDir.Text = "ROM directory:"; + this.checkBoxRomDir.UseVisualStyleBackColor = true; + // + // _64InjectGUI + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(684, 549); + this.Controls.Add(this.tabControlMain); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(700, 588); + this.Name = "_64InjectGUI"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "64InjectGUI"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this._64InjectGUI_FormClosing); + this.groupBoxImages.ResumeLayout(false); + this.groupBoxImages.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBootDrc)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxBootTv)).EndInit(); + this.tabControlMain.ResumeLayout(false); + this.tabPageMain.ResumeLayout(false); + this.tabPageMain.PerformLayout(); + this.groupBoxGameLayout.ResumeLayout(false); + this.groupBoxGameLayout.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownZoom)).EndInit(); + this.tabPageConfig.ResumeLayout(false); + this.tabPageConfig.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonRom; + private System.Windows.Forms.Button buttonIni; + private System.Windows.Forms.TextBox textBoxShortName; + private System.Windows.Forms.Label labelRom; + private System.Windows.Forms.Label labelIni; + private System.Windows.Forms.Label labeShortName; + private System.Windows.Forms.Label labelProductCode; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.TextBox textBoxRom; + private System.Windows.Forms.TextBox textBoxIni; + private System.Windows.Forms.Button buttonInject; + private System.Windows.Forms.GroupBox groupBoxImages; + private System.Windows.Forms.Button buttonIcon; + private System.Windows.Forms.Button buttonBootTv; + private System.Windows.Forms.PictureBox pictureBoxBootTv; + private System.Windows.Forms.PictureBox pictureBoxIcon; + private System.Windows.Forms.TabControl tabControlMain; + private System.Windows.Forms.TabPage tabPageMain; + private System.Windows.Forms.TabPage tabPageConfig; + private System.Windows.Forms.Label labelCommonKey; + private System.Windows.Forms.TextBox textBoxCommonKey; + private System.Windows.Forms.Button buttonBaseFrom; + private System.Windows.Forms.Button buttonIniDir; + private System.Windows.Forms.Button buttonRomDir; + private System.Windows.Forms.TextBox textBoxBaseFrom; + private System.Windows.Forms.TextBox textBoxIniDir; + private System.Windows.Forms.TextBox textBoxRomDir; + private System.Windows.Forms.CheckBox checkBoxAskBase; + private System.Windows.Forms.CheckBox checkBoxIniDir; + private System.Windows.Forms.CheckBox checkBoxRomDir; + private System.Windows.Forms.TextBox textBoxLNLine2; + private System.Windows.Forms.TextBox textBoxLNLine1; + private System.Windows.Forms.CheckBox checkBoxLongName; + private System.Windows.Forms.Label labelTitleId; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog; + private System.Windows.Forms.CheckBox checkBoxImagesDir; + private System.Windows.Forms.Button buttonImagesDir; + private System.Windows.Forms.TextBox textBoxImagesDir; + private System.Windows.Forms.Panel panelValidKey; + private System.Windows.Forms.Label labelLoadedBase; + private System.Windows.Forms.Label labelBaseFrom; + private System.Windows.Forms.Panel panelLoadedBase; + private System.Windows.Forms.CheckBox checkBoxPackUpResult; + private System.Windows.Forms.PictureBox pictureBoxBootDrc; + private System.Windows.Forms.Button buttonBootDrc; + private System.Windows.Forms.Label labelBy; + private System.Windows.Forms.ComboBox comboBoxPlayers; + private System.Windows.Forms.ComboBox comboBoxReleased; + private System.Windows.Forms.Label labelPlayers; + private System.Windows.Forms.Label labelReleased; + private System.Windows.Forms.CheckBox checkBoxShowName; + private System.Windows.Forms.Button buttonTitleScreen; + private System.Windows.Forms.NumericUpDown numericUpDownZoom; + private System.Windows.Forms.Label labelZoom; + private System.Windows.Forms.CheckBox checkBoxWidescreen; + private System.Windows.Forms.CheckBox checkBoxDarkFilter; + private System.Windows.Forms.GroupBox groupBoxGameLayout; + } +} \ No newline at end of file diff --git a/64InjectGUI.cs b/64InjectGUI.cs new file mode 100644 index 0000000..69e0f85 --- /dev/null +++ b/64InjectGUI.cs @@ -0,0 +1,892 @@ +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Text; +using System.Windows.Forms; +using System.Xml; +using System.Drawing.Drawing2D; + +namespace _64Inject +{ + public partial class _64InjectGUI : Form + { + private _64Injector injector; + + private XmlDocument XmlConfig; + private XmlWriterSettings XmlSettings; + + private string ResultDir; + + public _64InjectGUI() + { + Cll.Log.SaveIn("64Inject_log.txt"); + Cll.Log.WriteLine(DateTime.UtcNow.ToString()); + Cll.Log.WriteLine("64Inject open in GUI mode."); + + injector = new _64Injector(); + + InitializeComponent(); + + this.Text = "64Inject " + _64Injector.Release; + + XmlSettings = new XmlWriterSettings + { + Indent = true, + IndentChars = " ", + NewLineChars = "\r\n", + NewLineHandling = NewLineHandling.Replace + }; + XmlConfig = new XmlDocument(); + + LoadXmlConfig(); + + if (NusContent.GetJavaVersion() == null) + MessageBox.Show("Warning! Apparently the system does not have Java installed!\n" + + "Java is needed to NUSPacker (encrypt) and JNUSTool (decrypt).", + "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); + else + { + StringBuilder sb = new StringBuilder(); + bool warning = false; + if (!File.Exists("resources\\nuspacker\\NUSPacker.jar")) + { + sb.AppendLine("Warning! \"resources\\nuspacker\\NUSPacker.jar\" not found!"); + sb.AppendLine("NUSPacker allows you to encrypt the result for WUPInstaller."); + sb.AppendLine(""); + warning = true; + } + if (!File.Exists("resources\\jnustool\\JNUSTool.jar")) + { + sb.AppendLine("Warning! \"resources\\jnustool\\JNUSTool.jar\" not found!"); + sb.AppendLine("JNUSTool allows you to decrypt Wii U VC games to use as a base."); + warning = true; + } + + if (warning) + MessageBox.Show(sb.ToString(), "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + + if (NusContent.CheckCommonKeyFiles()) + { + textBoxCommonKey.Enabled = false; + panelValidKey.BackgroundImage = Properties.Resources.checkmark_16; + } + else + { + textBoxCommonKey.Enabled = true; + panelValidKey.BackgroundImage = Properties.Resources.x_mark_16; + } + + labelLoadedBase.Text = "Base loaded: " + injector.LoadedBase; + if (injector.BaseIsLoaded) + panelLoadedBase.BackgroundImage = global::_64Inject.Properties.Resources.checkmark_16; + + if (File.Exists("resources\\boot.png")) + { + injector.BootTvImg.Frame = new Bitmap("resources\\boot.png"); + injector.BootDrcImg.Frame = new Bitmap("resources\\boot.png"); + } + + if (File.Exists("resources\\icon.png")) + injector.IconImg.Frame = new Bitmap("resources\\icon.png"); + + if (File.Exists("resources\\title_screen.png")) + { + injector.BootTvImg.TitleScreen = new Bitmap("resources\\title_screen.png"); + injector.BootDrcImg.TitleScreen = new Bitmap("resources\\title_screen.png"); + injector.IconImg.TitleScreen = new Bitmap("resources\\title_screen.png"); + } + + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + UpdateIconPictureBox(); + } + + private void _64InjectGUI_FormClosing(object sender, FormClosingEventArgs e) + { + SaveXmlConfig(); + Cll.Log.WriteLine("Close."); + Cll.Log.WriteLine("----------------------------------------------------------------"); + } + + #region Config + + private Stream CreateXmlConfig() + { + Stream xmlStream = new MemoryStream(); + XmlWriter config = XmlWriter.Create(xmlStream, XmlSettings); + + config.WriteStartElement("Config"); + + config.WriteStartElement("ROMDir"); + config.WriteAttributeString("type", "String"); + config.WriteValue(""); + config.WriteEndElement(); + config.WriteStartElement("INIDir"); + config.WriteAttributeString("type", "String"); + config.WriteValue(""); + config.WriteEndElement(); + config.WriteStartElement("ImagesDir"); + config.WriteAttributeString("type", "String"); + config.WriteValue(""); + config.WriteEndElement(); + + config.WriteStartElement("ROMDirCheck"); + config.WriteAttributeString("type", "Boolean"); + config.WriteValue("True"); + config.WriteEndElement(); + config.WriteStartElement("INIDirCheck"); + config.WriteAttributeString("type", "Boolean"); + config.WriteValue("True"); + config.WriteEndElement(); + config.WriteStartElement("ImagesDirCheck"); + config.WriteAttributeString("type", "Boolean"); + config.WriteValue("True"); + config.WriteEndElement(); + + config.WriteStartElement("BaseFrom"); + config.WriteAttributeString("type", "String"); + config.WriteValue(""); + config.WriteEndElement(); + config.WriteStartElement("BaseAsk"); + config.WriteAttributeString("type", "Boolean"); + config.WriteValue("False"); + config.WriteEndElement(); + config.WriteStartElement("PackUpResult"); + config.WriteAttributeString("type", "Boolean"); + config.WriteValue("False"); + config.WriteEndElement(); + config.WriteStartElement("ResultDir"); + config.WriteAttributeString("type", "String"); + config.WriteValue(""); + config.WriteEndElement(); + + config.WriteEndElement(); + + config.Close(); + xmlStream.Position = 0; + + return xmlStream; + } + + private void LoadXmlConfig() + { + if (File.Exists("resources\\gui_config")) + { + try + { + XmlConfig.Load("resources\\gui_config"); + + XmlNode nodeROMDir = XmlConfig.SelectSingleNode("Config/ROMDir"); + XmlNode nodeINIDir = XmlConfig.SelectSingleNode("Config/INIDir"); + XmlNode nodeImagesDir = XmlConfig.SelectSingleNode("Config/ImagesDir"); + + XmlNode nodeROMDirCheck = XmlConfig.SelectSingleNode("Config/ROMDirCheck"); + XmlNode nodeINIDirCheck = XmlConfig.SelectSingleNode("Config/INIDirCheck"); + XmlNode nodeImagesDirCheck = XmlConfig.SelectSingleNode("Config/ImagesDirCheck"); + + XmlNode nodeBaseFrom = XmlConfig.SelectSingleNode("Config/BaseFrom"); + XmlNode nodeBaseAsk = XmlConfig.SelectSingleNode("Config/BaseAsk"); + XmlNode nodePackUpResult = XmlConfig.SelectSingleNode("Config/PackUpResult"); + XmlNode nodeResultDir = XmlConfig.SelectSingleNode("Config/ResultDir"); + + textBoxRomDir.Text = nodeROMDir.InnerText; + textBoxIniDir.Text = nodeINIDir.InnerText; + textBoxImagesDir.Text = nodeImagesDir.InnerText; + + checkBoxRomDir.Checked = Convert.ToBoolean(nodeROMDirCheck.InnerText); + checkBoxIniDir.Checked = Convert.ToBoolean(nodeINIDirCheck.InnerText); + checkBoxImagesDir.Checked = Convert.ToBoolean(nodeImagesDirCheck.InnerText); + + textBoxBaseFrom.Text = nodeBaseFrom.InnerText; + checkBoxAskBase.Checked = Convert.ToBoolean(nodeBaseAsk.InnerText); + checkBoxPackUpResult.Checked = Convert.ToBoolean(nodePackUpResult.InnerText); + ResultDir = nodeResultDir.InnerText; + } + catch + { + XmlConfig.Load(CreateXmlConfig()); + } + } + else + { + XmlConfig.Load(CreateXmlConfig()); + } + } + + private void SaveXmlConfig() + { + if (!Directory.Exists("resources")) + Directory.CreateDirectory("resources"); + + XmlNode nodeROMDir = XmlConfig.SelectSingleNode("Config/ROMDir"); + XmlNode nodeINIDir = XmlConfig.SelectSingleNode("Config/INIDir"); + XmlNode nodeImagesDir = XmlConfig.SelectSingleNode("Config/ImagesDir"); + + XmlNode nodeROMDirCheck = XmlConfig.SelectSingleNode("Config/ROMDirCheck"); + XmlNode nodeINIDirCheck = XmlConfig.SelectSingleNode("Config/INIDirCheck"); + XmlNode nodeImagesDirCheck = XmlConfig.SelectSingleNode("Config/ImagesDirCheck"); + + XmlNode nodeBaseFrom = XmlConfig.SelectSingleNode("Config/BaseFrom"); + XmlNode nodeBaseAsk = XmlConfig.SelectSingleNode("Config/BaseAsk"); + XmlNode nodePackUpResult = XmlConfig.SelectSingleNode("Config/PackUpResult"); + XmlNode nodeResultDir = XmlConfig.SelectSingleNode("Config/ResultDir"); + + nodeROMDir.InnerText = textBoxRomDir.Text; + nodeINIDir.InnerText = textBoxIniDir.Text; + nodeImagesDir.InnerText = textBoxImagesDir.Text; + + nodeROMDirCheck.InnerText = checkBoxRomDir.Checked.ToString(); + nodeINIDirCheck.InnerText = checkBoxIniDir.Checked.ToString(); + nodeImagesDirCheck.InnerText = checkBoxImagesDir.Checked.ToString(); + + nodeBaseFrom.InnerText = textBoxBaseFrom.Text; + nodeBaseAsk.InnerText = checkBoxAskBase.Checked.ToString(); + nodePackUpResult.InnerText = checkBoxPackUpResult.Checked.ToString(); + nodeResultDir.InnerText = ResultDir; + + XmlWriter config = XmlWriter.Create("resources\\gui_config", XmlSettings); + XmlConfig.Save(config); + config.Close(); + } + + #endregion + + #region Main tab + + private void buttonRom_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "N64 ROM|*.z64;*.n64;*.v64;*.u64|All files|*.*"; + if (checkBoxRomDir.Checked && Directory.Exists(textBoxRomDir.Text)) + openFileDialog.InitialDirectory = textBoxRomDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.RomPath = openFileDialog.FileName; + textBoxRom.Text = injector.RomPath; + + if (injector.Rom != null) + injector.Rom.Dispose(); + + injector.Rom = new RomN64(injector.RomPath); + + if (injector.Rom.IsValid) + { + this.Text = "64Inject " + _64Injector.Release + " :: " + injector.Rom.Title; + labelProductCode.Text = "Product code: " + injector.Rom.ProductCode + + (injector.Rom.Version != 0 ? " (Rev " + injector.Rom.Revision + ")" : ""); + } + else + { + this.Text = "DSInject " + _64Injector.Release; + labelProductCode.Text = "Product code:"; + } + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.Rom.IsValid && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + + if (textBoxShortName.Text.Length > 0) + buttonInject.Enabled = true; + else + buttonInject.Enabled = false; + } + else + { + labelTitleId.Text = "Title ID:"; + buttonInject.Enabled = false; + } + } + } + + private void buttonIni_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "INI file|*.ini|All files|*.*"; + if (checkBoxIniDir.Checked && Directory.Exists(textBoxIniDir.Text)) + openFileDialog.InitialDirectory = textBoxIniDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.IniPath = openFileDialog.FileName; + textBoxIni.Text = injector.IniPath; + + if (!injector.LoadIni(injector.IniPath)) + { + buttonInject.Enabled = false; + labelTitleId.Text = "Title ID:"; + MessageBox.Show("The INI file is not valid.", + "64Inject", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + if (textBoxShortName.Text.Length > 0) + buttonInject.Enabled = true; + else + buttonInject.Enabled = false; + } + } + } + + private void textBoxShortName_TextChanged(object sender, EventArgs e) + { + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null) && + textBoxShortName.Text.Length > 0) + buttonInject.Enabled = true; + else + buttonInject.Enabled = false; + + UpdateBootName(); + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void checkBoxLongName_CheckedChanged(object sender, EventArgs e) + { + if (checkBoxLongName.Checked) + { + textBoxLNLine1.Enabled = true; + textBoxLNLine2.Enabled = true; + injector.BootTvImg.Longname = true; + injector.BootDrcImg.Longname = true; + } + else + { + textBoxLNLine1.Text = ""; + textBoxLNLine2.Text = ""; + textBoxLNLine1.Enabled = false; + textBoxLNLine2.Enabled = false; + injector.BootTvImg.Longname = false; + injector.BootDrcImg.Longname = false; + } + + UpdateBootName(); + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void textBoxLNLine1_TextChanged(object sender, EventArgs e) + { + UpdateBootName(); + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void textBoxLNLine2_TextChanged(object sender, EventArgs e) + { + UpdateBootName(); + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void checkBoxDarkFilter_CheckedChanged(object sender, EventArgs e) + { + injector.DarkFilter = checkBoxDarkFilter.Checked; + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + + private void checkBoxWidescreen_CheckedChanged(object sender, EventArgs e) + { + injector.Widescreen = checkBoxWidescreen.Checked; + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + + private void numericUpDownZoom_ValueChanged(object sender, EventArgs e) + { + injector.Scale = (float)(numericUpDownZoom.Value / 100.0M); + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + + private void buttonBootTv_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "Image file|*.png;*.jpg;*.bmp"; + if (checkBoxImagesDir.Checked && Directory.Exists(textBoxImagesDir.Text)) + openFileDialog.InitialDirectory = textBoxImagesDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.BootTvImg.Frame = new Bitmap(openFileDialog.FileName); + injector.BootTvImg.IsDefault = false; + UpdateBootTvPictureBox(); + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + } + + private void buttonBootDrc_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "Image file|*.png;*.jpg;*.bmp"; + if (checkBoxImagesDir.Checked && Directory.Exists(textBoxImagesDir.Text)) + openFileDialog.InitialDirectory = textBoxImagesDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.BootDrcImg.Frame = new Bitmap(openFileDialog.FileName); + injector.BootDrcImg.IsDefault = false; + UpdateBootDrcPictureBox(); + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + } + + private void buttonIcon_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "Image file|*.png;*.jpg;*.bmp"; + if (checkBoxImagesDir.Checked && Directory.Exists(textBoxImagesDir.Text)) + openFileDialog.InitialDirectory = textBoxImagesDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.IconImg.Frame = new Bitmap(openFileDialog.FileName); + injector.IconImg.IsDefault = false; + UpdateIconPictureBox(); + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + } + + private void comboBoxReleased_SelectedIndexChanged(object sender, EventArgs e) + { + switch (comboBoxReleased.SelectedItem.ToString()) + { + case "1996": + injector.BootTvImg.Released = 1996; + injector.BootDrcImg.Released = 1996; + break; + case "1997": + injector.BootTvImg.Released = 1997; + injector.BootDrcImg.Released = 1997; + break; + case "1998": + injector.BootTvImg.Released = 1998; + injector.BootDrcImg.Released = 1998; + break; + case "1999": + injector.BootTvImg.Released = 1999; + injector.BootDrcImg.Released = 1999; + break; + case "2000": + injector.BootTvImg.Released = 2000; + injector.BootDrcImg.Released = 2000; + break; + case "2001": + injector.BootTvImg.Released = 2001; + injector.BootDrcImg.Released = 2001; + break; + case "2002": + injector.BootTvImg.Released = 2002; + injector.BootDrcImg.Released = 2002; + break; + case "2018": + injector.BootTvImg.Released = 2018; + injector.BootDrcImg.Released = 2018; + break; + default: + injector.BootTvImg.Released = 0; + injector.BootDrcImg.Released = 0; + break; + } + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void comboBoxPlayers_SelectedIndexChanged(object sender, EventArgs e) + { + switch (comboBoxPlayers.SelectedItem.ToString()) + { + case "1": + injector.BootTvImg.Players = 1; + injector.BootDrcImg.Players = 1; + break; + case "2": + injector.BootTvImg.Players = 2; + injector.BootDrcImg.Players = 2; + break; + case "3": + injector.BootTvImg.Players = 3; + injector.BootDrcImg.Players = 3; + break; + case "4": + injector.BootTvImg.Players = 4; + injector.BootDrcImg.Players = 4; + break; + default: + injector.BootTvImg.Players = 0; + injector.BootDrcImg.Players = 0; + break; + } + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void checkBoxShowName_CheckedChanged(object sender, EventArgs e) + { + UpdateBootName(); + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + } + + private void buttonTitleScreen_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = "Image file|*.png;*.jpg;*.bmp"; + if (checkBoxImagesDir.Checked && Directory.Exists(textBoxImagesDir.Text)) + openFileDialog.InitialDirectory = textBoxImagesDir.Text; + else + openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + injector.BootTvImg.TitleScreen = new Bitmap(openFileDialog.FileName); + injector.BootDrcImg.TitleScreen = new Bitmap(openFileDialog.FileName); + injector.IconImg.TitleScreen = new Bitmap(openFileDialog.FileName); + + injector.BootTvImg.IsDefault = false; + injector.BootDrcImg.IsDefault = false; + injector.IconImg.IsDefault = false; + + UpdateBootTvPictureBox(); + UpdateBootDrcPictureBox(); + UpdateIconPictureBox(); + + if ((injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + } + } + } + + private void buttonInject_Click(object sender, EventArgs e) + { + bool _continue = true; + + if (textBoxShortName.Text.Length != 0) + injector.ShortName = textBoxShortName.Text; + else + { + _continue = false; + MessageBox.Show("The name of the game is empty.", + "Short name", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + if (_continue) + { + if (checkBoxLongName.Checked) + { + if (textBoxLNLine1.Text.Length != 0 && textBoxLNLine2.Text.Length != 0) + injector.LongName = textBoxLNLine1.Text + "\n" + textBoxLNLine2.Text; + else + { + _continue = false; + MessageBox.Show("The long name of the game is empty.", + "Long name", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else + injector.LongName = injector.ShortName; + } + + if (_continue && checkBoxAskBase.Checked) + { + _continue = AskBase(); + if (_continue) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + this.Update(); + } + else + { + labelTitleId.Text = "Title ID:"; + MessageBox.Show("The base was not loaded correctly.", + "64Inject", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + folderBrowserDialog.Description = "Select the folder where the result will be saved."; + folderBrowserDialog.SelectedPath = ResultDir; + if (_continue && folderBrowserDialog.ShowDialog() == DialogResult.OK) + { + injector.Encrypt = checkBoxPackUpResult.Checked; + injector.OutPath = folderBrowserDialog.SelectedPath + "\\" + injector.ShortNameASCII + " [" + injector.TitleId + "]"; + ResultDir = folderBrowserDialog.SelectedPath; + + if (Directory.Exists(injector.OutPath)) + if (Directory.GetDirectories(injector.OutPath).Length != 0 || + Directory.GetFiles(injector.OutPath).Length != 0) + { + _continue = false; + MessageBox.Show("The \"" + injector.OutPath + "\" folder exist and not empty.", + "64Inject", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + if (_continue) + { + Cll.Log.WriteLine("Injecting - - - - - - - - - - - - - - - - - - - - - - - - - - - "); + if (injector.BasePath != null) Cll.Log.WriteLine("base: " + injector.BasePath); + if (injector.ShortName != null) Cll.Log.WriteLine("name: " + injector.ShortName); + if (injector.LongName != null) Cll.Log.WriteLine("longname:\n" + injector.LongName); + if (injector.InPath != null) Cll.Log.WriteLine("in: " + injector.InPath); + if (injector.RomPath != null) Cll.Log.WriteLine("rom: " + injector.RomPath); + if (injector.IniPath != null) Cll.Log.WriteLine("ini: " + injector.IniPath); + if (injector.BootTvPath != null) Cll.Log.WriteLine("tv: " + injector.BootTvPath); + if (injector.BootDrcPath != null) Cll.Log.WriteLine("drc: " + injector.BootDrcPath); + if (injector.IconPath != null) Cll.Log.WriteLine("icon: " + injector.IconPath); + if (injector.OutPath != null) Cll.Log.WriteLine("out: " + injector.OutPath); + Cll.Log.WriteLine("encrypt: " + injector.Encrypt.ToString()); + Cll.Log.WriteLine("Please wait..."); + + if (injector.Inject()) + MessageBox.Show("Injection completed successfully!", + "64Inject", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + MessageBox.Show("The injection failed.\nCheck the log file \"" + Cll.Log.Filename + "\".", + "64Inject", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void UpdateBootName() + { + if (checkBoxShowName.Checked) + { + if (checkBoxLongName.Checked) + { + injector.BootTvImg.NameLine1 = textBoxLNLine1.Text; + injector.BootTvImg.NameLine2 = textBoxLNLine2.Text; + injector.BootDrcImg.NameLine1 = textBoxLNLine1.Text; + injector.BootDrcImg.NameLine2 = textBoxLNLine2.Text; + } + else + { + injector.BootTvImg.NameLine1 = textBoxShortName.Text; + injector.BootTvImg.NameLine2 = ""; + injector.BootDrcImg.NameLine1 = textBoxShortName.Text; + injector.BootDrcImg.NameLine2 = ""; + } + } + else + { + injector.BootTvImg.NameLine1 = ""; + injector.BootTvImg.NameLine2 = ""; + injector.BootDrcImg.NameLine1 = ""; + injector.BootDrcImg.NameLine2 = ""; + } + } + + private void UpdateBootTvPictureBox() + { + if (pictureBoxBootTv.Image != null) + pictureBoxBootTv.Image.Dispose(); + + pictureBoxBootTv.Image = injector.BootTvImg.Create(); + } + + private void UpdateBootDrcPictureBox() + { + if (pictureBoxBootDrc.Image != null) + pictureBoxBootDrc.Image.Dispose(); + + pictureBoxBootDrc.Image = injector.BootDrcImg.Create(); + } + + private void UpdateIconPictureBox() + { + if (pictureBoxIcon.Image != null) + pictureBoxIcon.Image.Dispose(); + + pictureBoxIcon.Image = injector.IconImg.Create(); + } + + #endregion + + #region Config tab + + private void buttonRomDir_Click(object sender, EventArgs e) + { + folderBrowserDialog.Description = "Select the folder where your N64 ROM collection is located."; + + if (Directory.Exists(textBoxRomDir.Text)) + folderBrowserDialog.SelectedPath = textBoxRomDir.Text; + else + folderBrowserDialog.SelectedPath = + Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + textBoxRomDir.Text = folderBrowserDialog.SelectedPath; + } + + private void buttonIniDir_Click(object sender, EventArgs e) + { + folderBrowserDialog.Description = "Select the folder where your INI file collection is located."; + + if (Directory.Exists(textBoxIniDir.Text)) + folderBrowserDialog.SelectedPath = textBoxIniDir.Text; + else + folderBrowserDialog.SelectedPath = + Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + textBoxIniDir.Text = folderBrowserDialog.SelectedPath; + } + + private void buttonImagesDir_Click(object sender, EventArgs e) + { + folderBrowserDialog.Description = "Select the folder where your image collection is located."; + + if (Directory.Exists(textBoxImagesDir.Text)) + folderBrowserDialog.SelectedPath = textBoxImagesDir.Text; + else + folderBrowserDialog.SelectedPath = + Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + textBoxImagesDir.Text = folderBrowserDialog.SelectedPath; + } + + private void textBoxCommonKey_TextChanged(object sender, EventArgs e) + { + if (NusContent.LoadKey(textBoxCommonKey.Text)) + { + textBoxCommonKey.Text = ""; + textBoxCommonKey.Enabled = false; + panelValidKey.BackgroundImage = Properties.Resources.checkmark_16; + } + else + { + textBoxCommonKey.Enabled = true; + panelValidKey.BackgroundImage = Properties.Resources.x_mark_16; + } + } + + private void buttonBaseFrom_Click(object sender, EventArgs e) + { + if ((AskBase() || injector.BaseIsLoaded || checkBoxAskBase.Checked) && + injector.RomIsLoaded && + (injector.IniIsLoaded || injector.IniPath == null)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + + if (textBoxShortName.Text.Length > 0) + buttonInject.Enabled = true; + else + buttonInject.Enabled = false; + } + else + { + labelTitleId.Text = "Title ID:"; + buttonInject.Enabled = false; + } + } + + private void checkBoxAskBase_CheckedChanged(object sender, EventArgs e) + { + if (injector.RomIsLoaded && + (injector.BaseIsLoaded || checkBoxAskBase.Checked)) + { + labelTitleId.Text = "Title ID: " + injector.TitleId; + if (textBoxShortName.Text.Length > 0) + buttonInject.Enabled = true; + else + buttonInject.Enabled = false; + } + else + { + labelTitleId.Text = "Title ID:"; + buttonInject.Enabled = false; + } + } + + private bool AskBase() + { + folderBrowserDialog.Description = "Select the folder of the N64 VC game you want to use as a base."; + + if (Directory.Exists(textBoxBaseFrom.Text)) + folderBrowserDialog.SelectedPath = textBoxBaseFrom.Text; + else + folderBrowserDialog.SelectedPath = + Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + { + labelLoadedBase.Text = "Base loaded: Wait..."; + panelLoadedBase.BackgroundImage = global::_64Inject.Properties.Resources.x_mark_16; + this.Update(); + + textBoxBaseFrom.Text = folderBrowserDialog.SelectedPath; + + Cll.Log.WriteLine("Loading base."); + if (injector.LoadBase(textBoxBaseFrom.Text)) + { + labelLoadedBase.Text = "Base loaded: " + injector.LoadedBase; + panelLoadedBase.BackgroundImage = global::_64Inject.Properties.Resources.checkmark_16; + Cll.Log.WriteLine("Base loaded: " + injector.LoadedBase); + return true; + } + else + { + labelLoadedBase.Text = "The base is not valid."; + panelLoadedBase.BackgroundImage = global::_64Inject.Properties.Resources.x_mark_16; + } + } + return false; + } + + #endregion + } +} diff --git a/64InjectGUI.resx b/64InjectGUI.resx new file mode 100644 index 0000000..2432372 --- /dev/null +++ b/64InjectGUI.resx @@ -0,0 +1,2662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 180, 17 + + + 17, 17 + + + + + AAABAAgAEBAAAAEAIABoBAAAhgAAABgYAAABACAAiAkAAO4EAAAgIAAAAQAgAKgQAAB2DgAAMDAAAAEA + IACoJQAAHh8AAEBAAAABACAAKEIAAMZEAABgYAAAAQAgAKiUAADuhgAAgIAAAAEAIAAoCAEAlhsBAAAA + AAABACAASC0AAL4jAgAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAA + AIgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAGAAAAiAAAABsAAAAgAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAsgBwDrYBwB/hxRA/wBAgBpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAATOC8C+pA5A/8wkwb/HFUT/AECAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAHBk6AvhyVAT/Lo4G/yFVi/4eXQX9AQMAbwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBJHTQC9xhJBP8WLL3+LYYi/x9fBP0BAwByAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYNKAX3Dxew/yFdQP8knkb+A3yd/QAE + BXUAAAABAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQwQGM/YSK5v+Pmxf/F5o + cvxrHQv9BAEAeAAAABkAAADVAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBCyEH9RxN + A/96QAP+qSIC/2cVAf4AAADpAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AD8PLwL1F0QK/01lXf4ZCAH/CAcAwQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAPARDSfQDGyL/gmUA/6eHGf8MCgCgAAAABAAAAGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABkAAADfAgIAnop1MP3bvVr/pYQT/wcGAMcAAAC7AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAADKAAAAWAAAAAEEAwBriHMr/XVbAP8CAgC9AAAACQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQICAKgCAQC9AAAACQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGIAAAC6AAAACQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAAEAAAAAAAAAAAAAAAAB// + AACD/wAAwf8AAMD/AADAPwAA4B8AAPAJAAD4AQAA/AMAAP4DAAD/AAAA/wAAAP4AAAD/YQAA/+MAAP/n + AAAoAAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQAAALMAAAAvAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAC2AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAMAAAAtgAAAC8AAAABAAAACAAAABwAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAMgGAQDYFAQA8A4e + Af0BAwDMAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAMOQHgL/pSQC/zmLBv8gYwT/AQMAzgAAABAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMI + AN+GPAP/nC4C/zGSBv8wkwb/H14R/wEDANAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgYRAfNaagX/iz4D/zCTBv8wkwb/IleI/iFl + Bf8BBADSAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwABAKMhPAL/blcE/y6NBv8oeQb/GTHY/i2GIv8iZwT/AQQA1QAAABMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAChHToC/w4r + Av8kbRL+FCHh/yVjbP8wkwb/ImkE/wEEANYAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAnhEzAv8eWwn/CQ5u/xs5xP8wkwb/MJMI/xR5 + U/0ABgjYAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAJsEBiv/Ex3k/wcNQ/8sixz+ErCk/QHA/v8BjLr/AwQF2gAAABcAAAAAAAAAAAAA + AAUAAAAxAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAGYAgMa/xIb + 1v8PP1T9TmJX+2NkbPpwV1j7fRoD/wYBANwAAAAYAAAABgAAAKwAAADyAAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAlQUHN/8YSgT/LnoF/34mAv6pIgL/qSIC/38a + Av8HAQDdAAAAtAAAAPcAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAJIRMwL+DCQC/y+CBf98MQL+qSIC/6UhAv8qCAD/AAAA9wAAAEgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACPETUC/hM7 + Av8gYBD+TXR2/S8SDP8EAwD/AQEAxQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAjAolC/4Iss/+AD5S/wYFAP+PbwD/bVQA/wEB + AK4AAAAGAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAIsAFx//AQEA/4lqAP/KoA//3sRq/3BZDP8BAQCvAAAABgAAAF0AAAD4AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAK0AAAD3AAAAjTMo + A/zcx4D/0Koo/9q9Wv9tVAD/AQEAzAAAAPgAAABqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAEAAAArQAAAPcAAABHAAAAAAAAAGEzKQX73cmF/8mdCP99YQD/AgEA/AAA + AGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA2gAA + AEYAAAAAAAAAAAAAAAAAAABhMycB+3hdAP8DAgD8AAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmwAA + APwAAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAA+AAAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACYAAAD4AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAABKAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAH///AI///wDAf/8A4D//APAf/wDgD/8A4Af/AOAD/wDwAf8A+AD/APwAYwD+AAMA/wAHAP+A + DwD/wA8A/+AGAP/wAAD/8AAA/+EBAP/jgwD/94cA//+PAP//HwD//x8AKAAAACAAAABAAAAAAQAgAAAA + AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAADEAAAAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAADSAAAAWAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAADSAAAAWAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABUAAADSAAAAWAAAAAAAAAAAAAAAAAAAAAcAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABUAAADSAAAAkQAAAK0AAADTAAEA7QABAPUAAABSAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkRAwD/WhIB/3kYAf9IYQT/ImcE/wEFAPkAAABVAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI4AAAD/AAAA5wAAACMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAA+QAAAOcAAAAjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAAPkAAADnAAAAIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNAAAA5gAA + ACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AB4AAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////j////8f////jn///8A////gH + ///4A///+AH///gA///wAH//+AA///wAH//+AA///wAD//+AAY//wAAH/+AAD//wAB//+AA///wAP//+ + AB7//wAM//+AAP//AAD//ggB//4cA//+Pgf///8P///+H////D////x////8/ygAAAAwAAAAYAAAAAEA + IAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAuAAAAIkAAAAIAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAO8AAAC4AAAACQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ADMAAADvAAAAuQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAyAAAA7wAAALYAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAO8AAAC5AAAACQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAADvAAAAuQAA + AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAyAAAA7wAAALYAAAAQAAAAHQAAAD4AAABrAAAAnAAAAMcAAADfAAAAPQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPIAAAD2AAAA/gAAAP8AAAD/AwEA/wQMAP8CBgD/AAAA9QAA + AD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAANYIAgD/Sg8B/20WAf+IGwL/hzID/y+P + Bv8ndgX/AwoA/wAAAPQAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAO0mCAD/qSIC/6ki + Av+pIgL/gEkD/zCTBv8wkwb/J3cF/wMJAP8AAAD1AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAA + APsmIwL/qCMC/6kiAv+pIgL/ZWEE/zCTBv8wkwb/MJMG/yd4Bf8DCwD/AAAA9wAAAEcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAALAAAAP8cTgP/my8C/6kiAv+pIgL/TXgF/zCTBv8wkwb/MJMG/zCTBv8ndg7+BAsA/wAA + APYAAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAP8iaAT/dlED/6kiAv+nJAL/PIcG/zCTBv8wkwb/MJMG/zCT + Bv8jXHz8KHoH/wQLAP8AAAD3AAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdgABAP8oewX/S3oF/6kiAv+fLAL/M5AG/zCT + Bv8wkwb/MJMG/zCSB/8aNdD9LYYi/yh8Bf8EDQD/AAAA+AAAAE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAP8WQwP/M44G/6Aq + Av+POgP/MJMG/zCTBv8wkwb/MJMG/y+OEf4WJvH+JWRs/zCTBv8pfQX/BA4B/wAAAPgAAABRAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAA + AMQAAQD/FUID/4BHA/94UAP/MJMG/zCTBv8rhQX/LIYF/yyBLP0VIP3/GzrF/zCTBv8wkwb/KX4F/wQN + AP8AAAD5AAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAsAAAC/AAAA/zUiAf9aagX/MJMG/yh7Bf8EDAD/EjcC/ydsWfsVIP7/FiP2/y6L + GP8wkwb/MJMG/yl/Bf8FDwD/AAAA+gAAAFYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAvQEAAP8XPAL/KHoF/wQMAP8JHAH/LYkG/yFR + k/sVIP7/FSD+/ydtV/8wkwb/MJMG/zCTBv8qgAX/BRAB/wAAAPoAAABaAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAL0AAAD/AgUA/wkc + Af8tiQb/MJMG/xYxivwEBzX/FB7w/x1Cs/8wkwb/MJMG/zCTBv8wkwb/KoEF/wUQAf8AAAD6AAAAXAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAkAAAC4AAAA/xI4Av8vkQb/JG8F/wIFA/8GCUr/FR/5/xcn7/8vjhL/MJMG/zCTBv8wkwb/MJMH/xuP + U/sAFx//AAAA+wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAIAAAAtgAAAP8OLAL/AgcA/wYJSf8UH/b/FSD+/xAZwv8ncSz/MJMG/zCT + Bv8vlAv+FqyP+gHA/f8Bq+P/ABgh/wAAAPsAAABiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAALUAAAD/AgMa/xQf8v8VIP7/DhWm/wAB + Bf8VOzj/MJMG/yyXG/0NtcH7AcD//wHA//8BwP//Aazk/wAYIP8AAAD7AAAAZQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAACwAAAA/wgM + Xv8NFKD/AAEF/wgNZ/8XKuT/Jpg/+wa44v0BwP//AcD//wHA//8BwP//A778/0hqevsYBQD/AAAA/AAA + AGcAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAADNAAAA+QAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAHAAAArgAAAP8AAAH/CA1j/xUg+/8WI/b+E0sr/AkXGf58STj5ek5I+G9YWfdiZW3zeVBL+Kki + A/+ZHwL/GQUA/wAAAPwAAABrAAAAAQAAAAAAAAAAAAAAEQAAANEAAAD/AAAA/wAAAKMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAK0AAAD/BwtY/xQf+P8LEYf/AAIB/xlNA/9FfwX9nysC/qki + Av+pIgL/qSIC/6kiAv+pIgL/mh8C/xkFAP8AAAD8AAAAbQAAAAEAAAARAAAAzwAAAP8AAAD/AAAA5AAA + AB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACoAAAA/wQGLf8AAQL/GUwD/zCT + Bv8vkQb/K0UD/pQgAv+pIgL/qSIC/6kiAv+pIgL/qSIC/5sfAv8bBgD/AAAA/QAAAHsAAADSAAAA/wAA + AP8AAADiAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAApgAA + AP8IGQH/Lo8G/y+RBv8TPAL/AQMA/zJjBP6YMgL9qSIC/6kiAv+pIgL/qSIC/6kiAv+cHwL/GwUA/wAA + AP8AAAD/AAAA/wAAAOIAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABQAAAKUAAAD/Dy4C/xM6Av8BAwD/Hl0E/zCTBv86hwb+ki4C/akiAv+pIgL/qSIC/6ki + Av+dIAL/HgYA/wAAAP8AAAD/AAAA5AAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAACgAAAA/wABAP8eWwT/MJMG/y6OBv8OKwL/ERYB/pA5 + A/2pIgL/qSIC/50gAv8eBgD/AAAA/wAAAP8AAADkAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAnQAAAP8OKwL/LYoG/w4q + Af8CBgD/JG4F/zCTJf1Ke4z8W19n/B0HAv8AAAD/AAAA/wAAAP8AAADXAAAAFAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AJ0AAAD/BAwA/wIGAP8kbgX/I59I/QS97v4Bs+7/ACQv/wAAAP8AAAD/FRAA/2VOAP8CAgD/AAAA0wAA + ABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAACXAAAA/gofAf8ZonX8Ar/7/wGy7P8AIi3/AAAA/wAAAP8XEgD/r4cA/8ea + AP92XAD/AwIA/wAAANMAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAADgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAlAAAAP8AM0P/Aavk/wAiLf8AAAD/AAAA/xcS + AP+vhwD/x5oA/8eaAP/HmgD/dlsA/wICAP8AAADUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA9AAA + AP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAJQAAAD+AAkL/wAA + AP8AAAD/FA8A/6+HAP/HmgD/x5oA/9KuMv/kz4X/0Kop/3RaAP8CAgD/AAAA1AAAABIAAAAAAAAAAAAA + AEAAAAD0AAAA/wAAAPkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABYAAADrAAAA/wAAAP8AAAD/EA0A/6qEAP/HmgD/1rRC//bw2P/dwWT/9e3S/82mH/92XAD/AwIA/wAA + ANQAAAAUAAAAQAAAAPUAAAD/AAAA+QAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEgAAANIAAAD/AAAA/wAAAOIAAABdAAAA9hMOAP+3mjn/9u/X/82lHP/HmgD/59OQ/9u+ + W//HmgD/dlwA/wICAP8AAADfAAAA9AAAAP8AAAD5AAAAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAASAAAA0AAAAP8AAAD/AAAA4wAAAB8AAAAAAAAARgAAAPcXFxb/sI4b/8ea + AP/ZulD/9/DZ/8uiE//HmgD/x5oA/1dDAP8AAAD/AAAA/wAAAPkAAABXAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAADTAAAA/wAAAP8AAADhAAAAHwAAAAAAAAAAAAAAAAAA + AEYAAAD2EQ0A/7mgR//28Nj/zaUc/8eaAP/HmgD/lXMA/wcGAP8AAAD/AAAA+QAAAFQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALEAAAD/AAAA/wAAAOEAAAAeAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABFAAAA9hcXFv+wjRn/x5oA/8eaAP+VcwD/CQcA/wAAAP8AAAD5AAAAVgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKUAAAD/AAAA4gAA + AB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQAAAPcTDgD/qoMA/5RzAP8IBgD/AAAA/wAA + APkAAABWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAgAAAA/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAD2DgsA/wcF + AP8AAAD/AAAA+QAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAB0AAAA/wAAAP8AAAD5AAAAVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAEEAAAD0AAAA/wAAAPkAAABWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAPUAAAD/AAAA+QAAAFMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAA9AAAAP8AAAD5AAAAVQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADqAAAA/wAAAPkAAABVAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAC8AAAA8AAA + AFIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAFAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAP//////8AAIf//////wAAw///////AADh//////8AAPD//////wAA+H7/////AAD8AH////8AAP4A + P////wAA/gAf////AAD+AA////8AAP4AB////wAA/gAD////AAD+AAH///8AAP4AAP///wAA/gAAf/// + AAD+AAA///8AAP8AAB///wAA/4AAD///AAD/wAAH//8AAP/gAAP//wAA//AAAf//AAD/+AAA/n8AAP/8 + AAA8PwAA//4AABg/AAD//wAAAD8AAP//gAAAfwAA///AAAD/AAD//+AAAf8AAP//8AAD/wAA///4AAP/ + AAD///wAAf8AAP///gAA/AAA////AAB4AAD///+AADAAAP///8AAAAAA////gAABAAD///8CAAMAAP// + /gcABwAA///+D4APAAD///4fwB8AAP///j/gPwAA//////B/AAD/////4P8AAP/////B/wAA/////4P/ + AAD/////B/8AAP////8P/wAA/////5//AAAoAAAAQAAAAIAAAAABACAAAAAAAABCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAMgAAAJAAAABWAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA+gAAAPEAAAA2AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAD6AAAA8QAA + ADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAXAAAAPoAAADxAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA+gAAAPEAAAA2AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAD6AAAA8gAA + ADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAXAAAAPoAAADyAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA+gAAAPIAAAA3AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFsAAAD6AAAA8gAA + ADcAAAAAAAAAAAAAAAAAAAAGAAAAFgAAADQAAABaAAAAjwAAALgAAAArAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAWwAAAPoAAADyAAAAggAAAKoAAADQAAAA6wAAAPoAAAD/AAAA/wAAAP8AAAD/AAAA7AAA + ACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAA/wAAAP8AAAD/AAAA/wAAAP8BAAD/CQIA/woR + Af8NJwL/BA4B/wAAAP8AAADtAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAAP8DAQD/OwwB/18T + Af99GQH/lB4C/6EgAv9IfQX/MJMG/yqBBf8FEAH/AAAA/wAAAO8AAAAxAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AFUAAAD/FQQA/6giAv+pIgL/qSIC/6kiAv+mJQL/OYsG/zCTBv8wkwb/K4IF/wURAf8AAAD/AAAA8AAA + ADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAACDAAAA/yMMAP+pIgL/qSIC/6kiAv+pIgL/nC4C/zGSBv8wkwb/MJMG/zCT + Bv8rgwX/BhIB/wAAAP8AAADwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArwAAAP8YMgL/oikC/6kiAv+pIgL/qSIC/4o+ + A/8wkwb/MJMG/zCTBv8wkwb/MJMG/yuDBf8GEwH/AAAA/wAAAPIAAAA3AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/G1MD/4ZC + A/+pIgL/qSIC/6kiAv9yVQT/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/KoEM/gYUAf8AAAD/AAAA8gAA + ADkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAADpAAAA/yNqBP9XbgX/qSIC/6kiAv+pIgL/Vm8F/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/yRf + dfsrhQb/BhQB/wAAAP8AAADzAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAARAAAA9wAAAP8pfAX/OYsG/6UmAv+pIgL/qSIC/0KCBf8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8aN8v8LYch/yyGBf8HFgH/AAAA/wAAAPQAAAA+AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAP8BBAD/LIgG/zCTBv+OPAP/qSIC/6Mo + Av82jQb/MJMG/zCTBv8wkwb/MJMG/zCTBv8vjw/+Fyfu/iVlaf8wkwb/LIYF/wcXAf8AAAD/AAAA9QAA + AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAD/AAAA/xZC + A/8wkgb/YWUE/6kiAv+XMgP/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/LYQm/BUh/f8bOsX/MJMG/zCT + Bv8shwX/CBgB/wAAAP8AAAD2AAAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAkwAAAP4AAAD/FUAD/z2FBv+nJAL/hEUD/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/yhw + UPsVIP7/FiT1/y6LGP8wkwb/MJMG/yyIBv8IGQH/AAAA/wAAAPYAAABGAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACQAAAA/gAAAP8VPgL/lDMD/2heBP4wkwb/MJMG/zCR + Bv8UPwL/CyMB/y+PBv8hVYv5FSD+/xUg/v8nblb/MJMG/zCTBv8wkwb/LYkG/wgaAf8AAAD/AAAA9wAA + AEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAI0AAAD+AAAA/0AT + Af9NdgX/MJMG/zCRBv8TOwL/AAAA/wYUAf8vjgb/HDzB+xUg/v8VIP7/HUK1/zCTBv8wkwb/MJMG/zCT + Bv8tiQb/CRsB/wAAAP8AAAD3AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAigAAAP4AAAD/FDoC/y+PBv8TOwL/AAAA/wURAf8rggX/MJEK/hcr5/0VIP7/FSD+/xcn + 7/8vjhH/MJMG/zCTBv8wkwb/MJMG/y2KBv8JHQH/AAAA/wAAAPgAAABOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACHAAAA/gAAAP8IFwH/AAAA/wYRAf8rggX/MJMG/y6I + HP0SHdD9CA1l/xQe8P8VIP7/KXZF/zCTBv8wkwb/MJMG/zCTBv8wkwb/LYsG/woeAf8AAAD/AAAA+AAA + AFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAIMAAAD+AAAA/wIG + AP8qgAX/MJMG/zCTBv8kbR/8AQIS/wAAAf8RGcj/FSD+/x5Ko/8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8tiwb/Ch8D/wAAAP8AAAD5AAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAA8QAAAP8BAQD/AAAA/wAA + AP8AAAD/AAAAlQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AFsAAAD/AAAA/wAAAP8AAAD/AAAAlQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADAAAADvAAAA/wAAAP8AAAD/AAAAlAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADvAAAA/wAAAP8AAAD/AAAAlAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADvAAAA/wAAAP8AAAD+AAAAlAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADvAAAA/wAA + AP8AAAD+AAAAlAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AA4AAADqAAAA/wAAAP8AAAD+AAAAlAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAfAAAA/QAAAP8AAAD+AAAAlAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAI0AAADjAAAAiAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAA//////////h//////////D/////////+H/////////8P/////////4f/////////w/ + /////////h//////////DgP///////+AAf///////8AA////////wAB////////AAD///////8AAH/// + ////wAAP///////AAAf//////4AAA///////gAAB//////+AAAD//////4AAAH//////gAAAP//////A + AAAf/////+AAAA//////8AAAB//////4AAAD//////wAAAH//////gAAAP//////AAAAf/////+AAAA/ + /////8AAAB/w////4AAAD+D////wAAAHwP////gAAAGA/////AAAAAH////+AAAAA/////8AAAAH//// + /8AAAA//////4AAAH//////wAAA///////gAAD///////AAAH//////+AAAP//////8AAAf4/////4AA + A/D/////wAAB4P/////gAADA/////+AAAAD/////wAAAAf////+AgAAD/////wHAAAf////+A+AAD/// + //wH8AAf/////A/4AD/////8H/wAf/////9//gD/////////Af////////4D/////////Af////////4 + D/////////Af////////4D/////////gf////////+D/////////////KAAAAGAAAADAAAAAAQAgAAAA + AACAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAAFAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAC6AAAA6wAA + ANQAAACdAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAALAAAAuQAAAP8AAAD/AAAA4AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAALkAAAD/AAAA/wAA + AOAAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAsAAAC8AAAA/wAAAP8AAADZAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAuQAAAP8AAAD/AAAA4AAA + ABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAADQAAALkAAAD/AAAA/wAAAOAAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAC8AAAA/wAAAP8AAADZAAAAIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAuQAAAP8AAAD/AAAA4AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAALkAAAD/AAAA/wAAAOAAAAAjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAsAAAC8AAAA/wAAAP8AAADaAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAuQAAAP8AAAD/AAAA4AAAABwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAA + ALkAAAD/AAAA/wAAAOAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAATAAAAJAAAAEgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAC8AAAA/wAAAP8AAADaAAAAIwAAAAAAAAAAAAAAAwAA + AAkAAAAVAAAANQAAAFkAAACDAAAAsQAAANkAAADrAAAA+gAAAP8AAADLAAAAGAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAuAAA + AP8AAAD/AAAA4gAAAHUAAACoAAAAzgAAAOgAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1AAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAALgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANYAAAAaAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAD0AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAAD/BQEA/wkCAP8cBQD/MwsA/x88A/8fXgT/JnQF/wwlAf8AAAD/AAAA/wAA + AP8AAADQAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAB0AAAD3AAAA/wAAAP8fBgD/QA0A/2QUAf+DGgL/lB4C/6QhAv+pIgL/pSYC/z2H + Bv8wkwb/MJMG/y+OBv8MJgH/AAAA/wAAAP8AAAD/AAAA2QAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAD8AAAA/wEAAP+YHgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/nysC/zGSBv8wkwb/MJMG/zCTBv8uiwb/Dy0C/wAAAP8AAAD/AAAA/wAA + ANsAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AFUAAAD/AAAA/wsCAP+iIAL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/jTwD/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/LowG/w0pAv8AAAD/AAAA/wAAAP8AAADWAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/xYIAP+lIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/eU8E/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+PBv8NKgH/AAAA/wAAAP8AAAD/AAAA3gAA + ABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMAAAD/AAAA/w0i + Af+aLwP/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/YGYE/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8ujQb/EDEC/wAAAP8AAAD/AAAA/wAAAN8AAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAANEAAAD/AAAA/xQ8Av94TwP/qSIC/6kiAv+pIgL/qSIC/6kiAv+oIwL/SHwF/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/Lo0G/w8uAv8AAAD/AAAA/wAAAP8AAADaAAAAJAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAOcAAAD/AAAA/x1XBP9OdwX/qSIC/6ki + Av+pIgL/qSIC/6kiAv+iKAL/PIgG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+O + Cf4PMAL/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA + APsAAAD/AAEA/yRwBf83jQb/nC0C/6kiAv+pIgL/qSIC/6kiAv+ZMQL/M5AG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/yVmZfktjAr/EjYC/wAAAP8AAAD/AAAA/wAAAOQAAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAP8AAAD/AQMA/yl9Bf8wkwb/fkoD/6kiAv+pIgL/qSIC/6ki + Av+GQwP/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJII/xs6w/sthiL/Lo4G/xAy + Av8AAAD/AAAA/wAAAP8AAADfAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgAAAP8AAAD/AgYA/y2K + Bv8wkwb/VXEF/6kiAv+pIgL/qSIC/6kiAv9sWgT+MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/L48P/hcr5/wlZmf/MJMG/y+QBv8RMwL/AAAA/wAAAP8AAAD/AAAA5wAAACQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAbAAAAP8AAAD/BQ8B/zCSBv8wkwb/N4wG/6MnAv+pIgL/qSIC/6kiAv9WbwX/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/LYcg/BUh/f4cPb7/MJMH/zCTBv8vjwb/EzoC/wAA + AP8AAAD/AAAA/wAAAOcAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgAAAP8AAAD/CBkB/zCRBv8wkwb/MZIG/4o+ + A/+pIgL/qSIC/6kiAv9DgQX/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/KXRI+hUg + /v8XJ+7/Logd/zCTBv8wkwb/Lo8G/xI2Av8AAQD/AAAA/wAAAP8AAADjAAAALwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtgAA + AP8AAAD/AAEA/xQ+Av8wkQb/MJMG/1trBf+pIgL/qSIC/6QnAv81jgb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/JF53+RUg/v8VIP7/J2tb/zCTBv8wkwb/MJMG/y+RBv8SOAL/AAAA/wAA + AP8AAAD/AAAA6gAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAOsAAAD/AAAA/wABAP8UPQP/L5AG/zuJBv+kJgL/qSIC/5Y0 + A/8ykQb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/HkWu+BUg/v8VIP7/HUSx/zCT + Bv8wkwb/MJMG/zCTBv8vjwb/FD8C/wAAAP8AAAD/AAAA/wAAAOsAAAAzAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAADpAAAA/wAA + AP8AAQD/FDwC/y+QBv+POgP/qSIC/4NFA/4wkwb/MJMG/zCTBv8wkwb/MJMG/y+RBv8tiwb/L5EG/zCT + Bv8wkQv9GTDa/BUg/v8VIP7/Fijs/y+OD/8wkwb/MJMG/zCTBv8wkwb/L5AG/xM7Av8AAQD/AAAA/wAA + AP8AAADnAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAwAAAA6AAAAP8AAAD/AAAA/xM4Av9oWwT/qSIC/2dgBP4wkwb/MJMG/zCT + Bv8wkwb/L5AG/xI2Av8BBAD/FkIC/zCTBv8tiB39Fyfv/RUg/v8VIP7/FSH8/yp3Qv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCSBv8UPQL/AAAA/wAAAP8AAAD/AAAA7QAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAOcAAAD/AAAA/wAA + AP8jKAL/oiMC/0x4Bf4wkwb/MJMG/zCTBv8ujgb/EjYC/wAAAP8AAAD/CRsB/zCTBv8qezr5FSD9/hUg + /v8VIP7/FSD+/x9Ko/8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8vkAb/FkMC/wABAP8AAAD/AAAA/wAA + AO4AAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACwAAADmAAAA/wAAAP8BAAD/PA8B/zuEBv8wkwb/MJMG/y+QBv8SNgL/AAEA/wAA + AP8CBwD/ImcF/zCTBv8kYm/3FSD+/xUg/v8VIP7/FSD+/xcr5f8vjw//MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/L5AG/xVAAv8AAQD/AAAA/wAAAP8AAADqAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAA5QAAAP8AAAD/AAAA/xE0 + Av8vkAb/L5AG/xE0Av8AAAD/AAAA/wEEAP8jawX/MJMG/zCTBv8fSaP5FSD+/xUg/v8VIP7/FSD+/xUg + /v8qezn/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8WQgP/AAEA/wAAAP8AAAD/AAAA8AAA + ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAKAAAAOMAAAD/AAAA/wAAAP8RMwL/ETUC/wAAAP8AAAD/AgcA/yNrBP8wkwb/MJMG/zCT + Bv8aNs75FB7y/xIb2v8VIPr/FSD+/xUg/v8iV4f/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8vkQb/GEgC/wABAP8AAAD/AAAA/wAAAPEAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAADiAAAA/wAAAP8AAAD/AAAA/wAA + AP8CBwD/IWYE/zCTBv8wkwb/MJMG/y+QDvwUI9f8BAc1/wAABP8LEYX/FSD+/xUg/v8ZMtb/L5EM/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/L5EG/xZEA/8BAgD/AAAA/wAAAP8AAADuAAAAQgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAkAAAA4QAAAP8AAAD/AAAA/wAAAP8iaAT/MJMG/zCTBv8wkwb/MJMG/yp+HPsECCX+AAAA/wAA + AP8HClX/FSD+/xUg/v8VIvn/LIEt/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCS + Bv8XRgP/AAEA/wAAAP8AAAD/AAAA8gAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAN4AAAD/AAAA/wAAAP8QMAL/LowG/zCT + Bv8wkwb/K4UF/wgYAf8AAAD/AAAA/wMEI/8SHOD/FSD+/xUg/v8VIP7/I1p//zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8lmz/4A2F3/QACAv8AAAD/AAAA/wAAAPMAAABGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACIAAADeAAAA/wAAAP8AAAD/Dy4C/y6OBv8rhQX/CR0B/wAAAP8AAAD/AwQi/xMc3v8VIP7/FSD+/xUg + /v8VIP7/GjfL/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMJ/h6kZPYDvvP9Ab78/wBg + gP8AAwT/AAAA/wAAAP8AAADwAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAQAAAAxQAAAP8AAAD/AAAA/wUOAf8tiAb/MJMG/zCTBv8wkwb/L48G/w8uAf8AAAD/AAAA/wIG + AP8qfgX/ZWEE+agjAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av9uFgH/BAEA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAiAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAMIAAAD/AAAA/wAAAP8JHQH/K4QF/zCT + Bv8ujQb/EDAC/wAAAP8AAAD/AwkA/yVwBf8wkwb/MZIG/19nBPqlJQL+qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+oIgL/Tg8B/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AA8AAADDAAAA/wAAAP8AAAD/CRwB/yuDBf8QMQL/AAAA/wAAAP8DCQH/I2wE/zCTBv8wkwb/MJMG/zCT + Bv9daAX6pCYC/qkiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv90FwL/CAIA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAIcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAvQAAAP8AAAD/AAAA/wIHAP8AAAD/AAAA/wIG + AP8lcAX/MJMG/zCTBv8wkwb/MJMG/yuGBv8PLQL/OyQC+qUkAv6pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/3gYAv8GAQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAiAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAA + ALsAAAD/AAAA/wAAAP8AAAD/AwkA/yVxBf8wkwb/MJMG/zCTBv8wkwb/KoEF/wYUAf8AAAD/AQMA/0hh + BPqhKQL+qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/dBcB/wUBAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAC8AAAA/wAAAP8AAAD/BhIB/yyEBf8wkwb/MJMG/zCT + Bv8qgQX/CBgB/wAAAP8AAAD/CBkB/y6NBv9NdwX7nysC/akiAv+pIgL/qSIC/6kiAv90FwL/CAIA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAtwAA + AP8AAAD/AAAA/wYUAP8rhAb/MJMG/yuFBv8GFAD/AAAA/wAAAP8IGAH/K4QG/zCTBv8wkwj/LpVm+EGE + nvlRdYf5YGdw+V4vJ/sGAQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPkAAABRAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAALQAAAD+AAAA/wAAAP8HFgH/JG8F/wYUAf8AAAD/AAAA/wgZ + Af8rhAX/MJMG/y6VEf0SsKT6AcD9/gHA//8BwP//AYSv/wAGCP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB + AP8EAwD/AAAA/wAAAP8AAAD1AAAAWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAC1AAAA/gAA + AP8AAAD/AQMA/wAAAP8AAAD/CBgB/yuEBv8wkwb/Kpgk/Au2yvsBwP//AcD//wHA//8BhK//AAkM/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AgIA/15IAP9+YQD/BwYA/wAAAP8AAAD/AAAA9gAAAFIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAIAAAArgAAAP8AAAD/AAAA/wAAAP8HFwH/LIQG/zCTBv8lnkT7Bbzo/QHA + //8BwP//AcD//wGHtP8ABgn/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQD/XkgA/8aZAP/HmgD/h2gA/wQD + AP8AAAD/AAAA/wAAAPkAAABSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAKsAAAD+AAAA/wAA + AP8FEQH/KH0I/xundPoDvvf+AcD//wHA//8BwP//AYOu/wAGCP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB + AP9kTQD/xZgA/8eaAP/HmgD/x5oA/4doAP8HBgD/AAAA/wAAAP8AAAD2AAAAWgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACMAAAAZAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAcAAACuAAAA/gAAAP8AAAD/AxYS/wGm2/8BwP//AcD//wHA//8Bg67/AAkM/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AgIA/15JAP/EmAD/x5oA/8eaAP/HmgD/x5oA/8eaAP+AYwD/BwYA/wAA + AP8AAAD/AAAA9gAAAFIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAaAAAAwgAAAPsAAADwAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAApwAAAP8AAAD/AAAA/wAT + GP8Bptz/AcD//wGHs/8ABgn/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQD/XkkA/8aZAP/HmgD/x5oA/8ea + AP/HmgD/x5oA/8eaAP/HmgD/h2gA/wQDAP8AAAD/AAAA/wAAAPoAAABSAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAADXAAAA/wAAAP8AAAD/AAAA9wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAACAAAAKQAAAD+AAAA/wAAAP8AFh7/AGyQ/wAGCP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB + AP9kTQD/xZgA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/4dpAP8HBgD/AAAA/wAA + AP8AAAD2AAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAANcAAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACmAAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AgIA/15JAP/EmAD/x5oA/8eaAP/HmgD/x5oA/8eaAP/LoRL/38Zv/+jV + lP/avFX/yZ4J/8eaAP+AZAD/BwYA/wAAAP8AAAD/AAAA9gAAAFMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAaAAAAzwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAFAAAAngAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/KSAA/8SYAP/HmgD/x5oA/8ea + AP/HmgD/x5oA/8yjFv/38Nn/////////////////9OzN/8uhEv/HmgD/h2kA/wQDAP8AAAD/AAAA/wAA + APoAAABSAAAAAAAAAAAAAAAAAAAAAAAAABQAAADXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAADtAAAANgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AQEA/048AP/ClgD/x5oA/8eaAP/HmgD/zaUd//fw2v/+/vz/6dic/9SyPP/iynr//fz4//Hl + vf/InAT/x5oA/4dpAP8HBgD/AAAA/wAAAP8AAAD2AAAAWwAAAAAAAAAAAAAAGwAAANcAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAO0AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA8wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAO8AAAD/AAAA/wAAAP9VQQD/wpYA/8eaAP/NpR3/9e3S///+ + /f/iy3z/yJsD/8eaAP/HmgH/6tqh/////v/Qqyz/x5oA/8eaAP+AZAD/BwYA/wAAAP8AAAD/AAAA9gAA + AFMAAAAcAAAAzwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAEwAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAhgAAABwAAADfAAAA/wAA + AP8AAAD/TjwA/8mhFv/38Nr///79/+LKfP/HmwL/x5oA/8eaAP/HmgD/5M6E///////YuEz/x5oA/8ea + AP/HmgD/h2kA/wQDAP8AAAD/AAAA/wAAAPoAAADmAAAA/wAAAP8AAAD/AAAA/wAAAP8AAADtAAAANgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAB+AAAAAwAAAAAAAAAiAAAA2AAAAP8AAAD/AQEA/2BdU//49/X/4st8/8ebAv/HmgD/x5oA/8ea + AP/SrjT/+/js//39+f/Oph//x5oA/8eaAP/HmgD/x5oA/4hpAP8IBgD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAO0AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA8wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAIUAAAADAAAAAAAAAAAAAAAAAAAAIgAAAN8AAAD/AAAA/wEB + Af9fVTT/w5cD/8eaAP/HmgD/x5oA/9CrK//69ef//v37/+HJd//HmgH/x5oA/8eaAP/HmgD/x5oA/8ea + AP9zWQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAEwAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAhQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABsAAADfAAAA/wAAAP8AAAD/TTwA/8WYAP/HmgD/0Ksr//v47f///vz/4sp6/8ea + AP/HmgD/x5oA/8eaAP/HmgD/x5oA/7eNAP8fGAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADtAAAANgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAUQAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAB+AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAA2AAAAP8AAAD/AQEA/008 + AP/OqjP/+vXm//7+/P/gyHT/x5sC/8eaAP/HmgD/x5oA/8eaAP/HmgD/sooA/x8YAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAO0AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA8wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAIQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAIgAAAN8AAAD/AAAA/wAAAP9pZ2H/+Pf1/+LLe//HmwL/x5oA/8eaAP/HmgD/x5oA/8ea + AP+xiQD/JRwA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAADfAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAhQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAADfAAAA/wAAAP8BAQH/V00s/8WZ + Af/HmgD/x5oA/8eaAP/HmgD/x5oA/7eNAP8eFwD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAANQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAD0AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAB9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAhAAAA2AAAAP8AAAD/AQEA/008Af/ClgD/x5oA/8eaAP/HmgD/sooA/x4YAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAADOAAAA/wAAAP8AAAD/AAAA/AAAAIQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAN8AAAD/AAAA/wAAAP9UQQD/wpYA/8ea + AP+xiQD/JBwA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAA1wAAAP8AAAD0AAAAegAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABoAAADfAAAA/wAAAP8AAAD/TTwA/7SLAP8eFwD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAANQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAA + AB8AAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAA1wAAAP8AAAD/AQEA/w0KAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOwAAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAA + AN4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAANQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAANgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOwAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAcAAAA0QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAADZAAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAANAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAANkAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOwAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAcAAAA0QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6wAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAADZAAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAAAANAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAANkAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOsAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6wAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAP8AAAD/AAAA/wAAAP8AAADrAAAAMwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAA + AO4AAAD/AAAA/wAAAOoAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAACNAAAAiwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////wP/ + /////////////4H//////////////8D//////////////+B///////////////A///////////////gf + //////////////wP//////////////4H//////////////8D//////////////+B///////////////A + ///////////////gf+D////////////wMAB////////////4AAA////////////8AAAf///////////+ + AAAP///////////+AAAH///////////+AAAD///////////+AAAB///////////+AAAA///////////+ + AAAAf//////////8AAAAP//////////8AAAAH//////////8AAAAD//////////8AAAAB//////////8 + AAAAA//////////8AAAAAf/////////8AAAAAP/////////8AAAAAH/////////8AAAAAD/////////+ + AAAAAB//////////AAAAAA//////////gAAAAAf/////////wAAAAAP/////////4AAAAAH///////// + 8AAAAAD/////////+AAAAAB//////////AAAAAA//////////gAAAAAf/////////wAAAAAP//////// + /4AAAAAH/////////8AAAAAD/////////+AAAAAB//////////AAAAAA//wf//////gAAAAAP/gf//// + //wAAAAAH/Af//////4AAAAAH+Af//////8AAAAAB8Af//////+AAAAAA4Af///////AAAAAAQA///// + ///gAAAAAAB////////wAAAAAAD////////4AAAAAAH////////8AAAAAAP////////+AAAAAAf///// + ////AAAAAA//////////gAAAAB//////////wAAAAD//////////4AAAAD//////////8AAAAB////// + ////+AAAAAf//////////AAAAAf//////////gAAAAP/8P///////wAAAAD/4P///////4AAAAD/wP// + /////8AAAAB/gP///////+AAAAAfAP////////AAAAAeAP////////gAAAAMAf////////AAAAAAA/// + /////+AAAAAAB////////8AIAAAAD////////4AcAAAAH////////wA+AAAAP////////AB/AAAAf/// + /////AD/gAAA////////+AH/wAAB////////+AP/4AAD////////+Af/8AAH/////////A//+AAP//// + /////h///AAf/////////////gA//////////////wB//////////////gD//////////////AH///// + ////////+AP/////////////8Af/////////////4A//////////////wB//////////////gD////// + ////////gH//////////////gP//////////////gf//////////////w////////////////////ygA + AACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACkAAAC8AAAAqQAAAGwAAAA1AAAAHQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAA + AP0AAADuAAAAuwAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwAAAABUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AEIAAADsAAAA/wAAAP8AAAD+AAAAwAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwAAA + ABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAA + AP8AAAD+AAAAwAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwAAAABUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AEIAAADsAAAA/wAAAP8AAAD+AAAAwAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwQAA + ABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwQAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAA + AP8AAAD+AAAAwQAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwQAAABUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AEIAAADsAAAA/wAAAP8AAAD+AAAAwQAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEIAAADsAAAA/wAAAP8AAAD+AAAAwQAA + ABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAEEAAADsAAAA/wAAAP8AAAD+AAAAwQAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAANAAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEEAAADsAAAA/wAA + AP8AAAD+AAAAwgAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAA + ABUAAAAjAAAAOwAAAGoAAACcAAAAyQAAAN0AAAClAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEEAAADsAAAA/wAAAP8AAAD+AAAAwgAAABYAAAAAAAAAAAAA + AAIAAAAPAAAAHQAAAC0AAABUAAAAhgAAALcAAADWAAAA5gAAAPQAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACqAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AEEAAADsAAAA/wAAAP8AAAD+AAAAxwAAAHIAAAChAAAAzAAAAN8AAADtAAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAACrAAAADAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEEAAADsAAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAACuAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAEIAAADyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BBAD/BAwA/wYUAf8IGQH/AQIA/wAAAP8AAAD/AAAA/wAAAP4AAACwAAAADgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAANsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AQAA/wkCAP8SBAD/HQUA/zYLAP9WEQH/chwB/zVvBP8rhAX/LowG/y+P + Bv8WRAL/AQIA/wAAAP8AAAD/AAAA/wAAAP4AAACzAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAWAAAA5wAAAP8AAAD/AAAA/xADAP8oCAD/Rw4B/2cVAf+GGwL/kx4C/50f + Av+mIQL/qSIC/6kiAv+cLgL/OYoG/zCTBv8wkwb/MJMG/y+QBv8XRgP/AQIA/wAAAP8AAAD/AAAA/wAA + AP4AAAC2AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAADzAAAA/wAA + AP8AAAD/cxcC/6giAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/5Q2A/8ykQb/MJMG/zCT + Bv8wkwb/MJMG/y+QBv8XSAP/AQIA/wAAAP8AAAD/AAAA/wAAAP4AAAC4AAAAEQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAP0AAAD/AAAA/wMBAP+LHAL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/fkoD/jCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+QBv8YSQP/AQIA/wAA + AP8AAAD/AAAA/wAAAP4AAAC6AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbAAAA/wAA + AP8AAAD/CwIA/5UeAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv9jYwT+MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+RBv8YSgP/AQMA/wAAAP8AAAD/AAAA/wAAAP4AAAC8AAAAEgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIUAAAD/AAAA/wAAAP8RBgD/myEC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qCMC/0p7Bf4wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+R + Bv8ZSwP/AQMA/wAAAP8AAAD/AAAA/wAAAP4AAAC9AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQAA + AP8AAAD/AAAA/woVAf+QNAP/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+iKQL/P4UF/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+RBv8ZTgP/AQMA/wAAAP8AAAD/AAAA/wAA + AP4AAAC/AAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADTAAAA/wAAAP8AAAD/DSgC/2heBP+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/5owAv83jAb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/y+RBv8aUAP/AQMA/wAAAP8AAAD/AAAA/wAAAP4AAADCAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA + AOAAAAD/AAAA/wAAAP8VQgL/Q4AF/6QmAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/jzoD/jGS + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+RBv8aUQP/AQMA/wAA + AP8AAAD/AAAA/wAAAP4AAADEAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAA7QAAAP8AAAD/AAAA/x5aBP81jgb/ljMD/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv92UQP+MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+QCf4bUwT/AQMA/wAAAP8AAAD/AAAA/wAAAP8AAADGAAAAGAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACkAAAD5AAAA/wAAAP8AAAD/JXIF/zCTBv9yVQP/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/1pr + Bf4wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/J29S+S+P + C/8cVQT/AQQA/wAAAP8AAAD/AAAA/wAAAP8AAADIAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQAAAP8AAAD/AAAA/wIGAP8pfgX/MJMG/0h8 + Bf+mJQL/qSIC/6kiAv+pIgL/qSIC/6kiAv+nJAL/RX8F/jCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTB/8dRqz5LYQm/y+RBv8cVgT/AQQA/wAAAP8AAAD/AAAA/wAA + AP8AAADKAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABxAAAA/wAAAP8AAAD/BA0B/yuFBf8wkwb/N4wG/5owAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6Ar + Av89hwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/L44R/Rkv + 2/0lZ2b/MJMG/y+RBv8cVwT/AQQA/wAAAP8AAAD/AAAA/wAAAP8AAADMAAAAHAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAAD/AAAA/wAAAP8HFAH/LowG/zCT + Bv8wkwb/fEwD/6kiAv+pIgL/qSIC/6kiAv+pIgL/mDID/zWPBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8thiH9Fyjs/Rw7wv8wkgn/MJMG/y+SBv8dWQT/AQUA/wAA + AP8AAAD/AAAA/wAAAP8AAADNAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAxQAAAP8AAAD/AAAA/woeAf8wkgb/MJMG/zCTBv9OdgX/qCMC/6kiAv+pIgL/qSIC/6ki + Av+IQQP+MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/yp8 + N/oVIfv+Fynr/y2HIP8wkwb/MJMG/y+SBv8dWwT/AQUA/wAAAP8AAAD/AAAA/wAAAP8AAADPAAAAHgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAADaAAAA/wAAAP8AAAD/EjUC/zCT + Bv8wkwb/MJMG/zqKBv+dLQL/qSIC/6kiAv+pIgL/qSIC/21aBP4wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/JWNs9xUg/v8VIP3/KHBT/zCTBv8wkwb/MJMG/zCS + Bv8eXAT/AQUA/wAAAP8AAAD/AAAA/wAAAP8AAADQAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAFgAAAOcAAAD/AAAA/wAAAP8PLwL/L48G/zCTBv8wkwb/MZIG/4REA/+pIgL/qSIC/6ki + Av+pIgL/U3IF/jCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8eSKf2FSD+/xUg/v8dQ7D/MJIH/zCTBv8wkwb/MJMG/zCSBv8eXQT/AgUA/wAAAP8AAAD/AAAA/wAA + AP8AAADSAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAA8gAAAP8AAAD/AAAA/wEC + AP8TOwL/L48G/zCTBv8wkwb/V28F/6giAv+pIgL/qSIC/6UmAv9CggX/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/L5EM/Rkz1PsVIP7/FSD+/xgs5P8uihn/MJMG/zCT + Bv8wkwb/MJMG/zCSBv8fXwT/AgYA/wAAAP8AAAD/AAAA/wAAAP8AAADUAAAAIgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAgAAAClAAAA/QAAAP8AAAD/AAAA/wEBAP8TOgL/L44G/zCTBv89hwX/oCoC/6ki + Av+pIgL/nS0C/zqKBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8uiRz8GCvn/BUg/v8VIP7/FSH7/yl4Q/8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8fYAT/AgcA/wAA + AP8AAAD/AAAA/wAAAP8AAADWAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAACjAAAA/QAA + AP8AAAD/AAAA/wABAP8SOAL/L44G/zKRBv+MPQP/qSIC/6kiAv+UNQP/MpEG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/yyALfsWI/f8FSD+/xUg/v8VIP7/H0ye/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8gYgT/AgcA/wAAAP8AAAD/AAAA/wAAAP8AAADYAAAAJQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAACfAAAA/QAAAP8AAAD/AAAA/wABAP8SNwL/Lo4G/2Bm + BP+pIgL/qSIC/4BIA/4wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/L48G/yh6Bf8qgQX/MJIG/zCT + Bv8wkwb/J21Y9hUg/v8VIP7/FSD+/xUg/v8YLt7/LowU/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCS + Bv8hYwT/AgcA/wAAAP8AAAD/AAAA/wAAAP8AAADYAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAkAAACdAAAA/QAAAP8AAAD/AAAA/wABAP8RNQL/Pn4F/6MoAv+pIgL/ZWEE/jCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/y6MBv8QMgL/AQMA/wQKAP8jbQT/MJMG/zCTBv8gUZP1FSD+/xUg/v8VIP7/FSD+/xUi + +P8rfTb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8hZAT/AggA/wAAAP8AAAD/AAAA/wAA + AP8AAADZAAAAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACaAAAA/AAAAP8AAAD/AAAA/wAB + AP8UMQL/kDED/6giAv9LeQX+MJMG/zCTBv8wkwb/MJMG/zCTBv8ujAb/DzAC/wABAP8AAAD/AAAA/xE1 + Av8wkwb/MJII/ho3yfgVIP7/FSD+/xUg/v8VIP7/FSD+/yJViv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCSBv8hZQT/AwgA/wAAAP8AAAD/AAAA/wAAAP8AAADbAAAAKQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAcAAACXAAAA/AAAAP8AAAD/AAAA/wABAP82DgD/myYC/z+EBf8wkwb/MJMG/zCT + Bv8wkwb/LowG/w8wAv8AAQD/AAAA/wAAAP8BAwD/Hl8E/zCTBv8uixb8GC3h/BUg/v8VIP7/FSD+/xUg + /v8VIP7/GTLW/y+PD/8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8hZwT/AwgA/wAA + AP8AAAD/AAAA/wAAAP8AAADcAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAACWAAAA/AAA + AP8AAAD/AAAA/wEAAP8tFgH/M4YG/zCTBv8wkwb/MJMG/y6MBv8PMAL/AAEA/wAAAP8AAAD/AQMA/xhK + A/8vkQb/MJMG/yyEJ/wWJfL8FSD+/xUg/v8VIP7/FSD+/xUg/v8WJfT/LIIs/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8iaAT/AwkA/wAAAP8AAAD/AAAA/wAAAP8AAADeAAAALQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAACUAAAA/AAAAP8AAAD/AAAA/wABAP8PLwL/LowG/zCT + Bv8ujAb/DzAC/wABAP8AAAD/AAAA/wEDAP8YSgP/L5AG/zCTBv8wkwb/KXVG9xUg/f4VIP7/FSD+/xUg + /v8VIP7/FSD+/xUg/v8jX3b/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCS + Bv8iagT/AwoA/wAAAP8AAAD/AAAA/wAAAP8AAADgAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAcAAACRAAAA/AAAAP8AAAD/AAAA/wABAP8PLwL/K4QG/w8wAv8AAQD/AAAA/wAAAP8BAwD/GEoD/y+R + Bv8wkwb/MJMG/zCTBv8jWn/0FSD+/xUg/v8VIP7/FSD+/xUg/v8VIP7/FSD+/xo2zP8wkQv/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCSBv8jawT/AwoA/wAAAP8AAAD/AAAA/wAA + AP8AAADhAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACNAAAA/AAAAP8AAAD/AAAA/wAB + AP8FDwH/AAEA/wAAAP8AAAD/AQMA/xlLA/8vkQb/MJMG/zCTBv8wkwb/MJMH/xw/uvQUHvL/CQ5y/wQH + O/8PFrL/FSD9/xUg/v8VIP7/Fyfv/y2FJf8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8jbAT/AwsA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAMgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAUAAACKAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEDAP8ZSwP/L5EG/zCT + Bv8wkwb/MJMG/zCTBv8vjhH7Fy7P+gYKUv8AAAH/AAAA/wIDGP8THeX/FSD+/xUg/v8VIP7/Jmhi/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8jbQT/BAsA/wAA + AP8AAAD/AAAA/wAAAP8AAADjAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAACHAAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/F0cD/y+RBv8wkwb/MJMG/zCTBv8wkwb/MJMG/yyDGPwIEUD8AAAB/wAA + AP8AAAD/AQIS/xIc4v8VIP7/FSD+/xUg/v8cPL//MJII/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8kbgT/BAsA/wAAAP8AAAD/AAAA/wAAAP8AAADlAAAANQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAACDAAAA+wAAAP8AAAD/AAAA/wAAAP8NKQH/LYkG/zCT + Bv8wkwb/MJMG/zCTBv8uiwb/Dy4D/wABAP8AAAD/AAAA/wABBf8LEYb/FSD8/xUg/v8VIP7/FSD+/xcp + 6f8tiB//MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y+T + CP4aeTj4ABAV/gAAAP8AAAD/AAAA/wAAAP8AAADmAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAB2AAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAEF/wsR + hP8VH/r/FSD+/xUg/v8VIP7/FSD+/xUg/v8THvD/BgpN/wAAAf8AAAD/AAAA/xEzDf8wkwb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8ulRD9FquM8wK/+P0BwP//AcD//wHA//8BwP//AcD//wHA//8BwP//AcD//wHA + //8Bmcv/ABQb/wAAAP8AAAD/AAAA/wAAAP8AAADrAAAAQQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAByAAAA+QAAAP8AAAD/AAAA/wAAAP8DBB3+Ex3j/xUg/v8VIP7/FSD+/xUg/v8VIP7/Ex7w/wYK + Tf8AAAH/AAAA/wAAAP8AAQb/ESWI/y+NE/8wkwb/MJMG/zCTBv8wkwb/K5gi+g20u/UBwP3+AcD//wHA + //8BwP//AcD//wHA//8BwP//AcD//wHA//8BwP//AcD//wHA//8Bms3/ABUc/wAAAP8AAAD/AAAA/wAA + AP8AAADsAAAAQgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAABvAAAA+QAAAP8AAAD/AAAA/wAA + AP8EBzj/Ex3m/xUg/v8VIP7/FSD+/xMe8P8GCk3/AAAB/wAAAP8AAAD/AAEF/wsRiP8VIvT/K34z/zCT + Bv8wkwb/MJMH/yWdPvYHutz5AcD//wHA//8BwP//AcD//wHA//8BwP//AcD//wHA//8BwP//AcD//wHA + //8BwP//AcD//wHA//8Bm87/ABYd/wAAAP8AAAD/AAAA/wAAAP8AAADtAAAARAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAmAAAAmAAAAMwAAACpAAAANgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABaAAAA9QAAAP8AAAD/AAAA/wAAAP8DBSv/Ehvb/xMe + 7/8GCkv/AAAB/wAAAP8AAAD/AQMA/xpRA/8vkQb/MJMG/zCTBv8wkwb/MJMG/0KCBvuVMwL7qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+RHQL/GwUA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAVwAAAAIAAAAAAAAAAQAAAEEAAADsAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAAQgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAABYAAAA9AAAAP8AAAD/AAAA/wAAAP8DBSf/BQg+/wAAAf8AAAD/AAAA/wEDAP8aUQP/L5EG/zCT + Bv8wkwb/MJMG/zCTBv8wkwb/Lo4G/zZoBfuJJgL8qCIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+SHQL/HAUA/wAAAP8AAAD/AAAA/wAA + AP8AAAD0AAAAWQAAAAMAAABCAAAA7AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAA + AEIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABWAAAA8wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAwD/GlED/y+RBv8wkwb/MJMG/zCTBv8wkwb/MJMG/y2KBv8OKwL/AQIA/woC + AP95HAL9qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+THQL/HgYA/wAAAP8AAAD/AAAA/wAAAP8AAAD1AAAAhAAAAOwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOwAAABCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAABUAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AQMA/xpRA/8vkQb/MJMG/zCT + Bv8wkwb/MJMG/zCTBv8tigb/DioB/wABAP8AAAD/AAAA/x0wAv2KPgP6qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+UHgL/HwYA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAAQgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABRAAAA8gAA + AP8AAAD/AAAA/wAAAP8DCwH/KHoF/zCTBv8wkwb/MJMG/zCTBv8wkwb/LYoG/w4pAf8AAQD/AAAA/wAA + AP8BAwD/IWUE/ziLBvyGQwP5qCMC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+VHgL/IAYA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAAEIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABPAAAA8QAAAP8AAAD/AAAA/wAAAP8HFQH/KHsF/zCT + Bv8wkwb/MJMG/y2KBv8OKgH/AAEA/wAAAP8AAAD/AQMA/xtTBP8vkQb/MJMG/zaNBv2BSAP4qCMC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+VHgL/FgQA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOwAAABCAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAABNAAAA8AAAAP8AAAD/AAAA/wAAAP8HEwD/KHoF/zCTBv8tigb/DikB/wABAP8AAAD/AAAA/wED + AP8bUwT/L5EG/zCTBv8wkwb/MJMG/zWPBv17TQP4qCMC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qCIC/30ZAv8LAgD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAADsAAAAQgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABKAAAA7wAAAP8AAAD/AAAA/wAA + AP8GEwD/JXEE/w4pAf8AAQD/AAAA/wAAAP8BAwD/G1ME/y+RBv8wkwb/MJMG/zCTBv8wkwb/MJMG/zOQ + Bv11UQP4pyMC/qkiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6gi + Av99GQL/DQIA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7AAAAEIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAABIAAAA7gAAAP8AAAD/AAAA/wAAAP8CBgD/AAEA/wAAAP8AAAD/AQMA/xtT + BP8vkQb/MJMG/zCTBv8wkwb/MJMG/zCTBv8tiQb/EjkC/wwbAf5gKQL4pyMC/qkiAv+pIgL/qSIC/6ki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+oIgL/fRkC/w0CAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAOwAAABCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABFAAAA7QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEDAP8bVAT/L5EG/zCTBv8wkwb/MJMG/zCTBv8wkwb/LYkG/w0n + Af8AAAD/AAAA/wcNAP5kUAP4piQC/qkiAv+pIgL/qSIC/6kiAv+pIgL/qSIC/6kiAv+pIgL/qCIC/30Z + Av8NAgD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAAQgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABDAAAA7QAAAP8AAAD/AAAA/wAAAP8AAAD/FkQD/y+R + Bv8wkwb/MJMG/zCTBv8wkwb/MJMG/y2JBv8NJwH/AAAA/wAAAP8AAAD/BA0A/y2DBf5iYwX4pSUC/qki + Av+pIgL/qSIC/6kiAv+pIgL/qSIC/6giAv99GQL/DQIA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA7AAAAEIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAABCAAAA7AAAAP8AAAD/AAAA/wAAAP8FEAD/JnUF/zCTBv8wkwb/MJMG/zCTBv8tiQb/DScB/wAA + AP8AAAD/AAAA/wEDAP8cVgT/MJIG/zGSBv9daQX5pCYC/akiAv+pIgL/qSIC/6kiAv+oIgL/fRkC/w0C + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABAAAAA6wAAAP8AAAD/AAAA/wAA + AP8FDwD/JnQF/zCTBv8wkwb/LYkG/w0nAf8AAAD/AAAA/wAAAP8BBAD/HFUE/y+RBv8wkwb/MJMG/y2V + GP0ulpf2PYil+Et7kPdZbXr4aF9k+GUvJvsNAgD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAA+AAAA6gAAAP8AAAD/AAAA/wAAAP8EDgD/JXMF/y2IBv8NJwH/AAAA/wAA + AP8AAAD/AQQA/xxWBP8vkQb/MJMG/zCTBv8omi37CrfO+gHA/v8BwP//AcD//wG//v8Bjr3/AA4S/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAACQAAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7AAAA6AAA + AP8AAAD/AAAA/wAAAP8EDQD/Ch0B/wAAAP8AAAD/AAAA/wEEAP8cVgT/L5EG/zCTBv8wkwj/IqBO+Qa7 + 5/wBwP//AcD//wHA//8Bv/7/AY69/wAOEv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8L + AP9AMQD/AgIA/wAAAP8AAAD/AAAA/wAAAPwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA5wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8BBAD/HFYE/y+RBv8wkwb/L5QM/hqoe/gCv/b9AcD//wHA//8BwP//Ab/+/wGOvP8ADhL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8PCwD/lHMA/8GWAP9WQgD/AgIA/wAAAP8AAAD/AAAA/wAA + APwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAA3AAAA5gAAAP8AAAD/AAAA/wAAAP8AAAD/AQQA/xxWBP8vkQb/MJMG/y2WGf0Rsar5Ar/8/gHA + //8BwP//AcD//wG//v8Bjrz/AA4S/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DwsA/5Rz + AP/GmgD/x5oA/8KXAP9WQgD/AgIA/wAAAP8AAAD/AAAA/wAAAPwAAACQAAAABgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAA5QAAAP8AAAD/AAAA/wAA + AP8CBgD/JGwE/zCTBv8omi77CrfP+wHA/v8BwP//AcD//wHA//8Bv/7/AY28/wAOEv8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8LAP+UcwD/xpoA/8eaAP/HmwD/x5oA/8KXAP9WQgD/AgIA/wAA + AP8AAAD/AAAA/wAAAPwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAzAAAA5AAAAP8AAAD/AAAA/wAAAP8ECwD/GnY1+wa85vwBwP//AcD//wHA + //8BwP//Ab/+/wGNvP8ADRL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8PCwD/lHMA/8aa + AP/HmgD/x5oA/8eaAP/HmgD/x5oA/8KXAP9WQgD/AgIA/wAAAP8AAAD/AAAA/wAAAPwAAACQAAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAACgAAAGgAAADAAAAAtAAAAEoAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAA4wAA + AP8AAAD/AAAA/wAAAP8ADhL/AY28/wG//v8BwP//AcD//wG//v8Bjbz/AA0S/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/DwsA/5RzAP/GmgD/x5oA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8KX + AP9WQgD/AgIA/wAAAP8AAAD/AAAA/wAAAPwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAACwAAAA/QAAAP8AAAD/AAAA+gAA + AHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAA4gAAAP8AAAD/AAAA/wAAAP8ADRL/AYy6/wG/ + /v8Bv/7/AY68/wAOEv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8LAP+UcwD/xpoA/8ea + AP/HmgD/x5oA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8KXAP9WQgD/AgIA/wAAAP8AAAD/AAAA/wAA + APwAAACQAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAOAAAAsAAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + ALAAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKgAAAALAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABeAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8JBwD/g2UA/8aZAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8qhEP/v4rf////+//7+ + /P/z6sr/482A/+zdqv/9+/b///7+/+jWl//ImwP/x5oA/8KXAP9XQwD/AgIA/wAAAP8AAAD/AAAA/wAA + APwAAACRAAAABgAAAAAAAAAAAAAAAAAAAA4AAACxAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACoAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAQwAA + AO0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8JBwD/g2UA/8aZ + AP/HmgD/x5oA/8eaAP/KoRD/7+K2/////v/+/fr/48x+/8mdCP/HmgD/yJsC/9u+XP/+/vv//fv1/9Gs + LP/HmgD/x5oA/8KXAP9XQwD/AgIA/wAAAP8AAAD/AAAA/wAAAPwAAACRAAAABwAAAAAAAAAOAAAAsQAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAqAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEMAAADtAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAADrAAAA0wAAAP4AAAD/AAAA/wAAAP8JBwD/g2UA/8aZAP/HmgD/yqEQ/+/itv////7//v36/+LL + ev/InAT/x5oA/8eaAP/HmgD/yqAO//jy3v//////482A/8eaAP/HmgD/x5oA/8KXAP9XRAD/AgIA/wAA + AP8AAAD/AAAA/wAAAPwAAACSAAAAFAAAALEAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AKgAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAARAAAAO0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOsAAABAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAUAAAAvwAAAP4AAAD/AAAA/wAAAP8IBwD/gWQA/8aZAP/HmgD/x5sB/9q7U//8+vP///////n1 + 5v/Trzb/x5oA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8eaAP+8kgD/PC4A/wEBAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAAqAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAEQAAADtAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAAAAQAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAvwAAAP4AAAD/AAAA/wAA + AP8IBwD/gmQA/8aZAf/au1P//Prz///////59eb/07A3/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/8ea + AP/HmgD/vJIA/zwuAP8BAQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKgAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABEAAAA7QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA6wAAAEAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAUAAAAvwAAAP4AAAD/AAAA/wAAAP8IBwD/jno1//r48f//////+fXm/9Ow + N//HmgD/x5oA/8eaAP/HmgD/x5oA/8eaAP/HmgD/x5oA/7ySAP88LgD/AQEA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAACnAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABoAAAA/AAAAP8AAAD/AAAA/wAAAP8AAADqAAAAPwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAUAAAAvwAAAP4AAAD/AAAA/wAAAP8IBwD/gWQA/8aZAP/HmgD/u5EA/zsu + AP8BAQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKcAAAALAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACQAAAA8wAA + AP8AAAD9AAAA2gAAADwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAvwAA + AP4AAAD/AAAA/wAAAP8IBgD/gWQA/7qQAP87LgD/AQEA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACnAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAlAAAATgAAAD4AAAASAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAvwAAAP4AAAD/AAAA/wAAAP8IBgD/JRwA/wEB + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAApwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAATAAAAvwAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AKcAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAvwAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAACnAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAiAAAA6QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAApgAA + AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAALQAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKYAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAA8AAAC0AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAACmAAAACgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAtAAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAApgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAADwAAALQAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKYAAAAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAC0AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAACmAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAPAAAAtAAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAApQAAAAoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAALUAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAKUAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AA8AAAC1AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAClAAAACgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAtAAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAApAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AIAAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKQAAAAKAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAA1AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAACkAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAYAAADUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAApAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAD+AAAA/wAAAP8AAAD/AAAA/QAA + AKMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAACwAAAKUAAAD1AAAA/wAAAPMAAACaAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAACUAAAAuAAAAIwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + /////////////wH///////////////////8A////////////////////gH///////////////////8A/ + ///////////////////gH///////////////////8A////////////////////gH//////////////// + ///8A////////////////////gH///////////////////8A////////////////////gH////////// + /////////8A////////////////////gH///////////////////8A////////////////////gH//// + ///////////////8A//+P////////////////gH/gB////////////////8AwAAP//////////////// + gAAAB////////////////8AAAAP////////////////gAAAB////////////////8AAAAP////////// + //////AAAAB////////////////wAAAAP///////////////8AAAAB////////////////AAAAAP//// + ///////////wAAAAB///////////////8AAAAAP//////////////+AAAAAB///////////////gAAAA + AP//////////////4AAAAAB//////////////+AAAAAAP//////////////gAAAAAB////////////// + 4AAAAAAP/////////////+AAAAAAB//////////////AAAAAAAP/////////////wAAAAAAB//////// + /////8AAAAAAAP/////////////AAAAAAAB/////////////wAAAAAAAP////////////+AAAAAAAB// + ///////////wAAAAAAAP////////////+AAAAAAAB/////////////wAAAAAAAP////////////+AAAA + AAAB/////////////wAAAAAAAP////////////+AAAAAAAB/////////////wAAAAAAAP/////////// + /+AAAAAAAB/////////////wAAAAAAAP////////////+AAAAAAAB/////////////wAAAAAAAP///// + ///////+AAAAAAAB/////////////wAAAAAAAH////////////+AAAAAAAA/////////////wAAAAAAA + H////////////+AAAAAAAA/////////////wAAAAAAAH///f////////+AAAAAAAA//+A/////////wA + AAAAAAH//AP////////+AAAAAAAA//gB/////////wAAAAAAAH/wAf////////+AAAAAAAA/4AH///// + ////wAAAAAAAH8AB/////////+AAAAAAAA+AA//////////wAAAAAAAHAAP/////////+AAAAAAAAgAH + //////////wAAAAAAAAAD//////////+AAAAAAAAAB///////////wAAAAAAAAA///////////+AAAAA + AAAAf///////////wAAAAAAAAP///////////+AAAAAAAAH////////////wAAAAAAAD//////////// + +AAAAAAAB/////////////wAAAAAAA/////////////+AAAAAAAf/////////////wAAAAAAP/////// + //////+AAAAAAB//////////////wAAAAAAP/////////////+AAAAAAB//////////////4AAAAAAP/ + /////////////AAAAAAB//////////////4AAAAAAP//////////////AAAAAAB//8D//////////4AA + AAAAP/+A///////////AAAAAAB//AP//////////4AAAAAAP/gD///////////AAAAAAB/wA//////// + ///4AAAAAAP4AP///////////AAAAAAB8AD///////////wAAAAAAOAB///////////4AAAAAABAA/// + ////////8AAAAAAAAAf//////////+AAAAAAAAAP///////////AAIAAAAAAH///////////gAHAAAAA + AD///////////wAD4AAAAAB///////////4AB/AAAAAA///////////8AA/4AAAAAf//////////+AAf + /AAAAAP///////////gAP/4AAAAH///////////wAH//AAAAD///////////8AD//4AAAB////////// + //AB///AAAA////////////4A///4AAAf///////////+Af///AAAP////////////wf///4AAH///// + /////////////AAD//////////////////4AB///////////////////AA///////////////////gAf + //////////////////wAP//////////////////4AH//////////////////8AD///////////////// + /+AB///////////////////AA///////////////////gAf//////////////////wAP//////////// + //////4AH//////////////////+AD///////////////////AB///////////////////wA//////// + ///////////+Af///////////////////gP///////////////////8H//////////////////////// + //+JUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYAACAASURBVHic7Z13eFzFuf8/5+yuVtKq + y5Jl496opkMIqYCpCSGBcFO4gZSbDoGQm5489+aXhJDn3hRKuAkhoYRACKYYbIOxKQmhBJKAbTDNxg13 + SVYvu3vO/P4YyU1bzuyeXW15P8+j8EQ+c85I2u/3vPPOzDuWUgpBEMoTe7w7IAjC+CEGIAiCIBQtYeBK + 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 + f9gAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/64Injector.cs b/64Injector.cs new file mode 100644 index 0000000..6a6d555 --- /dev/null +++ b/64Injector.cs @@ -0,0 +1,700 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Imaging; +using System.IO; +using System.Text; +using System.Xml; + +namespace _64Inject +{ + public class _64Injector + { + public const string Release = "1.4 debug"; //CllVersionReplace "major.minor stability" + + public string BasePath; + public string ShortName; + public string LongName; + public bool DarkFilter; + public bool Widescreen; + public string Zoom; + public string InPath; + public string RomPath; + public string IniPath; + public string BootTvPath; + public string BootDrcPath; + public string IconPath; + public string OutPath; + public bool Encrypt; + + private VCN64 _base; + public RomN64 Rom; + private byte[] _ini; + public float Scale; + public BootImage BootTvImg; + public BootImage BootDrcImg; + public IconImage IconImg; + + public bool BaseIsLoaded + { + get { return _base != null; } + } + + public bool RomIsLoaded + { + get { return Rom != null && Rom.IsValid; } + } + + public bool IniIsLoaded + { + get { return _ini != null; } + } + + public string LoadedBase + { + get + { + if (_base != null) + return _base.ToString(); + else + return ""; + } + } + + public string ShortNameASCII + { + get + { + char[] array = Useful.Windows1252ToASCII(ShortName, '_').ToCharArray(); + char[] invalid = Path.GetInvalidFileNameChars(); + + for (int i = 0; i < array.Length; i++) + { + foreach (char c in invalid) + { + if (array[i] == c) + array[i] = '_'; + } + } + + return new string(array); + } + } + + public string TitleId + { + get + { + ulong crc; + + if (BaseIsLoaded) + crc = _base.HashCRC32; + else + crc = Cll.Security.ComputeCRC32(new byte[] { }, 0, 0); + + if (RomIsLoaded) + crc += Rom.HashCRC32; + else + crc += Cll.Security.ComputeCRC32(new byte[] { }, 0, 0); + crc >>= 1; + + if (IniIsLoaded) + crc += Cll.Security.ComputeCRC32(_ini, 0, _ini.Length); + else + crc += Cll.Security.ComputeCRC32(new byte[] { }, 0, 0); + crc >>= 1; + + byte[] b = BitConverter.GetBytes((uint)crc); + UInt16 id = (UInt16)((((b[3] << 8) + (b[2])) + ((b[1] << 8) + (b[0]))) >> 1); + + int flags = 0; + flags |= DarkFilter ? 0x80 : 0; + flags |= Widescreen ? 0x40 : 0; + flags |= Scale != 1.0F ? 0x20 : 0; + flags |= IconImg.IsDefault ? 0 : 0x10; + flags |= BootTvImg.IsDefault ? 0 : 8; + flags |= BootDrcImg.IsDefault ? 0 : 4; + + return "0005000064" + id.ToString("X4") + ((byte)(flags)).ToString("X2"); + } + } + + + public _64Injector() + { + BasePath = null; + ShortName = null; + LongName = null; + DarkFilter = true; + Widescreen = false; + Zoom = null; + InPath = null; + RomPath = null; + IniPath = null; + IconPath = null; + BootTvPath = null; + BootDrcPath = null; + OutPath = null; + Encrypt = true; + + _base = GetLoadedBase(); + Rom = null; + _ini = null; + Scale = 1.0F; + BootTvImg = new BootImage(); + BootDrcImg = new BootImage(); + IconImg = new IconImage(); + } + + public bool Inject() + { + _base = GetLoadedBase(); + bool _continue = BaseIsLoaded; + Cll.Log.WriteLine("The base is ready: " + _continue.ToString()); + + if (_continue) + _continue = InjectGameLayout(); + + if (_continue) + _continue = InjectImages(); + + if (_continue) + _continue = InjectMeta(); + + if (_continue) + _continue = InjectRom(); + + if (_continue) + { + if (Encrypt) + { + Cll.Log.WriteLine("Creating encrypted output."); + string inPath = Environment.CurrentDirectory + "\\base"; + _continue = NusContent.Encrypt(inPath, OutPath); + } + else + { + Cll.Log.WriteLine("Creating unencrypted output."); + _continue = Useful.DirectoryCopy("base", OutPath, true); + } + } + + if (_continue) + Cll.Log.WriteLine("Injection completed successfully!"); + else + Cll.Log.WriteLine("The injection failed.\nCheck the log file \"" + Cll.Log.Filename + "\"."); + + return _continue; + } + + private bool InjectGameLayout() + { + FileStream fs = null; + try + { + Cll.Log.WriteLine("Editing \"FrameLayout.arc\" file."); + + byte darkFilterB = (byte)(DarkFilter ? 1 : 0); + byte[] widescreenB = Widescreen ? + new byte[] { 0x44, 0xF0, 0, 0 } : + new byte[] { 0x44, 0xB4, 0, 0 }; + byte[] scaleB = BitConverter.GetBytes(Scale); + + byte[] magic = new byte[4]; + uint offset = 0; + uint size = 0; + byte[] offsetB = new byte[4]; + byte[] sizeB = new byte[4]; + byte[] nameB = new byte[0x18]; + + fs = File.Open("base\\content\\FrameLayout.arc", FileMode.Open); + fs.Read(magic, 0, 4); + + if (magic[0] == 'S' && + magic[1] == 'A' && + magic[2] == 'R' && + magic[3] == 'C') + { + fs.Position = 0x0C; + fs.Read(offsetB, 0, 4); + offset = (uint)(offsetB[0] << 24 | + offsetB[1] << 16 | + offsetB[2] << 8 | + offsetB[3]); + fs.Position = 0x38; + fs.Read(offsetB, 0, 4); + offset += (uint)(offsetB[0] << 24 | + offsetB[1] << 16 | + offsetB[2] << 8 | + offsetB[3]); + + fs.Position = offset; + fs.Read(magic, 0, 4); + + if (magic[0] == 'F' && + magic[1] == 'L' && + magic[2] == 'Y' && + magic[3] == 'T') + { + fs.Position = offset + 0x04; + fs.Read(offsetB, 0, 4); + offsetB[0] = 0; + offsetB[1] = 0; + offset += (uint)(offsetB[0] << 24 | + offsetB[1] << 16 | + offsetB[2] << 8 | + offsetB[3]); + fs.Position = offset; + + while (true) + { + fs.Read(magic, 0, 4); + fs.Read(sizeB, 0, 4); + size = (uint)(sizeB[0] << 24 | + sizeB[1] << 16 | + sizeB[2] << 8 | + sizeB[3]); + + if (magic[0] == 'p' && + magic[1] == 'i' && + magic[2] == 'c' && + magic[3] == '1') + { + fs.Position = offset + 0x0C; + fs.Read(nameB, 0, 0x18); + int count = Array.IndexOf(nameB, (byte)0); + string name = Encoding.ASCII.GetString(nameB, 0, count); + + if (name == "frame") + { + fs.Position = offset + 0x44;//Scale + fs.WriteByte(scaleB[3]); + fs.WriteByte(scaleB[2]); + fs.WriteByte(scaleB[1]); + fs.WriteByte(scaleB[0]); + fs.Position = offset + 0x48;//Scale + fs.WriteByte(scaleB[3]); + fs.WriteByte(scaleB[2]); + fs.WriteByte(scaleB[1]); + fs.WriteByte(scaleB[0]); + fs.Position = offset + 0x4C;//Widescreen + fs.Write(widescreenB, 0, 4); + } + else if (name == "frame_mask") + { + fs.Position = offset + 0x08;//Dark filter + fs.WriteByte(darkFilterB); + } + else if (name == "power_save_bg") + { + Cll.Log.WriteLine("\"FrameLayout.arc\" file editing successfully."); + return true; + } + + offset += size; + fs.Position = offset; + } + else if (offset + size >= fs.Length) + { + } + else + { + offset += size; + fs.Position = offset; + } + } + } + } + fs.Close(); + } + catch { Cll.Log.WriteLine("Error editing \"FrameLayout.arc\"."); } + finally { if (fs != null) fs.Close(); } + + return false; + } + + private bool InjectImages() + { + string currentDir = Environment.CurrentDirectory; + Bitmap bootTvImg; + Bitmap bootDrcImg; + Bitmap iconImg; + Bitmap tmp; + Graphics g; + + try + { + Cll.Log.WriteLine("Creating bitmaps."); + + if (BootTvPath != null) + tmp = new Bitmap(BootTvPath); + else + tmp = BootTvImg.Create(); + bootTvImg = new Bitmap(1280, 720, PixelFormat.Format24bppRgb); + g = Graphics.FromImage(bootTvImg); + g.DrawImage(tmp, new Rectangle(0, 0, 1280, 720)); + g.Dispose(); + tmp.Dispose(); + + if (BootDrcPath != null) + tmp = new Bitmap(BootDrcPath); + else + tmp = BootDrcImg.Create(); + bootDrcImg = new Bitmap(854, 480, PixelFormat.Format24bppRgb); + g = Graphics.FromImage(bootDrcImg); + g.DrawImage(tmp, new Rectangle(0, 0, 854, 480)); + g.Dispose(); + tmp.Dispose(); + + if (IconPath != null) + tmp = new Bitmap(IconPath); + else + tmp = IconImg.Create(); + iconImg = new Bitmap(128, 128, PixelFormat.Format32bppArgb); + g = Graphics.FromImage(iconImg); + g.DrawImage(tmp, new Rectangle(0, 0, 128, 128)); + g.Dispose(); + tmp.Dispose(); + + Cll.Log.WriteLine("Bitmaps created."); + } + catch + { + Cll.Log.WriteLine("Error creating bitmaps."); + return false; + } + + if (!NusContent.ConvertToTGA(bootTvImg, currentDir + "\\base\\meta\\bootTvTex.tga")) + { + Cll.Log.WriteLine("Error creating \"bootTvTex.tga\" file."); + return false; + } + if (!NusContent.ConvertToTGA(bootDrcImg, currentDir + "\\base\\meta\\bootDrcTex.tga")) + { + Cll.Log.WriteLine("Error creating \"bootDrcTex.tga\" file."); + return false; + } + if (!NusContent.ConvertToTGA(iconImg, currentDir + "\\base\\meta\\iconTex.tga")) + { + Cll.Log.WriteLine("Error creating \"iconTex.tga\" file."); + return false; + } + + Cll.Log.WriteLine("Injected TGA files."); + + return true; + } + + private bool InjectMeta() + { + string titleId = TitleId; + byte[] id = Useful.StrHexToByteArray(titleId, ""); + + XmlWriterSettings xmlSettings = new XmlWriterSettings + { + Encoding = new UTF8Encoding(false), + Indent = true, + IndentChars = " ", + NewLineChars = "\n", + NewLineHandling = NewLineHandling.Replace + }; + + XmlDocument xmlApp = new XmlDocument(); + XmlDocument xmlMeta = new XmlDocument(); + + try + { + Cll.Log.WriteLine("Editing \"app.xml\" and \"meta.xml\" files."); + + xmlApp.Load("base\\code\\app.xml"); + xmlMeta.Load("base\\meta\\meta.xml"); + + XmlNode app_title_id = xmlApp.SelectSingleNode("app/title_id"); + XmlNode app_group_id = xmlApp.SelectSingleNode("app/group_id"); + + XmlNode meta_product_code = xmlMeta.SelectSingleNode("menu/product_code"); + XmlNode meta_title_id = xmlMeta.SelectSingleNode("menu/title_id"); + XmlNode meta_group_id = xmlMeta.SelectSingleNode("menu/group_id"); + XmlNode meta_longname_en = xmlMeta.SelectSingleNode("menu/longname_en"); + XmlNode meta_shortname_en = xmlMeta.SelectSingleNode("menu/shortname_en"); + + app_title_id.InnerText = titleId; + app_group_id.InnerText = "0000" + id[5].ToString("X2") + id[6].ToString("X2"); + + meta_product_code.InnerText = "WUP-N-" + Rom.ProductCode; + meta_title_id.InnerText = titleId; + meta_group_id.InnerText = "0000" + id[5].ToString("X2") + id[6].ToString("X2"); + meta_longname_en.InnerText = LongName; + meta_shortname_en.InnerText = ShortName; + + XmlWriter app = XmlWriter.Create("base\\code\\app.xml", xmlSettings); + XmlWriter meta = XmlWriter.Create("base\\meta\\meta.xml", xmlSettings); + + xmlApp.Save(app); + xmlMeta.Save(meta); + + app.Close(); + meta.Close(); + + Cll.Log.WriteLine("\"app.xml\" and \"meta.xml\" files editing successfully."); + + return true; + } + catch + { + Cll.Log.WriteLine("Error editing \"app.xml\" and \"meta.xml\" files."); + } + + return false; + } + + private bool InjectRom() + { + bool injected = true; + + try + { + Cll.Log.WriteLine("Empty \"base\\content\\config\" folder."); + Directory.Delete("base\\content\\config", true); + Directory.CreateDirectory("base\\content\\config"); + + Cll.Log.WriteLine("Injecting INI data."); + if (IniIsLoaded) + { + FileStream fs = File.Open("base\\content\\config\\U" + Rom.ProductCodeVersion + ".z64.ini", FileMode.Create); + fs.Write(_ini, 0, _ini.Length); + fs.Close(); + Cll.Log.WriteLine("INI injected."); + } + else + { + File.Create("base\\content\\config\\U" + Rom.ProductCodeVersion + ".z64.ini").Close(); + Cll.Log.WriteLine("An empty INI injected."); + } + + Cll.Log.WriteLine("Empty \"base\\content\\rom\" folder."); + Directory.Delete("base\\content\\rom", true); + Directory.CreateDirectory("base\\content\\rom"); + + Cll.Log.WriteLine("Injecting ROM."); + if (RomN64.ToBigEndian(RomPath, "base\\content\\rom\\U" + Rom.ProductCodeVersion + ".z64")) + { + Cll.Log.WriteLine("Injected ROM."); + } + else + { + Cll.Log.WriteLine("ROM not injected, \"ToBigEndian\" failed."); + injected = false; + } + } + catch + { + Cll.Log.WriteLine("Error injecting ROM."); + injected = false; + } + + return injected; + } + + + #region Loads + + public bool LoadBase(string path) + { + if (Directory.Exists("base")) + { + Directory.Delete("base", true); + Cll.Log.WriteLine("Previous base deleted."); + } + + if (IsValidBase(path)) + { + Cll.Log.WriteLine("The \"" + path + "\" folder contains a valid base."); + Useful.DirectoryCopy(path, "base", true); + } + else if (IsValidEncryptedBase(path)) + { + Cll.Log.WriteLine("The \"" + path + "\" folder contains a valid encrypted base."); + NusContent.Decrypt(path, "base"); + } + else + Cll.Log.WriteLine("The \"" + path + "\" folder not contains a valid base."); + + _base = GetLoadedBase(); + + return BaseIsLoaded; + } + + public bool LoadIni(string filename) + { + FileStream fs = File.Open(filename, FileMode.Open); + _ini = new byte[fs.Length]; + fs.Read(_ini, 0, _ini.Length); + fs.Close(); + + if (Useful.IsUTF8(_ini)) + return true; + else + { + _ini = null; + return false; + } + } + + private VCN64 GetLoadedBase() + { + if (IsValidBase("base")) + { + FileStream fs = File.Open("base\\code\\VESSEL.rpx", FileMode.Open); + uint hash = Cll.Security.ComputeCRC32(fs); + fs.Close(); + + if (hash == VCN64.DonkeyKong64.HashCRC32) + return VCN64.DonkeyKong64; + else if (hash == VCN64.Ocarina.HashCRC32) + return VCN64.Ocarina; + else if (hash == VCN64.PaperMario.HashCRC32) + return VCN64.PaperMario; + else if (hash == VCN64.Kirby64.HashCRC32) + return VCN64.Kirby64; + else if (hash == VCN64.MarioTennis.HashCRC32) + return VCN64.MarioTennis; + else if (hash == VCN64.MarioGolf.HashCRC32) + return VCN64.MarioGolf; + else if (hash == VCN64.StarFox64.HashCRC32) + return VCN64.StarFox64; + else if (hash == VCN64.SinAndP.HashCRC32) + return VCN64.SinAndP; + else if (hash == VCN64.MarioKart64.HashCRC32) + return VCN64.MarioKart64; + else if (hash == VCN64.YoshiStory.HashCRC32) + return VCN64.YoshiStory; + else if (hash == VCN64.WaveRace64.HashCRC32) + return VCN64.WaveRace64; + else if (hash == VCN64.Majora.HashCRC32) + return VCN64.Majora; + else if (hash == VCN64.PokemonSnap.HashCRC32) + return VCN64.PokemonSnap; + else if (hash == VCN64.MarioParty2.HashCRC32) + return VCN64.MarioParty2; + else if (hash == VCN64.OgreBattle64.HashCRC32) + return VCN64.OgreBattle64; + else if (hash == VCN64.Excitebike64.HashCRC32) + return VCN64.Excitebike64; + else if (hash == VCN64.FZeroX.HashCRC32) + return VCN64.FZeroX; + else + { + Cll.Log.WriteLine("The base is valid but was not defined in the program code."); + return new VCN64(hash, "", "**Unidentified**"); + } + } + else + return null; + } + + #endregion + + #region Validations + + private bool IsValidBase(string path) + { + if (File.Exists(path + "\\code\\app.xml") && + File.Exists(path + "\\code\\cos.xml") && + File.Exists(path + "\\code\\VESSEL.rpx") && + Directory.Exists(path + "\\content\\config") && + Directory.Exists(path + "\\content\\rom") && + File.Exists(path + "\\content\\BuildInfo.txt") && + File.Exists(path + "\\content\\config.ini") && + File.Exists(path + "\\content\\FrameLayout.arc") && + File.Exists(path + "\\meta\\iconTex.tga") && + File.Exists(path + "\\meta\\bootTvTex.tga") && + File.Exists(path + "\\meta\\bootDrcTex.tga") && + File.Exists(path + "\\meta\\meta.xml")) + return true; + else + { + Cll.Log.WriteLine("The base is invalid."); + Cll.Log.WriteLine("Some of the following files or folders are missing:"); + Cll.Log.WriteLine(path + "\\code\\app.xml"); + Cll.Log.WriteLine(path + "\\code\\cos.xml"); + Cll.Log.WriteLine(path + "\\code\\VESSEL.rpx"); + Cll.Log.WriteLine(path + "\\content\\config"); + Cll.Log.WriteLine(path + "\\content\\rom"); + Cll.Log.WriteLine(path + "\\content\\BuildInfo.txt"); + Cll.Log.WriteLine(path + "\\content\\config.ini"); + Cll.Log.WriteLine(path + "\\content\\FrameLayout.arc"); + Cll.Log.WriteLine(path + "\\meta\\iconTex.tga"); + Cll.Log.WriteLine(path + "\\meta\\bootTvTex.tga"); + Cll.Log.WriteLine(path + "\\meta\\bootDrcTex.tga"); + Cll.Log.WriteLine(path + "\\meta\\meta.xml"); + return false; + } + } + + private bool IsValidEncryptedBase(string path) + { + string titleId = NusContent.CheckEncrypted(path); + if (titleId != null && + NusContent.CheckCommonKeyFiles() && + File.Exists("resources\\jnustool\\JNUSTool.jar")) + { + string name = NusContent.JNUSToolWrapper(path, 400, 32768, titleId, "/code/cos.xml"); + + if (name != null && File.Exists(name + "\\code\\cos.xml")) + { + XmlDocument xmlCos = new XmlDocument(); + xmlCos.Load(name + "\\code\\cos.xml"); + XmlNode cos_argstr = xmlCos.SelectSingleNode("app/argstr"); + + Directory.Delete(name, true); + + if (cos_argstr.InnerText == "VESSEL.rpx") + return true; + else + { + Cll.Log.WriteLine("\"" + path + "\" does not contain a N64 Wii U VC game."); + return false; + } + } + else if (name != null) + { + Cll.Log.WriteLine("The NUS CONTENT does not contains \"cos.xml\" file."); + Directory.Delete(name, true); + return false; + } + else + { + Cll.Log.WriteLine("JNUSToolWrapper could not decipher the NUS CONTENT."); + return false; + } + } + else + { + Cll.Log.WriteLine("Some of the following files are missing:"); + Cll.Log.WriteLine(path + "\\title.tmd"); + Cll.Log.WriteLine(path + "\\title.tik"); + Cll.Log.WriteLine(path + "\\title.cert"); + return false; + } + } + + public bool IsValidCode(string code) + { + if (code.Length == 4) + { + foreach (char c in code) + { + if ((c < 'A' || c > 'Z') && (c < '0' || c > '9')) + return false; + } + } + else + return false; + + return true; + } + + #endregion + } +} diff --git a/BootImage.cs b/BootImage.cs new file mode 100644 index 0000000..ad2cfae --- /dev/null +++ b/BootImage.cs @@ -0,0 +1,247 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; + +namespace _64Inject +{ + public class BootImage : IDisposable + { + private bool disposed = false; + + private Bitmap _frame; + private Bitmap _titleScreen; + + public Bitmap Frame + { + set + { + if (_frame != null) + _frame.Dispose(); + _frame = value; + } + get { return _frame; } + } + public Bitmap TitleScreen + { + set + { + if (_titleScreen != null) + _titleScreen.Dispose(); + _titleScreen = value; + } + get { return _titleScreen; } + } + public string NameLine1; + public string NameLine2; + public int Released; + public int Players; + public bool Longname; + public bool IsDefault; + + public BootImage() + { + _frame = null; + _titleScreen = null; + NameLine1 = null; + NameLine2 = null; + Released = 0; + Players = 0; + Longname = false; + IsDefault = true; + } + + ~BootImage() + { + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + if (Frame != null) + { + Frame.Dispose(); + Frame = null; + } + if (TitleScreen != null) + { + TitleScreen.Dispose(); + TitleScreen = null; + } + } + disposed = true; + } + } + + public Bitmap Create() + { + Bitmap img = new Bitmap(1280, 720); + Graphics g = Graphics.FromImage(img); + g.PixelOffsetMode = PixelOffsetMode.Half; + //g.InterpolationMode = InterpolationMode.NearestNeighbor; + g.SmoothingMode = SmoothingMode.AntiAlias; + g.CompositingMode = CompositingMode.SourceOver; + g.CompositingQuality = CompositingQuality.HighQuality; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + + GraphicsPath nl1 = new GraphicsPath(); + GraphicsPath nl2 = new GraphicsPath(); + GraphicsPath r = new GraphicsPath(); + GraphicsPath p = new GraphicsPath(); + + Font font = new Font("Trebuchet MS", 10.0F, FontStyle.Regular, GraphicsUnit.Point); + Rectangle rectangleNL1 = Longname ? new Rectangle(578, 313, 640, 50) : new Rectangle(578, 340, 640, 50); + Rectangle rectangleNL2 = new Rectangle(578, 368, 640, 50); + Rectangle rectangleR = new Rectangle(586, 450, 250, 40); + Rectangle rectangleP = new Rectangle(586, 496, 200, 40); + SolidBrush brush = new SolidBrush(Color.FromArgb(32, 32, 32)); + Pen outlineBold = new Pen(Color.FromArgb(222, 222, 222), 5.0F); + Pen shadowBold = new Pen(Color.FromArgb(190, 190, 190), 7.0F); + Pen outline = new Pen(Color.FromArgb(222, 222, 222), 4.0F); + Pen shadow = new Pen(Color.FromArgb(190, 190, 190), 6.0F); + StringFormat format = new StringFormat(); + + g.Clear(Color.White); + + if (Frame == null) + { + GraphicsPath vc = new GraphicsPath(); + GraphicsPath n = new GraphicsPath(); + GraphicsPath sf = new GraphicsPath(); + GraphicsPath sfi = new GraphicsPath(); + + Font fontVC = new Font("Arial", 10.0F, FontStyle.Regular, GraphicsUnit.Point); + Font fontN64 = new Font("Arial Black", 10.0F, FontStyle.Regular, GraphicsUnit.Point); + Rectangle rectangleVC = new Rectangle(60, 105, 400, 50); + Rectangle rectangleN = new Rectangle(575, 239, 350, 60); + Rectangle rectangle64 = new Rectangle(902, 234, 72, 60); + Rectangle rectangle64I = new Rectangle(1075, 645, 150, 40); + SolidBrush brushVC = new SolidBrush(Color.FromArgb(147, 149, 152)); + SolidBrush brushN = new SolidBrush(Color.FromArgb(42, 65, 152)); + SolidBrush brush64 = new SolidBrush(Color.FromArgb(230, 0, 18)); + SolidBrush brush64I = new SolidBrush(Color.FromArgb(213, 213, 213)); + Pen outline64I = new Pen(Color.FromArgb(150, 150, 150), 2.0F); + + g.Clear(Color.FromArgb(226, 226, 226)); + g.FillRectangle(new SolidBrush(Color.FromArgb(200, 200, 200)), 61, 192, 1162, 421); + g.FillRectangle(new SolidBrush(Color.FromArgb(226, 226, 226)), 66, 197, 1152, 411); + + vc.AddString("Virtual Console", fontVC.FontFamily, + (int)(FontStyle.Bold | FontStyle.Italic), + g.DpiY * 37.4F / 72.0F, rectangleVC, format); + g.FillPath(brushVC, vc); + + n.AddString("NINTENDO", fontN64.FontFamily, + (int)(FontStyle.Bold), + g.DpiY * 40.0F / 72.0F, rectangleN, format); + g.FillPath(brushN, n); + + sf.AddString("64", fontN64.FontFamily, + (int)(FontStyle.Bold), + g.DpiY * 31.0F / 72.0F, rectangle64, format); + g.FillPath(brush64, sf); + + sfi.AddString("64Inject", font.FontFamily, + (int)(FontStyle.Regular), + g.DpiY * 26.0F / 72.0F, rectangle64I, format); + g.DrawPath(outline64I, sfi); + g.FillPath(brush64I, sfi); + } + + if (TitleScreen != null) + { + if (TitleScreen.Width > TitleScreen.Height) + { + g.DrawImage(TitleScreen, 131, 249, 400, 300); + } + else if (TitleScreen.Width < TitleScreen.Height) + { + g.FillRectangle(new SolidBrush(Color.Black), 131, 249, 400, 300); + g.DrawImage(TitleScreen, 218, 249, 225, 300); + } + else + { + g.FillRectangle(new SolidBrush(Color.Black), 131, 249, 400, 300); + //g.InterpolationMode = InterpolationMode.NearestNeighbor; + g.DrawImage(TitleScreen, new Rectangle(203, 271, 256, 256)); + //g.InterpolationMode = InterpolationMode.Default; + } + } + else + g.FillRectangle(new SolidBrush(Color.Black), 131, 249, 400, 300); + + if (Frame != null) + g.DrawImage(Frame, new Rectangle(0, 0, 1280, 720)); + + if (NameLine1 != null && NameLine2 != null) + { + if (Longname) + { + nl1.AddString(NameLine1, font.FontFamily, + (int)(FontStyle.Bold), + g.DpiY * 37.0F / 72.0F, rectangleNL1, format); + g.DrawPath(shadowBold, nl1); + g.DrawPath(outlineBold, nl1); + g.FillPath(brush, nl1); + nl2.AddString(NameLine2, font.FontFamily, + (int)(FontStyle.Bold), + g.DpiY * 37.0F / 72.0F, rectangleNL2, format); + g.DrawPath(shadowBold, nl2); + g.DrawPath(outlineBold, nl2); + g.FillPath(brush, nl2); + } + else + { + nl1.AddString(NameLine1, font.FontFamily, + (int)(FontStyle.Bold), + g.DpiY * 37.0F / 72.0F, rectangleNL1, format); + g.DrawPath(shadowBold, nl1); + g.DrawPath(outlineBold, nl1); + g.FillPath(brush, nl1); + } + } + + if (Released > 1995) + { + r.AddString("Released: " + Released.ToString(), font.FontFamily, + (int)(FontStyle.Regular), + g.DpiY * 25.0F / 72.0F, rectangleR, format); + g.DrawPath(shadow, r); + g.DrawPath(outline, r); + g.FillPath(brush, r); + } + + if (Players > 0) + { + string pStr; + + if (Players == 4) + pStr = "1-4"; + else if (Players == 3) + pStr = "1-3"; + else if (Players == 2) + pStr = "1-2"; + else + pStr = "1"; + + p.AddString("Players: " + pStr, font.FontFamily, + (int)(FontStyle.Regular), + g.DpiY * 25.0F / 72.0F, rectangleP, format); + g.DrawPath(shadow, p); + g.DrawPath(outline, p); + g.FillPath(brush, p); + } + + return img; + } + } +} diff --git a/CllAssemblyVersion.exe b/CllAssemblyVersion.exe new file mode 100644 index 0000000000000000000000000000000000000000..4cdaea7e869104250280a3e7e4f8807e1347f19b GIT binary patch literal 188416 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ⅇ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 TitleScreen.Height) + { + g.DrawImage(TitleScreen, 3, 9, 122, 92); + } + else if (TitleScreen.Width < TitleScreen.Height) + { + g.FillRectangle(new SolidBrush(Color.Black), 3, 9, 122, 92); + g.DrawImage(TitleScreen, 30, 9, 69, 92); + } + else + { + g.FillRectangle(new SolidBrush(Color.FromArgb(37, 37, 37)), 3, 9, 122, 92); + g.FillRectangle(new SolidBrush(Color.Black), 5, 11, 118, 88); + //g.InterpolationMode = InterpolationMode.NearestNeighbor; + g.DrawImage(TitleScreen, new Rectangle(32, 23, 64, 64)); + //g.InterpolationMode = InterpolationMode.Default; + } + } + else + { + g.FillRectangle(new SolidBrush(Color.FromArgb(37, 37, 37)), 3, 9, 122, 92); + g.FillRectangle(new SolidBrush(Color.Black), 5, 11, 118, 88); + } + + if (Frame == null) + { + vc.AddString("Virtual Console.", font.FontFamily, + (int)(FontStyle.Bold | FontStyle.Italic), + g.DpiY * 9.2F / 72.0F, rectangleVC, format); + g.DrawPath(pen, vc); + g.FillPath(brush, vc); + } + else + g.DrawImage(Frame, new Rectangle(0, 0, 128, 128)); + + return img; + } + } +} diff --git a/Log.cs b/Log.cs new file mode 100644 index 0000000..ce59ee1 --- /dev/null +++ b/Log.cs @@ -0,0 +1,125 @@ +using System; +using System.Diagnostics; +using System.IO; + +namespace Cll +{ + public static class Log + { + public enum TabMode + { + None, + OnlyFirst, + ExceptFirst, + All + } + + private static string _filename; + public static string Filename { get { return _filename != null ? _filename : ""; } } + public static void SaveIn(String filename, bool clear = true) + { + if (filename != null && filename.Length > 0) + { + _filename = filename; + if (clear) + File.Delete(filename); + } + else + _filename = null; + } + + public static void Write(string value) + { + Debug.Write(value); + Console.Write(value); + if (_filename != null) + File.AppendAllText(_filename, value); + } + + public static void WriteLine(string value) + { + Debug.WriteLine(value); + Console.WriteLine(value); + if (_filename != null) + File.AppendAllText(_filename, value + "\r\n"); + } + + public static void WriteLine(string value, int width, int tab, TabMode mode) + { + int tabLength = GetTabLength(value); + string t = tab > 0 ? new string(' ', tab) : value.Substring(0, tabLength); + string s = value.Substring(tabLength, value.Length - tabLength); + string[] words = s.Split(new char[] { ' ' }); + + if (words.Length == 1) + WriteLine((mode == TabMode.All || mode == TabMode.OnlyFirst ? t : "") + s); + + else if (words.Length > 1) + { + int charCount = words[0].Length; + int start = 0; + int i = 1; + for (; i < words.Length; i++) + { + if ((mode == TabMode.All || mode == TabMode.OnlyFirst ? t.Length : 0) + + charCount + words[i].Length + 1 < width) + charCount += words[i].Length + 1; + else + { + WriteLine((mode == TabMode.All || mode == TabMode.OnlyFirst ? t : "") + + s.Substring(start, charCount)); + start += charCount + 1; + charCount = words[i].Length; + break; + } + + if (i + 1 == words.Length) + WriteLine((mode == TabMode.All || mode == TabMode.OnlyFirst ? t : "") + + s.Substring(start, charCount)); + } + i++; + for (; i < words.Length; i++) + { + if ((mode == TabMode.All || mode == TabMode.ExceptFirst ? t.Length : 0) + + charCount + words[i].Length + 1 < width) + charCount += words[i].Length + 1; + else + { + WriteLine((mode == TabMode.All || mode == TabMode.ExceptFirst ? t : "") + + s.Substring(start, charCount)); + start += charCount + 1; + charCount = words[i].Length; + } + + if (i + 1 == words.Length) + WriteLine((mode == TabMode.All || mode == TabMode.ExceptFirst ? t : "") + + s.Substring(start, charCount)); + } + } + else + WriteLine(mode == TabMode.All || mode == TabMode.OnlyFirst ? t : ""); + } + + public static void WriteText(string text, int width, int tab, TabMode mode) + { + text = text.Replace("\r", ""); + string[] lines = text.Split(new char[] { '\n' }); + + foreach (string line in lines) + WriteLine(line, width, tab, mode); + } + + private static int GetTabLength(string line) + { + int i; + + for (i = 0; i < line.Length; i++) + { + if (!char.IsWhiteSpace(line[i])) + break; + } + + return i; + } + } +} diff --git a/NusContent.cs b/NusContent.cs new file mode 100644 index 0000000..af7db5c --- /dev/null +++ b/NusContent.cs @@ -0,0 +1,365 @@ +using System; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Text; +using System.Xml; +using Microsoft.Win32; + +namespace _64Inject +{ + public static class NusContent + { + public const uint CommonKeyHashCRC32 = 0xB92B703D; + + public static string GetJavaVersion() + { + try + { + ProcessStartInfo startInfo = new ProcessStartInfo("java", "-version"); + startInfo.RedirectStandardOutput = true; + startInfo.RedirectStandardError = true; + startInfo.UseShellExecute = false; + startInfo.CreateNoWindow = true; + Process java = Process.Start(startInfo); + java.Start(); + java.WaitForExit(); + string version = java.StandardError.ReadLine(); + java.Dispose(); + //version = version.Split(' ')[2].Replace("\"", ""); + return version; + } + catch + { + return null; + } + + /*object vesion = null; + RegistryKey javaRE = Registry.LocalMachine.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment"); + + if (javaRE != null) + version = javaRE.GetValue("CurrentVersion"); + + if (version != null) + return version.ToString(); + else + return null;*/ + } + + public struct JNUSToolConfig + { + public const string UpdateServer = "http://ccs.cdn.wup.shop.nintendo.net/ccs/download"; + public const string TAGAYA1 = "https://tagaya.wup.shop.nintendo.net/tagaya/versionlist/EUR/EU/latest_version"; + public const string TAGAYA2 = "https://tagaya-wup.cdn.nintendo.net/tagaya/versionlist/EUR/EU/list/%d.versionlist"; + } + + public static string Check(string path) + { + if (File.Exists(path + "\\code\\app.xml") && + Directory.Exists(path + "\\content") && + File.Exists(path + "\\meta\\meta.xml")) + { + XmlDocument xmlMeta = new XmlDocument(); + xmlMeta.Load(path + "\\meta\\meta.xml"); + XmlNode meta_title_id = xmlMeta.SelectSingleNode("menu/title_id"); + return meta_title_id.InnerText; + } + return null; + } + + public static string CheckEncrypted(string path) + { + if (File.Exists(path + "\\title.tmd") && + File.Exists(path + "\\title.tik") && + File.Exists(path + "\\title.cert")) + { + byte[] id = new byte[8]; + FileStream fs = File.OpenRead(path + "\\title.tmd"); + fs.Position = 0x18C; + fs.Read(id, 0, 8); + fs.Close(); + return BitConverter.ToString(id).Replace("-", ""); + } + return null; + } + + public static void CheckBatchFiles() + { + if (!Directory.Exists("resources")) + Directory.CreateDirectory("resources"); + + if (!File.Exists("resources\\pack.bat")) + { + StreamWriter sw = File.CreateText("resources\\pack.bat"); + sw.WriteLine("@echo off"); + sw.WriteLine("cd resources\\nuspacker"); + sw.Write("java -jar NUSPacker.jar -in %1 -out %2"); + sw.Close(); + } + + if (!File.Exists("resources\\unpack.bat")) + { + StreamWriter sw = File.CreateText("resources\\unpack.bat"); + sw.WriteLine("@echo off"); + sw.WriteLine("cd resources\\jnustool"); + sw.Write("java -jar JNUSTool.jar %1 -file %2"); + sw.Close(); + } + } + + private static bool IsValidCommonKey(string key) + { + byte[] array = Encoding.ASCII.GetBytes(key.ToUpper()); + uint hash = Cll.Security.ComputeCRC32(array, 0, array.Length); + if (hash == CommonKeyHashCRC32) + return true; + return false; + } + + public static bool LoadKey(string key) + { + if (NusContent.IsValidCommonKey(key)) + { + try + { + if (!Directory.Exists("resources\\nuspacker")) + Directory.CreateDirectory("resources\\nuspacker"); + if (!Directory.Exists("resources\\jnustool")) + Directory.CreateDirectory("resources\\jnustool"); + + StreamWriter sw = File.CreateText("resources\\nuspacker\\encryptKeyWith"); + sw.WriteLine(key.ToUpper()); + sw.Close(); + sw = File.CreateText("resources\\jnustool\\config"); + sw.WriteLine(NusContent.JNUSToolConfig.UpdateServer); + sw.WriteLine(key.ToUpper()); + sw.WriteLine("updatetitles.csv"); + sw.WriteLine(NusContent.JNUSToolConfig.TAGAYA1); + sw.Write(NusContent.JNUSToolConfig.TAGAYA2); + sw.Close(); + return true; + } + catch + { + return false; + } + } + return false; + } + + public static bool CheckCommonKeyFiles() + { + StreamReader sr; + StreamWriter sw; + string jnustoolKey = ""; + string nuspackerKey = ""; + bool jnustoolKeyValid = false; + bool nuspackerKeyValid = false; + + if (File.Exists("resources\\jnustool\\config")) + { + sr = File.OpenText("resources\\jnustool\\config"); + sr.ReadLine(); + jnustoolKey = sr.ReadLine(); + sr.Close(); + jnustoolKeyValid = IsValidCommonKey(jnustoolKey); + } + + if (File.Exists("resources\\nuspacker\\encryptKeyWith")) + { + sr = File.OpenText("resources\\nuspacker\\encryptKeyWith"); + nuspackerKey = sr.ReadLine(); + sr.Close(); + nuspackerKeyValid = IsValidCommonKey(nuspackerKey); + } + + if (jnustoolKeyValid && nuspackerKeyValid) + return true; + else if (jnustoolKeyValid && !nuspackerKeyValid) + { + try + { + sw = File.CreateText("resources\\nuspacker\\encryptKeyWith"); + sw.WriteLine(jnustoolKey); + sw.Close(); + return true; + } + catch + { + return false; + } + } + else if (!jnustoolKeyValid && nuspackerKeyValid) + { + try + { + sw = File.CreateText("resources\\jnustool\\config"); + sw.WriteLine(JNUSToolConfig.UpdateServer); + sw.WriteLine(nuspackerKey); + sw.WriteLine("updatetitles.csv"); + sw.WriteLine(JNUSToolConfig.TAGAYA1); + sw.Write(JNUSToolConfig.TAGAYA2); + sw.Close(); + return true; + } + catch + { + return false; + } + } + else + return false; + } + + public static bool Encrypt(string inputPath, string outputPath) + { + string titleId = Check(inputPath); + if (titleId != null && + CheckCommonKeyFiles() && + GetJavaVersion() != null && + File.Exists("resources\\nuspacker\\NUSPacker.jar")) + { + NusContent.CheckBatchFiles(); + Process encrypt = Process.Start("resources\\pack.bat", "\"" + inputPath + "\" \"" + outputPath + "\""); + encrypt.WaitForExit(); + encrypt.Dispose(); + return true; + } + return false; + } + + public static bool Decrypt(string inputPath, string outputPath) + { + string titleId = CheckEncrypted(inputPath); + if (titleId != null && + CheckCommonKeyFiles() && + GetJavaVersion() != null && + File.Exists("resources\\jnustool\\JNUSTool.jar")) + { + string name = JNUSToolWrapper(inputPath, 0, Int32.MaxValue, titleId, ".*"); + if (name != null) + { + Useful.DirectoryCopy(name, outputPath, true); + Directory.Delete(name, true); + return true; + } + } + return false; + } + + public static string JNUSToolWrapper(string inputPath, int minFileLength, int maxFileLength, string titleId, string filter) + { + if (inputPath == null) + throw new Exception("JNUSToolWrapper: Input path is null."); + if (minFileLength < 0) + throw new Exception("JNUSToolWrapper: Min file length < zero."); + if (minFileLength > maxFileLength) + throw new Exception("JNUSToolWrapper: Min file length > Max file length."); + if (titleId == null) + throw new Exception("JNUSToolWrapper: Title Id is null."); + + try + { + string[] directories = Directory.GetDirectories("resources\\jnustool"); + foreach (string dir in directories) + Directory.Delete(dir, true); + + Directory.CreateDirectory("resources\\jnustool\\tmp_" + titleId); + + string[] file = Directory.GetFiles(inputPath); + FileInfo[] fileInfo = new FileInfo[file.Length]; + + for (int i = 0; i < file.Length; i++) + { + fileInfo[i] = new FileInfo(file[i]); + if (fileInfo[i].Length >= minFileLength && fileInfo[i].Length <= maxFileLength) + File.Copy(inputPath + "\\" + fileInfo[i].Name, "resources\\jnustool\\tmp_" + titleId + "\\" + fileInfo[i].Name, true); + } + + NusContent.CheckBatchFiles(); + Process decrypt = Process.Start("resources\\unpack.bat", titleId + " " + filter); + decrypt.WaitForExit(); + decrypt.Dispose(); + + Directory.Delete("resources\\jnustool\\tmp_" + titleId, true); + string[] result = Directory.GetDirectories("resources\\jnustool"); + + if (result.Length == 1) + return result[0]; + } + catch + { + Cll.Log.WriteLine("JNUSToolWrapper: Failed."); + } + return null; + } + + public static bool ConvertToTGA(Bitmap image, string outputFileName) + { + if (image.Width > 0xFFFF || image.Height > 0xFFFF) + return false; + + byte[] header = { + 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + (byte)(image.Width & 0xFF), + (byte)((image.Width >> 8) & 0xFF), + (byte)(image.Height & 0xFF), + (byte)((image.Height >> 8) & 0xFF), + 0x00, 0x00 }; + + byte[] footer = { + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x54, 0x52, 0x55, 0x45, + 0x56, 0x49, 0x53, 0x49, + 0x4F, 0x4E, 0x2D, 0x58, + 0x46, 0x49, 0x4C, 0x45, + 0x2E, 0x00 }; + + int bytesPerPixel = 0; + if (image.PixelFormat == System.Drawing.Imaging.PixelFormat.Format32bppArgb) + { + header[0x10] = 0x20; + header[0x11] = 0x08; + bytesPerPixel = 4; + } + else if (image.PixelFormat == System.Drawing.Imaging.PixelFormat.Format24bppRgb) + { + header[0x10] = 0x18; + bytesPerPixel = 3; + } + else + return false; + + Bitmap bmp = new Bitmap(image.Width, image.Height, image.PixelFormat); + Graphics g = Graphics.FromImage(bmp); + g.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height)); + g.Dispose(); + + bmp.RotateFlip(RotateFlipType.RotateNoneFlipY); + Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); + System.Drawing.Imaging.BitmapData data = + bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat); + int length = data.Width * data.Height * bytesPerPixel; + byte[] bmpBytes = new byte[length]; + for (int y = 0; y < data.Height; ++y) + { + IntPtr ptr = (IntPtr)((long)data.Scan0 + y * data.Stride); + System.Runtime.InteropServices.Marshal.Copy( + ptr, bmpBytes, y * data.Width * bytesPerPixel, data.Width * bytesPerPixel); + } + bmp.UnlockBits(data); + bmp.Dispose(); + + FileStream fs = File.Open(outputFileName, FileMode.Create); + fs.Write(header, 0, header.Length); + fs.Write(bmpBytes, 0, bmpBytes.Length); + fs.Write(footer, 0, footer.Length); + fs.Close(); + + return true; + } + } +} diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..ba616fd --- /dev/null +++ b/Program.cs @@ -0,0 +1,31 @@ +using System; +using System.Windows.Forms; + +namespace _64Inject +{ + class Program + { + [System.Runtime.InteropServices.DllImport("kernel32.dll")] + static extern bool FreeConsole(); + + /// + /// Main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + if (args.Length == 0) + { + FreeConsole(); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new _64InjectGUI()); + } + else + { + _64InjectCMD cmd = new _64InjectCMD(); + cmd.Run(args); + } + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7b14d72 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// La información general sobre un ensamblado se controla mediante el siguiente +// conjunto de atributos. Cambie estos atributos para modificar la información +// asociada con un ensamblado. +[assembly: AssemblyTitle("64Inject debug")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("64Inject")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Si establece ComVisible como false, los tipos de este ensamblado no estarán visibles +// para los componentes COM. Si necesita obtener acceso a un tipo de este ensamblado desde +// COM, establezca el atributo ComVisible como true en este tipo. +[assembly: ComVisible(false)] + +// El siguiente GUID sirve como identificador de typelib si este proyecto se expone a COM +[assembly: Guid("a61f45e8-f166-49d6-be58-62d11c332451")] + +// La información de versión de un ensamblado consta de los cuatro valores siguientes: +// +// Versión principal +// Versión secundaria +// Número de versión de compilación +// Revisión +// +// Puede especificar todos los valores o establecer como predeterminados los números de versión de compilación y de revisión +// mediante el asterisco ('*'), como se muestra a continuación: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.4.82.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4d74362 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,102 @@ +//------------------------------------------------------------------------------ +// +// Este código fue generado por una herramienta. +// Versión de runtime:4.0.30319.42000 +// +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. +// +//------------------------------------------------------------------------------ + +namespace _64Inject.Properties { + using System; + + + /// + /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. + /// + // StronglyTypedResourceBuilder generó automáticamente esta clase + // a través de una herramienta como ResGen o Visual Studio. + // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen + // con la opción /str o recompile su proyecto de VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_64Inject.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las + /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap checkmark_16 { + get { + object obj = ResourceManager.GetObject("checkmark-16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Busca una cadena traducida similar a Use: 64inject [-base folder_path] + /// [-name short_name] [-longname name_line_1 name_line_2] + /// [no-darkfilter] [widescreen] [-zoom value] + /// [-in folder_path] [-rom file_path] [-ini file_path] + /// [-icon file_path] [-tv file_path] [-drc file_path] + /// [-out folder_path] [not-encrypt] + /// Or: 64inject help + /// Or: 64inject load-key common_key + /// Or: 64inject load-base folder_path + /// Or: 64inject create-image [-frame file_path] [-title file_path] + /// [resto de la cadena truncado]";. + /// + internal static string Help { + get { + return ResourceManager.GetString("Help", resourceCulture); + } + } + + /// + /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap x_mark_16 { + get { + object obj = ResourceManager.GetObject("x-mark-16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..7d85a84 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\x-mark-16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\checkmark-16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Use: 64inject [-base folder_path] + [-name short_name] [-longname name_line_1 name_line_2] + [no-darkfilter] [widescreen] [-zoom value] + [-in folder_path] [-rom file_path] [-ini file_path] + [-icon file_path] [-tv file_path] [-drc file_path] + [-out folder_path] [not-encrypt] + Or: 64inject help + Or: 64inject load-key common_key + Or: 64inject load-base folder_path + Or: 64inject create-image [-frame file_path] [-title file_path] + [-name short_name|-longname name_line_1 name_line_2] + [-r value] [-p value] [-out folder_path] + Or: 64inject create-icon [-frame file_path] [-title file_path] + [-out folder_path] + Or: 64inject pack|unpack -in folder_path [-out folder_path] + +Options: + + help + Show this help message. + + load-key common_key + The Wii U Common Key is required to pack and unpack NUS CONTENT. + load-base folder_path + Path to the N64 VC game that will be copied internally "base" where the ROM will be injected. + + create-image + Indicates that must create an image for the boot screen. + create-icon + Indicates that must create an icon to represent a game. + + pack + Indicates that the NUS CONTENT input will be encrypted. + unpack + Indicates that the NUS CONTENT input will be decrypted. + + -base folder_path + Path to the N64 VC game where the ROM will be injected. + The process does not modify the N64 VC game since it creates an internal copy of the game "base", if not specified, the previous loaded base will be used. + -name short_name + A short game name to show. + If not specified, the name inside ROM will be used. + If the create-image option is present, it indicates the name of a single line that will be placed on the frame image. + -longname name_line_1 name_line_2 + A long game name to show can be two lines. + If not specified, the short name will be used. + If the create-image option is present, it indicates the name of two lines that will be placed on the frame image. + no-darkfilter + Indicates that the dark filter should be removed from the layout. + If not specified, the dark filter will remain active. + widescreen + Indicates that the masking pillarbox must be removed from the layout. + If not specified, the masking pillarbox will remain active. + -zoom value + A value between 50 and 200 that represents the zoom percentage of the game image. If not specified, the value 100 will be used. + -in folder_path + Path where the "rom.z64", "vc.ini", "icon.png", "tv.png" and "drc.png" files are taken. + If the pack|unpack option is present it indicates the path to the NUS CONTENT. + -rom file_path + Path to the N64 game ROM. + If not specified, the "rom.z64" file will be searched in the "-in" folder. + -ini file_path + Path to the N64 VC INI file. + If not specified, the "vc.ini" file will be searched in the "-in" folder, if not found an empty INI file will be injected. + -icon file_path + Path to an image file to use as icon (*.png, *.jpg or *.bmp). + If not specified, the "icon.png" file will be searched in the "-in" folder, if not found a default image will be used. + -tv file_path + Path to an image file to use as boot tv (*.png, *.jpg or *.bmp). + If not specified, the "tv.png" file will be searched in the "-in" folder, if not found a default image will be used. + -drc file_path + Path to an image file to use as boot drc (*.png, *.jpg or *.bmp). + If not specified, the "drc.png" file will be searched in the "-in" folder, if not found the boot tv image will be used. + -out folder_path + Path where the result will be put. + If not specified, the root folder of 64Inject will be used. + not-encrypt + Indicates that the result should not be encrypted, by default is encrypted. + + -title file_path + Path to the image of the title screen, which will be placed on the background by default. If not specified, a black box will be placed. + -frame file_path + Path to the frame image, which will be placed on the title screen. + If not specified, the background will be seen by default. + -r value + A value greater than or equal to 1996, that represents the launch year of the game, will be placed on the frame image. + -p value + A value between 1 and 4, that represents the number of players that the game supports, will be placed on the frame image. + +Note: + If the paths or names contain spaces put them in quotes. + + \ No newline at end of file diff --git a/Resources/checkmark-16.png b/Resources/checkmark-16.png new file mode 100644 index 0000000000000000000000000000000000000000..6a988068b0411a8f341e1994d50e380915df30ac GIT binary patch literal 373 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 Tjqq8jLmFUWXnwO6>Vo_~p7LAp literal 0 HcmV?d00001 diff --git a/Resources/x-mark-16.png b/Resources/x-mark-16.png new file mode 100644 index 0000000000000000000000000000000000000000..acbd2f6d488127573bfe9a440721c3bef80da4ab GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;iN- zi(`mIZ|`J7uEPdAuJQ++`Nf?ycgAzd79E@LFumi>tSgg}E+qZ7l|0Gh5Wtduusek_ z?VyrI>0*wsMwZS$b5A?s)+3I0q95ahw!F%G_bP0l+XkK#Ti+M literal 0 HcmV?d00001 diff --git a/RomN64.cs b/RomN64.cs new file mode 100644 index 0000000..5bb84ee --- /dev/null +++ b/RomN64.cs @@ -0,0 +1,218 @@ +using System; +using System.IO; +using System.Text; + +namespace _64Inject +{ + public class RomN64 : IDisposable + { + public enum Endian + { + BigEndian, + LittleEndian, + ByteSwapped, + Indeterminate + } + + private bool disposed = false; + + public int Size + { private set; get; } + public Endian Endianness + { private set; get; } + public string Title + { private set; get; } + public char FormatCode + { private set; get; } + public string Id + { private set; get; } + public char ContryCode + { private set; get; } + public byte Version + { private set; get; } + + public char Revision + { get { return Version == 0? ' ' :(char)(Version + 0x40); } } + public string ProductCode + { get { return (FormatCode + Id + ContryCode).ToUpper(); } } + public string ProductCodeVersion + { get { return ProductCode + Version.ToString("X1"); } } + public bool IsValid + { private set; get; } + public uint HashCRC32 + { private set; get; } + + public RomN64(string filename) + { + Size = 0; + Title = ""; + FormatCode = '?'; + Id = "??"; + ContryCode = '?'; + Version = 0; + + try + { + Cll.Log.WriteLine("Validating ROM."); + + byte[] header = new byte[0x40]; + FileStream fs = File.Open(filename, FileMode.Open); + Size = (int)fs.Length; + fs.Read(header, 0, 0x40); + fs.Close(); + + if (Size > 0xFFF) + { + if (header[0] == 0x80 && + header[1] == 0x37 && + header[2] == 0x12 && + header[3] == 0x40) + Endianness = Endian.BigEndian; + else if (header[0] == 0x37 && + header[1] == 0x80 && + header[2] == 0x40 && + header[3] == 0x12) + Endianness = Endian.ByteSwapped; + else if (header[0] == 0x40 && + header[1] == 0x12 && + header[2] == 0x37 && + header[3] == 0x80) + Endianness = Endian.LittleEndian; + else + Endianness = Endian.Indeterminate; + + if (Endianness != Endian.Indeterminate && Size % 4 == 0) + { + IsValid = true; + + byte formatCode; + byte[] id = new byte[2]; + byte contryCode; + + header = ToBigEndian(header, Endianness); + + formatCode = header[0x3B]; + id[0] = header[0x3C]; + id[1] = header[0x3D]; + contryCode = header[0x3E]; + Version = header[0x3F]; + FormatCode = (char)formatCode; + Id = Encoding.ASCII.GetString(id); + ContryCode = (char)contryCode; + + byte[] titleBytes = new byte[20]; + Array.Copy(header, 0x20, titleBytes, 0, 20); + int count = 20; + while (titleBytes[--count] == 0x20 && count > 0) ; + Title = Encoding.ASCII.GetString(titleBytes, 0, count + 1); + + fs = File.Open(filename, FileMode.Open); + HashCRC32 = Cll.Security.ComputeCRC32(fs); + fs.Close(); + + Cll.Log.WriteLine("The ROM is valid and its metadata has been loaded."); + } + else + Cll.Log.WriteLine("It was not possible to determine the ROM format."); + } + else + { + Size = 0; + Cll.Log.WriteLine("The ROM is too small to be valid."); + } + } + catch + { + Cll.Log.WriteLine("Error reading ROM."); + } + } + + ~RomN64() + { + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + } + disposed = true; + } + } + + public static bool ToBigEndian(string source, string destination) + { + RomN64 rom = new RomN64(source); + + if (rom.IsValid) + { + try + { + FileStream fs = File.Open(source, FileMode.Open); + byte[] data = new byte[fs.Length]; + fs.Read(data, 0, data.Length); + fs.Close(); + + data = ToBigEndian(data, rom.Endianness); + fs = File.Open(destination, FileMode.Create); + fs.Write(data, 0, data.Length); + fs.Close(); + + return true; + } + catch { } + } + return false; + } + + private static byte[] ToBigEndian(byte[] array, Endian endianness) + { + if (array.Length % 4 != 0) + throw new Exception("ToBigEndian: Invalid array length."); + + byte[] bigEndian = new byte[4]; + + if (endianness == Endian.ByteSwapped) + { + for (int i = 0; i < array.Length / 4; i++) + { + bigEndian[0] = array[(i * 4) + 1]; + bigEndian[1] = array[(i * 4) + 0]; + bigEndian[2] = array[(i * 4) + 3]; + bigEndian[3] = array[(i * 4) + 2]; + + array[(i * 4) + 0] = bigEndian[0]; + array[(i * 4) + 1] = bigEndian[1]; + array[(i * 4) + 2] = bigEndian[2]; + array[(i * 4) + 3] = bigEndian[3]; + } + } + else if (endianness == Endian.LittleEndian) + { + for (int i = 0; i < array.Length / 4; i++) + { + bigEndian[0] = array[(i * 4) + 3]; + bigEndian[1] = array[(i * 4) + 2]; + bigEndian[2] = array[(i * 4) + 1]; + bigEndian[3] = array[(i * 4) + 0]; + + array[(i * 4) + 0] = bigEndian[0]; + array[(i * 4) + 1] = bigEndian[1]; + array[(i * 4) + 2] = bigEndian[2]; + array[(i * 4) + 3] = bigEndian[3]; + } + } + + return array; + } + } +} diff --git a/Security.cs b/Security.cs new file mode 100644 index 0000000..b8341e0 --- /dev/null +++ b/Security.cs @@ -0,0 +1,183 @@ +using System; +using System.IO; + +namespace Cll +{ + public static class Security + { + #region Consts + + private static readonly ushort[] CRC16Table = + { + 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, + 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, + 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, + 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, + 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, + 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, + 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, + 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, + 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, + 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, + 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, + 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, + 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, + 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, + 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, + 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, + 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, + 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, + 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, + 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, + 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, + 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, + 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, + 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, + 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, + 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, + 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, + 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, + 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, + 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, + 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, + 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 + }; + + private static readonly uint[] CRC32Table = + { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, + 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, + 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, + 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, + 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, + 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, + 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, + 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, + 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, + 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, + 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, + 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, + 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, + 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, + 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, + 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, + 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, + 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, + 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, + 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, + 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, + 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, + 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, + 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, + 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, + 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, + 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, + 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, + 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, + 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, + 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, + 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, + 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, + 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, + 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d + }; + + #endregion + + public static ushort ComputeCRC16(byte[] source, int offset, int count, ushort crc) + { + if (count < 0 || count > source.Length) + throw new IndexOutOfRangeException("Count out of range exception."); + + if (offset < 0 || offset + count > source.Length) + throw new IndexOutOfRangeException("Offset out of range exception."); + + count += offset; + for (; offset < count; offset++) + crc = (ushort)(CRC16Table[(crc ^ source[offset]) & 0xFF] ^ (crc >> 8)); + + return crc; + } + + public static ushort ComputeCRC16_ARC(byte[] source, int offset, int count) + { + return ComputeCRC16(source, offset, count, 0); + } + + public static ushort ComputeCRC16_MAXIM(byte[] source, int offset, int count) + { + return (ushort)(ComputeCRC16(source, offset, count, 0) ^ 0xFFFF); + } + + public static ushort ComputeCRC16_MODBUS(byte[] source, int offset, int count) + { + return ComputeCRC16(source, offset, count, 0xFFFF); + } + + public static ushort ComputeCRC16_USB(byte[] source, int offset, int count) + { + return (ushort)(ComputeCRC16(source, offset, count, 0xFFFF) ^ 0xFFFF); + } + + public static uint ComputeCRC32(byte[] source, int offset, int count, uint crc) + { + if (count < 0 || count > source.Length) + throw new IndexOutOfRangeException("Count out of range exception."); + + if (offset < 0 || offset + count > source.Length) + throw new IndexOutOfRangeException("Offset out of range exception."); + + count += offset; + for (; offset < count; offset++) + crc = CRC32Table[(crc ^ source[offset]) & 0xFF] ^ (crc >> 8); + + return crc; + } + + public static uint ComputeCRC32(byte[] source, int offset, int count) //ISO-HDLC + { + return ComputeCRC32(source, offset, count, 0xFFFFFFFFU) ^ 0xFFFFFFFFU; + } + + public static uint ComputeCRC32_JAMCRC(byte[] source, int offset, int count) + { + return ComputeCRC32(source, offset, count, 0xFFFFFFFFU); + } + + public static uint ComputeCRC32(Stream source) + { + byte[] array = new byte[source.Length]; + source.Read(array, 0, array.Length); + return ComputeCRC32(array, 0, array.Length); + } + } +} diff --git a/Useful.cs b/Useful.cs new file mode 100644 index 0000000..0cf4539 --- /dev/null +++ b/Useful.cs @@ -0,0 +1,180 @@ +using System; +using System.IO; +using System.Text; + +namespace _64Inject +{ + public static class Useful + { + public static bool DirectoryCopy(string source, string destination, bool overwrite) + { + if (destination != source && (!Directory.Exists(destination) || overwrite)) + { + try + { + Directory.CreateDirectory(destination); + + string[] sources = Directory.GetFiles(source); + string[] destinations = new string[sources.Length]; + int i, last; + + for (i = 0; i < sources.Length; i++) + destinations[i] = destination + "\\" + Path.GetFileName(sources[i]); + + for (i = 0; i < sources.Length; i++) + File.Copy(sources[i], destinations[i], overwrite); + + string[] sourcesDir = Directory.GetDirectories(source); + string[] destinationsDir = new string[sourcesDir.Length]; + + for (i = 0; i < sourcesDir.Length; i++) + { + last = sourcesDir[i].LastIndexOf('\\'); + destinationsDir[i] = destination + sourcesDir[i].Substring(last, sourcesDir[i].Length - last); + } + + for (i = 0; i < sourcesDir.Length; i++) + { + if (!DirectoryCopy(sourcesDir[i], destinationsDir[i], overwrite)) + return false; + } + + return true; + } + catch + { + return false; + } + } + + return false; + } + + public static byte[] StrHexToByteArray(string hex, string separator) + { + if (hex.Length % 2 == 1) + throw new Exception("The binary key cannot have an odd number of digits."); + + if (separator.Length > 0) + hex = hex.Replace(separator, ""); + + if (!IsHexadecimal(hex)) + throw new Exception("The binary key does not contain only hexadecimal values."); + + byte[] arr = new byte[hex.Length >> 1]; + + for (int i = 0; i < hex.Length >> 1; ++i) + arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1]))); + + return arr; + } + + public static bool IsHexadecimal(string hex) + { + for (int i = 0; i < hex.Length; i++) + { + if ((hex[i] < '0' || hex[i] > '9') + && (hex[i] < 'A' || hex[i] > 'F') + && (hex[i] < 'a' || hex[i] > 'f')) + return false; + } + return true; + } + + private static int GetHexVal(char hex) + { + int val = (int)hex; + //For uppercase A-F letters: + //return val - (val < 58 ? 48 : 55); + //For lowercase a-f letters: + //return val - (val < 58 ? 48 : 87); + //Or the two combined, but a bit slower: + return val - (val < 58 ? 48 : (val < 97 ? 55 : 87)); + } + + public static bool IsUTF8(byte[] bytes) + { + try + { + (new UTF8Encoding(false, true)).GetString(bytes); + } + catch + { + return false; + } + return true; + } + + public static string Windows1252ToASCII(string windows1252, char replacement) + { + if (replacement < 0x20 || replacement > 0x7E) + throw new Exception("Replacement character is not a valid ASCII character."); + + windows1252 = windows1252.Replace("Š", "Sh"); + windows1252 = windows1252.Replace("Œ", "OE"); + windows1252 = windows1252.Replace("Ž", "Zh"); + windows1252 = windows1252.Replace("š", "sh"); + windows1252 = windows1252.Replace("œ", "oe"); + windows1252 = windows1252.Replace("ž", "zh"); + windows1252 = windows1252.Replace("Ÿ", "Ij"); + windows1252 = windows1252.Replace("Æ", "AE"); + windows1252 = windows1252.Replace("Ð", "Dh"); + windows1252 = windows1252.Replace("Ñ", "Nh"); + windows1252 = windows1252.Replace("Ø", "OE"); + windows1252 = windows1252.Replace("Þ", "Th"); + windows1252 = windows1252.Replace("ß", "ss"); + windows1252 = windows1252.Replace("æ", "ae"); + windows1252 = windows1252.Replace("ð", "dh"); + windows1252 = windows1252.Replace("ñ", "nh"); + windows1252 = windows1252.Replace("ø", "oe"); + windows1252 = windows1252.Replace("þ", "th"); + windows1252 = windows1252.Replace("ÿ", "ij"); + + char[] array = windows1252.ToCharArray(); + + for (int i = 0; i < array.Length; i++) + { + if (array[i] >= 0xC0 && array[i] <= 0xC5) + array[i] = (char)0x41; //A + else if (array[i] >= 0xC8 && array[i] <= 0xCB) + array[i] = (char)0x45; //E + else if (array[i] >= 0xCC && array[i] <= 0xCF) + array[i] = (char)0x49; //I + else if (array[i] >= 0xD2 && array[i] <= 0xD6) + array[i] = (char)0x4F; //O + else if (array[i] >= 0xD9 && array[i] <= 0xDC) + array[i] = (char)0x55; //U + else if (array[i] >= 0xE0 && array[i] <= 0xE5) + array[i] = (char)0x61; //a + else if (array[i] >= 0xE8 && array[i] <= 0xEB) + array[i] = (char)0x65; //e + else if (array[i] >= 0xEC && array[i] <= 0xEF) + array[i] = (char)0x69; //i + else if (array[i] >= 0xF2 && array[i] <= 0xF6) + array[i] = (char)0x6F; //o + else if (array[i] >= 0xF9 && array[i] <= 0xFC) + array[i] = (char)0x75; //u + else if (array[i] == 0xC7) + array[i] = (char)0x53; //S + else if (array[i] == 0xE7) + array[i] = (char)0x73; //s + else if (array[i] == 0xDD) + array[i] = (char)0x59; //Y + else if (array[i] == 0xFD) + array[i] = (char)0x79; //y + else if (array[i] == 0x91) + array[i] = (char)0x27; //' + else if (array[i] == 0x92) + array[i] = (char)0x27; //' + else if (array[i] == 0x93) + array[i] = (char)0x22; //" + else if (array[i] == 0x94) + array[i] = (char)0x22; //" + else if (array[i] < 0x20 || array[i] > 0x7E) + array[i] = replacement; + } + + return new string(array); + } + } +} diff --git a/VCN64.cs b/VCN64.cs new file mode 100644 index 0000000..0184504 --- /dev/null +++ b/VCN64.cs @@ -0,0 +1,40 @@ + +namespace _64Inject +{ + public class VCN64 + { + public readonly uint HashCRC32; + public readonly string Title; + public readonly string Info; + + public VCN64(uint hashCRC32, string info, string title) + { + HashCRC32 = hashCRC32; + Title = title; + Info = info; + } + + public override string ToString() + { + return Title + "\nCRC32: " + HashCRC32.ToString("X8") + " " + Info; + } + + public static readonly VCN64 DonkeyKong64 = new VCN64(0xFB245F10, "SVN: 1680 TIME: 2015/01/20 14:12:06", "Donkey Kong 64 (NTSC-U)"); + public static readonly VCN64 Ocarina = new VCN64(0xF042E451, "SVN: 1696 TIME: 2015/01/30 10:49:22", "The Legend of Zelda: Ocarina of Time (NTSC-U)"); + public static readonly VCN64 PaperMario = new VCN64(0xAE933905, "SVN: 1743 TIME: 2015/03/05 15:06:57", "Paper Mario (NTSC-U)"); + public static readonly VCN64 Kirby64 = new VCN64(0x7EB7B97D, "SVN: 1790 TIME: 2015/03/24 13:46:36", "Kirby 64: The Crystal Shards (NTSC-U)"); + public static readonly VCN64 MarioTennis = new VCN64(0x05F20995, "SVN: 1918 TIME: 2015/05/20 14:34:00", "Mario Tennis (NTSC-U)"); + public static readonly VCN64 MarioGolf = new VCN64(0x307DCE21, "SVN: 1955 TIME: 2015/06/16 16:09:03", "Mario Golf (NTSC-U)"); + public static readonly VCN64 StarFox64 = new VCN64(0xF41BC127, "SVN: 1970 TIME: 2015/06/30 14:07:35", "Star Fox 64 (NTSC-U)"); + public static readonly VCN64 SinAndP = new VCN64(0x36C0456E, "SVN: 1991 TIME: 2015/07/16 09:20:39", "Sin and Punishment (NTSC-U)"); + public static readonly VCN64 MarioKart64 = new VCN64(0x5559F831, "SVN: 2043 TIME: 2015/08/18 10:07:52", "Mario Kart 64 (NTSC-U)"); + public static readonly VCN64 YoshiStory = new VCN64(0xD554D2E4, "SVN: 2079 TIME: 2015/09/15 16:19:11", "Yoshi's Story (NTSC-U)"); + public static readonly VCN64 WaveRace64 = new VCN64(0xC376B949, "SVN: 2136 TIME: 2015/11/18 12:41:26", "Wave Race 64 (NTSC-U)"); + public static readonly VCN64 Majora = new VCN64(0x71FC1731, "SVN: 2190 TIME: 2016/01/05 16:50:14", "The Legend of Zelda: Majora's Mask (NTSC-U)"); + public static readonly VCN64 PokemonSnap = new VCN64(0x967E7DF0, "SVN: 2195 TIME: 2016/01/08 09:42:51", "Pokémon Snap (NTSC-U)"); + public static readonly VCN64 MarioParty2 = new VCN64(0xBE3CEC5F, "SVN: 2234 TIME: 2016/02/02 10:56:10", "Mario Party 2 (NTSC-U)"); + public static readonly VCN64 OgreBattle64 = new VCN64(0xFED1FB48, "SVN: 2395 TIME: 2016/08/30 13:57:02", "Ogre Battle 64: Person of Lordly Caliber (NTSC-U)"); + public static readonly VCN64 Excitebike64 = new VCN64(0x724C4F5D, "SVN: 2404 TIME: 2016/09/14 13:42:00", "Excitebike 64 (NTSC-U)"); + public static readonly VCN64 FZeroX = new VCN64(0x2AF3C23B, "SVN: 2428 TIME: 2016/11/18 11:44:39", "F-Zero X (NTSC-U)"); + } +} diff --git a/app.config b/app.config new file mode 100644 index 0000000..cf7e7ab --- /dev/null +++ b/app.config @@ -0,0 +1,3 @@ + + +