From 31ed4f51d90751ed97db48b310ea1c72bb8f3cb4 Mon Sep 17 00:00:00 2001 From: Bayu Satiyo Date: Sat, 31 Aug 2024 21:28:51 +0700 Subject: [PATCH] Refactor code & some updates: - Update classdata.tpk - Bump AssetsTools.NET to 3.0.0 - Drop .NET 7 support Signed-off-by: Bayu Satiyo --- Enums/AssetTypes.cs | 9 + Enums/WebCompressionTypes.cs | 9 + README.md | 2 +- USSR.cs | 741 ++++++++++++++++------------------- USSR.csproj | 7 +- Utils/Utility.cs | 10 + build.sh | 7 +- classdata.tpk | Bin 1274766 -> 1291983 bytes version.txt | 1 + 9 files changed, 371 insertions(+), 415 deletions(-) create mode 100644 Enums/AssetTypes.cs create mode 100644 Enums/WebCompressionTypes.cs create mode 100644 version.txt diff --git a/Enums/AssetTypes.cs b/Enums/AssetTypes.cs new file mode 100644 index 0000000..22f2af0 --- /dev/null +++ b/Enums/AssetTypes.cs @@ -0,0 +1,9 @@ +namespace USSR.Enums +{ + public enum AssetTypes + { + Asset, + Bundle, + Unknown + } +} diff --git a/Enums/WebCompressionTypes.cs b/Enums/WebCompressionTypes.cs new file mode 100644 index 0000000..33c95f1 --- /dev/null +++ b/Enums/WebCompressionTypes.cs @@ -0,0 +1,9 @@ +namespace USSR.Enums +{ + public enum WebCompressionTypes + { + None, + Brotli, + GZip + } +} diff --git a/README.md b/README.md index c235aa2..9573523 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ The tool is an implementation of the guide available at () - .Title("What would you like to do? (Press ENTER go, UP/DOWN to select)") - .AddChoices(actionList) - ); - int choiceIndex = Array.FindIndex(actionList, item => item == actionPrompt); + string webDataFile = Path.Combine( + Path.GetDirectoryName(selectedFile) ?? string.Empty, + Path.GetFileNameWithoutExtension(selectedFile) + ); + string? unpackedWebDataDirectory = string.Empty; + bool isWebGL = false; - string? selectedFile = string.Empty, - webDataFile = string.Empty, - unpackedWebDataDirectory = string.Empty; - bool isWebGL = false; + AssetTypes assetType = GetAssetType(selectedFile, ref webDataFile, ref isWebGL); + if (assetType == AssetTypes.Unknown) + { + AnsiConsole.MarkupLine("[red]( ERR! )[/] Unknown/Unsupported file type!"); + Console.WriteLine(); + continue; // Prompt for action again + } - switch (choiceIndex) - { - case 0: - case 1: - AnsiConsole.MarkupLine("Opening File Picker..."); - // Unfortunately, this File Picker library currently only support one filter :( - // So we pass all file types and manually checking them if it's a valid file that we want. - DialogResult filePicker = Dialog.FileOpen( - null, - Path.GetDirectoryName(Utility.GetLastOpenedFile()) - ); + AssetsManager assetsManager = new(); + string? tpkFile = Path.Combine(ussrExec ?? string.Empty, ASSET_CLASS_DB); + if (!LoadClassPackage(assetsManager, tpkFile)) + { + continue; // Prompt for action again + } - if (filePicker.IsCancelled) - { - AnsiConsole.MarkupLine("Cancelled. Oh, it\'s okay ^_^"); - Console.WriteLine(); - goto ChooseAction; - } - else if (filePicker.IsError) - { - AnsiConsole.MarkupLine( - "[red]( RAWR )[/] Unable to open File Picker! Try using a different Terminal?" - ); - Console.WriteLine(); - goto ChooseAction; - } + List temporaryFiles = new(); + string inspectedFile = selectedFile; - selectedFile = filePicker.Path; - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Selected file: [green]{selectedFile}[/]" - ); - Utility.SaveLastOpenedFile(selectedFile); - break; - case 2: - AnsiConsole.MarkupLine("Have a nice day ;)"); - Console.ReadLine(); - return; - } + if (isWebGL) + { + unpackedWebDataDirectory = UnityWebTool.Unpack(webDataFile); + inspectedFile = Utility.FindRequiredAsset(unpackedWebDataDirectory); + assetType = GetAssetType(inspectedFile, ref webDataFile, ref isWebGL); + } - webDataFile = Path.Combine( - Path.GetDirectoryName(selectedFile) ?? string.Empty, - Path.GetFileNameWithoutExtension(selectedFile) // Without .br / .gz extension - ); - string selectedFileName = Path.GetFileName(selectedFile); + AssetsFileInstance? assetFileInstance = null; + BundleFileInstance? bundleFileInstance = null; + FileStream? bundleStream = null; - if (selectedFileName.Contains("globalgamemanagers")) - assetType = AssetTypes.Asset; - else if (selectedFileName.EndsWith(".unity3d")) - assetType = AssetTypes.Bundle; - else if (selectedFileName.EndsWith(".data")) - { - isWebGL = true; - webDataFile = selectedFile; - webGLCompressionType = WebGLCompressionType.None; - } - else if (selectedFileName.EndsWith("data.unityweb")) - { - string[] compressionList = { "Brotli", "GZip" }; - string compressionListPrompt = AnsiConsole.Prompt( - new SelectionPrompt() - .Title("What compression type did you use?") - .AddChoices(compressionList) - ); - int compressionChoiceIndex = Array.FindIndex( - compressionList, - item => item == compressionListPrompt - ); - isWebGL = true; + string tempFile = Utility.CloneFile(inspectedFile, $"{inspectedFile}.temp"); + temporaryFiles.Add(tempFile); + temporaryFiles.Add($"{tempFile}.unpacked"); - switch (compressionChoiceIndex) + switch (assetType) { - case 0: - webGLCompressionType = WebGLCompressionType.Brotli; - if ( - DecompressCompressedWebData( - webGLCompressionType, - selectedFile, - webDataFile - ) == 1 - ) - goto ChooseAction; + case AssetTypes.Asset: + assetFileInstance = LoadAssetFileInstance(tempFile, assetsManager); break; - case 1: - webGLCompressionType = WebGLCompressionType.GZip; - if ( - DecompressCompressedWebData( - webGLCompressionType, - selectedFile, - webDataFile - ) == 1 - ) - goto ChooseAction; + case AssetTypes.Bundle: + bundleStream = new FileStream(tempFile, FileMode.Open, FileAccess.Read); + bundleFileInstance = LoadBundleFileInstance( + tempFile, + assetsManager, + bundleStream + ); + assetFileInstance = LoadAssetFileInstance( + tempFile, + assetsManager, + bundleFileInstance + ); break; } - } - else if (selectedFileName.EndsWith("data.br")) - { - isWebGL = true; - webGLCompressionType = WebGLCompressionType.Brotli; - DecompressCompressedWebData(webGLCompressionType, selectedFile, webDataFile); - } - else if (selectedFileName.EndsWith("data.gz")) - { - isWebGL = true; - webGLCompressionType = WebGLCompressionType.GZip; - DecompressCompressedWebData(webGLCompressionType, selectedFile, webDataFile); - } - else - { - AnsiConsole.MarkupLine("[red]( RAWR )[/] Unknown/Unsupported file type!"); - Console.WriteLine(); - goto ChooseAction; - } - AssetsManager assetsManager = new(); - string? tpkFile = Path.Combine(ussrExec ??= string.Empty, ASSET_CLASS_DB); - LoadClassPackage(assetsManager, tpkFile); + if (assetFileInstance != null) + { + try + { + AnsiConsole.MarkupLine("( INFO ) Loading asset class types database..."); + assetsManager.LoadClassDatabaseFromPackage( + assetFileInstance.file.Metadata.UnityVersion + ); + AnsiConsole.MarkupLineInterpolated( + $"( INFO ) Unity Version: [bold green]{assetFileInstance.file.Metadata.UnityVersion}[/]" + ); - // List of files to be deleted later - List temporaryFiles = new(); - string inspectedFile = selectedFile; + switch (choiceIndex) + { + case 0: + assetFileInstance.file = RemoveSplashScreen( + assetsManager, + assetFileInstance + ); + break; + case 1: + assetFileInstance.file = RemoveWatermark( + assetsManager, + assetFileInstance + ); + break; + } - if (isWebGL) - { - // Unpack WebData asset + add to temporary files - unpackedWebDataDirectory = UnityWebTool.Unpack(webDataFile); + if (assetFileInstance.file != null) + { + Utility.BackupOnlyOnce(selectedFile); + WriteChanges( + inspectedFile, + assetType, + assetFileInstance, + bundleFileInstance + ); + } + } + catch (Exception ex) + { + AnsiConsole.MarkupLineInterpolated( + $"[red]( ERR! )[/] Error when loading asset class types database! {ex.Message}" + ); + continue; // Prompt for action again + } + } - // Find and select "data.unity3d" or "globalgamemanagers" - inspectedFile = Utility.FindRequiredAsset(unpackedWebDataDirectory); + Cleanup( + temporaryFiles, + bundleStream, + assetsManager, + unpackedWebDataDirectory, + webDataFile, + isWebGL + ); - // Determine the asset type - if (inspectedFile.Contains("globalgamemanagers")) - assetType = AssetTypes.Asset; - else if (inspectedFile.EndsWith(".unity3d")) - assetType = AssetTypes.Bundle; + AnsiConsole.WriteLine(); + AnsiConsole.MarkupLine("Press any key to continue..."); + Console.ReadKey(); + Console.Clear(); } + } - AssetsFileInstance? assetFileInstance = null; - BundleFileInstance? bundleFileInstance = null; - FileStream? bundleStream = null; - List? assetsReplacer = null; - - string tempFile = Utility.CloneFile(inspectedFile, $"{inspectedFile}.temp"); - temporaryFiles.Add(tempFile); - temporaryFiles.Add($"{tempFile}.unpacked"); // unpacked bundle file - - switch (assetType) + static AssetTypes GetAssetType( + string selectedFile, + ref string webDataFile, + ref bool isWebGL + ) + { + string selectedFileName = Path.GetFileName(selectedFile); + if (selectedFileName.Contains("globalgamemanagers")) + return AssetTypes.Asset; + if (selectedFileName.EndsWith(".unity3d")) + return AssetTypes.Bundle; + if (selectedFileName.EndsWith(".data")) { - case AssetTypes.Asset: - assetFileInstance = LoadAssetFileInstance(tempFile, assetsManager); - break; - case AssetTypes.Bundle: - bundleFileInstance = LoadBundleFileInstance( - tempFile, - assetsManager, - bundleStream - ); - assetFileInstance = LoadAssetFileInstance( - tempFile, - assetsManager, - bundleFileInstance - ); - break; + isWebGL = true; + webDataFile = selectedFile; + return AssetTypes.Asset; // Default to Asset type } - - try + if (selectedFileName.EndsWith("data.unityweb")) { - AnsiConsole.MarkupLine("( INFO ) Loading asset class types database..."); - assetsManager.LoadClassDatabaseFromPackage( - assetFileInstance?.file.Metadata.UnityVersion - ); + isWebGL = true; + WebCompressionTypes webCompressionType = GetCompression(); + if (!DecompressWebData(webCompressionType, selectedFile, webDataFile)) + return AssetTypes.Unknown; + return AssetTypes.Asset; } - catch (Exception ex) + if (selectedFileName.EndsWith("data.br")) { - AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when loading asset class types database! {ex.Message}" - ); - goto Cleanup; + isWebGL = true; + DecompressWebData(WebCompressionTypes.Brotli, selectedFile, webDataFile); + return AssetTypes.Asset; } - - if (assetFileInstance != null) + if (selectedFileName.EndsWith("data.gz")) { - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) [bold]Unity Version[/]: [green]{assetFileInstance?.file.Metadata.UnityVersion.ToString()}[/]" - ); - - switch (choiceIndex) - { - case 0: - assetsReplacer = RemoveSplashScreen(assetsManager, assetFileInstance); - break; - case 1: - assetsReplacer = RemoveWatermark(assetsManager, assetFileInstance); - break; - } - - if (assetsReplacer != null) - { - Utility.BackupOnlyOnce(selectedFile); // Backup original file - // Write changes to the asset file - WriteChanges( - inspectedFile, - assetFileInstance, - bundleFileInstance, - assetsReplacer - ); - } + isWebGL = true; + DecompressWebData(WebCompressionTypes.GZip, selectedFile, webDataFile); + return AssetTypes.Asset; } + return AssetTypes.Unknown; + } - Cleanup: + static void Cleanup( + List temporaryFiles, + FileStream? bundleStream, + AssetsManager assetsManager, + string? unpackedWebDataDirectory, + string webDataFile, + bool isWebGL + ) + { bundleStream?.Close(); assetsManager?.UnloadAll(true); Utility.CleanUp(temporaryFiles); - // After writing the changes and cleaning the temporary files, - // it's time to pack the extracted WebData. - try + if (isWebGL) { - if (isWebGL && assetsReplacer != null) + try { - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Packing [green]{unpackedWebDataDirectory}[/]..." - ); - switch (webGLCompressionType) - { - case WebGLCompressionType.Brotli: - UnityWebTool.Pack(unpackedWebDataDirectory, webDataFile); - - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Compressing [green]{webDataFile}[/] using Brotli compression. Please be patient, it might take some time..." - ); - BrotliUtils.CompressFile(webDataFile, selectedFile); - break; - case WebGLCompressionType.GZip: - UnityWebTool.Pack(unpackedWebDataDirectory, webDataFile); - - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Compressing [green]{webDataFile}[/] using GZip compression. Please be patient, it might take some time..." - ); - GZipUtils.CompressFile(webDataFile, selectedFile); - break; - case WebGLCompressionType.None: - default: - UnityWebTool.Pack(unpackedWebDataDirectory, selectedFile); - break; - } + if (Directory.Exists(unpackedWebDataDirectory)) + Directory.Delete(unpackedWebDataDirectory, true); + if (File.Exists(webDataFile)) + File.Delete(webDataFile); } - } - catch (Exception ex) - { - AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when compressing Unity Web Data! {ex.Message}" - ); - } - finally - { - if (isWebGL) + catch (Exception ex) { - try - { - if (Directory.Exists(unpackedWebDataDirectory)) - Directory.Delete(unpackedWebDataDirectory, true); - if ( - !webGLCompressionType.Equals(WebGLCompressionType.None) - && File.Exists(webDataFile) - ) - File.Delete(webDataFile); - } - catch { } + AnsiConsole.MarkupLine("[red]( ERR! )[/] Error cleaning up temporary files!"); + AnsiConsole.WriteException(ex); } } - - Console.WriteLine(); - goto ChooseAction; } static void PrintHelp() { AnsiConsole.MarkupLineInterpolated( - $"[bold red]Unity Splash Screen Remover v{VERSION}[/]" + $"[bold red]Unity Splash Screen Remover v{appVersion}[/]" ); Console.WriteLine(); AnsiConsole.MarkupLine( - "USSR is a CLI tool to easily remove Unity splash screen logo (Made with Unity) from your game and keep your logo displayed. USSR didn't directly \"hack\" Unity Editor, but the generated build." + "USSR is a tool to easily remove Unity splash screen. USSR didn't directly \"hack\" the Unity Editor, but the generated build." ); Console.WriteLine(); AnsiConsole.MarkupLine( - "Before using USSR, make sure you have set the splash screen [bold green]\"Draw Mode\"[/] in [bold green]Player Settings[/] to [bold green]\"All Sequential\"[/] and don't forget to backup your game files!" + "Before using USSR, make sure you have set the splash screen [bold green]Draw Mode[/] in [bold green]Player Settings[/] to [bold green]All Sequential[/] and backup the target file below! For more information, visit USSR GitHub repo: [link]https://github.com/kiraio-moe/USSR[/]" ); Console.WriteLine(); + AnsiConsole.MarkupLine("[bold green]HOW TO USE[/]"); AnsiConsole.MarkupLine( - "For more information, visit USSR GitHub repo: [link]https://github.com/kiraio-moe/USSR[/]" + "Select the action below, find and select one of these files in your game data:" ); - Console.WriteLine(); - AnsiConsole.MarkupLine("[bold green]How to Use[/]:"); AnsiConsole.MarkupLine( - "Select the Action, find and choose one of these files in you game data:" + "[green]globalgamemanagers[/] | [green]data.unity3d[/] | [green]*.data[/] | [green]*.data.br[/] | [green]*.data.gz[/] | [green]*.data.unityweb[/]" ); - AnsiConsole.MarkupLine( - "[green]globalgamemanagers[/] | [green]data.unity3d[/] | [green].data[/] | [green].data.br[/] | [green].data.gz[/] | [green].data.unityweb[/]" + Console.WriteLine(); + } + + static int GetChoice() + { + string[] menuList = { "Remove Unity Splash Screen", "Remove Watermark", "Exit" }; + string actionPrompt = AnsiConsole.Prompt( + new SelectionPrompt() + .Title("What would you like to do? (Press ENTER to go, UP/DOWN to select)") + .AddChoices(menuList) ); + return Array.FindIndex(menuList, item => item == actionPrompt); } - static void LoadClassPackage(AssetsManager assetsManager, string tpkFile) + static WebCompressionTypes GetCompression() + { + string[] compressionList = { "Brotli", "GZip" }; + string compressionListPrompt = AnsiConsole.Prompt( + new SelectionPrompt() + .Title("What compression did you use?") + .AddChoices(compressionList) + ); + int choiceIndex = Array.FindIndex( + compressionList, + item => item == compressionListPrompt + ); + + return choiceIndex switch + { + 0 => WebCompressionTypes.Brotli, + 1 => WebCompressionTypes.GZip, + _ => WebCompressionTypes.None, + }; + } + + static string OpenFilePicker() + { + AnsiConsole.MarkupLine("Opening File Picker..."); + + DialogResult filePicker = Dialog.FileOpen( + null, + Path.GetDirectoryName(Utility.GetLastOpenedFile()) + ); + + if (filePicker.IsCancelled) + AnsiConsole.MarkupLine("( INFO ) Cancelled."); + else if (filePicker.IsError) + { + AnsiConsole.MarkupLine( + "[red]( ERR! )[/] Unable to open File Picker! Try using a different Terminal?" + ); + } + + Console.WriteLine(); + Console.Clear(); + + return filePicker.Path; + } + + static bool LoadClassPackage(AssetsManager assetsManager, string tpkFile) { if (File.Exists(tpkFile)) { @@ -364,18 +323,21 @@ static void LoadClassPackage(AssetsManager assetsManager, string tpkFile) $"( INFO ) Loading class types package: [green]{tpkFile}[/]..." ); assetsManager.LoadClassPackage(path: tpkFile); + return true; } catch (Exception ex) { AnsiConsole.MarkupLine( - $"[red]( RAWR )[/] Error when loading class types package! {ex.Message}" + $"[red]( ERR! )[/] Error when loading class types package! {ex.Message}" ); } } else AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] TPK file not found: [red]{tpkFile}[/]..." + $"[red]( ERR! )[/] TPK file not found: [red]{tpkFile}[/]..." ); + + return false; } /// @@ -402,14 +364,14 @@ AssetsManager assetsManager catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when loading asset file! {ex.Message}" + $"[red]( ERR! )[/] Error when loading asset file! {ex.Message}" ); } } else { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Asset file not found: [red]{assetFile}[/]" + $"[red]( ERR! )[/] Asset file not found: [red]{assetFile}[/]" ); } @@ -419,7 +381,7 @@ AssetsManager assetsManager /// /// Load AssetFileInstance from . /// - /// + /// /// /// /// @@ -447,14 +409,14 @@ AssetsManager assetsManager catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when loading asset file! {ex.Message}" + $"[red]( ERR! )[/] Error when loading asset file! {ex.Message}" ); } } else { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Asset file not found: [red]{assetFile}[/]" + $"[red]( ERR! )[/] Asset file not found: [red]{assetFile}[/]" ); } @@ -477,7 +439,7 @@ AssetsManager assetsManager $"( INFO ) Loading bundle file: [green]{bundleFile}[/]..." ); bundleFileInstance = assetsManager.LoadBundleFile(bundleFile, false); - // It will throw an error if we use 'using' + //! Don't auto dispose the stream unpackedBundleFileStream = File.Open($"{bundleFile}.unpacked", FileMode.Create); bundleFileInstance.file = BundleHelper.UnpackBundleToStream( bundleFileInstance.file, @@ -487,21 +449,21 @@ AssetsManager assetsManager catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when loading bundle file! {ex.Message}" + $"[red]( ERR! )[/] Error when loading bundle file! {ex.Message}" ); } } else { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Bundle file not found: [red]{bundleFile}[/]" + $"[red]( ERR! )[/] Bundle file not found: [red]{bundleFile}[/]" ); } return bundleFileInstance; } - static List? RemoveSplashScreen( + static AssetsFile? RemoveSplashScreen( AssetsManager assetsManager, AssetsFileInstance? assetFileInstance ) @@ -523,23 +485,23 @@ AssetsManager assetsManager List? playerSettingsInfo = assetFile?.GetAssetsOfType( AssetClassID.PlayerSettings ); - AssetTypeValueField? playerSettingsBase = assetsManager.GetBaseField( - assetFileInstance, - playerSettingsInfo?[0] - ); - - if (playerSettingsBase == null) + AssetTypeValueField? playerSettingsBase = null; + try { - AnsiConsole.MarkupLine( - "[red]( RAWR )[/] Can\'t get Player Settings fields! It\'s possible that this current version of Unity are currently not supported yet." + playerSettingsBase = assetsManager.GetBaseField( + assetFileInstance, + playerSettingsInfo?[0] ); - AnsiConsole.MarkupLine( - "Try updating USSR [bold green]classdata.tpk[/] manually from there: [link green]https://nightly.link/AssetRipper/Tpk/workflows/type_tree_tpk/master/uncompressed_file.zip[/] and try again." + } + catch (Exception ex) + { + AnsiConsole.MarkupLineInterpolated( + $"[red]( ERR! )[/] Can\'t get Player Settings fields! {ex.Message} It\'s possible that the current Unity version isn\'t supported yet." ); AnsiConsole.MarkupLine( - "If the issue still persist, try switching to another Unity version." + "( INFO ) Try updating the [bold green]classdata.tpk[/] manually from there: [link green]https://nightly.link/AssetRipper/Tpk/workflows/type_tree_tpk/master/uncompressed_file.zip[/] and try again. If the issue still persist, try use another Unity version." ); - return null; + return assetFile; } // Required fields to remove splash screen @@ -550,9 +512,9 @@ AssetsManager assetsManager if (hasProVersion && !showUnityLogo) { AnsiConsole.MarkupLine( - "[yellow]( WARN ) Unity splash screen already removed![/]" + "[yellow]( WARN ) [bold]Unity splash screen already removed![/][/]" ); - return null; + return assetFile; } AssetTypeValueField splashScreenLogos = playerSettingsBase[ @@ -565,21 +527,20 @@ AssetsManager assetsManager $"( INFO ) There's [green]{totalSplashScreen}[/] splash screen detected." ); - switch (totalSplashScreen) + if (totalSplashScreen <= 0) { - case 0: - AnsiConsole.MarkupLine( - "[yellow]( WARN ) Nothing to do. Finally, taking a rest :)[/]" - ); - return null; - case 1: - AnsiConsole.MarkupLine("( INFO ) Auto remove the splash screen..."); - goto RemoveSplashScreen; // auto remove the splash screen + AnsiConsole.MarkupLine("[yellow]( WARN ) Nothing to do.[/]"); + return assetFile; } - AnsiConsole.MarkupLine( - "What order are Unity splash screen logo in your Player Settings? (Start from 0 [upmost])" - ); + for (int i = 0; i < totalSplashScreen; i++) + { + AnsiConsole.MarkupLineInterpolated( + $"[green]{i}[/] => [green]{splashScreenLogos.Children[i].FieldName}[/]" + ); + } + + AnsiConsole.MarkupLine("What order are Unity logo in your Player Settings?"); InputLogoIndex: int.TryParse( @@ -592,12 +553,12 @@ out splashScreenIndex if (splashScreenIndex < 0 && splashScreenIndex >= totalSplashScreen) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] There's no splash screen at index [red]{splashScreenIndex}[/]! Try again." + $"[red]( ERR! )[/] There's no splash screen at index [red]{splashScreenIndex}[/]! Try again." ); goto InputLogoIndex; } - RemoveSplashScreen: + // RemoveSplashScreen: AnsiConsole.MarkupLineInterpolated( $"( INFO ) Set [green]hasProVersion[/] = [green]{!hasProVersion}[/] | [green]m_ShowUnitySplashLogo[/] = [green]{!showUnityLogo}[/]" ); @@ -611,40 +572,29 @@ out splashScreenIndex ); splashScreenLogos?.Children.RemoveAt(splashScreenIndex); + playerSettingsInfo?[0].SetNewData(playerSettingsBase); + buildSettingsInfo?[0].SetNewData(buildSettingsBase); - return new() - { - new AssetsReplacerFromMemory( - assetFile, - buildSettingsInfo?[0], - buildSettingsBase - ), - new AssetsReplacerFromMemory( - assetFile, - playerSettingsInfo?[0], - playerSettingsBase - ) - }; + return assetFile; } catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when removing the splash screen! {ex.Message}" + $"[red]( ERR! )[/] Error when removing the splash screen! {ex.Message}" ); return null; } } - static List? RemoveWatermark( + static AssetsFile? RemoveWatermark( AssetsManager assetsManager, AssetsFileInstance? assetFileInstance ) { + AssetsFile? assetFile = assetFileInstance?.file; try { AnsiConsole.MarkupLine("( INFO ) Removing watermark..."); - - AssetsFile? assetFile = assetFileInstance?.file; List? buildSettingsInfo = assetFile?.GetAssetsOfType( AssetClassID.BuildSettings ); @@ -659,39 +609,34 @@ out splashScreenIndex if (noWatermark && !isTrial) { AnsiConsole.MarkupLine("[yellow]( WARN ) Watermark have been removed![/]"); - return null; + return assetFile; } AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Set [green]isNoWatermarkBuild = {!noWatermark}[/] | [green]isTrial = {!isTrial}[/]" + $"( INFO ) Set [green]isNoWatermarkBuild[/] = [green]True[/] | [green]isTrial[/] = [green]False[/]" ); + buildSettingsBase["isNoWatermarkBuild"].AsBool = true; buildSettingsBase["isTrial"].AsBool = false; + buildSettingsInfo?[0].SetNewData(buildSettingsBase); - AnsiConsole.MarkupLine("( INFO ) [green]Watermark successfully removed.[/]"); - return new() - { - new AssetsReplacerFromMemory( - assetFile, - buildSettingsInfo?[0], - buildSettingsBase - ) - }; + AnsiConsole.MarkupLine("[green]( INFO ) Watermark successfully removed.[/]"); + return assetFile; } catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when removing the watermark! {ex.Message}" + $"[red]( ERR! )[/] Error when removing the watermark! {ex.Message}" ); - return null; + return assetFile; } } static void WriteChanges( string modifiedFile, + AssetTypes assetType, AssetsFileInstance? assetFileInstance, - BundleFileInstance? bundleFileInstance, - List assetsReplacer + BundleFileInstance? bundleFileInstance ) { string uncompressedBundleFile = $"{modifiedFile}.uncompressed"; @@ -707,25 +652,17 @@ List assetsReplacer case AssetTypes.Asset: { using AssetsFileWriter writer = new(modifiedFile); - assetFileInstance?.file.Write(writer, 0, assetsReplacer); + assetFileInstance?.file.Write(writer); break; } case AssetTypes.Bundle: { - List bundleReplacer = - new() - { - new BundleReplacerFromAssets( - assetFileInstance?.name, - null, - assetFileInstance?.file, - assetsReplacer - ) - }; + List bundleReplacer = + new() { new ContentReplacerFromAssets(assetFileInstance?.file) }; // Write modified assets to uncompressed asset bundle using (AssetsFileWriter writer = new(uncompressedBundleFile)) - bundleFileInstance?.file.Write(writer, bundleReplacer); + bundleFileInstance?.file.Write(writer); AnsiConsole.MarkupLineInterpolated( $"( INFO ) Compressing [green]{modifiedFile}[/]..." @@ -741,7 +678,6 @@ List assetsReplacer using AssetsFileWriter uncompressedWriter = new(modifiedFile); uncompressedBundle.Pack( - uncompressedBundle.Reader, uncompressedWriter, AssetBundleCompressionType.LZ4 ); @@ -753,7 +689,7 @@ List assetsReplacer catch (Exception ex) { AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR )[/] Error when writing changes! {ex.Message}" + $"[red]( ERR! )[/] Error when writing changes! {ex.Message}" ); } finally @@ -763,55 +699,42 @@ List assetsReplacer } } - static int DecompressCompressedWebData( - WebGLCompressionType compressionType, + static bool DecompressWebData( + WebCompressionTypes compressionType, string inputPath, string outputPath ) { - switch (compressionType) + AnsiConsole.MarkupLineInterpolated( + $"( INFO ) Decompressing data as {compressionType.ToString()} compression: [green]{inputPath}[/]..." + ); + + try { - case WebGLCompressionType.Brotli: - try - { - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Decompressing Brotli [green]{inputPath}[/]..." - ); + switch (compressionType) + { + case WebCompressionTypes.Brotli: BrotliUtils.DecompressFile(inputPath, outputPath); - return 0; - } - catch (Exception ex) - { - AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR ) Failed to decompress {inputPath}![/] {ex.Message} Try choose different compression type." - ); - Console.WriteLine(); - if (File.Exists(outputPath)) - File.Delete(outputPath); - return 1; - } - case WebGLCompressionType.GZip: - try - { - AnsiConsole.MarkupLineInterpolated( - $"( INFO ) Decompressing GZip [green]{inputPath}[/]..." - ); + return true; + case WebCompressionTypes.GZip: GZipUtils.DecompressFile(inputPath, outputPath); - return 0; - } - catch (Exception ex) - { - AnsiConsole.MarkupLineInterpolated( - $"[red]( RAWR ) Failed to decompress {inputPath}![/] {ex.Message} Try choose different compression type." - ); - Console.WriteLine(); - if (File.Exists(outputPath)) - File.Delete(outputPath); - return 1; - } - case WebGLCompressionType.None: - default: - return 1; + return true; + case WebCompressionTypes.None: + default: + return false; + } + } + catch (Exception ex) + { + if (File.Exists(outputPath)) + File.Delete(outputPath); + + AnsiConsole.MarkupLineInterpolated( + $"[red]( ERR! ) Failed to decompress: {inputPath}![/] {ex.Message} Try different compression type." + ); + Console.WriteLine(); + + return false; } } } diff --git a/USSR.csproj b/USSR.csproj index 66c06bc..b0f86d1 100644 --- a/USSR.csproj +++ b/USSR.csproj @@ -3,17 +3,18 @@ Exe win-x64;win-arm64;linux-x64;linux-arm64;osx-x64;osx-arm64 - net6.0;net7.0;net8.0 + net6.0;net8.0 enable enable - + - + + diff --git a/Utils/Utility.cs b/Utils/Utility.cs index cc478cd..94186c4 100644 --- a/Utils/Utility.cs +++ b/Utils/Utility.cs @@ -5,6 +5,7 @@ namespace USSR.Utilities internal class Utility { const string LAST_OPEN_FILE = "last_open.txt"; + const string VERSION_FILE = "version.txt"; /// /// Check the file signature if it's a valid file. @@ -169,5 +170,14 @@ internal static string GetLastOpenedFile() return lastOpenedDirectory; } + + internal static string? GetVersion() + { + if (!File.Exists(VERSION_FILE)) + return "UNKNOWN"; + + using StreamReader reader = new(VERSION_FILE); + return reader.ReadLine(); + } } } diff --git a/build.sh b/build.sh index 6572b8f..ca51183 100644 --- a/build.sh +++ b/build.sh @@ -1,8 +1,8 @@ #!/bin/bash -VERSION="1.1.7" +VERSION=$(R9sU1B{Jy->%8XEB!M{8b++)5u$MjeAk)xD-=MlPZ%Ejmh{77cxKx^JUmlxM8+ zjH^nE%{F!73@xD9qfwk8OL?|bp4rMXM|tKd&sJ5|lxGY9LmGTP2KCaFXNK}@s5~1f z&&JBLiSlf!JTsMNGv(P_dD8LFcIkNNla7Zz>3Haqj^|jEfivV*eUrY)kiZ!l==8ed zP?DfL6Dt=qJ{^cdwogi-4AtrAlLGXqSDv(hem5%52;~{2JWa}zSDu3MG%HVw@}w-L z?NAm^N?9l`cU7RtTK&*=t`08F5Frn}r7lxfeZcdThf;8K$cV@^#t?+kL;?*?OQT5$ zLx84oMzi6DWnNNss99%&;R)B1Rmm;$^@b11_EfoZayc%#^7h;&fw!D*J7pfhDnF=O zs;h3|ZtA9Uyjnr%VGpLu8C^tS=5|43vwAO!7~z`lp_4psQ*_;lq`mw{5{Sto)bC2uXWQo3;;~B@1R~M)IW{_5x^-m4VRzaS!;m}e0Xvli96HwO z;K*~(VKL-u$2SftczVifq^a=q^KgBzAs9PCl!yu&%7jML02@+iHuyIBH1;FSyT13T zj<)CZ99MZZ@0Y-3#}x->XbUWX5ff9su6l>F+Nm)T5lSNq7O)l(gUjfWN30?xt{xz= z4WJzr8Rx!%$qUw^G%^QaR){nXl=X1QYotQ^%04Wkn+>OqL@PWGG1*6i(#TAOd1^GY zX_S3LX8Y#)C@*lW5ouS^z9JJ4$}>gGbXDJWx|K7mvOZEdG{1LpsoiDQ2KXfv`le-> zWmVhqmve@j-M3Zxx@HDGE8AZtPaQ_wgad|sSpI3b%ykuUc-$Us`H*I$XRJrt(TE)J z9A&dYgx1p5Go+TX!g8%bsHSaljfmBs&&GvYDsL+o98mQ=hv-P#D4Qnoh%B-#wt*>;1ssw0?Te8Hg%^>h9h*R;^s-1H zVsqL-nZ$)4a{C1M8{WVJ%9d z$tEHdu6{1MPZ`ZPK;&(q*18RlBpvk6h^k$?K%@m(q_H8FyTZ*GEFs7s_h3M%5mFm^ z2oOz8VlCQ^CRK>!lf97EYmiNRxLu+6Nu1S zLKs48afU<~B8Vr_bo5e0vABqoPy{#>KwY9WEw2y=k=8U7G)8m1ce0nNGKSpZz12(S zin|VLjqw9Q+or}2kx3PkD>UFt2qGuTzGKx9`LcX}Ib|iX0Fln#d@mgoj$EUmrkx=UuhW|x zhI~H6`-PVZ0PZ!cX7*eBv>HwrkKTs748Z?3@NK9ull+uPw#xz zvDrZv8D(QIH;CI6Rc2z#j>u1C7uXCDIaq$EoN7cI7$RqUXDf&GIGcQ={OfXUI8(TR z+^!b>EPv(bp4*bYDgTxg-9d|5`m_C2dA)Anl8#t^Wh!Di_gQ4MweZ)LL8$zR4eT_!r9HUXWqR}{ES|KXC%G2i|E;-lV%1?I?vh+ES zgI$FcMHQ8tZ3@R#-D)#%VBV(M^SWQQ8br;5_>}vEt1c=uh*4M*dR6BgRH{Pqgw)F3j`K8rauh;(suWljwu z-#U&mrv{O0JlBReH5!p-1T`YfsX=6u?-}OQAo9NNgQ~B~T5v{VX+&w2;IV<;7NaXG zy!`|H?ERUisMCXE7jVpEo+2WVrBS7t&PL<~caRA=B5CCr<+9iVGZDGQcP;ZK5xL2K zvwswDZSJIlpaX85ZDv0|L4nW{8>3tjcG(&J#xl#mIL_3qweV&6s2<1NgoxxX z^i#vake(I2s&@2C(I?Gz%yH0ZprS0I)dzY9Rh=5JoijEpZ&Y6S^q{+pdZ)oz)p2kG z&N;w7kO@XVJ#3tAjsgdbfzV+<#OWw?Xv0Tji|;wM!ieng?X6riN{4>(ur0xWG_rKPxqlMhNG*NBV!ah; zT7)10L~=rqSpn-^Rz0jdM`JGRzPo4@Wp71AK9N3^s6k^i2LPc4jUk5sp^gYcj!0ii zbYcuShloA|`9b2ou9`f4oiQNWKnO~33`MqL=7}Ow35XVaA=1cRY@=d?!51RMfM~%N zBD3vt?WtijF99OYSMBRvK#brCg*5a5K=OoDqCJ4f(^HX;?Vs4?*jGi)076|KHlPcD z$R4dq^RxXIKqw1T4Pl zVpdh;5+KyU3$UgmoRLntLJTnjBHLcITC_99DLcXpiFeW^W3>{T@lGnE3`qsV5{6_s zTSBA)(Puzgk2VNVRj4+dhX^&|DsnR-(ILpKh{T5=_c|9~MupW{=v)K{Rqbj!D-fYM zuYd|Yj1Y}5RAjYt4OF9vH5J+9dLbG2C`4|yP2=W;sF(Jt3rC+ef4Lkc9kp>|&-;{o< z#c~08M6@$HM)b0hpx)~s{Wmb_EfXL#hB6)yl{u{Qlz;z!4e4#DB>3Yj0 zOAOQsAkpst(YdnjW8HBO@WqB8>4?y9SM4mz-4bXFAxO462N0UjQ)xOOqJ)yz*BC^o z3{jc@Rs7ewufxt*wd)a~!JOLA1ouRsp~0Mr+=vKGpsL8-?%6;?#Y#oyBhoYkS>V18 zXp~5{QXhcsSGrdLq-1z;jO!3la=M5-i3k-vwdtn;(VQuy+2O8s%VGr)C?cP`zi`We zql)|h2wheTdw?dOtNz{nhg*xAv09I^Kit&mRf)iamQ5(5E-piEExWBuwnS>v4+0{q zSQS}O_7EVkA+=saB!MA;>KzCv@i%tA3lJ^xL8MK2yK>nJSDQW#h^*sOq|DQ=pH8~7f zj))-ydBn2@vr~-bu>eAmAw-XR)&Y?af~-e`?ge#-8$C||4b7;l$R^J-fY805BKr_g zlG`|q?+`JC(CEAY4gzhOdr_7DZ2?G12-3ydA^?zbHi2X8PKi+Tz-dOr<{j_R5+sPwRn%e^L~s$qYTfLGMGQlx z03z=NwdFeiQT!hjn&+MGmAxGmdB*#!SN3)ovd%+w96ILM{fpjp9xYFb$R6)rmeWAw zg!iPECf`}D3*Mi-sd6SxZTccWX<{YopR6`H}$%P~S#{(h;HtMny7w4S^^+1Zji_O%19vjeSjgTF{JhZRKm@ldXwL z)6G}lqsxIoGtvwM1hfwIe^jD*0BNx{5j9DXy^2)%o@X%(*7^t#ElGpO zIp2AotO?XwdjEMJ-S*)BsE`35d6%n5q(90p?{XC}0YVK7tHt{TK;lA>Xh5`t3w9sp zkM~nmjZq#V>40FiD4=!U8Xzq=M55k+P+iTc4FiN~MurUckML8TG30hYiRnzzB(>tX@Sk=bg)=%vQ zc8$n5{|%M%11~0@C_l*(US@fdK_PdVv7!$fuCYZ}Cc;183jmQtaAFF!b!*SW~J3e5S~Uhr+L%3R2C1$!KOS$kt>d$DD4 zEZK_4#qwWSvK5h^eZN!=UbG?kQu%L8isryPt2_Ji{Z*-pKjQ*^M}wTY;wnVeIv-`s*J!ki9U>P>e=beXj)@Rj z=vo9Zg5vEXlIv~-ezS6Lgh+q)0Ok`TvdjINTlNEB6%pC*KET{vM0%C=1~)YhOqxpb zQrXMY1Et1Eg-XhMu*Jt}5uQkPM2JW`UwdYpG#az2dJ*YgF`z=b{D8=zio+FafYWs2 zs^_KL*M@Hl)m873XrrNLd9TX-55Jh*L+r)WV@spaSiPdK7t66D;w^Qs%59IH zNwSL$Hu_Q{=#({uj>?xG%SWQJ_UdB*w1-8b0Avur&g z6YV$Jsp3JNA+p!L&#vV?5Xo`og6V*Z7u38UQsL|e2o3&JWSw(8+aFpxk+P=d z=^S9ba%PLjJEiY34Ti|Y(qCCnk4TIwmWAhtJm^{qyGn_e5$WvChh3%IJ3?f&dkrir z^pC5E&_4HvY+E7nmHQyuR*3k@{IIR)`3meIL{^rqV#|QYlJW=eNDKEFBAY#1m{HVd zK>g7(Td-jWxxHmx>h&;Wxp#$^ZYzdZe9_D;#afhxs$^8Rh)^1Bdm=KZVsOP7=&dAl zGd^X!(O6y8`{{06CnaA@k=>)Lqge_U5wGN930p+Ik`7jF-qfB8w6JHfj3^epVSm#u zyY{g1h`eoo$1dkwRAh`}END+fUXZ50a{$N-y>_M2Jmq|v$qUkWOMOf@5P2_9`aY8d zgc4mz>~0AnBVD6F7IRb0Z7I5xK{6FNCm(vd%^1MbArsq{4vIrn`E(vG7o7`oVJTm;{kw-r-&?JXBi_ zU^Iv;kI)d`P@l|dkSRoH(^_PK$ZNjc?6?LIyWiobH0WO;l3&pUoMh_zfg_EGzMrAr zS&$%Vb2W9otMcv5+miZ8{U!OJ5HkF`s0itb`d2R7a(#i>VPWfxB?Fy<*s3BT(fe|LYC;rR|cD7ens6$Q8J)lda@ zp_YO}Buv2}5~kn~2~%*0gef>g!W5j=4pVRlg()~h!W0}LVG0hBFa?K5n1VwjOu-=% zuHX;~Q*elcDL6#J6dWR93J#Gl1&2tOg41Z2fpdm?%+vH(xZYGV!%(*+ZSfm_%Ypo~=x_JK-j!8dUmwL829yr0TKUGC96#Pa!Jh#|gR92BRisZEZ=Jx@ zX)NsN-D9O|s;b}VA7XkDo@l#Kail>7B67cdAspN&Y7&v*&Jmy{qhvLS$Q0)-fY9Wu zT5F|q6`PROjvU8<21I0K>8eseKBQ8it))TGuGFrn$S0+rGSiFIek=XGR6g%fX&Sm3 zx#YD`k=Cv@?79@zn&6tq%rhb@To1Vtsp&;03!zP}XI!!pQ5*Wu^%3apm=Ky&cN*C6 z_z)z+-4GDv(ge0M(>;snc0_19S|S*cin4xXAU?`PtftE+=WUYE-UJlOyt|?=j|dBl5cM4R#*`5uKl7 zxfMi8{VtYCL1dJFw4d@7H616{o6peeedCbiFi=ZLX#fu(=u*jjLLst(!PrM2f;WE}2H8Egm9| z_*R3Xub59neyzAvQDyvetUhb4y|h3(Lw+>^BIxaa$SEG^1d+Z~3qRk=86FjXtnB;c z>VgA~gAQ%~UW|YnZOcm^V%H52dDHz4yKaC;Mft$0Ci@3-hM&b>DrX$HJ}}BYnx&hr zi-h~om5v8lx(ShvrJYLYX2Fe#i0G1Ba_2BQMBa732dq?b>4@-Nf%z{XG&J}G8Ix%O zK%^y9H6nT9D$#h~1fLvQsEE-Y!P1Uci_%a>2qhX3N<$ZbA=CWR{qF-pV`S>B&`n$U z?N=KO)>5%@(ZOfA?8>4;Ck;ES)s?Le+XJ#n2L-w-5<YF|46fzx6tP9UjBbkS*0)>cIxECmFk02O&2 z5IGgCBD~80sRd=>u$^gu&MD}|C!KuRHYBV4cbVMoyL{+DccnpC^F^WaR8>0$z)dLHoSUiu& zks_c`)0&99(cyxg!+32F#jKs5#EvP{wyN5d2jd1 zf&%PB#N^|BRdbJx(>r4vvCJ3mWCA5U*g1r81`&U01&go{`Ji-9skZir9C9D7vYtF@ z@Y|X^*NyYunAP3sUP33YW%r2T++F+^JQA*@tEnT zY1aYoSCyO2pUr;8{VY?4CuzygWxp_5L=JinRlfGaR~Z+}eq|+RDD7eI5pN;%7*+Z5 zk2f|@U$NoNnm{)Q{mlI;Tm5t<>G!ffShe%C+PB`LRc$Yf=L{FcUn^Js+}}CIK9=d* zHazItrH*Ax-y$NF7P9m{A`^W#vh+S8GyHc}75>r{f=DU3^7f0plX{i*E|rt8u*~gw z7}mYs1yvtjt*jN zmFxfb$}qBgROQ^u8?uWW#mxG?$wLb2Mc+&83<{A?eVx76)A<@ugfM?|JkoGXn+ zvnd*ltOtQNDoxO>=ZZMP=<+ea#RhH;$EA|w2<~LSR%%x+`$MOD%%Ed+QM5el3$mEFzBOOd1h!lscI- zA~MN0nMore0sl<@w{&-q6DID4`^HSZe$bM1%NPnLDA$y&DJ#+rd z(IBVQ_MOc6Lu7jSjNl}JOX9MIu?sa#C~dI#9gqlm)&xpfL52mNG;>ZaYdE9r8{H(j z`o-dR8Lfg052iZl?0bplRxu(4hu)`(ZJ%K zjs~Te?#=L$%PCw_=Y8J$K{Y9>qm^l^g9xS3)(y@rd_+nW)R-@6f z6&j5eT_G~8VtDX$V{X3QaA$dd+@8tZZJ1d;i(IB3?kc~V%x(rBW|z+)LUV3I(s<_t zSUly%-r(4LUG)~{bL5TYT&4kv$anA|Ak!!p!c-ck=B^+j(`!HD#9^kNsb5gF(h)?@(uQB zJVRuvZyHl_h-~-0%8U^rU;6g@sOvyynG8>(E`mIl#ocVMIqW2-CAYNutfsj=*1?5%!Uc8$ZSYH+nnzFm50+*fE5eT|{>Hs@Y5t zIpF(>MCNj{I1`zl%MIWDh(wi`N;I!ZqX{0(_UNr5a=&LG+dCQ!wNWS{8ja?fA@a5N z8*e|Lp_e9UJ|Yqp>#nxk6M@c-eD-e4?eS;0>VRt|dp8D=ORnEQe<*1lM5eoEF#jWj zMtL_zqk*2}VTI5r@5ab94roZz=^Bw1&Lgtiw}J^HB2W3AX1N$dF8i*KpW1Pg4SmaO zHsel876yfBA4@ET`OJ3MD)A(>0EVc z(RJjdj@;_NW%m{4#nPhPq8Z=TGO%Wh8=Ae6u zF3;zkxQ~;I#xIyVy*=urKK)3 z94I4*4Dk;2YSBL;H~DU6&ITg0{CAOiyKr;42om3wJJdoBIw5%OodBD8k8KYN%Moeh zXyhP?-MDQDH(DF9v}<3Wu3knCb>o825-H&F*}K?S_OWe#iR>Li+lWlH&xb8UFO8`P z=a^rjB>|A8xg(2hW<+iRMD{+_TE77zzul%H4?43P%+6x92THS)8waov5y|w>YRah* zBCk_Km1d1bJM7VD=tjhKMWmlU%dz45O}(gy({0Dm*Fwf56a?St&UMjq$%K=*oCM4g zK*6j8I1y~txp`;3fuu@Yivrq|iVwC9v1&gIfs}2mZQ+d&ciC?Z2jhcf3Ekz0MYF?mE} zj(;xMP|Q_x!^m|dTyuEbSHi6|Y%70}bm+mACe4&)u^~L42vXO&Xck%0gY%A?ng$Y^ z3&udk@iLRGgF1gZ6&vtXgdIr=WJEVODhl^$cVR! zxO#GxNeiV#tiheo#qPYKMdU(HF4wS9T17H@ak;){q|J=x&BPsvyLuLFW}PB(PswIU z%K#wqt^1g}N&CmWRHtZ@_zdji8!t*PkyY@@tznD(IkK}Cmr}4(+QoV}NPF-W?P5J3 z@<_=p)&n9Z-QSV;-cWtF^g644lvei@z0Rs5vbyATRvnR3?(fM+TKx^_O;-Ilt?n;+ zlT}A#P05?AIwGgtXUG;>{e9^JR{aF6UQzS`tB%Opk`GvQM9#X;5v~uHlJueU5vzVC z5ib7qFZzhI?ZfpRI?XuY@yY@LT4D?z!?-%tUaga~miXVCy6gGvW8M<0DZX1+?}*&(pY6Y`>Qn|57{$#Zv372x^E3PB>?mtP5(HYKonu&+h{!a` zxtm6#`KO4iDPK!owsUQn{(dS6Uf=!H_L)t#;t*gU66uNpm!T=lQAHNI7crNC(Vz+e zwTsBKvgu{=t3fI<#d8ab5Rs;#w~?2VQ?|eet(umtLxfh-QZ$Gx@-BvOQn_J_NK;=X ziybr??XIpyGj8M-E8T0F-+F7LE?2kvfs#t54FJ;Z{=)X9a`6u4jL0Ld)g;!*?`BC!L|*s4$(9O{X1?ZZsWcib^4DmzFb|RI zD{dez7q@|*<-5x_54fL1{%~MT&N}2nEEpOhmt9v}T8xQEM8JIoUqnOgju2O-FVhZH5E%-H+%zl*BF#L_J=!mJ zATkFKEnr9FK0rXJ$r8?Lg&}i1f#x3hln1tfR!tKYM5cPDv9~=CIR}V*cB$6-4G`_s z4y3sPh{kh7y85Q!2E%wCk#BuRZR}kJgf9Ay`l#>6h<^25!WavkS){R6T*7xm7$Q|% zB5w`inlp3oL<(eapS5ka$#12=njo^#{sh<`dJL!{lbn+wtD^j>4ARVV&Icqpgl4I8 z8M9GZJCxmcT!#p@6M$Ff7(}a~hevIXMx?zih{*e{4_L+$k!W`evrifgHGe208jWTU z5m{CK2y9VMsHiLu%J4Mw+?@3V9wBDdLZ2fip_4kDNBSJeT zl>+)=zwH2A!clUVh+ONujx9zA4Rsg-z-Wy~+eC zXps~mL;OSiFSkg~r#eGE)dER62~xIOvKJQFALDTN4$fq8_G2a-0Ya*_<8iH>#1IohXY-trUEx^aoh?FSGa-5_0DmO z8zD4``=rr)JZpIe+MaBypuH}%yu{Wf)#lz6@t1~T-(_%>>%=F`BN;+L*%^o2k)I9kzK>M#DWX1pItHC zZtI4+S-lv4Bo(B$wY!bBL3G+K(27Xxa4xx9TX(xUh`y%vY0>BBzZ)6W@;7w!?cE*7 z(BWKaH~8QlKj-GjVI<#Dl00|EI@(o>$fn^CFU)bzWi<3q1dkPdrqyYYs+4u~^cVMl zT15VU&c{=lW54bjLg}>WT?^WE*VE;j%BSVDyEd%ky0p)XySJ1-SN_^^i{i7qfl(!9_7_X&KIw_SE#bk z3TQ<$zV4bt+oM_nOa6dZx?1uT`YsHgX%8#8OiPM=CBETPF1W%POSE>43E(#jNyvUG>+#Z+sL*Lxf1OKZU)X zhKREw#eeshyGGGLXti_F;nx^X`M&p!Gr&*0(T$>Mi3{}Qv;7qZNY*IsdXG0F1{PzX zZk(~FE>+iCmkBz@moYiUpRp3Qa;|QcUazajFh>qF^vfvL_0JfP@sRFk-7I5YyH8HqX(@)jARxvZAMGe%@sbZd3(bWiC< zW*GJ7>cIk|r%pUGG1jk+uFFNS1hm>QDddrVD9brqi)Jok>t$dN-wOogP;X4AdF4sV$5 z)CZsb#Ppew8%{juO)2EzFHIAQxkIIeWqB_ZNJIJjSK?N)LwEQpD3IZoS<@npIw_ES9PPI-W9ey;4(b`vQv2FyJblB90Ec?-P zqP{jQ9Cs%vX=+ZZ#g7!y`J(A2{Y+rQVbg37pmrT(Mjk8ONRkiTr|$dRHe zrpAT`td(TQ75MrfS#-tZhR4AxrrvsDCESmu7Np^8d@T90Bj11{gyZNj7qPxnZ?+4atMt0RdWhF~qG9=_Y zZGA{Ln^(Hwu$xWRyZF09A*1dY5QU7$Byzuj7rJe*R<(b={R{24wtu?il&()$=L@%Y zeb(BIlXrwNG(op3rUoI|W8mA~@EnZv^~kV!RRQ!?ZRow)(EBx^-H~AoG3nlpdEWYh z^=$jC)}WQF{xLEoX&bcuT6nz|tz`2SJ}L4g>#yx2nvyNwMJ6P^3}m+oVdHv*d}8EV zM{KuVX!$CMe~wS&wv+S-et6_g>n`hSR&xGAWJ1nvsCO3^#=zIDGvN@6LZE;tPmQ`a ztR()hF-89-F!DlVQsP@s>(206Z zo3yS~|0lVAGS<&csa-!6>WAq{1L(>$@=OfhN}ZHpc?X_wv3yI#g1~nR=@rZO=Ngff zvAhV6FJk#&TyxSbj(=2W4J{7P8{4-LQJ1x93!Q!%KInGh{KPO-35Qkj?PdDJ4nRLI zF>I1~#1_vlF*Fr3$>c$NCD)8h?#JirTZkmSp{X60MM{XdJ$d$8zE5;ZFQIb;;)xAE!A_C>{#lumrA$~JJ3 zESbb`vq`nQWbb~y0Xdffj4ULJrwS7Br}8OjMdE^HNqIB593!1GlP}mr$x%t9!`l%? zvMQAql1e~4Y7o(#mK@c{*i+0ilC`tIpZh75e-gIF>NMOT+tT>PMyFURlA=wKDe|ZI zJED|Ni#6=*3y~=Xpd+(d@ToG{5v{Ozt6Fu-tSFgmOS($7Pl`;)aEoQ4yo}s3kHZ~DR#*wDke0r2T;FrkSmm-yU?3osoWSAsQCX=)I zHpr7T*?g)pv*n36Gv(U~`5O|QXG9N&5v>d%n$?(3ZA-g!MY=)<6|D?vym+%XMZ874 zRlH5SUA#k_Dw5TkBhzFCZ`l`-q@OO5eFgf&2%O}y7b7#U^SmZ1S0;ZHm5@m1H(m^g zT`V{APv$?Be>*=@B*iZ(Tq?`uQyqBouYgoA{r2K;|O8xUtt}tMlywJ+G z>GC%m(X6I?VvD=PyT#e!^Uc1@*`ISD=c}B9Id3+bBhD4)iSxzFo$e9u6&HYV*dLJ) zfs01=HRV$y6?zY-&eqJ~f|mKP5gTK1Af=f&0tb{*bdw{3B;g_DuzsbFSp*a^X0* z^UVcQ3TCt;BAGldN?C=>=Oa@T?rlNtVAI3esG~d*h*Hagto&K6yu*BTV^7G9O=&Z$ z-81MxEGuNNnXH;NU?-@4=qILr z=(jr5&(;w26RfR%w$-J6o)=#L_4A^vey~4OKllmN4}2o1eqI(|5w|PqhZfhNes%!K z%d+~R6#7U-{m89R^|MplC95CWEUF)wP*p$jH&y*mB2+&ztg0XRo2q^&5vm^w*P(vs zptg&<#n;6*#5cva#J9zF#CH|-L#q%}KkuXZNr;rGQUB0}QU4$n>L0muZ;1Zcr|2I_ zjQWQX>mwEYgEdkA&~ns2a=D^^upIRdEl2$$m#g|m{-)|5N`(67Bk^PLlN$QxQ}HwL zbMXt%KVORb#RH1|!Bvy>kGwjle`rIfe`xyz^$&hx`sc8CMEqLOKUfq`^$&hR{qwDO zRMtNL5!64ltRDSyydM2?LeW3iEb1TnNgt``AKEnPA1p`xBbO`shnA!M!E)3;`02)G zQ7Ngj+I=UU62BKui?Y@^Bc2t{iRVRfpV5?+zfRLN&x%#zOX90yHRzhx#P`Gx#66&E zJ`}$a4~mCC*L;Jz=9qX={DIuqmUn3W)d-)ZLDby^=bQZ`ULY6S^6eD=loYq)lZ^n1 zmE%c=h7k?lRNVGX1RZe z(Nc8B22z5Q&v(Hz2vxJyG+CWj@OXizYi=wKStR9)_)ZZ?l$iXU2Vt86?_C(xM4uv& zEqx6MNvYC9xyucM!?T0h;1 zrz_t#u{%^gsHQz+PFu;-UHMUo#Za&8D6*Hh{x^_KcbeI=V@mmCrq zNmD^ipifj26Eb}%`LP?{%-ledq(Z4k>LIyMpt`z&^t$lnEt9U{uhrycCe7!UOW${- zBE>4-P{3bjE|5OX{UrC(Tv76nq6$8pTrA+dVQ58nzSQWKDkM^T2m+JXC8kINd?l}S z=Uv5cvuEQ6Mc3 zn3Bz-rDm?(-+UXC&)lGBBJP8~Jaf_Eb`iuh*S1hS@xZ=Ntw8q>CQ*3>p_vf5^~%W9w1 zA?rr+X%XbHCQCO-w|0`VdpE;6oeLL^DWs$r6vZTIN~c>$ye%#Wm+*mIq!Dq z4r!`1O`0ynz?+-$_TV@W9=&d6%nWGm1y!Qttm&PkQ3;=(9FU$*3=8h{5ZnidtAuw( z+$G&D%_gf#__C2st7@HwnWnlAvDl=a~K ziu!0t-tEEXf`*{^W)jnr@6qZ3XmwtKwy&vftdwjC_E0ENmz4jYL{6ofGRT?5rbuon zSqXIwL|TqR6IVbZuZ0ioA!%3maP+#HVjivua=M3udA&f(8K0Eyw#fVHDQN8D@W!4d zlY8@x(;kslOKYUH(xcL2(&N%PX}z>T+9*9CZ6X_c^SSNnDt=blB)yn8Dm)!7bNEVc zK3o5syqR;WpwlnIJAGdIqGm2+i}V6cxOgj&e;!UAls>CH;cYcRPPa{Jr#nQJ^x_lA zdwuv@OJ9~AkzSFuORq{hr0UQ~Ne9E*i`6a5nxPwRuB!r_W;@+6x!Fhi@{M9&mR?hu zlsWW4Up_Siq!o^njW)hvEM;3LFPqx<)OZHUO`nvT9%|#SjekpeTY5)&S9(uozI1}@ z?aL=eGZ?Cni#C3&YP9&z5={9mwA=XUX36^FvccT0hL~9}|;xAmXFk8fIivy@lH<_-6l|k*Y_XeFpJ4HF|8K zKP-{O{lFjjXUks?kK~?P@>6y8v_L*hU)GgE3>yTl{*mE)C*wELw-RYM0z_3k;nN?5 z!Co=BxT7REg6|yWah*^+u9LMruJ2@z>y+$q38$okd`jo6#y@o-&y3^?{su=JePf!F-4wfK{siRT6WN7DLwexj1wy?XD#3*-25y{b0I3_TosPo2Orx4~@__(G0b zNq(8gcjs0HJKo6e;ZkcHASx$~1su8mF+L^OVKP`MPCl6<^QQ2b&93H|WTrMtZJtU3 z-Aqa3&=mfDK|R1Y&XFbrn!EoN{vLyg9z68a2}xwlaxRHO1(=9G6H&Oyet5a!lbLoW^g0T>X91VRFsMyVLn+aP4=V69$qsM@`0%tacOb zFln-hhqr#U)Vd>9POVQWRFmubh&h2&zr+iWVUK@?PpXw+uVWRs?feXNS4<1t6~pTp zLN1Ga5_8Tq7yk0KUfKZ%4!jAD_?n)Th*wS|*q8 z<=fO{>4le8NPrQQ|oG%=8S5GwNDoQ)vz}Dz8YbzAcwV27j7yf2aFKIK7XIK z$Qa&6{v=}I`S17)^3Y?vKr-*=Ka^uLjB=Zk!i87`V%x#oC9-KD-&7Cr>z;*tn(?yu zQXy%&Fe-yYE#h+;hlZE*iVgUc78YI-*CM`qlLiogCZc~sDQ1RIh}#MYjWdIs`&oH38`gX^HF z$&NS@`52$31Q#tH<7aXKvhFed1|xOn$*eU|38eUOK9aP3oG(^3Sxa+>R}ozEINz9q zizPeO@y?98{9knbq#Vc<3W-Eo!&^x2_53XjC~4oK$0S>kOpu#I_VwkHq8UzoxHIed zoek@9H|0u46UplJd`5#BuBLQc!I=*!)1Q#>Smr1qPRcg&Lsb>RT*cu2jr<%gt+op@ zvS?HhjfFv2(n;l$eCbtaEB zf?satyKu5W+FY-&fBqaluHM3dReaY!n?nW}@jT!0@0*FgJdu|C^uJ;za2#>eR%HE4 zLnd%`d>Zd|5$=#Mj_m!}WU1fVV0JErEZfeHt7Dgj?BrYOC=S`gB7vktENQxf?@SM7x3e9+Y+zlS6#Tp7!xpU;7k9{3u65j-L9 zZpiVh46fPD&*lp1_JnHPxmrKlA->MvEl&D*Y~2ubsI_$6UE zoE`7*%cB&3DLCw1{yjb3)M)zwp9Qxu_IjK1zqBQc=UVfn3#ISvs%|L!E$~T+HQ~UUL!IQe}Lwflk`22_b^?Ft6 zhLXL7LN~Y@kat8#BYQsKZK0c^h67!f2UU-pZFyO+C&`hRp;*1MU@WH5Sf(gU0H12_ zwL%`L7KPaGaO2^Sv9u)5ZWkH^3%}$uw8h3-3ek;XwPZM*W)Q9_{9@pWf^Qw-&v9Hy z@WmtidINMa;wWF(ur3#fp4#W?CMJOwZfY12p@Xw{vi~Uf#BjV$njYgT=)rgJ_G5e} zj$1~aKF((ti5O@{woey2m4>=wV~fWX%Lk7Wi{*pIDaGLjk9QO=6{i=k6(4IbAxX<9 z(Tl;$+pcK4nGUfHx%C9!piN!lq^??xlRG-tt#q*I8i$L++#q#OJ>|*)!VoGuN>BSwz$HY0sKajUh@>5iqg2Rh+xFi(# z4la@?TMdpa8jzxX@h0x4;CJ8gw<=3COf7%pf#_s%{(A`7z+oe8PxEb}8b~|LM%`m% zUv^At@b=UED!tl1Ch*Q}xkes~}1;D-~x@(ZKr$&Wr#X{$P`RXNjww#|D9sN=TS)B9kSvs$7%cvszlOuexIqb?MFe;J!H?q->Np!9 z@fKk$S$l;qsH3zimM--Qqf=}92ACz6NbFo8dFeNTuU-r4;)FJ`FL~v#IZ24pttfJK z#|-*T4x&2u2ZDuc=Y)Rx0TNks#GFK0>4j8bfRtI%tfYC#XGW5FG%hVTRxd1r9~Xm^ z`jS0DGD$QFjb%@C$vx0WOuS$T_BRT1xVl`qtgB~Mkua3cfFzreBfY*SfRD55F4R$AqR9r-s9EU4eutNU&lghzq@xpanEmwJL z0vUf6EJ#d(u;}W}@vsF#3fY?=MAqdYv%)&uWUVl*hOaDrpP=OUN%?umAiw^oDLptX zQFvTs67!$ocAP*{t;lDVY7LTPp@otAGWbfm;EV)C2ha3ivrOT$s4jm`+b`%LYy1C; z;$6@~R=kUHg`UQv(mS0TdpZHy{az2Kh$S0jN2urf|Y6 z$mu@_Qo{U}nxwTS0Lh?LJs#=7Zd%ss%KRUv5Im4CT#MpHy-?8VMzVTobR4<4t8ko~ zLN=6XQJBS*-kHXA{`oGOSb>RNp{7E+OL|uirl$C>2U&8E0O7 z8AC@4%h)3Li$^#oXEN%LO@;dG0HISY75A5STFtptkTq|c;fl2!UxUKSC5wNH7RVPv zg!I1_0pV1maY5*LOD$Pt!@l!RR;{j?6_U$unq&S~)7vmqxc1*4v_uZuqSw^e9sh7) z%0~%(>e}(!M+qsiLg+%wqlFe%r^zNuM+@>X-rp0*zqxFGl>?iX!8Ni@*ZzrU1|c|i z8nyT7g5Adp5Z*mWwoDK_6NMb^iQs~X!l($YdGO55LJuu_Sko|fm?~t4Y_?go zU5Si{A>BrG>$q%%kV21S!V?O&L(Ymi5h-#m;r5<)^bF4?#J?ik2!Ve4I|Q4$gF-wA z=zTa>7=*VM67+bLef@O7;jP=FTiCPi_+9nr`b72#y*Mo2mA;{Pd@;SF3hlNeac>C? z>xs1&_pCeCR$RW|i!%iHVF?;2M+JobT!Y~7fbgMSy+lUJ?-DK=ASNVhpBJ2@dbZGk zym7Z6={w7pzeuy$LOGUuCPX(PuRbrdqeP>k>9wi1dWPP*B0c8_MK$n6bA;=X>I@sn zjqia|pEXygsHc3@Ria!t< zlIlvq6x=aSfS<-z0>_5LagUH55;z{-BgBve_Xx*e!*L60oMX_q(Eu;+lFj!D<$p%d zCGy#KQ}9D?x?|Nu1Z59gJNiz)y_*3D2^~=0_l={1d81!LF-?>2>E04Tq(rWM?0c zmc{2)A9hwjdp(CzT6fLuo)Ze+h>?m)CLZ!VM4z zg>I%qGIJ}WHV!>0#F6D21#7qj(47=Y0fG`sMm!<(skaTJ=)6!Uyjnx@y_cFo6gGAx z6!_QJIO`Q5FIe#`a0XU>*hwKR>})V}PoaE7kvC4Fy}K%Dqu^azgoXx{InRahU=RV` zRH$XQ(QmQjsjW3QHHeH33MF7~)&+&Z%R%JYKGeSaTOtR%>Qje-f$mF4 zhX_crzr9@;T91;HmFNkWYUjB^pL&R1eO0hQVj^k>7*j$VJA{wmQSCIRk*?LCc?cO> zEu8&db75b)IWM^Qb)kyGL~5Tmg|hBfx2Es+3eSeC)>I$)YBIh-hHtwZeN*WBCzf+> zukb9jnk*UlmT*lyECs&jT!rPq;cr9Ct_tHqa^icTMGa}a@UAen{>CTPQv^n_UF3mY zXas2{mHa;6Vv?;SCQ`vB#*y*w3j;Kpxc~i{Hn9b1@ip96DLy9%!J-cY_PP1cdH>H#Q@79{io4MxLVDU#nr*Qqbk)yx=%BBKwDxiie zid28W^!TiLhBOT}LEg6zU$xvX(CfPR8PCh^4guiw%R~LH@r1<5i^sph7ko%6X3E^#_^GCqLMswu~Ui&pD26ej1In2zi=4RwlH*+dx zk%1A{sRXZmD?BNGZY`fXJaJU$hf=-d(dcY)_?X}&#qWZvbN4Z!lPc}mLBLbE#JYSy zvMsL|0VIx>|=KRS+GT|0QvN?@NV--*2>=Wr*PT< zE9vVk)%2Ik)Stqc(DT9G%|$XI(wtJqU`Gx$XOqolb1OODS*MfpXM6E44z_^&HRh^A zGEtwg0X6Gm>)jHWWYK$qyT+EtiZpxw*;I+A32;jdgG2Ss-uYB6it4HI-oh`bMLO&)j5lqlV2zRol>C z*PE%+g)R)s2-R!~&tn#+n6DNAD4XLSFU_A%OdSozQVmE_L-UOK6u*8P{Bn{QokP`r z6#1i}ndZmp)cp!&Q*!XlXcL*!$Q+A1=RePrnh9GPWd6m?lovdZX>P9Nwn9vUDy)A& z^1>2Ze``nUhr=%k8O-g1CE4cdxaOmz23-cW9T_<)a&+Xep4Ucp6b3bYzVQocR@~XIIL)K;w#w%kJJZ zBl%q!VaNp>0uEuJOkYIWFNE87(cKs!-o%;oEySPp7)wL7S-f%+I;BQr&Ca-3>Q*W= ziU)~zp*MZc$3=Y7Tb+H#5ofCdaD8EGfm$h-;C%+T%M(Vwh+cBo1b1eXMyT^%(_tg4 zyMw-vxmc_0Om}k|W#}Qt`7WzggM=LC!`~a6&#C$AqB zurJv#z+BFvw?CO%CcJ9$j~u#^(dJw{&n9bzn6*TwtHvn67|jDSJ9(@nrB(*7rZFfR zW^Q(MTGah-4+CAR{D4(&`G~*luTMLoqxfcr`^e-eW_-&Ak97W)<%1I)n0gl+0X-9~ zH3FD&PXfldN$`O&=H7bP&R?~*q{o{3RJDJs&*Od8^}(N4B;2)T?bXTJ(?Gvw(!*Ev zvNHcebLmjyMnbI_se@@iR?mm`g@%kbpRch1F17$F@zwl8DtwdUEgApkXaa@r+^wMX z7EWfur>sRCgHc9)-%W}_fZsk-cpgIRdHAXd?msqYO%c={FAO11X7Vq${aZtYGt2g5 z(KK`8KZ~V-$(g~5>E`Jn$qz6*esXvwI4J$^tYJ+2q`V2>V2k8a3QU%qn`fR#!0tqm z?*isFVFqkQ{WA0yR$|sEb6TC^^S7o)HhgZ5T{Z_pfjV_mc+ddus)ei+qm%1XQ(EM} z&#mF$DO~$-Zrxm4Fs}yJ)`s!w7SiD!v*|y^u)5-ozs0xU#QV)Z$iYYWR#Gm6{LKaY zr{l>bYbu$24cS&~ILfwq;z9GRH8LYxmYOrjOqvTHveay=U3gC&Y-jCW%_X85BUDc7 zn&y#J=CZ%C5y_N?%&q?CBU!u8+?>q($sB8r56R+OO$0oTn@84l@b#bK4UQ=KF|+pe zb%9v@s>=>HYM(GWWZhbP$Q(_siL|s- zl>ipr&q&LkG7pjC#16-5kwW3p`Xy!Gv(YK!+-7qNa(ID-UZwr-@nue^UtgOq>d0LG zg~8(utQ<(U9N84@`?LKAGL{v*;RSQct7trR@S$w2sP}%`pGp7U9bR*?<0bQnzsI-# z!stem>i*F&;4xDUk}r0cTmJtw#F6iqZ&pSZ?6liFRz82MQ=R=w>$_yHc{FMB&Q+YT zkTH@=@0eHA=X$`!zme~mTa)5p=2#N>Uj3nzO!&*cwG#DT_oLel<~yg}?Z&2h?Nw%3 z@}YUy)r;E(BR(>B{MR;X?HP{T6rD*99Wamh>oaUlUC&N+%|p4x3DXqeM^5TqM@G|@ z?Ej+9NI@}v|4eTGe5z@6-+t`dcRyjv*__;Rkom(kES;7hRq(z`L4eTbJ4%g+6 zp|du$wx5;(KjI-|kfuk>Mt1FwTrP|bz289J@ggxNz>R;CgQR2Ac>?^gSNe775p$k) z=i#d(=5+X}f{RDY%eBi5>15M4=7#bOhdn3Yb+J}^p{e4ESR;vX$H#2_)(o$f(W_e! z_jDp*20CPh6c1iFW6 z8vZWIMRQ~gr}#fQUh11_?~G6nqwe8$32wLmD;%l<>n8jQ*8FeIYtyghG4zz@Z>>WX zasCEb<2v$aD}Fa;f=69 z93C+SOIL0>>0_{Tspn;9`LguWeeV?OyWlk~Wm-zu>(1RG-zRSwEbY36{+23x8(F>~ z{Y>9IVtqHg+8Qmxl@kD>oQdo+TDk*-$1b7AA%Me=Hbq!&Rh30HY1+-=kk5+-Mp`sw zA>+%UEVFCqx+PJT+iOD^B+q0CIaE>`4Ltye<7+lgyOk+|pYfK3@HdX+yGx5=*yxYO zSUw4r8F;7a-^iN%+_%o_^O%J?lVGVb{5xZ)o%gufKt9W`9H74i0zbBpNZx8>k*{Q9 zstXuCNDkjtG_JwsK{PcMvNmy|WxO1|!HPtYZcQyAsWB|P)YKy1ObK^J=}#fRCAhzt zUO63_;Qm|lCB3sOHS;A`x>;JmFM3*P-Y@|?gIw3r;!v*x=8&&iT4M0qnUhmH#&YDzlgSl%EjZi4%V|Iv)t|D8qYg*Npb1^tU?aE~JV#V|RW z9=>7ZWE9+@Th+zVpDgWT>73NlX3;G$hiD~E*ULsqu8++yUFzN2me-?W4-)@&OhV-E z@Xe4+NFPfhZZ_HZvyhlg}+RS!;z9ZQ=O%A8>+HQ=S6b|_ST38!eR2y1c8(LBu zI+v`lrUT_Lr}Npw@V}WAr|a6Xf-lLxuBG2rVe4n>ZyR76Xw&}e)*u*ljX%3J*jDS$ zZVj=?e|BpqP}lggTf=PfpWPZxHnz63j2&SMKh2>>JgsVg@Vj=IvCU%Tzk;sQ70-m< znC;o1U&`Yt>&Vc2OKZbu+ZeJS-_q4|jctsrr*3@;ndvnraRNETS-Ld7&X(D`S?`zo zywYcTpI7@Fguj7ESwR2#FmRv|S^I{NMH0X{u&E}nI>{>Omq}kEJoM6ZB_a) z%-AvA2Y(+d#MmKT(ZkXqa1(I9#@`LQ8K9U@o6YGc6k8kG6Z$7RC>5U~gi=N7rq~Ae zxy5#?ZFHa8pfI6UVH2$s{!X-3T223wp1;rSwmX*fvZQiT$>fHX#KdVZh#G%gY&t3F zWof9NVIxcWnNzqK2 zbLY-2=brLE=K$T0mcv4ljEt?uu)5!AXV=ZCn_ssl`Q79;*xg9h%cdLNZ<+T4#v)Cl z$jCU>S&6%8*xa%&`K{zFEf`rnIyXvTc#Bw``3~_zGsIqrC(!2SP*y75jZwm`RHN-> zK^dtGtB-jKrWTTQ(%TKNHz}f5LBO4Ihat#LnSq}q+9`MX@06LYopKk}7VVU~T|4C- zey7X|uv3(xLfk3;mB1ebWFJsni4p4P+0kimZyA{mQ`X@JUVcCMXWKqH-~r-l4St(3 z>&K}4wDnCJnhedt-RP+aC#Oc2_Y&VOB$_b49uH7uw>9Rnd>S_tnIL^e4Sg1ctHMf& zWqiSMzJS&fE7UBWmHkiG26Icu+*Td2TJ32D%LyIvthiu}xL~cg;5lJIA@RJp;01BP zi(CPlE}Z{YNW26X4mzWCo%$L~D((6(7J0kG@R;Fo!|L283{M)~$y=wM-0|%x9o;S@ z){8r`L0FJeNNg0A=!s39VdF-6DO_GlrWVdKfZ;*Ie8U36LxzV9j~Esj78w>B+6|8y zo-!;oJZ*T!u*|UBu)?quR@ais;!vxT#AY~AOBRQ-fdN-TW*wRA1nU0)de%aGw9Xq_+)Z5jr!-O4h{xC7b zZ{=u|D;9hdvB9v>u+6aD@QUG8!)u1u4Lc0~Hf&MDYG-s(&RWAx!9f5b$kFmD;wS0vYL zt|(P)shCE*3imaUWs-MbTN9Zb`Ho>vgN}F&jx~`vlJ_B|nN-T&H@vQf`ZuC-r1*F1 z9Z~Txx|ytyB!c82DpmH0p~(RIexu?g6vVb5SIIIy;RmpE2Q;^k1EhzLooOLeNr#a7 zJSSwDbY)ZJ|K`6!sV8;{M{s+D68h|<(<44Jd~P^w!05}EVc`n{m(ro|h+zS-z(eox zQzgVv!+f3*8gI^dk9eQ3mhC6L zj`)TS%T6E;xnIqv1ei|4#NK3!)2t)gmRVx2-9nPyxK_|d{)ntt{#|UF4lG!5V2@0;mg5OHX)e)bISL|V7fsXhB zK5roPbe=KaD9J7`CL0QkMYtd^?MUxpoU}KETxoA3CO7k?!7N>QD5}H=S+NS`SbQMH zz2w-lNx~UYe?HK)Mz64tWgXXe!9tqDn~cpyml|$F8x;!=8x=8;?=YVLU4`6tA^2Pk4?4+Y-J$x`nNy{LDeCw*gjtr$jn041D9WfZ2<*?KPNs0`QTz(XrBVn}hB- z&n11Jd*0g%Iq4naclb7WA?xeN!S)5Sg$VmB?^mS&g6n-otT0eaz&^7SX`Z2B*FmMo zTe3#Pgdy*EFMB5`VW@RvTXHzZ*9ZP`?gAiVDLt$lO4t;3g;?K^A0n`XpRGg3Lt4f$O2Q zBS=0V!`$o1y6BsYw-{HIOXXp5E@~L7SL_-X?N6kLef~w}b4q)}N$aWGj2-r!*NH~f z8VZST)iQAE7$wZ!f}UDaE+nHQcfj5Y$qLY#5nh!>yqtGyRV!b1ZMrYXooV#y%v?nG z!i&hV&g!hX2!)RTDz80HQEcoMKb2Q7O|`K8uCZhW9)`!pl6v1W^1O?=GxCy)$ujv| z`~(q zICvGVyT?E>f$Y`#nDO%g1NzqV-Br4~G>y8TSWlp*H$KUU`pA+gqvzgHhn^f?kv08J3z5_NL8Jw1@NG-0T^?}#X23U9% zS%>Rr6Tgl&bL&X58S*BOLlRy#ZZj6h3w`quh7sFg&IHonX1&t|KKxt`y)ktqhKi=$ z`sK=3aO%R5*C-r7_I5vz*5L!Ncp^E8y zA=H1$p!geH1-Rml84VBiI-FHIEQJpl4BB#F1{ooJ*9d#xLReR3Oq6Wion(aMU5LCB zg^UmQb7jbfNasaXsgJNoWR+rzL{_Pf#KOLe6ZWUXp}5Z~2wD%|Ga`BaAQp)%Ss(eU z06sQe(EN#UzwwaqQ@km%Wcl6$8xxw;O&Dd7bCvj0RuFEh+}Y&VUT)6uxbcMX zq>;7F1mGW6%qGi1t0|d7^6sW*-LRwvJ>s?B8zJ_Cs4ICCG)r)X-%s*^pgZ{r1eU5m z_W;@4feXPInBkB=#h*;v;p=|TF`00GTrbW~!~ZE&co#1O5*6lDT71|O~9LesKQ`M9#g6=Z)I#opyY z@^KORxXY_okk3mua%M}V#Kf7KH1Vbdgd)+cXWzn#yGoPjL)}JUmC0=u_R*N7tu-W= zf@sVVOz`STvRazNzpNw~Una_WpJHlqXSm?SZ5gp*z{&xsrZ+&hip-a!L;D_5smc&` zvkkkMX@a?{NHv{hT3PW)!?P97HFz|08QCVUJ$V6fp*OcR`+X@U^j|~UMK2R5RwJB= zjRnxrK8(ZouMP7Wpy9!W`3>uuuc*z#&si4T*g-H0w|~~3#g5$c9GMV;rYy*pWCuB= z5<@(tf;7tx(Agpez5fz9TnRNRq$6vek9=NsqU2=By2c_?u?Y<8$*RD2?psgR7nhpK zOnZra1ZrVB)7Ziv>&b*@p9kC;Sj`49Q^uCV=nZ6r=T|zs^fPL}w{IY0e9A1pM5V*; z1Lbna_$4YbDjWB9ah3bwbl`4ZvXRWN`MjvJo*55S{TFdU>@Ihyr_`QiT_4BwHNuEB zhhb{Q8L>$avx$@$*q4meUm3&JdNKOj%qwE8Wi!cdXrpnMlyA_Lgp~0#7_d4F-xR{R z@V{F~UEy>Vy-a3CumdwX3?$pgc<%Q`g2xO@QoCmBkC#amKdp(|$PE5h%{J7-@^iV3 zEaslG$h>W=W5B+a#xzBn$cQB2$S?PfJRICcCUkI{*-mCQdY^u{z~@;sbP1LLEt)k! zWw?4f*(7O!7q_DYt_2QnC;M2v?RwXP$rNx!#E9DVe*osJcg0Wai2Nd6J@z;mFZEL0 zGfY%MUJL#V;_aa`h(6!M(_dtsUi&whFSVQCL@UL{uFVyUFV_Cuv8SMw`Z%-XjC*g#QJL zcYAfhIYK4u2-8T@+lB8Gj;ZtNZZCw`3+Q;TKY%etMh~PS!2SlA=hpj%^!$c5$W+-z z!+IAU>|z&ZHBQK~u$;&EV4T$@fjBF)MP3?=v$_rGQ|-7R+`FETj;$c?5a2#`F8PO7XKI@)EY zu6ej_Dy+7}_U8}=@!rz&)fcGu)5FzM;kJFGM!^9OxXNShrgFh!^H&CV!UW77MIto5 zNyZij>ECqhUxU=OFZll53~g_s>FE||$3IcGm_8<6%700^UJ8dCWTE)|9^^oryJMdI zBA;D}QTMKXi(J$xR~VQqr3tff%`n|*nrXVrbhqgq(=5|Cz}#G?i8V|MCb_V3%WQ}} zOtQH{TuNZ)`(%-D7@FbV?~`$XMqsa6kqPt%{^KSFIs|%n>z9fGOfkp#sIgcF;Y)Mj z;3T;cCJZ5SV*SP*X5Wj8gA3*70Xzs+8n<{@&_keSx5i|`si9=D_=UOw7;ppw1_u08 zXH`@-V2nS%Zn7YRK%Y1Le6mXPhG2k%zJV6^q1?2p^s20?uZj=TlT~7r0(^6UUsptk zf&iZ`86F!SzDK)PyAN{rlOr?QO^=$Em>x5+?kqt;`j6ut5`pxeF!{N&JZa+GS(Hy< zZ4pR+Da0NimC~n8aHoaJ9r%n%;Ld`0eBK`9&P43uI-`&!5LJcS51^8K1@64B4O3irlxN1cO+P8 zO(P-pkRl-r7ZD^JL0`ZXFyIJT#4fJ-+Y|+G&k>wH{-QVRJwhgN%kCU`DnuUT?@VVe z1|CHy#R}MZlpGAt;0^xwt$ALCsY8ALWnYqI`JvVA3-yKaeC1oXBuczXf@KumhTpy< zGv)7?W^3kX=4zn*_DCgEe?<<>92`hhK+Q@8Ve1tnWQ62GquMc{C*z2QS@0ni7 z{t%w{itJa_Q8o*)yYsuIk4&z777%-k>&ijRA>(2?cy1yDB1}L@Hc8IcMX#Xp5lotcWnx2-;`yiiq~%19DB~k7 zC#AY;vti=h*p@9U6V<0U2g<%d553M*OTry2ISlPB7+ooICPtjih4yEt7U>rzI5bX? zcvf%deS4AmXfKP7@eznzq)ezW4}EX5L!m;pe5x}#25E(!s7QnpQ_#G6qMeR}yADus zaMeL{TWjl2$_n`1_N9ph&UUyr%f2VeibJifBl^wjhsf_m-*Zr97KRnhLY2RUKfXt7 zWgGPS0nOrn^%>6SkdHK-aC4HLIhNKMK=~!vCyx~}Ll|?G9#)4|SG12LL=H^+B?Pq* z?jkl!jq6xI{_`x`MO_|a|9v!5pjhZ+ABhITy^q+Li>aehpnOkM6javXre$;RJfNdO zGCPY}JqrjG8#YP$GYYzoVFp_a#fBV6mxmg)E_0rsQlloiECy&4I3S}Yhy7+c1s8-< z8t%se{E6Cl{bKj;?GTb_;Z;5IhD$nDsdOb zgvFPs%nJyeR~};J=>)S#p6>TI9K#$T-=;Pv7o-#n(8zQjYI*F!Y$5L!U>yIGN%aX& zGNT0nlCr20Rf?G;KxlACHNyp2RJkpd*2muY?=Y#vvH2O?{$ zpouhdmiczs9kR*tnX=FJ6^H>xm? zCpJdqo41o$_1X0~^$?@QN;bJG^e`LC&{av25AEeK7<`eSn3nitZ3&3ct$&!Z{Cs0;BewxU#&|vnnEa=U=WuXyki!2LG(B7X?N}6GYg~}V) zVh-7`AgT%pRa7t8XPz(}CNl?kD>Wm-APUoAF$b^)Sj`^WgUW{86xkl^Wj*E}eU#5NlUMrMhGMaZzz;SX4vtf&PxxPy;*kq#Qk#$_XKOn8%ZntB;40CwiiL zFvaJQ$FW&l;niByGWdFT$ct(|Zfvc`qOv-~uxHd!6>Jz9$*1UW^E%WY$NX|H)=><5 zBZ2*8m0SjqsAR!EoE+H(^h8yn zTSd+8apJytx1%C;z{?b$oA57j%myO%l1VUq7&XSFx;PEA{^lmCU!WD({u**5tS_%< z1?Dyf4qqp%kC`C%{qz#Xf~$w)RWzUQBWm;(2kss6ef z%~Q?O%%bB+MTqU(qSL4b@@}Rd%)2P>Ca(RGR%~B%F13lzB^fc@d{N$5*CWcC@e$GC zga{M%aJrQ{oRV$}ayTu8-T8ECNtZS_#8|1&!-L_L2D_CCVqo%*MJ-f~cau?LBUJ}* zxylPGI~I&O92!)`1YrL94yFbMHuLy5rrv70+kB6CR9I7zrdm>< zt(F#)6_*$D7Ky*huy>$hb4l&@3N*d}ZG?gtST~|cSH}bAIHv;6LcrW-=6wo!nb;_GOA#tYckd8)A*Q>2 zh(Do{5s!GefNWwCTzNjFc7++a>AcutcZThC{rb7Fg6*NLq*^f8@R=|_8E;$>9d zg3wI*kGB8|x(F34ka;;ZPAm3d$1j39qto+m)1`aK}B% zRk{BvYOGt5&J8XOFEu}H=7W83fbnD)K7sOx(IGy!Zvqu0;)nlv_|LKrX2w(F35XKx zpTF#1ypAfAt~A5ZIw~#dGV|LdALuG`R+%A2M`bA3>jUgHR9sKh{{4wt*d+5B=s9`o zO`6vRHQ2gl`u?sHxVo+pIKM7{b{cg-zvs;_n0F)=#mY1im*l6AaGj5^=lAcSmJG3mX3q%*)<2O-8%KM_1 z&D)?QHYPLL-5^^qp_R&)ziQSOH5c7az~cU7VZ>|Z8Uy~`)1SWN4{%=_)e_C6XW;bIyE$pO^$iq#MGERYsCpJ9Y1k{)MoS2`NT7@6 ziv*fzzDS^l=8HU9=xTO@vt=TwAC=G|9rQl)o94I7Z=2sSzw6aOzvnOOzb}^c!-x-D zI_MAm#r%(WG5=%ecQd6cJYe?ml96m-736L7L41md6L@DGf=6zqG9^#LrkklgVf)RW zLj5TwQTiV<%zY^=zVtIxJm0DiJn^~tX2mVOMKa>B`SGHqs?C|u=Kz^9@RI-}ABQi|I1PH_YgZW3ZHxx5xociAUliN6T8b_Z1Qg2k@6lEug-gvIp359uKFybfget38PxkYhY#2 z?dNiL`tEirCs<>gyVA(vB$?bnE1cWXqC2_^%;r^yePf z?#6=do@g?-@Y4Hks#o9v9@NpWa=uVs_c7<%{bsm7cwflRMhBoL}F{2dFGcZ_#RB*Vk(6v<+G-9MUV48XJD{c=wshf3n?jv0@xo z8$IJ)QrnFha9M+cjuKpv5ck13J{20y<#_KW;IflKuPQ|D8HqSp;Lt;eYM5ZTu>rOo!|2EdOcU9n%&6%NS2wW55ecw$J`%(U4^vS& zS6kv-c>-JuTaIpy0dfqKUW;!RoEMcRhr$mYw!oC1$f$${l>SK>*Z z+_R^}E_UYGpsdcoo+kjIV*(~9&QEP;fVz!Auz4)HFJ_4gBjKZAW6R%JLYc)1HUV}b zb89D9zWW}hD*Cun6V0&PX$fe%nP~}NyTK3$cUgkiZtjBKPf)davn;c*!2l+lITo=A zr*5vr*M#FIjQFGE0tzGdS$L!z^CYE7w`uGeW2r;q)C|%L)(p`M)hy07E9O}?^lHx@ zrh!$3On&PFmUKmiB2)2W#lLdBPMBaBtGiTph2|>F=+eMBXMLP7HIfJk$0oRpM=|K) z`Gn?4eDzbBrJAQT&uErumixSVh33DmBS22TmLf)F@a=>*P3?S3XK8AEoHjK&;<7|& zJ6EQHPflXyz8Oyi&h*EEZz2&YVYsa3A=vsFF1o!hAs$A(G%!-azxo49sVdn*%OalA zR4m4Af4LAF&~7P=De^_($%#A5J~rP>FUnh-x2o(>IP@l!K5&V}A3YXCd=^!OE1&*< zN=4iN)Bq-+uUAkd9A(86KqYBUT576W!VF=?FjE*xEAlrx$Sol9c|hN>vsUB`jn;NB zO1{|aJ~{rQbXxpFJekN?4Uan$+0(dRT2RyUjKvS)xXcm&;<()6g*dLjJtorcthDeD z$5j>)#BsI%G5oBB)6}f7xQU|&M*NpuD}nGToVTIZQ?AErrS_%3Mpc$1Dp(5Izr~k^ z_6cNF4OEv!8;A8byR^BO6-cbjebFM)=1Pf|ECJBPe4#+2>#ix#>ADLAT3uIRV~j_! z%ksQ@X{Vaq^_C5mjh0Q8&6X_|54w0Oeu)Uh^|HkeUA)c0p^GcFV{H+D>y<#~#;X?5 zx$#=)=Z2^%Xf{&KVs^>JUZnv!fbw&m=pLvyfMDsdMs`uAq+_GV2o}=nBUj4Y1@A3E zxNT6NvX~F_GqbuY9N$Wv_t!o-0#O4Y_O!>u;Kf%169X1W8h{uuF#NT^43+-_{r=8_ z&*D+LHuz|D3}#(+A=qktTn4*!f}IJpP!9#oj+b!PN3nBg%H6(}+wSs0!ABC2ftc@3 zJd>i6#UCjwI$6X>;Sc@Kn2*F~jEwl$;zbHqeByu5><@I%91tBeeGdjXXhdF+y0dXL zb_FpN!1{B#S7YaUx}|HQ=#R+>z7o4H&;%L9g3v(KXhl2SOFf$Q}f^c(d*!PbLRJAih_Yn;OB>gJOvJw;Zg0LY;;?>P z#4ncfGuNhHsLd{tlvPBf6K^9i}oW z`QIYlB0~sui-gf%v)F5mMQ-JT6S~R23jj5+YlQ3URC5QSQ#}%=J0Mi9aT5fd35`&7 zICg<4)0M}lVJgx}SDF$k$E+9miY!?3f;LGo(kKI!@IF z`QU(qB-qdkPf$5Q9u7EK?uRFyq##5}L%EeL$<`F>L*S-XeR}Zt58qO~8q=*l;172U z&@YE4Suj^C*&Nf~VZ9evB$n2g;L z+E0r)I0#2y6nM}0J4*gJyJkoj-5kXy6zXfOutKykI!ocXhBw0KnL)4?;a_L>w^o7V z5ToWpeXF9XtpltBtu@v+`@pfs=#&xxTZK?$58T)!M0)tOM0#6#UjfW#3bkTh?)=;Z zxew)*z-8eya+feKoHj~ya4?)M_OfB|5p+Hl&b^n3&vSEXlVW(Rg$uGBNnDb5ciF76 zNqJZ2c~s+iB*h}2bEDNyHQr~3MXGVWP^22?3q`7Nt}tG#8pl#dj-+#QS)j8! zgm<&G#cHq`ttPA4imGsr!U83n5wtSjir*koircJyN^v_Zilh^j4y-KFi92CuB%MzU zvJSS2^x#9RA=^(yRpA^t-4bz*^<3+DR+#v@G+uc=zIc}B&?8u++XaAlw4$)#)(mL< zR*@+kVTGH%Rb)vBDwsSt5gr}UwFWMUqEquj8g;A7 zrTjwwalc4B?lNMm)vG9~yx4#A$5};|Yz11f$NSBN`jWtN0hdM7!$PE>jF-u|%z8P` z<|I)?*34YS1r`XOw=24!C#|tG{RNV~oVv<7!Fr>1qIHUPlJ#onL(xjrHCBy8D-i(T zueHMQqjXAAppU!Gil%y)MbQZgw*~SzOiU$}>KkwrMKGYrR+nc5HO0zGQBfuxaX%}6 zAC)TMmOL^(&YhU&9O=2za5^JlDz3|)qf%33xD?SU6;HVHEcsMu-$16qOqy2HYyfGW z8~CJ>PsPM#YC1~ORPZYO8TtZuygKD=$g_*$)!hy+F*KhLHH1^kUzO6~sTKK!X=C}O z^64=54qDx5}n~w*?NmLzCc-^Do7~sMK;}Py~8RFW5*$z+}8F|p|*F1^-k+d zt2f?gAkVPS#J&y(6~(@kz%SMj4+?ZVAFrfiG?kg5>uK(>W;d;G-q5_UIo+6H%rrv5 zDmtxaEzC}!%b7XW!m=kDe2()3I^D1E*95vLh**U(S$@)e)~}k6D^4g*Dyq|m3=E_! zdS6Xc31{ipgK$$4oqSpwOiHHvb$^uHq9~`BicFz9 zkYhU=E_YKOr_g!H?;9SmUKb%FV!4A9|HooU>jz>nq^8ovlEoZrplnA98V$cSgG%V46O zR);W^W726=z$2-En@X$uP>R5h!>%_I>WbkJV|tH>IDKz&Et)0i^rJB=t*fl7tGiQqVUW^L_d19XwyH++o!dt2|-AbhxK5 zgS{wJ(Jt%5hDQtw4T}tm4ef?U4Nn=C8lE;hV_0TbZdhSpLy0ZrLKXG%MmOsG5!QK@ z-9k`b#;9P{G%AYoZ{>Y!!(m1NovCm;yoST-0=lGo)I=#_a4nZa?6bn^kRX%YR6r1fpnGOz)&tgq)gLx4=E{}QpR7n&<$18HBrs>~s*nyTr8FN{?f(tUayi|j?z9J- zbP$I2RjZD83$vc2!4uz;F{(Dh=9YcQZzaE(yrpGp%gZg>T4u^mLG14s#`ha1qjaT1 zsjHybbST$U&?V_tYA-4&&YjYmu=UO@$t}$-%Pr5nO4~QLA~&`uyFZ+4iAf2U*siI# z7Ge!C39g^NR3IDK$-5%C)GMYBU?N4PNM$y7pdVcyKgSwji?j)O-J|{J^m7B;z)yQ$ z7(Z8Jq>Di#U6jo?P_Eca=aMlMQ>@W8R>t%T0@XPwbVqUw5(KLA21IrOi*%BlHYT-J zhN$%Pmvn-kF#f29v*p}AEqfp|X;Kh<;*6Z)ErIz5(duMP$Q`XtcVvkv)>v+BLam0r z;dCFPeR@Hy*9z0Nxc(}!p(A@nH9mw{s8Sed8K)+DC6fET3-*F9uc2>{pI^NiS z{PkTK{~(J3_BrV6fj!UzmpJLHo;*LpN&nn^BJ_7#f{1N5cHQbAB11ur%;a-=q95ks z5PlK73B)&brWfX#SbHw5>AsfQ8x4`uQ!hKOCwgjcW4D}7>pe!;PGcl`FlNo3XAHrk zWAO19xo5ce7<~Gf!-<0M3NkeL&nnw(z8dx&i%=>D+DKHGyEPkl;7f=aIJApaVpI^4 z_}rrg;qGWbHJr|EZL-$d>TG`Ie;MJuA%Fn*-Vne5d~XP#0KPW_j&j@${_P^420jj& z8y=vu)!Q0udRwEd$tHjYxDD0K_;n(HK#NTT5RefDo7YgSG~y#7n1BgJBiev5+XUKa zU{%@z^k-HJ&)%ixOLid&U#T`^Y6D^-0v{LVdHa&IQ_dki0g8{!NM*FR;UjV zegZ5WNmsUZpMpQ$GR(Fg<1?|VEt+R9^N5=Y{;2*vu0f~Q{Sg<6nJ~rBJl-(VnAIe< z6JqOd)hN15=R5G{*{-Qt%B5cChu&>9aH$%ik-PQ%NUl2UA4MC(hucQjM)Esh6po^T zOD4^#9l4z_8itIf`4H&cQnLLIPLp8*D4yoE@-eo%o7Xh&EZwv92WENWV4ksKrey3tQ;=#5j*at~g1*7<1!HXi5eBAlQO{CQpXVGkpZS3~|`7 zJ8i=7YCdY~vudu+03n!ZL#eMLLa_C}j7rS*oynP6JlhA>mm6rN{6oC?%-4lydh5?4 zeumh?R2GanLR0;0_tej-pIy(pr9Xoi#C-UUXkuplUG;a@&uzX(Pz{W8=~~Ggm@$_w z#Xrx_rA>;bYaVZWqVYc4{lJ`JO1$X}9q(Gx@x>@#4>>?_`mi81=aHlMUrSRZzIC(8H+Vu{OhAC^BNUnrNSRA&Z$ z1pc_q2Ojp9Uo=CG8NW6rG^v~ZRo(ZrSToL!C6g9x$><3QrjyurFP#$oS0Vsed74KW z7B&=U;>^RU3pGWW8Kyf;Gfj7y?l#?Hdd4=(G!9q~%fIPtrUsu)X%ZYA6Ojtq7owtI zRT(3L(j5viwyoro-tU$zw;h$c*ity&SDqTd7F`+(V|FUgv#JIwFWeE8EaS@hTpS$_ z56`EQBbM9RiLfNtFrV&4$u+9tNAefuFUnt>|15kxpB@k-c0uWb`D<*g(zUiW>G`#H z>c&aOOIdcBV+&%(OJF1liUZW4#^`Ppi9((0v!>N#4DW8y(==> zAv#Yx3FAHYEBYK4AKgdHf4$V1!U@{F2=e6c^|lSRTxfrWYU#Rui4v#)VER|lNv9#6 zhL6p#>*yf2PjcTt=V2}hT zbJA(`J!?Zp$YIH&bXI1dtP0z0K6w>>FJRR2d74uNxZ!QE`U^#Z3^c8!T)u@y-&6O!kcg5bz7+U7IxUa zg<+4;LDH7x`bS|=xMQcRg|8l?Q@bC8CEe4IO-DQv$8udPMdAMG2nDo0PS=F(w!Hxx zAE$eBKaM?44-6s|gy=~=YBjBfcb=eAgEZ5*SX9pk(w^`vt%Ai*(!GK-6heR8j@BF& z?xv@Df`xN8HFzm{=PrloOX)m3xO7C6FG+TaNU|Td`kqMn*F&oC4^d{%d{?jtp~cou zJHZaUzc#Oj6M$qnIXGE{#XA%!GS4|8lTT7RuEz~a3F4nedAJs0=KBj$K`-JvM?SE`bwac|^l{?qcxyga5 zd~RE=EmT48b#z*P_I^v<60M<*f3VP{+I406isBL!kBatIV;|lRwzYJ+VZC;tc7t}K zc9V9qc8lQk`;|N=?rMc`wG!w7Y!9YCM`tqYwcA`RaXo=m&(VoKh3tF3fZ}y@dOx-^ zz90LA@NK?*=Bu&qC|pNpR==*@q5ZdZr*@ZXn2rQ~(p!yvYXU*S^mTN8aP{$DhqCq# zhEhCf3q82@X<>L#X!i}d&STGbhBuj@z_=d6k9^00N%Ox)?7}H;@C=rZ_`&w8{5Rhs zDe)t$T2J>%`FBl3`CBz_*Su4+zh+I>uh8?0?N=LXY5(5} zK4;HL2wn7<-?0s#(^Iy)(|{*!QqbiJdn%di)DD(i4N(1=jGWHaot}t+T`$umow=~f zc^7uV4!>eHXV!;(%r=_MSU7nbT^dAT;gi_%@HRTVlf;(cTw+V8+)f*0;r0kSOy5pd zcz$KV``hUh{!)E}%;0|wJc5ZUxytpoDGK18BV@eivN!BKLaO=8>F3B(A@ZpEE_XTb zDCuf%#0By}@Qmj!d#ThBvBLd0jfeyJYxMBwSi3ChRBd>zJHlTF8EclB7Xv=)4}ZVSb%XlEx>&x$3A?I)d0xKi9aiKEbZGU)qTA<><7yM7uXes&8zh zB)dCCYNFj6Bh@E1k|G6b=m;f>)y@YZl&~qBjs(LFI+=%ks-$UlsB4c*@W!ota0hLp zGVBkjA67@#lC?^`5x(0&`CfKE<7=+n z&-j{WcjcDnV(tYFLzHjd1tmM_>~Joz7#D9(RcI%Pgd~<}X63*(mW&tKxg6{;XD6*n z>W%l+!uusyl$Zpw50Yw?OS=|h8JWJLdgH3OsTZT5LWfkK8+fa(X@?GSTHp_1F}Kh)}ptR$E|4GD7Zx9Q>@ z%U);|9t7XM9n_n$a}|(V+~Qi=`VQTz>yT15CS9BtOp3AKJBuOJ!?1M0UgnBS7ye$* z@#tKWAfDPv;5jic4Q}QRSOP=R}5R!0ufS<>*hNxAMI(a;XJ!H zo3Bg8lpzwCzo8>?AoGK+GE%KF+i<%neh0xK23&0_i02INk?Rc48?KFb!SJHtCBu3{ zo~jqOdt6l_2;Y>%3y56z#^4XQ@uor|&%OPyVf?2j@`bjR*SRl+elJ9+)NBI1k;tix zvX8cpvH#1?V?JJokss0tRsJ^;hyw5X+HfPD%jk$g;rn#3|3f;php>x;)iR%Fa(mv2ZI`i8)m61dKCaxmg4%GE zB@lg}{19D|e5L&=d#&0xSjq%DA1(!wkI-4+?C%PAdI^F!F@&pX=DEE#ThUvBr0g2{cuOX)iWuCn}RLI3KuBO<&6>N zb6CVy1zd-qIzs0~vP-a#=m+)VnKTyX8YiD(cV%Ike1y(ubzg}>`G=v~{y?(@BmB?u zO&;zo7Wndeiv^zi-eQ3tzqj~Ag3;$pbeFq5;a%sC&=Y=|{U&>>z0E$|ezV=zhu;-y z{ubP3A`kvs?S3Box7ocO{HojW5s?S~9d<6jEHlII@50}Fr#+AhKZ=7!QODy1F8rd7 zLzXr=wcsxQ?%pl#ZWwV7%5RahS~bhRr?dH9^vPD+tOoF*6n@CzU}iSBloXHOimPMGS2C+Os^iw2#xF6Vu{?kAx2B%PvWsh2ot z7@ngr)u!9)Bsyyqx(+%1=d(TeMa!m}jT%mooPtdWh zGj!ul*E9tVJjI$}Sg~9J5;d)aPkuTLa(Va?^F#K>;PL+kl|)0A%w26=_j3=T6}hEQ zS6l7n7<`bk*G~H7G|0BTty+JjV?6Q?u$1@iT zsCk*+aePD7b=FQ92~o#+Mq-73cUOwL8%C^hF%ql&d-^Qj)0#EHo(5(l*824vEfz^o zuRuuAkyCV~pUt7Dqxe+o>`$A0EEgAC$JF$wfqk+V6{P*qO+)7Y^Yfv$2ZDd#_%K1G ztdGN(%pf?((DlZ{Kr3U?n|i8#9%joXDq*pVF@`O-ZGdAkrkwkc5zcsHLv#gi_Wyht z=|WjXzF~$0wu~+=q!S7zRp(1heFJ>4^fW+#FJBVI2l%o?F@GD5a+ClD-k~GR=~L2( zU5n4e8VDGUpJnEBM1Lq|m^$Wj?NcpFGoQ}vS30Yqx^f##W|+RM!a{ACj;Qjg^pJ5N z3W;iQ!2of=Kw*K7s1X*l6PhG8Kr&~8%0vzOnuxU#g@iUq#<)xQSJlFR7^X7zRr_o9 z*X=v(r?mgJ@3il-?}pYG#t^u;I9x~6xvk}?u}p@@P_A&tL)r_IVwpTwlqAYiYS$Aw zcrlhSOWuMBBN6SB9>=IuZzCTdim&nxLI*IuisW4w8OP|{wYdN*@B7#Oz|I9&8Tg^S zIC2^>2aRIf=Szq!_+u7P&kYc($3fOiLVRqWMKp+tpd_9t4g18tA4cMj82n*hpSK}z ziey?x3wkv=RSmNR_lH3HmGwS1I*Gv&X=|GJR-qXo2tInKH#8`=|E**gvy> z4#i5Qm(S(7N~V%e=%bb%vBNi+bb@3XY*I3*qSAlyDS>o^!8^O`D`p`why6Uk*O>f^ z%>G3dQ4w6OVzMdrQ@^qwvwv;>#(o?gQZcyzYiUBWTM@ltJ9KPn?E$r;J(GmwqJmAg+##?`- zjvwTFKvbN5wkU#FRn=i5GHm2~H++w8B;0|pKU}x8i$vf+5XpoM+LD-JS)@bmfObWs z(uog>pny>hKPX_dQVt+S9r(!oOx3lYrqZZb2mK;=kq6p_Vb0FN@cM(yxA zr(Ko86a>L~l|PuTbR;@DaZmGYtc&hx$!yzTNo6Jk=>dACB|5t2nU?JEdZszRk;YU- zW;(#Q#yA0*77lZPug+aUWIJHxI8rUm!4(o7skY@fmXzxWr-uaU*p;LwhIk6t zYb+S*DbTS6gAo8BP`7^?o9`%a@BpJieC;5ieX7U-^dB8L2X_Dm9TbZCCeP87q^Xt^ zXse|KWyR&i-=mgI7)<_*>)EPU_NUl!)|pUa50iRfn9ZP^Pl;j}l;toyc-#4bqECK_ zLmX?RQ6@?M3OABC$GyTNZE|D?7|VlU{F-d#=&Bs)Z;Yi(NR-*aYn0`9U(; zM=kvvm5%<7DhHhWAtFAp8awf@w-fAJ2RL-Z2$-GAWF+-<40PNsyF)fvK2vs=>~2|& zBik~_bgX(Nw122b9*|@npwl=?EV~*W2%E<>g6sr)GB8B2Cy!fBSWa3XHk(pK)pC#O ziIGXrHVC0awme4N5SrMla|CmHdAtQ`WlUO2&)dmC`(zWGd|i`|elnXWtr-^PGmSF#K!C&fOcVdBtbj?885~9=OXyda!TL9v z91e|BGe|R7Gek2~vpC!9S2zsX3Yf%1wt8bkW5i{yb$~CB64enFSXIC%2Ur|a6pDz9 z*h}%Q>-FJ8W9jp~Ug*U>sEEi4atlsj;{xAFWv1N$8V5eJBG@y|LR1)FyKp)FC>-Qi zQ8{0;vT}iDRpmpP)s+uxo~?YW`0?Vwjy08!Xx3IP)I3+YNVBeTF)S}+ih}rKnjLO` zOsiv-{zlC-&9au8G`kz8Ywp(EqnV|#Io>sWWV);20gcl!gdaD~AJgP`O0!h+wB{Mj zGR<v%j((Ts4b6&{J(|6ZZ)!f#?AIK?Zhpdb^RVU|$GNy`MnP&ZQz1DY9K}p;{4=eX z>4$%wEoO@F&nLx9U;Go(o4cp&&E1>Sn<>Y_CB2zy{PS^drYQD&M|h50`QCt-oVk*C zL{d9IUBXm_k99n1-1Pk55=JHIJ32{+s}5&B2LHqm;~e81mpCqUT;{mkafRbb$5oCA zj){&*j;kHlIIeYE=g<>lU_mL9QF^`O(*Za5(xMn_M@k%1PewAZ+8vfMrj2cTiUSsp zC(~pXJ8pEq*70Ok82*CZW!y)MD&szBCV#cDj48n0A1>p*MP1Ha>B_mQiRE0)hs&AD zVYlO3{^g~Y>|5?|WCy}O#s`8sUL=M)-sv#eXYzzhc^9^Qp|I_{!PbXKOq=1b+3#@# zgfz}_aF9mXEXNPEkbX@}FxRxu@pdj7!Z+8%1j`&8y2V7!Szj=S5D$GHp`c6sw8(iK zsiArJ{Dmerc>Y)g;}4z>wS|lOF3**0Kqj)}Y9=dPD3rRT=DQo;Yg}&I9}la?$m6s8 zg;!y{rEpI*lUfy8{#TFU!tPEUd$1Z0ukJm3Uf5VD8NgJ@-Zd_Az}~l_k`yfLvb7$s zVdenTd0Y%n4q$RJZnR9bjB9?>vBW{B1;T-p2upm77Y&q;Be4*96g&Yj1DRCmlMa|W zELt7$q~r2t%<$}qLy{7FXx78@flPAmz~j5#Iu3a;R?EV(bNFWxJq}(Q$mHZ*;udBQ zrH%hCO}fk<;yoU1P;W#f$wT`8q}<;am09Yok-f+ zkiwh#uSFuR3XfMm=U71e81Laa+pt6H9LM54Um78K9^R`#()~QhHO%>GZs~TfDwcT4 z^%-sKp|Pd@C4Mvu*5hdIQTg;qLTqsCR(&8W+UUUS<55`=n;aKgeyw+V+iZ478mNYe zO>qsr-Zont=xvkr5S1&c{j#_=o0VL>4Qody2qrs>z|PI>6{XI9#lLf}`giU%IH_f_ zBVKn*u-w=HTaS_XVFye**uu=H=?#2wL;`G`A07`A9;TuacH*IWK@>Zuu6bpp)5~FT zEu)X#?RdkHl9!s7mglRP+=CqvX(snNc+KQKXsKhW{h#A>lyCVz_qKx%0{spgs6!na zztPzB$7%^zO>C`$Y{* zYM!UM<539_`A3AFnBeUw&K`DjqC4Ewm>%H6{%q|)aYx~%FxXVhJuQ>N&Z#~SdocEM z7_%7FngaU?8%9Tc1~moR!;VnQWx?Rq{FHs7Z1n(J`T**l| zWndD+Pdcs+n*tIeqr{RjqpPIVT`~qs@WvD)lgj&AqWfe~?6;2Z9N#-e$w$lIs{X<8 zqvI#2KNX{f}2_9O@sN9Pj>+gSa2wt6rI0NL&pW zxlC~oMZs@wMM2#uBts%a!S4={*pGN{#~+<33xwO#?2gTi>vu z!Kpq+{fG`~7V09Mawq(3Vamd=29(}UB}Kc7b;R{xw=(t8XeYGaDo=zFN-`ccT9ILK zl_dSQ<>wY1af4eEgfGN@I$|>FR?d~FU_u(YqZZg0@(i%>u0Z#+lW}^p1H)e18DZnk zq1GDO{_z9{Dbo8@-fRCM6s@isO>O8JfD@S#`Gr_{hkBbYr>h{+8qynHQPnp#H2&PgzYF$V!lX%yoiM$H zR3#KUlL@p4x)u+&fRc$em_3-Oh%9xMIa$tg$6zKsoW0ly#|AUiSwf-_( z4PlBSDx51RB>^XgFiFx19R49pytL8@C*L5IO6LM%9VOt>tDNx05GF00eQFcz8^R>_ zs&KBS3grV`ecQr1g${6DnLf}tA$^tORxW=Q`+;tt_#6%sSV1$PPybi_hzB<~c^=#ddxizz!Q=ef;;l<&|E4TXjxCp2oyC!m8P2G? zh2}o%Imu|BfV6)(J~F7yNl)Abj^RvGCcD!dPVWIN-fQsOaHcGRuLWiIQ;DhWQ(8~l z?K$#wxcbqn?jA@Vf#!KOfzDoHAE7WzGrmPE&wPjYp?R=#h*O4vFi7LgIqwng6V|f* z#McprOyAH(<0jm8>`s;Pdngh2P;pi8Mj~s)4d{qjKAVNz&N^bQPYG9WudrYa9-=JR z$MsK2oa;Q#31hyDh*zGEi+#3Rxyqg-65;|V8OanSo#PztROKb)sq+%^lJdloZ_u5X zIKqGXjKre*;PsJAZrCX2XgD#F>D@{5fi~yFnQ~>kf8!T|?o~z^b`dtba1@hW7JM)R z&IlYI#Uu_5{*eC+970+9e&KRJ42EzFXOyQA^H@t~7EBw>bdc)cEHX=XS@8TzlZ*a= zoI%DrFL7S#WFdMY2eXBOP)FS{T3>mljn>}2>yTQp`1Vxj|C+$Ca0Rqq$K-?%muHC6 zYg!P+<>A}t)46eiZ-eI?SaP{{95WznuyX>C0ERIS|h~h#4UFW>sd4qGZ(-RWtra?>^#{o`p`Z9}o z&OHseR;a%O4ZAn`vx`%lzRaSlGOMW!pT@F_u=)}d_F2Y|XA4_-wouXv5tlN9JL8V? z+>xX{YWcY3la~E02U-rc9BR4Qd5iN_=jSblTfS&vIcBg&{lkA;n#3kd=!su;U61rw zri)?BTtTSe$AX@C7&Y|mjieH&>lt-t1TsG~0(lqAzTO{?%R+TA zO7jLg<{*f@NFE>OZ}!7fvr!2ewoU@^h>)L~PV0$<9-fcmqxHlhPl1jtA&JE>=mr8c=6#M745ORM> zIIV32@lcPq_i2VKinn*bUXS-4FdCS2zM}WvYCVqf(N%QnGjwJ^v!`>J+D^kV9p{~J z_}kH+vtYh^Wcm~^jHhF^eYW>Mvu(<0SkG(PE)q$4?hnt%|@FZ8s}_a*=A z?#hd+Pp1on*atL3dLGh@S9F7(L*%`Puhqf9aM}}8*vBh!qj?itdT$_qN%qd_dzot` z?T~+;4+EMN$hG2T<1NNVoU6*E@-TTDhK%#1f;#J2(ErI1a3&W?RW}xiEsb~-G9L7C zp(*Ulg(l!^hscpGa)#pe6ewdk&y)H}Nvx2BsH`QN*aQ#EXEHrzw0~A=&yTM&xl$d0 zS8BWS(U9b*WSsamg1Ag{g#9z?U7PhWCz*||P^b)sLakZQ@NVfz?NxOX>Mlp!MU47P zu7DscYZq6*BLYeKtfpLU6`yPEUhY}Dk}QtjKD!rhNk=GBE@`PBj`WNlum8*CJFt5M zOh-KCO6s=vF^2iy99K^|@2Xr=zP3DM|Kfk<-WZDX^;aZazH1>k)Ago8MvTED*99n6 zdgAZ$iFcoVoQ?^fV`Gy&7OY}=$8bMwUlo5r|C+5Q9!Ci7t%xhd1s@4*t9-x;*m{r>dD)@6XCgfIJkvo6)9yAs>IFs<+{LiFt$HJ8qO)NnT=e3Z=sNe3 zfiE%fk|)9T65`s|I-i5KmzYG=Is|C#X9QT(=bhcOH@@JEw{~Q2Z0yY5=xu<9q3DU4 zST{JAl}At*eG;?KVgJ`VH$c_~CNX~__Wuqy1e$1TLpzKzn-EGF)b4-GC z3xeok!s1n15rC^mbbs^~_Mw+K+;n{0X6GEsHm4tQy8m_$a=KKtr9$vd7K8V^@SUtz z-mA{_1};65^ff1}ZV8K5zmBgJCAiq(d|eIYFGMA|Qdhj-9A*EvQ=GcOI?^t_p(CF1 zAZTEKZ=Z=;9-*g2RyPb%@CXz@m!K}&E;WX1rUV1P ztuBs9f|$FbA|YctlRoHO=ji&+D!-}R)Bl*B-}|pdzOVKKyki&m8|pn=k{cHimmx~c zQMR89x`zK6em0ykeBdOEKbU_sON>%um{DfrqR)p_+CPNl+nHXOCDy)Wi*j3Y@`QL^ zHUZT9+y%L1aB@3Sni2>@`$375nHR=M9F=z0KVy}~3!9CVI$j$oj4BvaUF`+;Dz zt6A9Zr~b|Vhr`jH$N9u?bVsfxjy!R7`RpKHYvHCAa4h}oN2tW>waOB|VKjgsZ zOAfjrNAsN8`wBQDi&Dd~os3*k0?+M4Q%4!>-^mnp&u=a9CR?lRcxjNVUi}04lDV@I zxYCjgCVG^UpyLh<3e*9TSR>pqFIGK^+sw^4Ad!@!sCL{bDwGh%5d*sx9@@8-?uz#5pM>}oy=o90E5FhCo3l?t-v(geukvYlr6->E5gnr^{a<@m0^UTm{cqB} zO_Q0XX_}->(=BwN3oYH7Hf_3>q|IaoT!8`=Dy3kl3kbF-?ttRL^|`#KqE8Y1yTB8b zMHU5pE{F>%3J+8iP=P9l3&{UYGFc`~(rm4O_51uv?mjc;o^$Rw=l+gYx5HutrH5jJ4Tl;w_A;DtZH#0KoF zs*n0$54I;2CmyYVq~iOr)9xwe8c98db?!2>7R#}qN425*=x zI=sVz_~b}}PY8%#2B zFV!urT2^(J^>QK9jmBh|_N97<3Z7MP|1EjL5XA@Fp>s#W8)DAjwX@7Ck&()MNCy{v z5*A~3*gdaB$AwHD{?hAK`Xo4k@a*If+CP;W$dwUNX9N3!Nthp!1ty&i-9sjV|z1b#g{39_#@3iN)19CjsCgwByJK z@nl5dN&q|H|NampW~UNLf*)eVEJdvXz$hXDi^O;#ks;>Ok+E|c0kcmd{HSyS{;xPl z4riVgBs)PR&LDWL&;@F-vHrkmL2B4DWlz@pyXIcqeNb>lkQJ2Fvak6ogfb|I%VK-n7b)=kv1qTIIT3ZGP{I0U45qdyX0SzPbHsop4D@Zvb{Dr$AJGzVD_2-aT1FD zqbCUBIg34oDmSJfdZmppn#|}35YSy1cVw12p;&*?B6sA znlwQ=0$^AXF3GJXR_8sJ_kVfm>||>J2ojC1QiFHch6MQ30xT!9me?qJQnN|+u-Y}8 z8y!KyS%{@!_8pAKZsFEgk_#A5=R8M-PIir_vk<&XCz(_WqT$xpZ6I)8Y3f zzEx|=)b2(gs_&Dy4oUTWe2;=t{WD#$8ti2Ak@wM0n@BJ^z z4ZVM zNqZyzU&=?7FXTLK%wk_XgIJTZvhInxC+nV7_7truyDi*F7JJOuqD>j>uN=74nf6N! z0G$MUG=wh}%^JAMF4HPYXR}x7ID`G10js8=hIB&Alt%A@gZemM!NZ(fkzB6tCftS^ zy29=Ra6w`A4CjZf@+}1VI2+;5DV&3gPYaEy-fdZq8>!xH_qr+7`&IE+h8@d&Iv!If zZCS3_BEsNRjX;Im>u0DCPB*l{Cp!md>*XX&;Wxazs$?uyz=qu41!p8<$(#jn391{l zkYMB9I|5BrgI(|)x=$}WmW(B-ZXjwK`iQ*hts)kPeiRrum=jRd)Em(db{PDj1G<}_ zRu>aS1pc_igxy}a(vG1H>m^2corhO@G0`d!4}?2tb$vuyWTLn#>Tl_fZ3v+%%6l{bpL1?1Ji#Lnm zbL%ll>e_~jTQ=vfBsMddVwm?7gm!_s>Pu!k^p_s5P!0B4$*~U+P&(MhF3^DgStFR} z78z^i85zi2-iB*bc6l1fORTmd*gKc?OUW830{AV7P^49=D*zy{d zM?1)P(GfnjI0oSU#aqH^a0zDi~w+>>L%4< z6%TwRVF%;hp?W3Sm~^z{X4Rdl7aLw6UL;L>_bd zZnz;Ky})qsVpqLScm})X=m<1iyQ;veUF8dgi#-jvDZ-pzs zHN+dR80Md&8?cJ}TN}R=?-jqHd{enyxk|B5d~?xmLY2dI^nFS&*^!M|j~n454Onc0 z7ab8(`q9di`ivs(C`uTM<%mq_T7PKyvE^vXv6ipIUyJt;U%;wHOdjX3iuf=%E$DD4 ztlYp8LtYaW+UBfTU)J8yyK|n?9S$`Ka|`g(id1w~3tYgYQns5Kjc@LF6m@(Ntrae6 z#3W7@n%;z^IH{V_gpKZXwzwBFUdp&7>wh`l1vq+hv;WN zsTAerjcmpQPS!W38B23g)zysUHaT1ReS+-)&tQRI0(v#fJB@O^Sa_%zlmE3`*XiXx zXUBsPu4}K${PkS7-92-ZbFOPk1x~px%pkB)(G}&ZQu?FzNS{d|YEDFbAzhtvgn$#D z3eSZX6A^rPZ2?aZ^gS`PVH#XVU`eF2&9bECQ?$GHAudi@w~NsAc0nx2*bQbGurV&| z*~Q0*kLo|J|D=9*{ipSN>fKBPqhA>d-wQ{e6MGF7 zc!_gll&o7WibxXvOq?Lz!9zkrL&HMfis?zZI?04~;G@1}`_0`l42(R@tUDWW9Pi9u|H?(ON` zONn>?By5EXwq4{o+rATl+V#VGCffwJxaYDPp)}vJpV*&hwcgl?P7{IZJ*xWpFH|QQ z{ckDy2|mz{Wr=M))m!Sf*8fRttG^@k48;G$WMjRdIJk5L0#El0yk&&k+$T3rp<9NI z^n4WWGNjn{0Wh@Uy<>R9yBY+-{yqE{sM?8zz@?p-HA}U>7_QFIlW+~bz;>O7V*Ns+ zeqVAp49+zjnj6_P(18|seEz^MsDSdR5aW}ubQ8_lqU|WMK0)VL) z{??6+64=H;Z*ATNbLL_SCSaTn4o5}Juxl=slWuJ8OctzJAq{D|6g z9VL{;JauwoC6sBRhw>gQ-*IGsr7}L$ZVU{QOk( ze6c5x71+k0%|SFp7XjG67{S)6$KW9mU0%he4Zep)_-<7uid6G3TaH(bQCo%AiDR_T zD;JIq-q7itQc44hB%ak*NR<4@+D{@>*%jH&>`fztaxM{yf0WaIvM@%xuswM|Kf@rb z&6YJr^|rA>m8%0_&n00Q9%!o`JX)(G-StKtTN81NI^rB(@o%8L4iy*m&*t#?cTn0_ID^vucVb#bV^vet!=fP;pZ)y@I_D*-(r7a9k+%bc9}7-)uU6>BT?%lZ}4vIYyvobmZ_1>vs;STP1p&w9Bgqbaiqu6i6R&^oF~2ftXuSCKs&#o?Z^TFa3Q9A$?4)e@(^ znMO=m#D5U{CV~HYB}g2_C{W&IIvCut=}_JF=1i_MSW}8#U}f&+U638R2|qnT9Kv5R@|n&l1??ML&RqFL5BHkxpEm> z=kPerCLL#blD$DE)9C|g!0!^+M?{FAPKmN_KEDdX8n);P6eq?#SnyE6!v&8NW2pIYj7R4<^8~BMJMe^@uf0UgrJ5xqi(>t8@VfF!Fx}@=b z(as{KVffiHP|hjmmYDK*v5*W+2+A3QAt>k9T9Sf0gka8he*iNWM-+TyJ(k0n2;WgI zNWl+c^X@h7U?~t#$p4%tfU?)IXjiMY zvG{#c5na(C56)Z3;G~8h5HJlMa z4jwMa&M5n`rq5vFSZCO#q!7eyZL1#y61d?_tcatA`-AwR^!S!r#kYxHRJ^2ka`eAP zFA*;lFB4D7xydj&<8;%RCXV)lmW|Dunjhy#VcvFQujTg$glVR_n+>K~yMxyJ^Z1}8 zw%iLU?+ge?dp7xs)WEd&^zS=J0lw3i0{jCnQh*NwD#2jkZ39g}E&k9loCLY~q+{Im zj%zOa<2#saiYKf>13IlXOC+z6LN2pNa5Y_^261c^UJc^mmG5Fji4*jf=|##IrC1rO zlqlb8y~A*)L8kmXYl&g0Ax;^u{0PpOD3Ay%^p$$GzDi%M*XV2XwfZ{!0(jNo;Aqh@ zbh4m=SSO3S4DhZuQR30N4U=Kcd)R0<=ZG3OhY`y}bkD#k?lr)w?E+!weTK>U%#foT zxcr+4$+T{!ZCb5c)-=6rY5lx_ z3B~`z_u~i8<^Ah{wc-iGlTPgwPBe)MUv}^&0LNU;llA5_(WZ*9hJ}qEf#(#TfRlB! zsUol_NZlm&MmI@Z*s+lp@8QclQ1mOK zOE9lf?9uByP$c07g58K)grooa0Fc4Gd$An+;JAR|n^XAZbZryjD&g?J-pH~1gX6xB z4JtNOjpxFCEiP%G-@4UW^%G;Qx`Ri5>hY*M{izu=AHH#IP8!3_`)uM^hQ?;a zo2h;5*3tr&)ztk{&V{F63@v~1r>lt_=`yr;H5>w5vnkD)|9c>PrXcE6)8KVz`}Fkez*WhxJ+nGN73mhv+K z2(ytMkv4VO#K&;9KgZ27jxW9{l^bOB8G6Q&mYBoSgh{ zS?V;%*^S8tS5FHaX^U=LAn@xV#EurB0m*RFVJuVD)iS#!UMJU8ia*HSmHigKKcOmT zPRowwvW6Wn@CcSJw6EOJ{5Dh{!Q>uFOS9_1$Rp2G53`_UI?HL*1MWS7g?YFLtH@?X z@>FD-r7G=|M0;J>L9fI{2XZ1{Ez+3j=TaIsszJ7WWLk>tapHzyIZliS>?t8uZR9~f9O=$QN5_#L12xN$Qw*m7CN@Pj4mDHs$zzlIyVt1^ zJiX!MFhtJV`23{>E>14GBE;%HL))L>Yciu26GfYHR;1c)K-jk>ND6b8hlI;sur?Q? z{W`GKD!z^_$_cS(|{Zj&OIE~4|ElmvY(MCZE{!{DEttVP1g-#CrsQ6^- zFRiCw)fr3-kDbPZ?zJ5|NYw2ZPdVkCaL*ZZymQTeCwM%n-pqX&fj5x*YCsn9{T$|s z-~)eRqKS^}UVj)|dbOgBM>9v3HM@>5;w&atx;KZ>x;BQft|hxW17lx%<18lg?v&Nw z$_e1f#ceycfCp!+DgIi5U39_lDDopx>rk>Usyux!cVLXcP)n`xzNqqcbk;j82gdWB z&d!M&uftDiKIumjB5+r6gF%* z*->-Wnev>?WVbE)?6$>FUEm$r7|s~5Cs)CTe`EO50kV<>R&`!o^>uxeu-j86Q4`c# zUf#%uN+_>j)CoAc*A10S;JxO17-{K>wb@Qr9>467 z?d?oII~TWimSCms2_3rest%U!&Rw8+5LQ+5bDY4T4TjBNx;3l;*%rqQB4rx+BMmB2 z@KF|jg4R61?`ISVFD=AnVGlFe9QVWC zLOjLh=j|DI+Q`W-n>nzURv7dB?OFGf=M*u?=txIY^giDigj&#+U7$B{qa zbWS}9#J-D&;l`6tm4lCoh$n-}OqUbKzhF?&Nj{bA%blbPe*5`!gCSoE ztKLW3YyFV^3HDTvLFHSyXyey+Fz;_`Lv6Vik-k#O17l)PFNJDK5QvY} z7n4VWRw!CyPvy;!|CUz14YrS6{<;dMs=f$zYj$vJISbCjXK+9RM)@*#ke)2`pAY)FV85y zt!Z$1JKbG*TSZ<|k%<5>Ye;tzw4W=|)+a|%vrX8vV1ya~|5xRZ*Tm>!=G?Q(kFArX!h1!Y1tF_NU4*~}| z{S`Q17c)NI2s-b>!u%Fg0Tb1DV!(R+2AH@(5Syk$-}P3Z<-7JFF4sba$3|N+_{$uji*UWs5fFvnHikYdw2X`c}pSa(#n|v0p^O7wZFr;)~I=sTPFKKDyr} z~6PMw|$j z%F!VsY{X&DU?Z3dpBFf<^h@|g98wbySz_K=LW5~X$2o0|V#q8D-nAI#jnJBRQU881 zPcgLiq;HN6FDR~SI1N;VR>2+uUuecdeUa{6&ZK)ANdpvk5}Rlz-zWGg-y8k5Gz-9!tm`RSRd!qWbw$@`#}Mx}rh_8(?SOPpY+q2qE>MF~`+_od zK|cCPD+H#i)o{HQk5smkSCG@m8Ds~^t_8s;7}Zh>@vQGM(AIA7U z_r{PqU&p!$({ae{O$VQ`pD`VL&MtUf`hv8<`p^XUmHdtTo&1A5O`akDB+rt7;!s>F zfC{97s9-9D3Z=rRa4Lf0QIQm%5>Ob0Q&E(Vil#(V3?-&wDG4Q|WK2;N@};wSL}i+X*H~! zi7S$plFP`u$dlwR)ZQ85#=)H#C|DFuMZ2L1^lWE<$Otk)<(2d@=Hgi}NoF_TI23?k%G78^$^{@A-T( zxyaGUL^~8U}qN|?jC-I*x>KAYQRBw(HuO}^{qXTs+4-S{=NG5>pj1{ zrvcx(Ged8=*E77t#MCiYGXp_MZfS0LZW`&Zq7qf8!FTMvoerW7u}d`IFs!}`uT?m9 zG1cMqxSFb>sww!?Rrr`h$E{2)G~kGtW+S_OvW~N9wU(OIP*^{+OsbV>9~##Yyi4mn ztul8j{Yk5&Ev@=vt!nVS6mHRRMNy39C3+aGd>6T6b4etU2>)GXAD*L@jmy1(no^us zz9Y9yx1?@O-8;EEbEoL0>LSvv)?A}Gj^A4_G(NbYKWzEa+V|A3Tl?I+s<&A9f32BGRHzQ!_l$OZpHKT*4$q7 zDY35dmC9Euw`t4j9FC^&adFmAZOhY|msj|uc(3>k<(taw%2kSe;+u>-E2%vuKK3nXu;0HA2ep|=@_~wKR;XqH(ig5>pjaC<}CNv zco??;m-}t7MGKH< zviYHwC*aW@Y^;M>^t1drOW_T;!UuEt(208*Q3vf{e~SB7e~WuKu27Kg;2Zgw5+2LN zWU%i>UMQ?A5+pmA&(AbroNxIeJc&1%;wFVwhgFAHKagbvZy(i$PHFo^tW(+)>VRlZ zj7?E6m<)eggvW8GQE>Aw;i9H?)af(Z794N|wNQA6jZ{yjKL!sdKFIZOV~2XHEBuO zq(+<%TpZAkP7YfV*27qtWenI(6nseofGpdkv;0=ZCmH=dXpAY&~&9R%7J1jz#7 zvb*v0R=OVwtPYjgIkdwp1!}s*p9se=7yYGM_0i~)y;L8yh`N!wiCRqEOx;4=O5H}? zPTfHn0|p!Kq{=yG*w46xS{q>#-ALybe!sL{w18Sj-9T|Nmr@w8%P%}xy390O^j#E6 zC(a)3Za8B(ULm@dIu*>5ne`+!y}ZEvD>2w3u+qxaehYz(bS<2-z*wVj7_LpJ>fEdw_qT zg+;R$X4}U2ToOzTV%crPvQ*o&LR|1TwUQFcB({T_3S-c6n74$Y*l9ewC#WYWMYZvB ziT;gNB(m+q0Z&nI{JnVoMJNdpdrmcwvkNfx8w>@HQjbwjQ>&Bt{fk*{5O|%c+)Qnuwo=>Bg2u3W*9h_~1!}r`jx1M3`)8Q_ z#szOu+bQ_U{dfvobw7^7FYm{v^-6)t(u?kd7E!@2$d`?k*<|_Ufw!o)sh6n#Qtwdj zQtwgkQ#+{-s9n^D=oL&snB|t$(!8XS{ltkfj_tb(2AlG!H>e%dN7TpECzOIs1RSv2 z(P#hE^x4Iqq0gRRI~oUkPMwq@+`LH1jO(a*)O_lCYB}{V^&+(gm9so)VJL*jzR6(* zsFitJ0Z7D^HwGE(in)L;+{b|TM#9&x$7A$AI0-RBTCFXoZ9aKGCzm|BKSVcTTtR_||o>7d=URGUPu&qUv zW7j7hz?mhOe6;gUsvJ7+#&$$AOjZtb8E9{0PB@*FgI}%zRWehyVXrh|Nz}L0ZS}X; z-%)>O{gQgmgL8-WNI0S$8@ij<4Ev$bv37j!SowV=+F`c%UmQ>^qwz=>0fjQZzh4>{ znr05LWsVD%GRK9(l)rrK{_qK2P1!B;5~H_$z#LSKt;{=MP^Vl#x;AZm#$g+t@8ur8Sc~wzxU2j zdrlhx9rOE(d@%{0q<*37NOqM^o?TxFcbIuT{rs$Km5AF25r=o3u<|LLgDjU(gJiih zb&3J47M8(qq8JcoNpQ3oL0Hk8u7%B=xZn@!G&(DwED6*Z#CCM-G5(~+$+VUtBXc@y zAJxWp8r25I`w-X08Sg5tt!D7JHuC@`&ulu-vsHIDqYVScGtq`QbWmXs`o%gU1)?*O zsbW7m3d{y{juN9(iH47D4->_&Zg{rgTEPM%YRr1&2IYLt!Xmn5J>3${5elMX95p!> z3ZGk#Nm9O6ey*f1mmFix8T3K5kDlWnmFB8xx6Xz5y16jwwtM0H(ZWtB$`U3-@}|!2 zn%mxeOg<+!f4^#YddW;3q?s*ZjCRNRy z+uoyVo7E1bmkCqW@h%qf1J+esCR`Qt@)Y43tT$@bBs6$W+teO%MtA$%8M8a5N!q%m zbny_^Uf-wsqCC zcg?Ho=~mbvJi&Fz@oMZdtV=`q(BC#jm#!73I`>qd*}W|hUUmQ~f+Is01cx}ptpx;uK> zHCJCUw`cY&EqZ;^(5hn4cVfzIi^FD3s_jD4x6c*XR@2Wxm(L5DHL1CM9yV*z6^*mz S%(y`6|U(Pe)0b&`XE&R delta 190642 zcmc$n2Y3`!*MN6+H`$%pO(WSiTdqpt91w@Ld zsC0uYSRf!G7NjUeMFbJ7NU>q%KleV&g||}zL{To z8EyhWM1|D{NYgpH?p0Tp4@qx;n##uIlL8mk5j+rQ3KmT{GNrnQw{nT}TNG0!qC8x^OodLW^(x$0=z3x=ws`pXTKdm4RJm6!dzejw*H zcsWB1q(5omTIjNM)lUbO1!w^{-IofHWsDJo%EW?iw3T^@hr_C#qsw<#Jq7WnSw>6;HYsx;aBV$n1oPdqOuySAEX=gV%&bfI=Zb z87LJ;i;1L5SwUHR6uGwS2d`EHl({E#Ux+i9>~GKw=4r~hNN*Q zJCq1A2HHYM+LpJgTG@6tXPalA&u;Y++^X78IKOgM`(|8L<;(3)aj})l^7>RH;SJ!H zn{}`2s*4=O4q7)(r;-e3rZXjqc%43{1&Cggx!}~fXdxJR*|ot1qXh`GBj%hL$YR}% zgvyvZVb)M~O{gAbq>|yG5h1OyQRe>8166DCc|E7E+|==xioLFVF3!*v8URX6%$;@B zkGm_~TC*XcGV(BjhD36}bI>D~SS2Z58w}8TkdI0vU!hMM9hi#BBw&G|R!ELl_-tOe zM^rSojFfQ(y zIO$sMk#Fo5*(078=Gt`CYLF@g*Lq75mOdDZ=zTdpe%7bLfPCV99DXf=+G zAVg1k7J4{CQUqBKBnImmDWi=UZ44nf<(uQBqXCs7lCrY?FvjB|$jxO_fY>S` z(7k2%m1$E$OBSPQ1tc_?5JhMz&X58{gu#e1=L0~Xt~ji;eB|zc@uB5I$52lu)Fjv{ zNYxZ0?Sk!tv}QP?Fj;mv5Sq7ce43n5+rI6pk_zW>wiRV7*)-|JW$U&r^gmU#xyZ>? z^mkt6)EeK5GsruSX#pgw%hs^uNEZ8-_@Ra5iXr(e@H?A9nhdNKa+#4Bg2rHK6q$W( z@bMt+R-7*=^j2tRh$h2|A(;&_LKOKlbR=Yksxld&uca>^MXY_}sy;8t*Sn{=DqOVd zu*a|AuI9GA=iBAeIupsJvR7CQku38+Dk zIu@!NUb->$dH)OS(qww+^U(27RetXqIooIUU)VIC${mcYwio_Vxvo!k#p}M!tT=e( z!?Hs#Zj$BZRmfS^yb&_WI<3iQEyrZkR?%eKP^}2HTNQ9D;8IV7PKM~bz$SeO#=*AV z%l{~^X=>nm4wh@bH{hlE4OIn_cfId{8fXAz0#$*;>+`W09w8Ge zH*~sHALMA4HcwLZ@rnxmCO-~~UhC;Y#;SfMFGIU)?t~|_DBpXAUso4a^Kd@?hwpsviT*IO9S0A$L{%kOK@r(NcMRdH;&$&KAs))9JzR z^0~^GC5PlA_s4Ec?;@G(yMqmBBuC1QDhd>u4oQ->zFbx70cm<$$W`v5_dp=5@|^tnBl$%JhME8TY#m zxT+QntjD=qI&)a>_0z*xHo43$E2Kvw5=o{j%cYeS$xWfLtQ(L#9D1bk_d%O%$znR2 zWBv7o`t8>hrdPc^I7V;F5Hs1Ok+eHT6=qf*A6iukk33a|8a^Mh2(hI7p$X@Gz&Fn9fc&nyhHh9s2-i$w=vCH=?T&sAJw?`NkTn2~y7m3pw-1|f-yAR~|@Mv&|5*F&oM5#(kh*%9Ox z`$Ujw7D4Vrk`qBHD(utkdgytMIxcwou3|S)HVahpf%Kt7*BB=AF%Y`OF!Cu7y5ckP znRHar!}w+73=nFPF>+4gj#hm-_E{q{@URSbJMMANA%gx2k_6{H4$WUd5_0x+rbo#< z2t=+67=b9W0ElKNB6$jkTo+Yl5fGsQi>{(&&S#vmbEuNnfl!Nr6=*vU+HZ`!>D&Q? zR!>d!77|kg+39>6WP}Lv4w4E>1bP<`RU$ZLSgE7P&(2?*^1`Ct>^u<7f5TL~>ldds z^^nweH9!M^3UmP#Ze90 zc>oA!pn;ha70QHJj>sAz^dge@2(rSnlDR*4vzL+7i;&si2{VTXW$4Xl5z(eW@~P*D zM;@LhOcnBc{Rxn4j)IwkLcai!9Xpj6y+=Hnxr8!nCuiH>NBdz&U=3aAwvZD&HFnL8u3zPVtte-{ut&{fP{`ARi?Yo4jx)U z1QC%?hlt8lP{m*DD*>VU5kftXG>jnqeEmU&4l6b5YmhXKAcK5^nLCID8s{6&j721O z`|k0{;{*J$N__>~exdIvpX^y70uly7dkFmnOt#gx&8K;hNK9qheAHNEGWlg4%BX3` zh`mfKla~uM=K(-uT`7|aSoX>W14@WUHVsK~1i1%^ErQ$+L~~%UKxfN-U=9qDmHr>f zWM!q^J|*x&8C~NrjzwiEs`CQ*f!Ih??FK?8j3!j=33vmt+EFvQDlj0RIl6eWtAWt9 zgQdC#2wgiExfTdrI~b`Lh{zCuh6hGsXod-mLJ}JxGdges$OsW+3=%r3)gq1!j02hE z2y#ncA`m*LRT)x&NQvWOJ=P*IM+of*yoEPo$#x>KM991oco$^oTu``uYg&IOfx zfrRQ)m7EAvoCF~nrBl(@fp37MMUcNJ!GQ*5GZv8x<_ENR0TS9}vK~}ru*;%SwFyF( zMUl3_0Tlr)rhplB03q2^Rx>INmIURXs!Fa8jta^~3L`fJsA@u68S}Y0ctb#o2qJkP z_#pHAkt_{99ju^HWtMDpa7|FQZPcvS0m+Dx*#JbIW~$7l;44Ad{!z(m!PgSO|}`3Jj+$G1&BPSRkAJgMo6C1D%lQ%t_v)mH$yvsBu0?8 zfoNd~y#0HjT_I}fRiNjE=l~!ssDk7xAar;#8GZS#5LL{KWC5WAmXZ494a#YoG13`` z9G*}M9oyH`ms(A_hBQ)!H){n*i=83K?`x`>U$Ix8nV&gFSN(P9n~)Z5L(;N5r}Cb= zHl?oeuVx`1ivdDD--f;mRfg`~n7YQlmR*XYmrjMg4^?H~B}j8j9Fa@p)$%6uE}W5euRvo*fklt(4js?G9)mR z=`l4`7qq5v=4i<@y`d$eqY}GQA@Nl=J~*GtS?7PrZ&Z7_18v<8L;KknLUKBECREwx z;qO~6axG?!P(T}Dk8iI}n-oY^ht^b;Ji>7;m$;TP;UX%$&-VcnMzS`vu5$FFn+)sy zFIP36d0cN3To&fv4>3RtU_$8Tss^(;uG`bDWh}oDG`|mh`_X*B_CfNxe=`d=B6%rP zRoVaX<*8fz)oc{q3-zo%8#))NN~t`^RWx-qV;;dn1{kQPfXGWT^eK{`UB9r=gM{;|eP`%pGT!R|&Z3c5uF{ z?{_@t&?3D^o((>TQ83gLNM?m*hZaL-?W=~6r5y8xkASk+KGX3S^M#Srb0$0GEa4_d zu6AC-99AS-o!giXsmW;GAd(iYmeluyv8m?sjO$rfBIx1>wArX2#Ozr zWTN|4Hd!v3O=or@%EbCjtY4A5p(>MV zOe86NZB-{1G&35^e!enp@urr=Vh^U#S{RMS>iLB|SYQ~5ySPWysm1FIww_`yCY*1C zfxD=%S5?)r3a+A5?9DE9G(MrLUR>Cl<%6Vealc}1z#*CCnC;LuwU8J*MsV1a9daZ; zdVgX&Q+|Bw#X3;Ec=OVkt2B`G>2`GE956{B==-C?6rJi>HI+_8&QAHRnYj#_92p|Jd2pp zLGrHWJ?0xDIp+DC%@!ordq*+96N$-ZW>W*n9N%1+8gPH?MMO{gma(~kB)u#H<_6sY zfVqKWXxT8<=t%nc`@^P|;xiz*EpR(qwKN%O%;2Jh#1u4BEA83{6bJ@`iP&i{qflr^ z@GWK&BB3(zkP*&0O-7qzNYeVI_x&F3R$Mh{jg#xBgiBW##~HT|u@7YtOeB6Oz~Yri zK9LSr{kXP0S24#i*P#Us@zNaUT&HYCLq{W-=bX>NW=J}^I zUBLzelIETktmly|uJ9~j9gXNq&sXfk0+LSN&d||3WDOoZ5{u8uI$D#F-4p0TBp>-c z2A^Nqx`vCJNUri%4Df4iFQSftPRz$e;tQ04j8dkmjFpxFdZ#@CIdNNgPs?5Gzz7MGSH4?gl4T-@hDRfn$E0WB(deDaw>zS z5R!A{Ka^L-t$)W>F7=h)Q&e3|2H{iUl|#&6J!^+i`zKC@wQDi_dWt*|tB<>$~Zp{fDlJRUUDL)D6AO5YZ# znSQFJnUF+jCL~ds2}zV@LK3B!kVI)FEgz_*{+eUWh3NgIzsrOYb&SjxWka=&aeD!M>hRi)$pw`oNbUaSfVB+&W%67bl+Yc z>|3>X=P>X=JZ-9s@4UtFx#g|Ov*6OzRUf`vq_^E*zmaLV1ej{uhf5=>a^CMBvD_h^ z=a{e9o1o8-T6f@u1IC@~!tfAW0GAd+%u=%I-R59rBekm5YStqeVWE zWR_)>!B|kv#vr=7>>8$XW#YevS(!-o`wzg{s)X8*R0YpOhD4HZ>K78-ww`py)=qVm&P$LUFsK&s!IDXSD$mE za}3+r3nzj%exLJxB@zHj5R$LUzA395b>O)yt1FHflM7w^M8yH;K|Dc+qhKMOJ|?f34JRZcyd%AGlm|u%l25#cnVGD~Xkl|rMr(58lHg5b)kpG}Zx&b?O28M%?!X>4b|Yk{?*)TUmZ<#o3kY=)mDbl)K6mVSL%b)UGVu8t zu02jysvJy)718uR9$r9kg-LBSx~%*^(VBMDmEM5{*G7V{lWV95qCl zmPp#k3Kq!|Ks2um$-C|YZj>ZPaL~c+FQpM3ZTrHIhZX18z;}A^F`G!?tpeTvZkW{sc9wU~VE=8UO;V zh$BFg(FTAfbG1%a_2vn$p~5J}Fjw(;Q#W1pfWjE&=ps2*1Tt!f4#}hLnNV+~k&zJh zJho=BR8SUd8zfJAmw~RQr$C{#I3{q)xH$q04&6*6g z<#B!^p+(f%MoHyb=GAOxM2W#9W;-Lv2xhWVk4W-@`9XQCz zkFXWLqZxE-J9m55GDuo_a+r65WU1$AkJkN2p7A|fm2m2WkxQ-m>1-TltF%91rwSfj z@SXHf_7~EL%CsL!+df$KP?;QtfYRWVk-_VN+Fl5fvB7b{4s>Q#KKVnH@tLw`%c@5F z*oL#cT(+T1i;$f(pD=Hm6P#Q5>`$j#-t4=DX|}KFl~>DNW3os{a9-uBKYyC_df8@n z<$EeSKe!-R2=|MvtomhKWvBDs+qRZ%V=`x{%u~TdRRzC};S4{Ezf?Z=TYq;)XD6m9 z+wh<%N4Q3^nTsURlcdB5p|VI?g<3N;grs}9y~^=>0fb$ol*+sQD7B?|($U1hNztAM zWz#d*tLpF{9B0UoGOCXL`8#K5?9Z+|a^X`$6Mxe=o4HSI&HT;%S{r)#!~C|1!CT2% zj{DTm!rzk2(sRpO#=8>O`u7$OVU}A%x3O&xB#(zG!-EXmt(<#=ZzQv8_VI9xwK-eZ^^p$++7B`r>{6Zoh0Us^k|S zvLmUI)Ib{evC6h5rdkkqk`)yRm7%*ISW_h1gKxq<7d_Pj1w*o{Yw&#*!qAe*7Og5o zlWBgeoGkc$c%Q)C&)G7iEN1$AWq~oayD*E4wQ{9_&dx4u_~E7NT-USVhoph0Asc>3 z+JxG&;fF*lm&(7OW1kq~xEqaMmw!`E?v3NlwVdd@mDyI7I2eYHIcG833Q38-M|e>@ zXXBdZvvU=VsBF0SDd=swzX8fqA^G7$37ng2-hs*XiE9*By{UK+lT}EEup^1fh&5z| z>XQ*^+*t0n@CRvJhTiyz>#!?)CWC9CPkkz|2)aqxLOvA-%Ij$0Sb(&t&oy?J279y4 z(5`7C2?>?aT3(Z(I{|1UAW7<5FHGulS)AdeU{(0#23&K_upsm#`LrR_q$|m7#Qkm< zE!_}q*_ey;+Q-C0JaK{JNfu8;QsgXV@kAs`olmoPB9cE{f3Xk}l1}c) zU$8%mCnDJye49;1O-A$DH5tt@L6X(Cezf9i=nINIW6$1uStM)?;iKPBsPc3Hozs)3O-cGGRi3+RfgGINMsr1 z_=+Z@84;R{d~^x)mL>zESJpt94BhZUog~ZXp+N8DaLX&&I@_^hfEyBEJ*ekOW+!lw zk}jbF<~bsn9Gb$`6(n;*1W(FSQz;dSXw=1!bGh6thBQ|? z8P$rL(|w|JD^qnx6Xxi)=M>#4$(zs+p+j<0$=H%ONR3Jb$$swvFDYovHMY@D+CC^= zdo(zcjA_kHF#hcM*+Y)C=EmFJDBI4K^%oOiSzjDnLauAW&2hJP=CRiJArV?5#bsly zfuxnIHCsWE+!30}YKmlDXg=xPmYc!FkezM0f#GY~al`b+k3*k?$kse=W5q<@t+0yH z6L8RLHzb`fSKn23H=6`Vwv<()>5Rr8l3*ajCV?hH7ZU7QO-8ehkUSY&80-f!^lT;d z$z!3_&*yV5R2W=F_8`Her0==vpf|)GBtWvu`#wy2CDehW%;#s*K0-!$kU*2shG2w@ z@*sgMcLoqNCheA#yw}KFEt=XyK!#}?C!L)^}k&*m-mF>U$g`NNmB>pyo{@ zX%}kGECM8j+hl>8Ht*{R|`z2Y}GILoGT@M&24% z36-Jq5W5v+lFNT|E+4(B7aier)^YT_{)psm;o>5$i=Im)x0i4^AXkn}K<+z668+7~^{76l}?mrN?r#we1Fj!nur2shp#-4w}#C95UP14i`)7i5(rb@N9E25VM_AfODx9$JPj}96-ZyalXu2S4B1h;Awn)|NmPmp{)$Eo? z7L`=9TOwKQTjOi|`_M5_`JJHoZIj+$`5_4vy-~q3M6|f%4VEF2wZ3(}?3x*VNi*Co zy~#2}QeN~X%MZztk~dj?NM7<)`I>0?;chc5HHxq^W%r<)CO6ddas#|Al)j-F0< z-W=CxBs+a?E7K5$6p~J%&TQBt>0RE3taEcG3@d%B$b1j?(YO+44|cETY%m{haNP*T zeWq+5%EWymGv$%A^|WJFI+A^!57?wbk{8NncSllOUP6v}xe4y)oXc5AXSof$qAuH$!O*!l9B%F$WuP9EmPYoZ19BRpN_vA^4bmF0FsY9AA_IK80w^wp}t|v zP+&6HVW4f16ql8h$xkk-q+6gnbLUXz^T6={CkH;E*|lU^2n-2LMh#L_(nuUZC-{EK z@lqs*gP$_fUz5=eYHBh!3|(iZ6Ie4lZ;RFC>b5^#Qpr>dAl-JIlT#KQs56oY-kZtU zGA@_DJvb?NZ~poz4Mu`)n?piDZaFW73Pblp z%cc-Rh`Vs3ru6@^!NOp5#l@WtN1Nvcu(aK0v5ZhkiDamqQzVC1** z4a7KvYsz|Qdm6+zUv_M8$d3s?pCGy2ISCd88hlkrPj@efR4DJbK$)xE*8oY4kQwD3 z%@z(VAKKiwX^#Z+seosZ7^2DOq(V1c6VhIofMkhxDU10bIqE&e_7F80x+bBL(`2+& z3du14aF}n%v(^m~ZYf@6NeS~|Yn|3?40tyZG48dJeEIpD&WsUK9BV4JF3=9qm zzS=CaGhK7EqMm@R+y0y5cZY1aL+>Nm60Bygsz9=!?~{F}?QiYC%{eXkS81R-^iD8k z)iX>;y1VVHFC%0WBS4eUHt~?;l;uLmPVtG5%nm%xbf_v*RHivanh>2$I8u>hlxLPN zOK#MF>QBw1GpA40Re$C@>Lka8ag8c^xO%#N9{w%b$J+Vh^mM3BFIOpxi6Rl*601&x zj8Yv<=EE8D@~9e=7a8cTE;PS)T<@~{kaTr-D`FW&2q_t=Lhe;t2Hi>3i?-K#C(ZC% z&vzcOc{rDP?PK0q>`frc(!pUH=O51;HY6_wR|KbhU`wOgM&kYZ+>trm$r00xQ^MK zr8jyf_^!5m=;R~!kVw09=jR1Bnjh6|xK{iI4s-Rd!QX;E4W5p%3hm18^vWN>KZAoO z{^Z3p)RM+Te`NfYQJok{3eB0-@D@5FwHxiF`E{Erpi6c_zFAZh7eW&Kd4OXVusBAz7oij=UqwnU$gwITz_a zifi7&o#n~0>Xz!-=~n2xSw{WY#1~RdCi}9^r%1L!+o`mv=CZ7XeeZvI6bJwH@ZSLc zjqpDP{>Q?9Q~2po=EXOK?>%6i#&ZM7-k;5BBWk(Cy4h?Q#`5u z*8G@plzp_FZ0*6?aG)ndkkTco-Vu0LR~Izs-KTeUg1L zS$p0r#%W*e#kwKn%n5S?lKQLptJ;}aIc_S+US!Fr*%E1F{h#KW_0#Mm@V@zpD@fRg zOwscLX~Ll=%}--1h95NW9XR6*`(1YOs*!I<_P%Mdk(+k#^|{AMLJaSNKZ9cUQvDn| zS(hv{Cr5Tb(|aF^70CC=f|;8`X2kLt#2CxxQjrO zz097Q*eVj4bPu+FhFmc5`P_3P-^>T}&)dnoA7cyjFWAZ6Bl_f=7wrpl_wdRMIK1Zy z`(6Cqk;tf9X(#!EV{Igk=Y_7%+N;{HZ~t=p4eeL9m{_pf{(vy4V3oZqXN)YTpxYK- zLy(m5eA^q>Lb2bBji?c)TL)-oZS-Dkw5ulC9vjs4m)tqnGr^6NyMW9}33mbLY?WEyvv1#0!q>+_R zP1ym7rbQ=ui%hlfF39?A`#Vb3@7B)xz1mstvXdppjcMHbn05EvkSHl3syurDJsy2G zik_%}$T%xs2nG1izF#T8f!YN)Si1m+?4;32W19XWJ2@kov!st9)tuAhjjx?uNJ&s@TvU>fg#x>st1nNF6FV>rTkp! zf#Y%yd;y7S^uP%s#`Bp`J@94itiP(A_18)dd?WY3w~(kt4}1rxMh{R_qX)ht7vuu4 z9yn9G0B36#;GEI}Kgc~``w>#r=z*W?q@*w=!*UW@_LTj5`)T{n(R+S(=ad3L}sM$EtJ&+z6)e~3g4g0BK2*&2!96H_(5DY z*=XaR7IGoStMtb9twhvhty;rP4@8%`jrc%Hl%j-J&L*{$${QW6WwQNszrt-55 z4aG*}>|nl>;xexM2@?=*&MQtXMc*+V*uprJ#W*s)gs!Q*n27Fh&D3a5& zV$;dm2E08(5+812%b(8W7-=QhNVAh;=U`Z8H00xLMKBm@T!(oC*V9aMo8PHx6jMU3 zZpd$knbD{bpKd;64|5y2R!zu|mtxb5PSGWjy!%XP2KYqQ=JM$>N_CAMNV^invzX^V@>kInB**v=oOvqd}5jC7XxBY42escxcS$bEp1Xx z?r6+c;;oaiVYUnu$*g-}bs0#Et@*C${lxy_RpJ2gYVjKJT5)sEmYhF24iX28qrkUlUyq-+5t74PovIIUhCF_TaWX;Xyw7d~8OrEV5HB3f|1+fLVv>IhC5TolF zJ5(Gd?r3%$%m6L_GmyVh)ixwB-IRib4Yc7?Vn>Oi#T!IY^m=TDe9yD{W0GUX039Wg zy$_fadS<#wY39b`%r?VVaU40@hHr!UG;RwWBA0$%3YK2^HeddRLKB$KlTktoBZRnS ze0p1&lQ-5IX)(k>wP=xU5GRN?i?@gq#aqSO#M{M5A_>e;i#X$FqfI|WB>6q{as{AT zi)NUz@b>E<=XNybKx`l~XN#8eonja3E&Pj}S9G4lPlGX`BTF~L$_=%fd`h$F;tcUFaeb4Ib3VyAobzeUk({@h z+%4WC-YecG{?+k*@d5Ec=!-y1at!ts3AEtT)h=4HB{oa$xGh`Mvdw;2?X1;zo504t z#cYjzRGcY3CX(!pv8`os|3+1O>Blj)xbfY7%=szj=bT@1W{Z!Lp)L7LY`3C(KD_~L zx3r|Rq=>PX1noAj?YW#ML~>+;IaNOg2I)Pf3}uk5#kNzvtivyO)47kD)N!~WQY6eo zNPx*~LfnVmenrxX$lGVY?VoDBsP&9?t2+~MP3L*y+RpREb)6T8FLi#V^|P(-Ygg6z zNpXGWh2qPdpAt88UL=M)lk*eItsQQ0RgSmY{3gSj_Z5eT*NZobH;F^qjTa}2cZgHP z&ejU?A@O1H5piO>S>g@d#&xR{=ZcF#H^tzn(R9~2Sq+_wQbS9{rxi5>pJX+J2-OgN zLN!D$q8dVkYKVT))DU7+LsSygkSqymsPQx6v!I5a6PJt6i!X>TiYqiVv=VaoJqG8W zfhI&KtRdf-`qAq$J=q5!M$vIG6gr86sZ4s+wT}1OiT|}?xV^v)w ze^Yf46+&GkV^tT)-&9>hg-{n!T!${AMS4}-CcYtV7vB_jh;NBI#kUn*M3WHIMei!Q zNS2m$5zQHO5f!UL7s;~kN9dy6P!&ZN(Zr~W@E)j(@Du7HdJ%OIBGg6r33U;@h`NX( zeXOdBPylri6+m6ISKKFlP(v4eDDD>zhzCIz9TGnhKUQ=R_Li)RlrBPDgn6Pa!cVA+ z@DtNTN5s#>qlzxVOQ?(RQw?48xp-XGMR1XzE}~Kw(M2Z|U35~>MO0KDtLP&6i=vC@ z7t}>ERdkX3MbSm{i>!-eEbF3<^h*t0l%VONuf(s#Z^Um!Sp$71o)W(oPlF-!v8j3I zWt!euC9V@Uim!>ALGNr8-x1#vcY)s7BYq+t7C!~Oa}4#)7vh)V8FIPyRiVNuBvF82_N^wweZ^^SeFMEl`k~fJGL`;>i%u z8C<}p$0XAfWNHC;ipsTFT}+MiHi@kJQJ-u}l@{m<)liD;K%_}z$P}{;_Edi_;B(Z* zCEwqZlvF#6wEMI*iIA??pliGGSE)@dJ;le9yl(uUn1)g#sWBOU9hk-0@=a5kz)c57 z*R?6x(~VEnHt@nhx|f%IYS{@eq(-K8?J_@7L`D+aWq^n7z6223D z=vTtGPaP=zVU(Rs#d6T=_>Kd~lO_C3`XLfo`jsiwGE{2Pifi9d$Z9@}tnIItTeIXE#zn^pQ?QPy_BCI+$P;FO_C-{QzR1jF*Z5n4oLs9I*R02 z=~VJmZ$2~iPHBBglv7W`gLjf$y?J-cbZLfk7irLkFEiaE-7Af1ejg5;wEH2q&1!D) zXnjE1n1aED%)6xr;d4}$G)@4R?C!&tD{7+!aXa{2RVmDL@I6}1f?V%U*5)!*jI$+2 zvNICJ>TI1Km&oQV5MSByyg8PuB=wzq55pX3E*8y3Ad@$ui#AUpv)A&;Df6Xm(Z%9) z^TX?$yp1zHFWqgGr_T$J{=?|>FOst^zM*lU^b|Cvn@{0ZkQ_Ik+m3=o(qd_ev{ZUp zS|&XsJu9t}R!EythDC;x4LZ3QE8Kib{aSgJ=B|U=d>nn7m!yws20GSARamRy^&oyI zTKr|{V03Ntx|`!S)P$UFgVav<8A)>SDa7O9Z}V)D7D}&3uS%~;uS=ViQa>jxhjJf@ z&M!enqX&a6btRzHY^OUZXWPWfH%QndZB??w%!tp+r^hh}2}u4bC_{H2FC@^GliN!c zUIM~N49dBGE$9BJm%lz~hxC@TQ+iu^N0N*B74dud)HsG|{*!$CNNrJ?UTiU%cS-L{ zyQS|_NK&aOjf`>d>Lv$&FnM1-UL}DtJ`=)GW8hD%pwT|*zZ^8$C&@vhv*i#7l0%0r z;?-TI{nBLniDZ)hePV{`NOMaw)h>y%*ds*9vweB-AFD}HbolF#^byG(%s)!nZ#1V8 z_tpHsw88d$x&7ngn;(w(Ah*VvFzliiyI#XL`M1lc?q2Q~%;(g&S0nuqi6mYNX2pNn z!xw26`JOHKDLQ9HMQ0j=tSdMed3(9PhmPbs8jnezOEos`^v9u`F|b-5Ck5B>ogz)9 zlZwgoWo?t`E7@fFS~i)4ucae=TBqg>f9yg^4w!q9Z?5CJT~>okzJfUEB^xA-%(?M0 zJK=BcNgy_RmW&+Bk5}Tem%eW}e?0HkYf53032gceH?y#O_{W?1LJoE_J5J=ga|^;_ zC-S?w^ctIg$}V9yj^w8c$>CAA@x2Y)Yh=x2zVjvbcP>okUoa_q4&gOZ_+NVf&xNf?WbOnb|uY_ekDKm5luele%7C(d=6ZRDlte36>Q3?X*$PyN(5vNar& zOsZG%v83w^{xJxx@0?g*K&iO(X!17Lm^ZUO59L*bJX zyBRg{18n=#;{AA(jky zoIfBtpVz8_;Bcmr*DCoo+?B)6K9Q_m#CNMh1npiFsYm)Q=Eq-jRXDtuzpnm8))Q$} z%1zzTks#mC6JiCfK=CFdve*^_)8{-)gGEbtJJ&D#@e$!APbiBVjXg(MauSGJCl>nH18gKKcc|Sn0PGmWXvfeE0>vA!mGCDlQ_`TTB@wZ3W*x z%4i+Df+zK;mDQ(cspKeqxMi3S~RSPI-D?4GRf{W zyyp@!o!0X0W56$vMv{^Zd`fugTD}$ckE%s^F`D)&Kk?#=5mSw6;nWR$7YPU`MpAsE$$D8WPWEl%Z>VF|;p`l6NqseneEJ;U<6>!_spA4pT*?ciH-$HO1(fDLfar1?8}2mCpE6mWd8C&CiZHNs$*X*hu0Y{%*~1S+IwH zPmhMn=nwej@DS`{AHex9tV>IB`UAcJ$5Yf$Jtc;f`))y;5FY*^zlckxXANo{8<<~| zMlufY1JryLkF=(dhNUJ!biA`YY(JAvZXWecNbD@vbSR>R=4|&#nj`0IozBqX<SB z3f;)+&Vs3?p${{o3(0%Mlo?UH7NjWKQZGE^Gd@ch11;t4|074~QI9ZGwVp9n-smU3 z5$23=lN0wAWXs#}sm3{CMLV+SJ)vWi0X4GthGKbNZ)~x=uQ#zcdS7pH zaiuu5crh7wicjTM(=xRoFP-A+wW-TUqsG*8_2lClN*FIjHzZ{}EoP5q@)p-!#l2&D zM{X?38>BZDk13}6Q~kc@+r^$>1?NtZrGTP#1uBZ~E|zx%?kSdc1tu0p?+Q#V{zAOB z_zW?g24$@b-X*8O^FK$*L`xI$>1jN6gToHYvwGyhyYXi3T)4#<{x+@G2A)c6PQE^i zl0!M60jWP4CRy8a;7(BsY{>Gs9Lwv4G*-IBV$>}o?+=Mf53fJRKc!c1iJ|gcyh-4@ zcUE0^de892pZKX}W!Lv1GT|>?-ag-RfltTH)N{vW%nI$#+yI#1VZu2p*o-mSpY82|W9P#SR7-9HDm&6HqLKT(n+q77mPr0S=&PAO3f34o{ycP_kV@W<6=DrE8r|p-_y#tmmHZkj^n-vj_W^+G zOhP)Ck`*Rlqijl^Z4I`#pBEZZ!!kU97nXB%8IOC0TWqnT?2eMraP)AL(3niI2pum+ zFq~i&KDnf^Nn+xK#*x}O4BA>S)Ugz`BiL?3)(B?uN|MmC4w24OWIBr;rWB)@FS=8D&PMp1u%zJ($|2XTjEg=%jPs{nics93&M5HwB8unes3V;bejr6i zQ0G<>i(zf(hJh|p%n6O*MrUn8gC?q-D_>J%!l+TE!-F{8iykL=slr%h?#8T;R@zpP zJ*h%Ucz3Gc=g=;VFnme7bYVsPOPIJR=(CF}Hc81WnmZ|Hfu!gA{ zuE-D$tFD59wYw8l|;{Lscez*r} zXpu;}gw|K6Cm-%1>&bW92|Xd`l+YfU?l>9JUij@&6Y$~&>$yDPk(z5Zgd*}g2!a1( z)n3|7m<*QRf4pGFVOcOHS97VBOVu71Yw~gzK@O2cm>SW=hPcU7Jr?y~hX^liZv3YO zFDVo9!|8V6dOCzar#2#sMd252EFqH6q<*$osT|0pkG_D1pB`ay*D87=GOd@;f%ysl zjqAq7^eR1c+Jb;^ zb)BW0u*8z}|LL@UqLkET@2$=L$X<&q9rRk0aL4|_897i;bMz^q7lsRcuXGyKtV3UN zbaZ^C>dJyb%O!ccEdtqmosfA2Zb&hI*F}dTD{V(vtBoI|Xtlqs*G**lCTsj<>$rcT za#Zt?Qorz9w+O>xVzb2tI)5t3_L`H!JthlE^e%c` zo4r(MNp>#>TdFDHei3HW4gzG6;+=vKb~Eyh3u$yWBPs|GWlp5Y{{N(&lY2%-045kL z>bA6PjJb|DM^i zZvR`c?#R%)giHf;8BbXbA`5G-+wVzSQUdB?teS19oo`J z>M)F9Fh9=0(cG0n%dq=t=>5NMxi6NX+xs_-cFQxu)LJn;!x3o?+4`B#I&xmuwH94s zW>2UV?uc|0E@Ni*;HO0`rL`JDEmslgz7q61w#WXc9?zqJ3^O^rO6aK0jKO5c9tbV? z*MRB1a5b19krV39+ER(6^;)4#%@LvA`oGvD;UVjV+i6Gd&bDMkZJtF>ksrRtj=rc= z7$#CTgIev|;xKZVy$hC?x$g<~?sW${)a7tjujp{J8tl-=ZU##M9{<7z zI3Tw^T_Vqovk0-eChqAK9U)fMM0oIEFHF@_4+*_5(E*J}*Y^cq-5n5q@_lgEYY+GY zlJ>38tj3^*(59JO5G*EAyjSRV$veKgSMXg-Kv^0O_fnR|hH7N98TsQX@G92sgE$UG zHuK;Qtd7k{qn`wGc+dv|{1yOR86muxLtgt(h>uz)6PLHyFKDaU60-YX%^HMnIwbVa zRQMgl-_!yxF2}u@|IL`vrd@Q%Ay~Um%3S;FGod>-XYLO|E*W-IfFr5+5q7o&vW0zz z9V#=)JSJR&GiUDwfz;0MQZuJ%od)QYE>m>UT%>~OB(JHZapdMxMEfgM-FZ^0A3beD z+I|VvHm+mN@Zv884+NR8^2*Lg-q(Vt5ZL-iC3&N*31oGFC7nJJfr1yl7G6{&zF!EZ zJHPx!D8~^#qnBkQDSid4#Vy||s(!+YNsY*oUY6dJr;xGV32(+lX)rR>0!pe;YiMXt zZwX}lDWP{=5{FL-uU~RqYTVA!h7@l=tL>ue5&@|O;pwLZ_{k)?CS!@$o&%%&=r3_* zVmnu>*l@87EBl08<%AkB>+r50gwJW5ZtYJ(+s5+QQ+0u&@3n#js#(MW^}ioO7ZNNc zetIpV=Q2i8*!#OM!}u>v1^3?>YcLD`fDq^rqopyNcDrDN0ZETqMmOk;EKB>pGa&zN zQeI9;l=*liZ3#syp-a4(blWQotZRtFBuF4s;n%(x{D0JSY@DTr2h0@EmDM!?OOcdl zna|YV<+k`gR|*q9qwdiwMwO~0e7()0uMyH4dfHM%W_<>mmD+0cU#)-*Taa!=U@)@o z;?Nf*9L-Y3w-&XlLl!nv8j$Kq79-hH-;#F;BbN^Of20HczWh;TikA)BK(^)1i|KBN zh;MCU%_SY0SXy6NCYx+(0wY;@$AcXF`X?JDDxP`8Q)INIQMjO`1&$#8FSL?=AiTOM z)6y<{XB*2X>c35BXGyEue}fg!|91in$j)|_d;cf1U9Ab3-O(~qU884^DV;2`cdZ%} zSCcJ|fTxw;*8uPyXDgzrUbC&O^Gr4OAnOF8?xb! zT`d)=z+)q<8DzsqYdwQ{nZWU;3{uz~EM3_Q!sAN|vxLYz2%KJm=fOsTB99qo&7_IZ zWWqOpIPI1cFce_(w=H?t4)=<(yWm7h7x`)yi8zcxz#eNtM%)mQ8JVYIHPfwG` z6;My6G$o59t%P{+q(&_XKBBp5Wn2oW=B@B(43-b(w75FvI zNCvNrvk-cah3py|XJ#$4Xk}aiDf}irGRvBF68WUa(u~#*cJ{SbsNv2&X;o~2Uok-g ziaoqTA9#tVUyU8}eZ`gsI4zz`Cik$s3sHitbK~;KZ9OgbLrnRvo)(BHla{?K{nhcY z9zWC=K$}Wy3?Od}DLQtDyN_j8-P55ZS=rAb%ynASSae-MhX0@bRi;E2g62l_)(;IU zpy?L9_+hE)hi~y(R^WM@Fr3Hvm|Ce25}a>@Vu zYI4_Evj4x!=J*+wZ0fnOWs~F$vqX5MV0_43MUD=$^a8a!^r1`W?Kb4$;V{nrMydgc z83C$OT_?F|1Xf9}p?RzSsQ&R|;r)eC`zKehG^+JCC(>7Ef-4m5cU+=q^}}mMTSn;3 za?CHeH<@vBd@^Y_#u5*cS{h@~9@{IeBNNpIxu|Qd^zA=ex9E7^C5ly#_&0z~nK!|5 zwq`G}F?zXmD4b}?`v3P2DSH{b!st-AQiIw>Qp&&cc14F!6SbD`(n*%k#Vk^#`TxnH z*V*{2=unz`xz#(~`7f5bJ=yb+wc+1*vSFANPif(Y8|QX|9k9x~YuGFvvSbW!&pm8) zx{-{3)Y6JHy0?~S^}QDD*}ng%C(ib;UUZUQR-FjW^tKOK=&8p#b(m`Bm$tJclgECJ zOTDyUHYt7B(o_IvS=DE15EtPRzI5RwGog^n@jk{Asm1YV#~& ze$q0wjviq7{++`3yB?U(Ag(nzv)tP3Z)PAJtxd^Gi|f<`|AXQr?SbOp#u4oROHxF< zFj}`pmn~2lS4xg{5bD=5ITZ!_kF^&T(D{6wT1F|;-i6lAWcnO5ga69~(^{^EL0M~3 zK^gmy@G6TIt!_!qthV$ciQORjJoO7p99gp3(jrQEfHSw+GGEn0Ey?t?mQix7c+9sT zpSQM_JV-3P_$Z$+B`ysfz_7q?i;@3PGqEj_S`DO@t{Gh`bN}sHz|liIe3b)x_Aqrr ze>ZDk6gCepf5p<`5_(guf!4m`H(48A@%;D?O4gM8zQyv@6*SquUa;Y0$nf}hIKV{P zjo99Vky^tiU`qYpX}0u>oUD?_&@bX{R!SBg_qJuEyq8#~vinzxRzSqv7T4vJZ}Y|M z6#XbWnSRjHjTAJFzo<{92(=@(x&zqAW0j1K!{P$jkF-Bw z8Cl!rn^YTRk)nM-*Ouos zzpKVlUb9kkoe$@KXZiBq&`g)^u>AG$-N?*y7T;y|Rrrw~EGwg?+Kitp1FlrJFTF3W zktww_t#nvdcm+s=KlslUmYKQy!%@37~)g|O|60{}F^wzmnvV1?tF@-`1e8T?inD4_ z5tenlyz_NabE}Dj;;n5idMDfnOHQ!PG%6K)H`xm3pyZbmWT#m7M-D0)HjWCR{hfb) zc>%qj`_y^No<@+utum}thJURLHNrEODoAp+6&~QkH!2K>>dG!;mI&S=x{UjqTBFwu z>{LZ!?HCYyqM23Op2Y6Lib(^9ai0akv~1e z>3RWrs3s!Q#tThjN*yB#dXovAt(g^lKx#s?l*2JDaeOp#0-9MHJysjds*PsXMrTqL zU1y@(D4fnolDb$^lY2NuwQxDy4v)j@@HxsH+D|k2p_Da#nknF@_0vp2hy2q_A&{=| z(@f=#I)0j|FWKD1+9I`|qpJO~-p}-Ywm17hC1s07tbHw2_pGX@<#&+Ih=th)%;uWPJFanDOOBDa6#YPl{I=pjjs>~} zYTk0Y40e#Dpf%Yr#F0v7OV*UuL!oLleobkZg3>O%b<`I6W|tA(Ly)FE!Ice0x#yD6n|Ox7>l6}7;QbkfkTtp9YpkcI!;O3DUMGPkEzSR5 z`ajZi%`i@P%y5vvo90&{ANspe6-Za6%)1=wsm>HADirr(VRHI{8aRZj?KtW0a*##^ zR-0jS+7?n!U~O%<*Kr>iSzs;b{($2?M^9ZfYX!&|S|MKp^gDp9HNiIWWPfX)dJj3W zOPiFw+WWQMulIh~@rdJ52l=tTwV*Cuy$nL*+d5iX6KB^N76e<-c8H(Y> zCdF4-1NtXmemyKSxyXu;K)$=m+U62MF+Fu}q;X{E({OC~t8P|$;*0JUHLt@;#^)s? z76&_lxAkbt!{w*Qo@=kG!pa(a%zp7T*p{m+g&&DiCi!&u&`$Se8d=&(pKNHU+d=Ys zThsM#X<#QA3ZUX`t+R@0l49LE(G#v%_ijz_UQMv8CV0Ol*j*FsQGf*Zr2let`=Uj1 zbsy9OAJzo>N#{P+MiqP0Cc=**tI7>twef=EMaK%qy5=h#s~r1V>`j||>C00tbvaje zpyq84MuXP5xVr|u)IRq5Q*ZHMcpX$fJTC8ms8=y=Mp$g$Y5#Ie-zv}2j$8OO7Z z=N!u&&pTE-);QKW);V5sR5{i=XtKAIia|E1__E{6O$_gDCQ}^N)(z?FOu~*DZ@V_? zOH}@r!iWA?}Kf#}0D~bl7+B_;q**NQ|5<+wJ&f}E5C)-}I{vu+7yT{uFHxA1m!2$0b%Gg);v{-2k6k#Whqe8} z?O>m`HxlUGyLn3jBgTqZ_YSjM0VTu^&*tBqegqxNO2BMSnu18BY!U zQ@^8Hhy4iUW;{)OS$`i&8Ode{Mw^1pw_DZYvi_(N)*Zpq#OU9NtB5#w!;I&OcT~eK zMR+$wFv>1Ih0Dr?7+_*%c$`#X2sIQ|cdZ878X^JW9C%u=3>EzZMhjjh4mSWbhEmY~ zUhaqIwEN0WMGz&;Q1vb9Th+IzkEY$O{wa+#XmYi=6}gqUUv%j(K0q`H1`ou0$IA^7 zh7ENa>-6;km+%(@@%-j%Bn`q%!O;eVfkjsid zNs{3@70ll$D-2FF^i?IpLpS4{MTxNPX1r9O--|cnJtQi_p%S?KJ)Z3~NCb(^Wq-2c zqQm{ck->N|{r0;?h2^4FL&T7$3(xdwg;282PS{p1fUI}V2pwDG={XNx8p?K>H8Cs~ zeG+vGVjk!C%98dYnj39i(1xD}uaRJNcR?@8t0{-mPQd#^J72Vd2ScbT5q- z4&`h=2HZR2=P;G4m~P>N?wxTOPjyW?LiiT(V|Q_GG#T$k^SaNH*6ZsGe(p2+0W_{B z6p%au50kjBDv=(HBk*p{*VBGjY(QD4I^!7>C*szeM!c+(+3-2GD)~$7eEnDTl8WF8 zpCe}2jKSrb@i>tgE;r(FXnX%Ig2bJ8LU!kpo!Bl+rf;ze*x!gJJKLkJ8+SL(M(JPr zGF}<(F!VI6Ef7nCq%1_!qp}YW{quJby^u*rOnD;;2A!uAFzsDDRQ8~^?!JcTZD{se zSiBG-om=lmEPr2UyoFN2zy%1n95)J0uXn-FQFwi#H*vkr;3MOFI10~isg80qI*bBP zv;mt4I?@9pOBBFsquqLUj&JuIuHA0|l#qjH!(7Po{9HQZttUCicp zz7<`qSzJZXZ9q=IRifLW%Q)trhH~OJlc-$z_9Une85ceeFmCsejhOe&P+S_qBI z9&KO~zK%hk#>Oaj_9()}8sr#{qZ(5`&cNt-bmI;4uy}9AOoTmPa3w-;ZelnMMo z5jMe~!+wV~WAQRHxs%+J`=IaSKEzJ$!|dcf47v$ORHp$GSI=2hchjh|9y4^;jH+oy zca6^3>IZQx+8C4BjWGp+AHplq#+c^b7}L2MV>(QG2=5&?%kYFDOPcMSSt|&8(qK)r zC4%)@yv8NiCvZG?nUqk2D)aP3b)VF%ihc^39>(hftQz_VKEPEqS*TYq?5lV7Yk&ct zBM+RnAMt1yl3Hj2T_43$uZ~4@V-o{j#JN-OJf*KXbyP`I{e0Lr1!w(V|LeQ66(2^! z2+{7;%xu-z1A@u5<0@?Z2aJ6RuXS;53^)Skux5;H$TpkDfH6P`ZbimK6gkIZBJ%0X z$<3Xd(^6-w!6;nq1s!c+XS5oy`L|B-U-R)8_TY{PZ=S!PL7iw*sTbl!;$;RnvQ_D>=ZB4nbm|^f zqb5Av!x~h?(><&(_~;&18v510WLRZbYd{&v___zLhtRYLj}Cg-@CwYj9_bukWj{#q z8hQy&)$qE3Q8kF(fRm^u`iESMTLPhgfo%sA?=+5BZ`feiXz<30{Ha+NePA(R4 zvtf&2tAUon1sFxeb9jDMAT?{SAQcqi!3roifTFUv&8{7Cgs$M6#rtIlv~L?AWl7j@ z7G#+g?_<753Y=0PV44ChuEIODjPJf0zSY-M^Jw7GitAguBa%|MI2a>Roj61Ocs1boA7jZ<817K7HC3XD9)>4f_!O0dOP-k zAe{XQerBRS(nmvCxx_Dhl3pLhQ9wz(6i}adn^Tbb>0^KDC;9=PP!@3^uT{HsPvRX0 zFmJ=V%UFB&F2hEcvJJl`C}e!~XncJN|~~Z5H})h!u%7hmlAuQ@Kn&TWQ(+I|J`4U52A0 z2AAo`OVO6FUjMznFa6#CdG8?Y@=^9>il5NScv+!;Ho%N`kWu@X;R|@-9XwO~ivdm# z35rsj;0~+_4eX==3XkAQ@|0ms(Z1@Ji@c}rv;oK$P*zF%yLfQi&xVF5jvXrm%@A#a zI%|Lt?;>?*OX7GW3L;rOry8oCuAW={di|Xh=h3U1@Y)s}QEAM;-^arE5~ha&Buqk| zw{C8DH*{D1^OWsW(Qs( z{N&;eyvlsZ@RuP#^(@lxvir@cM2bQCEw{w014i*1t}>iJH~{*v1)*&2@)!wS11fjn zi9o#>MukPWo3VxQyYM7;9f$ib4eUe@3cR{+Q3HLb1gV@IA|fi>s}(aSq)oo=Gd%TX zx_n5@a5??OZ-t*pzB9s-KN&{`B12zimH=lSK*~Kx;p#kiOQ4eE)v%`mW_=`+^aIfn z{w`Ce-K}I7dSDQT;?S0J_Q58MshHxbxXHOyoGMFCMVPSLwcHOxM#P1Mxx0YH=r`Dw zq6B^e=ZA&3yD~d-ocne~?QwNAXb&D8r!u@waW<%D5rM9NOcH115b;yEdd^QWNv&ru zEXZ2rwG+56-$t?m-d>0fN9+$&Z{hkHCjswr09~SqMp*X;O5C1g#Id)6oVPm* znoNcV4&a?7DaPZau*MdaAWk)cygLyKKOVpvlGBYYG1reMY(0qQw_I!CK|IOEU2S$B zxmKIE9fek#+koDld+-Fcr&HH%b9M<;hwzwY9*;PL-=980+r^k~EHLiI1y$6AMn*+l zu!3-_sMENb;m*c9;}_XqW)G_LD3rUxjh_?A@XZP$!=-|*4xp8BQssk{DOIUeX;on= zjuk_Uy^U}_3_`Wo2#&E-bh*)oODi$@;nGTt0$f`BdVQJEk2$mq_I`(;7#btPctvZu z@1hy63Me>&tH?^D58p-Vj2?84QpIEugn38s`JEe#dLxOEPHmScSx4hQ>Wv1pBUiap zV98B1ziBi=)gU}u#y}Oy7gU;{@CQ5{+*k%R2g`seT(9h>+)wsbn&9~NxQ5%#9^vZ7 zQ)?d`aBJlcc!a+}+0me?#m-~G4$5JKZ@-WwiF+DhLTG40ki4`fWdDeF<-RQgmJGqO zB7I(Igk4|BV&Iz}@x?9jnh4|RI>LM&DuJ6O=o;g-#_NpN8~Yji8*eZU0Wa_Tj^H{I z{7FKz9CRb35ComYfY!a!ax98X=DlR1NfGsM>rgyWXfo^xvShgT7fyr5P|d0YP*`zVB{3l%7zMSdvn5EcXX;w1O8{ z77m`qbNJull}d~TH)OZe=kBP_3YnO+F!c<6W6}s?qw#LzNMlJxADLg*fqT%Y;<*mo zYxHp)xX;MA4&>aAYV%wNMi~WM2SyuVOLr7gZvYUuYK&3HfnYvDj-e<|6z?hgauzA^ z$D;#XB25PKF)~UrtHky5v;|KI_HqqqLO19+ag<^rqJ})zfJsIedk)!wA2dE>eAvhu z*&jip=XnP_3Wv_&G2xFHxo!Z8$5BQ9a=kf01*+!T+BqAz*4yu{$7W|uNG7m-< zPo+RcdPJMETE|m~o`S~r36xZR6cQ!9!cw$A#{4LEIz4S{I~LDviwm5nA#ln#X=fGf zJCXP7iM@k zwq{Kj!~a4ijKJ!4#o+WYSw{5pXouu^b_jh{zW|s2!jq-Tjng#KH8V7j@@7ahlwZcn zqF18I`P|Ac!DE;4_}~@BcT-ovi1;cZ z+bVy|wM=(RdcxT+6J?^8XCEhu^Js1|5E1`XBaM`_iijA#{HzXUpG^}H$@W%thmeuK zJGB8$t%1rd^Ek&u3+U<;<^`zsjEI>Lw4_J>Z!67B73QXBVz90%m@x_EnzV`uHm-6D zie<0uDtZgn-Gk!D3|xRheKH5OL9`wsG6?n6e`IG7M4Fcd%t^7hs`JlpiM>^vD@r%`*Z@4-ZrE;=)|=GqOw^RuQ9vb{KcU zjcP)}{IL-Ik@C6m3u97gFE1r5qW?h{TZ}kt6|AE|m66V!TJR6vsh-Kb!5PV`6;rB| z?>2T$&P(o+{A1D4qBtFz;Km$;(G8G^gbA3irxIR}ho>R6p?hUneL6Q$ZoHzRyr z09|s3Yu&p$qPO9&@w;Y(6z+bc_qW2QOSGbuUMt$QJ*32UMN{&KxFnZC>w9D0(o9X3 zhOg4XxZX$Ev2iH8=Te=@@G0wQ2|2bWE_I%h16%cA{k zjLnM6D$z)Ed$cS-;zkaeCNyh5bR!Cbj~mN$sSsaGgwRT(W_F8FS3T!z; zB!S#>zB9qhb(8fo7BwNUNp|Bt_uJd|FQQ5rjC4FB)N) zhG2cqT%iIu*k-!M?OMX*x4CF-cq&|U5CjaZAOym#xz~p2u z#T355uLhbH&#Qc5$!_9ZP>Pl=sB*}dL_VD{IK#p8pVt%h&%3I6 z@vkZg*4s2VV~Dd!P9M~ScVG1ty05PBy06sN`nj*(ft}@Ke47ru+b%UHeLU70iV=hL z0gW-ex9eCfsvmGKG)3Ip<{LC_hY|H&kK9OFUKk{wflP!y4vp8yY0a2{E z`J%Nu0=#DNEkqAta^TyU@+sp0(?HXJpgOgtRFtJH6=&t=7UZ%9jW)`||J1d3qV;Rx zclzk1De)D+cu+o9ToV?`$9F8b+2jYvM?YZVnvl9m7OUs z#!*AqFyI|_m(3nY_=zs@|8b(~M0Y~r<3zqw)geFxEu)0_tIE+tiif|tI7*nm@~)Kz zkBlbRW82jAE^}SI_D(TPbq$-;MIag)70W=#oO|>=lNKR0@5{I85-Nx zeal;pman}hTTf~$0-xA9#lDmmCY(iCKimk9jKB~B@bLtqFwnYbO~fsNI?SN^O!osZ zkziv$2oRH5vK^O>6XR}RnK>s9>%=AxpM;DBIlE@Uzh51h+8{j+> zT+YMOMf2e7lSE0xLKB;u+{G_?yh9Sy{AV7Qk2y~f4dG0%eMZN(CKC+mFNqR=?EHjJd_Un+=O^s& zd_we2-%r>D+vXB6A)hf{z~cTt_Z|EfCI1PwXy_D#qIBBZG-bDV*w9O7xp{t!VLEbY&DtXLw z-1Lj-gz1#&wCN1uMNzMnXHl;&b4PK`$;z z+8k@PDL0o5tK3k%vD%@$M!8To8~%KO=o*9`LE&;jjdD<#mir$vX^h(bL#cSaePz_l+DX+(^E~FMyu88wCEBr$fCzhSe4v*oiesTlouVkJ=}$u{ShVco@GC7f7ENQ2N%xUiDw>~F?gevry$?i%C> z+0{?`2%b}8`S&oZB0RQ--!(Kg>l0c2R}2%39ww|Jbbek5w2!2eaeCCAh=wXrn7S~~ z*LmC}O{3j!J?aVS zk)0{43AN!xLNuHGhCQ^Hn+bb}9x`DM6Rc*N*-y#^yOSb0&}(@-U{5ofbD@`+&AHGE zcCI60h2`9TDo2yj63CNLRJ6p;SYCH(vV`C!p`Rf@O2Hc~!SwdL(H!3IOCmoos9!uh z{T5MJ_>MD6NawFugM_P_S=9^%|dLo9r+3aIzsT^$f zHnjK%559;wVc}t@nMKV-ZXh%XW{pK-=wj8_G^Ha;v?E8k zFrU*bLvMaw^MYo%=0(j4%}TE~zoc97< z-2DHOZn%J_0@j#Q+lf4el%kC7c?o08<)sZl`XED)F$l}Tq@OjD+2EfeE(S(iU6a(Z zjf8{JE==>CwAQQiCsCY^^O zjHZ~~8$2}g+fV(|OkU-9xM>HG5F|4>6{%Cuit!YwQ_Va@su-JQ761~ng&bw7t0qUC z>MGI{H*XMWP~d0=f-L&d=^G+wvvhlHocWTt?w@^02%da5v=PNB>DBI&zwsO4 zlTRZ;d55_ZT>Gu?$rq>`??I9NZxLSi^t(}fty=?RyYpwcbGlPic==DZY3}@@$U5E` zDNyZr^E+aQNmlQ4#*8`IsuW zlr2a*L+Ioi%;O}djg8W~r4uESBpZyuwi^vdQ9vGa!-B=e{t*qWr z{X5#7C=tBm0A`+DdT zNp?f=bSFoWCCOq-*Zjrlyi?R}DeOvmN9G8hB47W=zvmoXqa^FY*xX0KmJkaxSi@6f z?%%LWNlq4kaL|COAeki$8b2bH&amO3;TGINSV;I#MJDEPI4&6!|%PvQD_vLPhLl56RVmga~!Dmo9nZo2!%LjXq+ z)&)L|Cv$@GElH4=KqiX{AU=UiMgLSLkbNXi>5D87F(oXu1?-iZIf;ee63EW2Y^34fL)SgFOMY$`4Do$4MIp5vJuv`sIfHRT@hqe^+4 zTIib$7G%+fSt(?U%w@P70<*Muw8Dhuj|UbqTUh4@i-ne`kVWLr6taMz!$MypzE&Je zCdJrbT`H-d(>+OJC1}4P^OYy-6R#3V|0IQJsie}k2fc4m5tOBo{aoScqOZ01gr~a> zHl>kl64wCq(Z1T1X78NP^~OyFn+tkF)ofDPVw^ueTB;7cc^dNiSo&I`vZAvTSut7O z5T|P_*IW2;>==lX%L?Cx%cS(P^taq#@x*i#a>Qz@%E~jTw2n$G{9+yUG&G(?;?XbJ zWMq%PwLk+csdXFbH`Z^epQ4|tpQeYh95Si0?d^5gT$Kb!Yj|7|h22fwk-k8>P`XGe zjVn#Q*^-_ALbcbmoI@s3{KCI-$T~lQ6D@nGhgy!+pOl@FotBj*_U_?V$MkJ(%hGG0 zeLdfqyk2sf<#u%cTt}$dL%D)4nUm9p!Nfc=wnICN??QI#fJtK{*RcGSCD%Y_4ym=` z;ZQ!=DfY5{gyp^v2^PUzpy>Z-z4?^P{O5;W%BUp z=qEdT5p3%&Rf(p<`64otqObZ{9xe+$t&}Hfo)Ea{nOo7oV-~^?vp{oc-aTy9$z!Oe zxIMs%Ze*UQFErjl(YXi0VuIePoCDHgGTyroM}?O1`t`Ln*cufKI*;6sAJ|Evq}mT5 zxH%ows7-fRYfLWxQ&*Z&_-2_45k1HlWu=wH=)hb;3G!Kmd9 zmWQ(EL&6^K2<&bcrXdwxUa>(iMMEYto~^VSYY@V%uA_0QG4QE|jA|RfiRN*{=G#J^ zLl;wOc#JUBX=oqS@&7uO^t=&VL7oszc)_yV@}gyhWu@gM%PPxi%NomC%R0-;mRBsV zT3)lfZh6DCM+InTSv<67CE|F zj(BZ7|G-)u86EVtAqj)3eAV(B2y+g&kES(M+AhYLbn__Wy=vIX&c&BDEcC zc)TB)Wzk`uJ2R#nu1DIPb5N)!qeMF)Wsf`#2I|RZ>3RL022bLY0S!#8`y0qS#U0wg zdAaFhI)85IoSv87B|SgAApK5wtAXqk{DtM7qLFa0P8J zE8ttp)UJh)PAzx9Q*WBZcSDkq4F3OhPj|?k4@~srM1{B_w|1TI+2id|+Q8i09(Ach zjxakEs_f*bj=mYYvi$fDmLDxgEk9X)=5yxeD|JW8`7efl$$YD{ExgD#yo3}^r3)SPrX{X}bD?;L$J3B`8?G;P$k>O;G$FkdE zG)2ZH>=jM1%U#}v;TGd5vL@wacah0KOH3nSX=7Nlg0SL9HR9I!(z+JX%GlkbDfH-j zw_*gTI7FBnR3pgr2`Wp3HPY$>8jxU~2OQvl_X7@i!21CQK;Zp==up$cNHJXC=Mi?e#{-6ip;2@hJ3U=>hdCtA5G zY+4EKNV59k3|J*N?>nNH`0y=%2Mdl!@%@Zc{$~VXX;uatQPRox3(|$YAcOY>v=UyC z>GK6T>?mth{LkHFq_#Z-I~x=u$>er+ara0vU*|o~ovrtjyiopF*r*bArc0galAX~B z!VydB{ZUMHI5d(pgydTbtcA{V&=pOZjN%-TBDm%rl8uGlCWYL8;b!T}!SHF`E9hpO zTK`J@M+G|yimlzP;aT_A+*fld;>qHnrT0~|AHU@l;POgcIR&HtU4n^v{}4K_CFtr8 z$WUq(gfbY*tT5;ZQOk{njqEVoP@gUdn|h%A7NEM;GM>Uiu}&b_6k-3KOW*8c{Lr&k zcv}z;kvT35W4H^UNXL5}{t%hfsW})Us)Ta>oK}J8>ktL(c!*>Z)Bk^8)2apJR%b>z z>ZbCW%jZ>p)#bGIuF4UWm2gNUR|Hoz@PZ3>%nBFyIr#1zwJKIe1RWuP4(t#@z#m%Q zf1qOGN?qBl-$wbZygvlOlKZ_pCe9%5RMa3It4}b8$Evl0{X~dDR0ryrs78Zt4ZRhr zMubI)46tStm3J$1GfDy)fS1j8%Pf*e54chPw&}2A9oC-KlU@Ac0{kkmL)kOk zvwceJmR|3x#a{Fz$tJ~U9ksXa*Uqki=}RsQ-YDSwC7ODa;wJo=XmEgD&u@+E>?hybyQ2m60K?t~+7-A}`S{ zi65b?zm*%<&C7~#Rjt+)paM5ok-XQ^TJhQZ4!FGor2%s}G$37Q<$R;dd9B~zD@+CS zbFd4@Rq(d(WC&kI;>824)2gOd&8T9X-&ZP}m{#`c3&$o`O{tn%HLIRm4b02P3en9l zWf|E8{j+`usux$v%{WS~Rk|9eD`q;v(2h+hVG$x1KnNZ?0;zitz* z^wFrn{^G)Bf0BA12iUxYOc6E0!7XH#q|thN1T5T%qP@#|Q4;uM3yFiaOp1qmQOi8a zAB2$E{kM`aA&u6h*ku)r+DdjJLNtopg_(;o7iTWXyboU7N|p)uU84BtnZfs4Cx}PE z#A+&*kZ~FZ6{OGL~2)lVpN1-HP|L4r$C2^Vd4=ghJ~Py8%hQYK`-n~UE@5uh5Rk>KubI> zcm)EA4W3|avZjHfj%c{btmJL8OuC${x(Xr9CR!(1=URBM!Zw)5+c*6*d_B?s@N`&^ z8g^xq@o;1?DX)0gTAbW=D+-7{AQP(E*M|<1z<>|Plq8{e(T`a@5u+D>K&nEY(p<`- zPx9suNTp=9WOLjQJ77qR zE1LWpD3!$RC-+oOZ_VY}w@B$D-$c_+e2nDKMC6tchWpb@)BK#OsdT0jeVO#$MxS8?~FXo4wx%mr&bSp~rMD z-$%p5-Kdv>i!ws1#9*?N5~e^eIMoa{U7an z+V`~|Xg_q$#8Ia2NKY}{CI*wKVa6nxGScbf-jio}`3Dov&i-%_uUi8TD(YpHZ#^=? z#quWjC!euc7@RwVoTlGo@hh2cA=*6Dt_$60-Bhx#d_T-POePoqfGYe_exm$j`LFH@m#9xGH(FCvA6C9y zqQk<~9Nwe`!_`oT2P>-qn?GSJntB?6a%T2Rupc)_-D z8R$z^&>@c%)qX~)+76RRotoK!eEJVwT`KV$#Ili0tsf8v?!U#E_d z;m)qm&l0xY>Jd~94E!iK3}#-!3kAv&qjea`J;dWN3SRkz?2mtCm4scY2(EC4F={3m z+&I&2Yf&8wTHRxXL(`~o-}cr1lgV-0v(X}Jun!e3#R@I?AWe%LdAFb{bxJOy- zaMn-0+TovlwZq4(u;?_Ik{}#U;kb3a;hm5OSoJ=U7|iBfVWJG3K;%D4%`vT?MCdM* zNfye_kP6jl^gNpT{0u5mz^!MJQb|<5 zS=lTt&R|EsqlUa-M;EL>GuD!e*8LVpJ4>dCHZf_IyZ(vl@`ilLI@kFUCwMai<%;`@ zJ2=H<-@#!vm~|dkgotePXc)|_LTvLHN|24obsH?P&BJ0qevZuauVZgU*lQzYypjT6 zM_*8WjY%FLVTetl+oNr0_*(n6ffE&}8BJIXrc}d-?B$1d3naZW@G=@haeEYfy=$S5Y08VW!`7fG=0J<5B8 zS4G+8IE_@!$P^NULaFKzZ98AVdq4-!p^Iydy8K4iWuOV3sk3B;I;_3msx7(t~V4acx_QchSx$JN{ng479WMlHbV*TpUO4AxaxC z;_WkkwcF#wC6zOs(s9J2lhk{aoZH|d{kJgVG8vn;UY}_5q%Cysuep`%109yE2C5&< zuv4LM^fD>;AK1XjQ%%@yNwFEDKEP;%ptDCAwn4ue->BcDzc*yFev5vqew#i+k;0rA zXO$4lJM-c^EY)>7=tvtPti+g&rMV6r>KOf3gLUFsV2(1Z9MlevP)DWNP*z%7x-G+& zX=B-lqcCE4M9c)=2QgT>=Uq+cUDr}NEQ9+l9hS*2$l@1da|^Pu9BzRQ%T-GtWq~A` z6^r`)Z;3^Pt&x;tf5d71#o} zh6LjYAt3}tgixMHMy*#ow(<6-<)SKo^89M7v*$9Q!*tPC&Uh@(vzwaG?vFu1N52iF z@)Sk3Zng@gxBqvsZ5|{@sf=Jc%Xk6krBr5qDY|g-J=>fbtZM}=8S~bKi?aJ$H>uxqGmWGY{cOFhB$W|LZ@p}+5Y}BM zPoQx(!~_O(Q)z1fcEe(GT-A7Si-V9SAYn>E;f$xtz3wwlF~k??YFy%Vp1bU2$FZs%P)y7e{XcM_@|UqVjO+T@*|<3dlpf-B9IS`K(bzmpDNH_MX|Zx zX>@yQOd<9*>AsDRREl(-C@Oq}dq+cpuHI{ww_gLjZQH9V=YaMCwpa+PnsBHMnm<7D zy<74@cN&I0CSjG>*Yri;w5f?yX1gW-;QLGiZTEvciSidmxRtWMv%{2RsvYqeJbDB) zI1?)|C!|mvWDrK`38q^n_tx(zRD?U~fe*_O?2datKjN?*+((?)2i!*-?t}Zt$${w6 z(l%k3_cPwL&1FM|*oN9}vE6FB&2~GN4PkVwdBc1!@H_YyxCFb?oB0^-dyC&Cbc>JR z-QslogZf6FTb%aFZ;|=neFe*WjPxD*J^Zl;VfQ+jkNbRweZSDKNAZSDGaoUdeTI!p zA!?|)7O6o-FQAHj4I0fx@fd3xZ}KvUB&Q3RM2yXuM7TY$+6*2KG@u!mDJgAG>1y8Yp{ zca|nsn_H1vnfpbTCOz#r6{wy-7s$@?4#&W;q6qITzg+kH0xG`7o8o#$LZNA{KqM4z zO6RH$!)H;RxWoT&c6C7D&T}27EaE$wT#0Sq7YwAsijb0d#Q+r3_-rwiN`0qY-tc1b zisWuxrdO91KL(w;Q(Y%;3$^(=teZ!AxdltHGBq7YlCh8_ zBQ@qLA+LsHV?ERo%2mp~svM4Vr-~I*Y*TI1Y}0L*v@>ioZL@4o*#6M|3ELWFxo}+x zrS|_kGf0PNXv=*u-)Jv$MWC1s38hpWgfwyZT~STt>yDRWLI|Ymg9IC&HH6rel@7BG^+# zbqRXL_AJPHP+jEc58H-}jTvJ^<4d|=I)tivFjyh3Qo~XdW zf+o~|4OR<_dQkbY=WQ?8mfK#mt$?q3P@TMf29;CA&fE#2Rp2P6l%hFsTRG)QsNgKT ziA|`W!|FWCOTS<`R?izc`kDscBE4^sfmZ}d4V6mJpSsqz&i1nH72B&&uc12eitg7? zi6SG+(NNh+8aeZ6#*U2Ov?ofYioVF0C3>pl4cnXW73xXl=OKaxlt>d`aFaYTf%7uk zVdaZCD{?*yY0BHz`K$a!=&z+>Gn=hqJ%JphR-kDR!;MXH6>p^5wNwtT=z^9)DLK49 z5gCGWsThPiw^vZHejd%J@R^v+6;u~~-xXAMUXiAf%HS2Zn}F$F@(PTTqt99zgA7>+IC7r~8($&^YD zg6w_UM>ZD2xXZSw^&Pp2`8(l#;k8_-`aBUT>KXCtzue5?S!s`VRJJ>G<$6xSGd?}DoYq%mKplBZJ*7{ z8P2;|E1lsEF#Y^iO^pzK7jlN%XJeh=N&^M4Jza3X=5dCzsA26`BpF52QYq5!Z9@%{ z45N!--6A|X8ck=Gx1L^v{b&Pf0bg=9R2^{h~u_j*bSC{0=?G8wRD~2GqvpzmwE=Gl{;puQ)@~^S=v%@R(@_l z?t4hT(|qKK4%f?-&>YPv+f`?kO(BRHZjiA!fAUhEtQUM^pjcoQ?HQ7J#>V$AZxOm0 zkUlQ3_42Qg!?E73EhlP{qPzXD>FFSLlM)OSl_Cb{JJUHEIF=Go{m-L43PH{-%r^Md zmW}mcE=I&KF+3Bd!}@XyvaxIU1=sQmt^-FSl^eUkJWg`j_`9u9dbf0XYu*)H22kvu9HEuAcxBAF_|?B`7>u;mPq zSa#f4rW4sQ^T*Y*gXSgM)w?-CH2ZyXwbRONlHl#LW zm~-8mXw*z;NQC{`kZVImdJ2Q+LKtB~#st&^rr9W!gl-EEJM@yyygYXa?OjH z6`GZtY2kCQho?y7i*e=#jM-Rf_(3v=@~Vkz@}} zlSc0@lc&uRMIoTJ1-AF1N`iCjjfQD&{MCz6h`QdO)}aMNizr9`$g$4$JbM>=zP-R+ zXzyw-vUjr=+q>IK?4|ZHdk=fLy#~7x>iSSgAsYMPGOZn!mW4(|SJ-iEohu-h9Bl>> zRtdBEP>GUUyAIXq5t;xy`%sb~^b>aXVZI=&FY`UceVJdk_NB7Wpl9`^3eZ2>*iu;(*n+AC3CH*F|Jyi&486^a)9K;7!TJ4n02D`4IqHnUJt_O0vcGz9O zO2mw@{45KswAiC;J?%UUB@3?XWfufj(#6pK#fYMgvafVr5z#^R6)9`HKvx! z1hR{-qB^5FH8YFc?`mXm`wBV-aYoy_Kp4-I*26p9Nih7`Wc|i2bLLdEUqO3tBtLnJ zum6fa>BH&266;@%fYbe{vUYDPmkEo(k~ZBS4+ZOU^7eX5^Q>-+dFLvHhm*+ zrAby6g=05E&w*50lGSW8-%@{z{Z_R7IHHLd`9<7jXMGTEN2H184l&FQYx{-AiSMw( zsq1m2=ngnNkm{rqp4aKnc@P!b+0R4EV8jX1(?Q?l%s+RNgW>K$R9gB_m-Hmk(NAts z-|E2^(#!^pFB}4e1LU#c2ht9vjkMomzt=tl4h*7Vf|(z1aS)YVG0IM-)N?bfO{k@@ z`)Iox;e?4qO>|*jYK(mz_G^?^O%XO02Hiv@i^tg^;_Gk~%)g0Jx_^9p6II1BR1r6$ z;t6)xbv8UY6HV6+g_oEo!Y0~3QGCrUnq-G{tBI752km9%KdM}AKo8kP)kJk;U1YVF z8<6y2d#ItXx@$GvB1u|W&2952zYU!!R{0oe6CUIKYP7a) zN-VXHmrO31QZlvVjmkGGT^U*}&cN&>`eZbzN!a#`he{?mTX$=zbq!{8ZEB`Dnyg{4 z@fIpuEv)=oYJUdSrbH;a)5=%$It3yaerwwIW-Jgb6uqSQy6BstZ;NWMJHT`+l`CUU z-eKi3m~bnV==F2J4H2Ef7nFFOPro4|Hp8pH{)`9y7=4{f##mhm=oi7#(y?>4AuY z5i3B{L@5Z42?kDAgn`a|b z4M#e6&(Gn*sbsI8Fr3Qr`uYBFD#PpNZ^J2@^XDt}WnjC@t`?G@)XT=V+u)1v`lT!eiz%QVHGI4_=0L{qE8=u@9s76`{@U zJbE&8^jt^7RV5o6(VW_1o876lDBq4K7f)^Rwwy;29eXqCi+BC0F9cd~)fZv! zIn@`9PS3Ub?xy7R?NwkbYsj{KV26+IrV_62n7(STyFG*kkvl|aMncUIq+?zq|wQp|di#@@sU)M{_52m-3#VWHh->9zlw|s9&L9sb81=l75x` z%Z$DDUCPldRT$%2f$;9)9f-Z3iZA!iOz*Srw;!;xnX|b}fs;3f#`~%0vNm@BoA0Nx z6^GG$-N@x3zq3Q(5nLg^*<5K{Q?#%8wd&paJ^CYdNEt=Ng?(?|P!wCfrRb~y>PJy& zE&8chXg@WV_rFtmbbJ5nw>0dE{XF)w*sTpZYz%i1#$#i-1v+e;8cy57;$h}!id6k% z|Ji=bzRxPigi4Mhh7!h)rc&JX1R2lZ6R6%#@abqOK7{QMPK~A##HZ{)jiD4Vr|ihs z7USXaow{IY_r9GUzY^6oHzwE;kFWceMu~bUL1^XrYiQqZOcGYiPZ%w?= z6`M1TN;LbFI#}6EhfUxvNjBERFPO+HfRb@k?;suaC~O-?)%dc?kwFfLBiIq*2z5vu zGDnyr+yRbzWeNrE@L{_N2g`PoFlM|E+a2N47YsT_MJwdKT}3z;Mm#anksHbb`Lzd% zb=C8U;TsGa4Ka1fx|>Q1{&8HQUkg?Z_89yziKnQ96}yDIpkl$f1CPf z+U@F}()yd)6A$1DtYngKN*niDLdyJh68~WxOZRvJEbi0H^4$s%7 zwf*s8wRx9EI_WkX>K+mWBi^D0i5Agea8>a0TV7z46d{KThoPt8 zCdb+Wu{22f0C*+h_;()(#WcK<`>3QX`zQfh3?FXxa;(X2$+1RowF7jm8SDte8A>RP zE6XH%3qZ8|gCwFQj6?**cyL6dlXo7*Q)m3UaSJtFHAB@j+_SBEjw`uwi-kAtP{%FJ zNlcLct`~Ru?;5vmjkmok-{cIqN}+(O<@2h)>T+6pSLKMxN;rgaWCm9?)R`Xf4#3)x zSDv*^EAEz&W6{ZP!mx!L8M$qQ>$bq8Y-di+Do~-cY|M+3ub&p zbqT)NO6Qi`{uR}kV*a!q%l(o3Bee#5mZ540Z!h7 z`t;aPv$1AV&4;jVKNaWnlykL79xS_VfCBDDD!$JjZyN2nCz5VC4N#lek^cR=F;O4|mz;RB8z%+1;jTeLiS z^>Ei=97}RPAJ`-V(IF*E~1$9=$bo%g0fyp8=5Z3deZR} zY&$2{dM8VdDxU2)p*^XcL;p>!J_-e$v*9v3m1Q)3cP@_PB#_w#DQ{T!%RvZ1H*o%^27@qbAAp_g13IA z5*-U11FMb{pD5nZ{df(F^7>Ect4eotI(i?kP_AThBoe^Cg@x&nb_ zb3=95OZ-#6ihsmou+{t`9k%8laq3@ktP(i&tC>^3=HF9~SV!+u-=nRZ;~p6}nq*N> z5Qe<#7oU?!MHtx5ppYSA7ww^+sVJN5y z_guVHvKAdC*Zq&EpBVYZz2@K*im=xZ#`I+-elZGdc1`W?M1Ht`+8JV!S%O! zIsa9UGa82a7hxNj_R*VAM zkIv=I_;Un7pPT*PGww>470AurQPSa(c1VZ3y>fe?d&R%j)_b=!CnmxYxtAS1Fjkc} z+JErQ9&}|eP}f^Mv9nvR&Fw(0Rnyk{s|I`Bnbv%{Tuz_W4ne`QDTMXdi#SG)Mh#Y`u3#KoNF^MDeBH;0kOw z_9on1g`wp@rmP8hq2_LvWLqaDGRsY7Q#YWM!~q_ z^7yLb@Xo?wiP`WQSyYSUx^4T3Kh{|1)4A{4Expro5`?r)m|hW zoaag#`;gjYJFRvp>h!te3&)p^-xI%b>~`#NeC_zgaUpTPcP#a3*^3D+ht=y!LrEu&zd8|P3V!7Pom-hehm|r0){0&xD&Xbn-wkvqZ zd$yHpb9ucv;UjIm4${TLt+2E&in+m&VE@tA!vFGqY4fEpBeorvf}dUTw_Xl0*xOtk z&qPuZgT14M8Ixp6P{ezQE`btBKc97dphC=#j-!4spnS&k?-gYJmk&Tki80GKVoYnf zBtJW+6$c{lz0;gflY~Wt(xx3IQW71X3q_oK7e=SbQkQ%%-Vw zh4=&t$D@@dh)+6TpjKJ{FCHc%QiY@Vo^rUdfixfOm#zn6)8y&0<>kw2pRXNiy#*E( z$n%1Kw5~I~20IJnD)CtqBW1rhD(f7w+CC(6s$)fn7ZYLU9g}1adKXEsUmZ};NuHAA zFa6hVj`@ac>_0G~lRVQIVKcR*2%8ts2s+7?&gvyCSFgc73#Dh*Im0xA`5vn-iF97Q z_qS0J^RtKkr9Q&0>;F}DtvmIn0U}pgiH);OXMmi*$bey zs8k*;{y+_j!=(!7zmLlGk0Z-e2ZA0`sDpck^c++BUfq(~fj!=?Umo^k%KLR}I_5wS zWw4|+T-xq8H4iWg@JnL-eu*=8GZUe{1*lmozNfkO(NXJ5b=XI490R(lFziG0(+dVd zTVlg|(uESwO(w#^VQ;zINKQ79J*l1_sB$92njj4ro+OgO*)paCZq&$=MLl7HMxILb zH15ULXRa5&tJomcVIRX4=lit9%B1_A$lw9F3m{>|EoQ49r+$EIYq1k{;oK99$$nyyANtp`zCy8XQIhhJn zr938~T7PQ>FRODoWK1HT&KR75qClmgEI4sJajcx1EG)if54ndcYoa5oCG;GeF~r%V zBoQ?!<2Fg^nJv%pE(*gQ&rj}|VVPx_L@v%)lCd`bUZ8VRSEuxRCI8v_=jxZ$zm#!L z$qVI=h55-%EyqeS`p5*nfXPdpndUq0PW*8PVd>DQldDQHd`FxqG~z7Yi0QP{ifo?| z({VtK>5#HL@&DSp4)CU`_J5M@Hf`@|nx;+KG~E-rC~YZeLqm6)Hg_qJ`YdLx#ym9?!D){ z`~AKBqfrkIh&rg!)k?h%W;xk_4d-Gp*~k?bq)8(k#sL{?Au0EOY`Iv1c|g~K9Y5iI zTAPpyc0Mg)3o|Rt$&I1XvVq`ODa>qs*0tSHP&JWiL2FB^2`;UjT5V?kzNxlMH`!@S z0SVT!wt1!IiIDEyNwjrqwtXUD0IT-FvI%B~3L|j;W5wGfyCvsQRt1hS-;QGT;_ACTFcD0BN~#p0W<;TSPpOBx<$-P-MFsG_XQl!j^D zQpsjl;VM&T#So&>E3Br3glO*&BHaW3FY*~mB*u2`GBvnYeNf9#A}F`>8!Y4E7lLgp z`e{Z$aa}oixnf(%-WsjHRo-gWp!v+_4SzGW34n#*zg)#?A=t@n*bx!sX?6=ARFgI2 z_K3dPiiLWcAucFI){=d&pfATHPT%N-$()*eR-8~TSeL+Fi!@#H1lT7xjOYh-xmy-_ zTMlZeo$1>vhZB)jCYbgTjCMjdO|Y#C|68E5F{!{Vq-h}HBqJ0QdD)YL*6jiOa&R+R z*+BHMvKXAD=HS!X(~%8Tv#1yzvP$U0ewcY7Y_XWy5EN2iBtV zV~Okt_E1bFt(}?TaYS}+TbC6XDsaen2$k%hN^n>Ur|=gho|`jqj;q>Bn@NZ?rGe$< zxr1V->!lfEYp0U962^7IptL+))m>AZ3)IocyE5mg=Brd`)6nL(i2{AfpdBO)J4&=# z1-?g*Pa<;s47HGFpgog_M3M0)$(BZ5#q*C+f*(-GWJ1N8g$7L~dMD2!mEfp}y0iP} z2sb^34`!6kCABp=tL9+~-F|aL2Uo5n9nyUkkcNVjW^nC_h0bU^9fn|$+gkn z)tsu@R*jV4JE12&zGeXi$FvLr(K882>?FmQUTF#Q(s$OTC-h3_osf}`nJ`(Aosg3N zQ&*68lZS%Qv_JeJyzU`y%b9@=mHLJHJXWmx@qaUkqMSjM{}b;Q|2y&1#Lp66lphc; z$-9qKWN_Vu_mk!&O!?@I1{hkSEnDjR&6qA7H_@dw{9sD(Gg>{1$Pnr3CmPVgzZd@? zeu#V+9hgPPY+Qn~iNqmR?;`)}-PUV=`tFQr>f?IwNPXSMP;EJ|j^O0_=}b4G`(_id zHYWaTHW6>*(zV${daJE9y^;E6>e5~ZGmd2ZJ9XDUEm%6#$rk$6MRdBljzgT|KA;3l zM=#AGf^DpC>l`B4#-)I{M5c{P^>Yb%q^+lVIQTOUbgjkd+%ap1s*83eo5?}81eG3Q zYbmPSn8fxv0YLqyl}Hly@Bd=_xsY!qFU6As&xd>``B(h2xTY_m_F6|SsaT5WHX?SY zt+Svj@_qnQY#Ng`{izmqda8A|;i6|^B!2>mQ1wGN290Cc&V7O0S-z|MoATY|d&<8p zceGMN<02w9!q#F}qQ@5zlHN8i*Q&sCI9pxEdzAPurqw50fi^Hd=>p-)mlI|N036l3omt&4zKsn*o*s0uBC*d# z()?yYT>BiMVMp7d+!2@Z6|pM)}j#D7y%~%ZSBoc{VdVnP0wO49KjIv z;DglbY({!G`&jlSWaA&g&tcoInKhe-Hx}Cj5brV}4QT11z?EU8;!?+*pw7B+oTtDp z*&58{VjC{ezOHFuXj2xEk!C>+GnyRgz64TO}Xy z#y%PgS-5MGK+LC_qKL$xz|wC56upaj+cJ0chy<*;>&DrTE{el3uXR}*c5uTqbuL48 zQ4&BcueOgUfd)R~Axe58l_1Y@#F{5+^Fxg;6 zagdu>wWnBaAzR$UaueD1C0dYClXab^OImi$(c|E={Y{R?Xam%;yY<|zAaiz?cx4BW z%AWVfV*gCHu#7kiVWtmg?b$#M#k<~!8^}ErmJ7@5G@hAr+sJCPmfLA8dTJ{XDKz1v znlkscZY3n4RxapDI`}Lkw`g!eF3PGEgnG1+TTt#cB0uzz!dLmX6t(-bd!FreuGhN* zFIN6pi56`ma%-$zNddo_!dS7H9Op`%HyP2fX&je``pp=!zKM;YS`@Sz{EqnByUE>e zRfu*)ul}Ail@`1SB_p2!ROwY;QMRIDXytJ-rnIp( zw)DfYkIFWb-Cc1{#l02l%Tv_8?Z0V0?GJGlz_$$kGQyjb{W;iW=! z_Ddg;_tv~^dAbY!R|>BdUMmFs|HMe1;r5Ha);*`MDUa|!c* zvxDx5(?WF@Qot3iXrKgFxeaTHOibkaB$HyJ_+sZh!sO3Wd0R_L1e zq&@9u+mD1i`by>1%4Ssyu^sFH?+3ghpA2g=BC5Ut;hG4|>7Z~F^b-*#@1zqh1ei*g zBM)X{{Jy*WV>>OVn^S5m$!i^vHK#K~R?`Ruw2WXh^B9p4DWSgh;($Z2$PW$Kw`4bF zOVFlcL}&emq8GiA*?)QIw2|rXDF=Q(TR-n2e1N2SQZ%h>w4Czg%nG zhKYxZ4+J%ctI^4$0x5d#I3cw?T$0bey8U&n{5i<;XCgMo?s!#)6Qc5Dc`(tZq@ zD|$5Pp!UY0KNG38CrAv;++R0GeTBau@GfOD9}OQXh{$qkn#_ZBbCBqS%}IERVHsL| zf)L2;4~y!f{N!lnDM2u*@gYKOESXaxi1!ORe3B6PamxZZwR}@)ppJuGJBd>itu0#r zrAM41vZAbAH+^E_jGzxXc*^GE=ukZGgb)>-CIp=fw&{#Oj+UM7WH1Z~>VY9a(a)!e z$W8`iF+q8usQe5OA8PG6&;u=kWc2(QLTm;=s^9Qv+Zm$2owpMbP&l)2R^jZzIfd^Q ze506KcvOfEofbqCS)0iC!YuZ%6;C!lp>PHn)S43#@PXST9{^-_U2w6aXN=MIDgD~{)FGL<+ zSc?uz1)-_mtCxwFi{FsHDPN!dT>3rYd&MioBQuJr#?)<9+pBifJW_Xm^#j$<@Wc{? zOOr>S_+N>r{=(X_yz;!d)cRDA%gg2G?#wZCA3*7Du&}4jv#_WBjl>GEG1;dZD|lZA zM1jsCf2;``b?y*0Yy_maXsOXD7CZb!Y6opt%NThP0|!`E=q{tmDQV)qUKLa&Bh zFkT!Tq#B*Rh=ZYOs08HmCz0;x6gG-=r>Q&6P)9}cbV84p?pZv6Ut&F;Z^NHNY$Hp% z2J?sTy@H~{>S~AapYoYQ?9AJhw`yRux<*}_aX$68)GumJ>qqd`jUd8ela4@kdMhfv zM932yngyMEASfCsX8QZ0+H~lX7VpF?_|_P{RDzm*!)Vp&^@IbTa<1%n{UEef0!9BoVr8Q)SZ8Ks9kEh@CE*qdelJR`W&dObt-&A_l4xxski99GvwR#EL9-_D;Ck)8Yn>?82S|C%Ttw5#*Y6OMW z#s-90uW;VVhc1Rrbv|RbwO}n32$G<1{9aIzz{}T=NVMReAY9yxC)NpDMkCc^)0$yJ zz_3w)*|9T=BDV{oCSI*%%@}?aHI+NTEAnr^Z)L0*!?Vb%sHkFb+#awO)Mgw2r@Y^; z!lsSNjX2eUWzc*brwhY8$kqTpMHV-slfF>a>H2A__gQ&3FM{t0cH>XM79wo}K#Jb+ zhZ#Qa)p+DDi5H*~{;(+My_yr@UisRF{)70qK2~tVX!dQG3|PPD4OlA#>=zz{hh)F7 z9%v*;yCPeiEmWX|*Mmw~jYx9DNn{ymb#E@mP4v%}EV`FYxzmNj4LflS8^l2o)@s@? zcdOa*U3c7U*1gv{@u|@RX}i z*CZPZ~?Ce8d*1`J6PO|9YJ5*Y}31hlq;YL<6z%LMM&Q!?@``M%SL)1Il1F$JfF*)SwEw*oY}xe z^#&3lQiQ|62E(CX{YKW=uD-v0wyOkbT<@<6#7Iz$fXdNxAT|I2vorxF`!LT6aiHD}=E$F67DBv9679fw^0D-4akm59s`6I?X_os5 ztL`hlzxc6YlW1(gjc`BC!t61wnbB}sWt^o=HJ)qFh{Zqs@Y^slv*|%=s3$14nI!^j zv-ZyuC_@fqodk5Xx)9K%u_%M%i@ymje#0qVlgM4O5~Oe&k|j`EcOp=~Ts~MSd6q&u zBtAm%I&5rBGWc%TkIn<@sRW5pit&tGmGBJp9B$IRSmTS(Hlv9#uvf$v>Mzw>6SpP4 zNIjT$4{ulE1H6ax+UwTVKZ9P6fw6WjpNN5p-Ae~)M{)?QhpTlI4tq3_;AUP9%6dDf zvb!mvJ9Uv~x=;)C(+vvM9|AYDu>pw!Tr@&OpZXq4I z)g#_jK^V$Rg;AYQ#qrKk#d;%6)bptVGxo!!jXJyZH{4mhX-ztGS$V3k zXWw@!S-PXe-*I(nl)F}8VOYEUdKlJv7}~M8u8Q_v9r8fBo1Jw@u$Sk+@E$3tYIs#c z)vcNlRn3L>me2JVoPQ7=f-mVk!8b%^>ECQyW#mI!k%F9nMU+_p1>&zXUu(8%s`BnE zSW>XGz!bdrRX&V#F?dlsaJG$s)fU9H&4RdgQzGo&p1l4;Pl7x3g=abXLN}+(UPq0A z!$*3~k9AJcZ81e7)cdO)%eJ`wd}L4;vMt<3s6ATLx*}W-`u+a)r1~GZ)!a#_*L96h zJG8*zVDs`ZcEj@5qU|k;LDmT8ZU{j(p$1SbAf6y%DO8s!v+eDW3g{4kY;qx z;Df+IYb2mQ>S2=ed(U$b`2~(39poSOPvI`Nb}!h{fV3~E-M!B#rW8*tE=GsL3DNZz zTW%m;;`IKyj?6>}(z*UX0ziPK&f^E84+cTefNj)j(2MH=+^+R-nnm%jNbp;!HPnud zuFtI$A_l`KA6+@I^{8w#jQ3lUXZYDP7$*0e*CACytA^P%VNK|+^U5-d8{xEeEeyJ; z!BdFd8xBR{J$Sobfo6M?2li4YA!^zuh(K3{!!Z6n3W*wER=_^Wt56s6)f;IVU`pQq zs8*h=17!5Dh|3;nmS|zU!zmPp%b}<{E;xSNWrMYDc zl<>0AU1MNrSVv^IKd6foIx+_4+Pap}43kqX<7k__P|iB8P>aHKX`0#~#y0#k@Ac7@ zH_y0+yIYhu2egG@9J*>4cUolmi}bN>JL2OU<+xX=Sw&~-9wPa9Al?)C`5G0r*od6B<8t8x98)(Ej0}Cd4b2Kn2nT#b{AnkdPll zqjSw3LQyci8u*19?%TxPN6;wih(H(;NRO_8^lLf$OWrBjQ?a+=NIi;~6D-XQp+C%# z6n>oZYh`cIrX0?+Y!sp=cUqRphtiwTVH6n37tva>9u|gYjWvR8;@8UqV)_^=ZhH_Q^3cwFQO+m|ehFAy9Vn2}dt$UO}7B6AHVO^Hpu)^=mFAUf<-D z(=G0hNZo-aTxHMR*d20X+pP54tQTs$4GMbpnrk8dZn0tM_uBfd`9oaTaV?I7SGy7HA`vb4`{1tg_bT@-4z0-ymbS)_Z)H4Nwytb_*~^LP z>f7?3FI?_FC$F;hg68qc6p+ic4W@v;mJNB_1|`V1Y$)J1WZ|EzD4^5J(BudGd@^*2 z8?kg89Zx6Fi8Qwl@W#=vri-5jYEz(5>hXXO^us(@7=l$VOi#7>3z*GgOuK$4b3V)x zb0Kxo=yci=)lSXx7erg{W<>DPq1v6F52f}7G~wFO3t((+Cu3Tmf*FwQ{mYcrj=xj1RN^8FkQ$QquC*5(iBb83_XY*Ob?-l(!=QCbOSwtzJ(r1H_}b?D0(zKhHj?E(&Omy^aOe$eJeeQ zo=msUQ|PJmG>c zm(zFAE9krFd+2-VmGpfyTJQiIh*$To8+vsw-?*!bO#!c2e)QM54egg7f`|`ak-RFY zFl_-6ptTRe`Xu`w&iLKX)CXaj_kOxJ*o$S1sXn5ZecV};;9H9Zv>3r=k79`u1?`3M z*ebf3uA$$g-=g2956}ncL-b+#d-@0Z2z`|Pk^YH35ugQNkFKCA>0|g8Cl!?iVAowh zOCN(HKy=|5bKz8Vzd>nO&Dm~!`ORp18{{RB+2p9v{aT%f-y|GIo@x$`-SDsaS+8451C zIsXNNOOuKtc zN^l&PlQ`-tLKB|8PO9J#N6bV&X^v^!mx+IU)IqZ-0WW4$erEswWcE?tQ}$Nbmzmo# zbJcy-0m(B}vs7o{L%H4KMC^Wr(47X#=dZhg(!nr0XZD_*qhtcHPFmva}GYn^nGuJOK z+WPWR#7pw-BNZ91)b-6>S@LB4^1RxCcjetrwimxw{C@GOTGM!F#Pd)Qa>CMKmU%rg)*T0hK_o3<|)dtlU z=#2xxQr=oL;I$x8gcs>ehB5yseR^PHzfa0u@P8=g^U_(>jdin8`b)5nm06~}1l>8y zm6xErYaEj!Y`TMs8*Kb65D-3e?iDuOFLSJT8Rl5|POj_*iOt zl+3C3mtBbK zN`Qh{YMuM#GRLww2`$J(^&{o0%2nm4JcU7PHwHB5;gh;wY}0flrBekiiCJ?X`%j7g zfuSB}B%@7xq8 zKx$sHC4=!uemO3a8Jpml%+XFX_F|YFKLr+;7{Y(<8L*y;rtHdz2m`-J(16+AV)VfW zuxrr=Tw|C!61urbW-(o{A+_^~*0+vss%Y0P;`O7NSZVJu63 z*wnw@xhYC)^{GEPHeIxAQi4AXL+M7U^SolJu*o*nd0v(HqJMn^qdb(jO3tZ|U`#nr z%2{9v;9E9$a2r&>Q)(cY+IdvKOUgqz8(>OrJSqT}F$iNO{>yf1W3e^+GYY1NDQ1++ z0H%adF$0-Wri>|Pw4sfa6-iP+U1p*W zA2dp;8Pqh!BUH$&1{b)a)uN1zuqd>ix!~c02*H%UH|}u6yg$M##hA$kEajQ4bVCq zFE^MwKm%S_2zO!Teej4p5J4zG7`Kl|nqXeVhz~|Gjf_YtHXmHq7>bvpe?flir}F?! z%qX<|V;Gh<8ZSp^eg_YX!OIEfPK7HqaU0O3k6}*VAnxn)1tXYSm}X`yGmaV0OkgHj zdy%*5-b45#{2~Ln6HjI&ARfK33C8de&`$PGBKmC;%#_99^|Rr}?9Rjg`G6_RRAw48 zoteSh#>`|tc4+u4{2;N$@o+C5n2pCvLQ^)w=t#LV#(1rbeF1Zrxy(HLps7+%bO0Zm z))bJ&eMAXJH-1!hRvfak&L~r883rk zclVO^ma=XY{b`c$!D8kPd|!^S8`}#{+6OgmfiXzE1;(O9Ti}@1ENQk>puZFU5r8Gk zQf3OXj9Jdy#jIfNX6|9`WmYox;insg!DNl=W2uya`;5`jYvyOl8_Z`GF?TZeGY>Ei zGBWPh<$;H^-_tyCjSuRWhjkw`>=FDyqs(7253FK-MVmf>lEz%7FO$dQGiqii)50L; zS4_|hC$eA>r~ExQ~QbGmq7%g)7$jig00AFz$}%d+;t_N;v&%O6Vdojh_7UDq;c zu3+?(mKn{{XEoh6VODd<)alJrr%xH(JYz=l7;4JQ>7$$5M@4(YzDpR3>tO_@A( g!lY(ueAAfb=_M0dnx@ZfKmM%nEdrf?NBG_U0|}InD*ylh diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..18efdb9 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.1.8