From 0563d3eae87b9c8315f7c7bb2df45f7273b03834 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 17 Dec 2024 11:53:31 +0530 Subject: [PATCH] Implement multi-language support This patch: - Make changes to support multiple language based on system language. - Add text resource files for English and Korean language. - After this patch application will support English and Korean language. Change-Id: I0668bdb1c9c2fc2903f52d95e870e906b78932ac Signed-off-by: Akash Kumar --- SettingWiFiDirect/SettingWiFiDirect.sln | 23 +-- .../SettingWiFiDirect/SettingWiFiDirect.cs | 12 +- .../SettingWiFiDirect.csproj | 35 +++- .../TextResources/Resources.Designer.cs | 118 +++++++++++++ .../TextResources/Resources.en-US.resx | 132 ++++++++++++++ .../TextResources/Resources.ko-KR.resx | 132 ++++++++++++++ .../TextResources/Resources.resx | 132 ++++++++++++++ .../SettingWiFiDirect/tizen-manifest.xml | 4 +- .../tizen_dotnet_project.yaml | 14 +- .../SettingWiFiDirect/view/ResourceManager.cs | 7 + .../SettingWiFiDirect/view/Resources.cs | 162 ------------------ .../view/WiFiDirectDeviceView.cs | 8 +- ...org.tizen.cssetting-wifi-direct-1.0.3.rpk} | Bin 64206 -> 66058 bytes packaging/org.tizen.setting-wifi-direct.spec | 2 +- 14 files changed, 596 insertions(+), 185 deletions(-) create mode 100644 SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.Designer.cs create mode 100644 SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.en-US.resx create mode 100644 SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.ko-KR.resx create mode 100644 SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.resx create mode 100644 SettingWiFiDirect/SettingWiFiDirect/view/ResourceManager.cs delete mode 100644 SettingWiFiDirect/SettingWiFiDirect/view/Resources.cs rename packaging/{org.tizen.cssetting-wifi-direct-1.0.2.rpk => org.tizen.cssetting-wifi-direct-1.0.3.rpk} (56%) diff --git a/SettingWiFiDirect/SettingWiFiDirect.sln b/SettingWiFiDirect/SettingWiFiDirect.sln index 4622554..e31351d 100644 --- a/SettingWiFiDirect/SettingWiFiDirect.sln +++ b/SettingWiFiDirect/SettingWiFiDirect.sln @@ -1,13 +1,9 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31005.135 + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingWiFiDirect", "SettingWiFiDirect\SettingWiFiDirect.csproj", "{9669460b-4892-4139-9074-dd9df359ddba}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8f19bdad-b6a0-40bd-8e44-9dd8e5c1aed4}" - ProjectSection(SolutionItems) = preProject - tizen_workspace.yaml = tizen_workspace.yaml - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingWiFiDirect", "SettingWiFiDirect\SettingWiFiDirect.csproj", "{9669460B-4892-4139-9074-DD9DF359DDBA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,11 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9669460b-4892-4139-9074-dd9df359ddba}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9669460b-4892-4139-9074-dd9df359ddba}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9669460b-4892-4139-9074-dd9df359ddba}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9669460b-4892-4139-9074-dd9df359ddba}.Release|Any CPU.Build.0 = Release|Any CPU - + {9669460B-4892-4139-9074-DD9DF359DDBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9669460B-4892-4139-9074-DD9DF359DDBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9669460B-4892-4139-9074-DD9DF359DDBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9669460B-4892-4139-9074-DD9DF359DDBA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs b/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs index ac98992..b204d3b 100644 --- a/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs +++ b/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs @@ -8,6 +8,7 @@ using Tizen.NUI.Binding; using Tizen.NUI.Components; using SettingCore; using static SettingWiFiDirect.Logger; +using SettingWiFiDirect.TextResources; namespace SettingWiFiDirect @@ -17,7 +18,7 @@ namespace SettingWiFiDirect private WiFiDirect mWifiDirect; private PeerSource mPeerSource; private CollectionView mScanList; - public override string ProvideTitle() => Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB; + public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB)); protected override void OnCustomizationUpdate(IEnumerable items) { @@ -27,7 +28,7 @@ namespace SettingWiFiDirect public MainPage() { - mPeerSource = new PeerSource(); + Debug("+"); mWifiDirect = new WiFiDirect(); mWifiDirect.Activate(); try @@ -56,7 +57,8 @@ namespace SettingWiFiDirect { Debug("+"); base.OnCreate(); - + ResourceManager.TextResourceManager = this; + mPeerSource = new PeerSource(); return CreateComponents(); } @@ -215,7 +217,9 @@ namespace SettingWiFiDirect private TextLabel GetHeader() { Debug("+"); - string label = string.Format(Resources.IDS_WIFI_BODY_YOUR_DEVICE_HPS_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES, mWifiDirect.getDeviceName()); + string headerString = NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_YOUR_DEVICE_HPS_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES)); + string label = string.Format(headerString, mWifiDirect.getDeviceName()); + TextLabel header = new TextLabel(label); return header; diff --git a/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.csproj b/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.csproj index 1d436b0..d6f24ba 100644 --- a/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.csproj +++ b/SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -16,4 +16,37 @@ + + + + True + True + Resources.resx + + + + + + PublicResXFileCodeGenerator + + + PublicResXFileCodeGenerator + + + PublicResXFileCodeGenerator + Resources.Designer.cs + + + + + org.tizen.appfw.gadget.setting-wifi-direct + + + + + diff --git a/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.Designer.cs b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.Designer.cs new file mode 100644 index 0000000..cd88a28 --- /dev/null +++ b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.Designer.cs @@ -0,0 +1,118 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SettingWiFiDirect.TextResources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + + static private string mResourcePath = ""; + + static public void SetPath(string path) + { + mResourcePath = path; + } + static public string GetPath() + { + return mResourcePath; + } + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SettingWiFiDirect.TextResources.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Available. + /// + public static string IDS_CHATON_BODY_AVAILABLE { + get { + return ResourceManager.GetString("IDS_CHATON_BODY_AVAILABLE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wi-Fi Direct. + /// + public static string IDS_WIFI_BODY_WI_FI_DIRECT_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_WI_FI_DIRECT_ABB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your device (%s) is currently visible to nearby devices.. + /// + public static string IDS_WIFI_BODY_YOUR_DEVICE_HPS_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_YOUR_DEVICE_HPS_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Available devices. + /// + public static string IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB { + get { + return ResourceManager.GetString("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB", resourceCulture); + } + } + } +} diff --git a/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.en-US.resx b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.en-US.resx new file mode 100644 index 0000000..a137c54 --- /dev/null +++ b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.en-US.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Available + + + Wi-Fi Direct + + + Your device ({0}) is currently visible to nearby devices. + + + Available devices + + diff --git a/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.ko-KR.resx b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.ko-KR.resx new file mode 100644 index 0000000..6db7705 --- /dev/null +++ b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.ko-KR.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 가능 + + + Wi-Fi 다이렉트 + + + 주변 디바이스에서 내 디바이스({0})를 검색할 수 있습니다. + + + 사용 가능한 디바이스 + + diff --git a/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.resx b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.resx new file mode 100644 index 0000000..a137c54 --- /dev/null +++ b/SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Available + + + Wi-Fi Direct + + + Your device ({0}) is currently visible to nearby devices. + + + Available devices + + diff --git a/SettingWiFiDirect/SettingWiFiDirect/tizen-manifest.xml b/SettingWiFiDirect/SettingWiFiDirect/tizen-manifest.xml index 653feba..d0594e5 100644 --- a/SettingWiFiDirect/SettingWiFiDirect/tizen-manifest.xml +++ b/SettingWiFiDirect/SettingWiFiDirect/tizen-manifest.xml @@ -1,6 +1,6 @@ @@ -11,4 +11,6 @@ + + diff --git a/SettingWiFiDirect/SettingWiFiDirect/tizen_dotnet_project.yaml b/SettingWiFiDirect/SettingWiFiDirect/tizen_dotnet_project.yaml index 26c1f07..58dcc8b 100644 --- a/SettingWiFiDirect/SettingWiFiDirect/tizen_dotnet_project.yaml +++ b/SettingWiFiDirect/SettingWiFiDirect/tizen_dotnet_project.yaml @@ -23,16 +23,28 @@ resources: # files monitored for dirty/modified status files: + - .gn + - Build/.exportmap + - Build/BUILD.gn + - Build/BUILDCONFIG.gn + - Build/SettingWiFiDirect/BUILD.gn - Directory.Build.targets - Logger.cs - MenuProvider.cs - SettingWiFiDirect.cs - SettingWiFiDirect.csproj + - TextResources/Resources.Designer.cs + - TextResources/Resources.en-US.resx + - TextResources/Resources.ko-KR.resx + - TextResources/Resources.resx - WiFiDirectConfig.cs - controller/Interop/WiFiDirect.cs - controller/WiFiDirect.cs - model/Peer.cs - model/WfdEnumerations.cs + - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/SettingWiFiDirect.dll + - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/en-US/SettingWiFiDirect.resources.dll + - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/ko-KR/SettingWiFiDirect.resources.dll - res/icons/settings_wifi_direct.png - res/images/00_list_bar_press_1x80.png - res/images/A09_device_Medical.png @@ -56,7 +68,7 @@ files: - res/images/U04_device_STB.png - res/images/icon_select_all.png - tizen-manifest.xml - - view/Resources.cs + - view/ResourceManager.cs - view/WiFiDirectDeviceView.cs # project dependencies diff --git a/SettingWiFiDirect/SettingWiFiDirect/view/ResourceManager.cs b/SettingWiFiDirect/SettingWiFiDirect/view/ResourceManager.cs new file mode 100644 index 0000000..d1fb80b --- /dev/null +++ b/SettingWiFiDirect/SettingWiFiDirect/view/ResourceManager.cs @@ -0,0 +1,7 @@ +namespace SettingWiFiDirect +{ + internal class ResourceManager + { + public static MainPage TextResourceManager; + } +} diff --git a/SettingWiFiDirect/SettingWiFiDirect/view/Resources.cs b/SettingWiFiDirect/SettingWiFiDirect/view/Resources.cs deleted file mode 100644 index ac1f900..0000000 --- a/SettingWiFiDirect/SettingWiFiDirect/view/Resources.cs +++ /dev/null @@ -1,162 +0,0 @@ -namespace SettingWiFiDirect -{ - static class Resources - { - static private string mResourcePath = ""; - - static public void SetPath(string path) - { - mResourcePath = path; - } - static public string GetPath() - { - return mResourcePath; - } - - static public string IDS_WIFI_BODY_WI_FI_DIRECT_ABB = "Wi-Fi Direct"; - - static public string IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED = "Maximum number of characters reached."; - - static public string IDS_ST_HEADER_PD_SELECTED = "%d selected"; - - static public string IDS_ST_BUTTON_ENABLE = "Enable"; - - static public string IDS_WIFI_SK_CANCEL = "Cancel"; - - static public string IDS_WIFI_SK2_OK = "OK"; - - static public string IDS_WIFI_BODY_WI_FI = "Wi-Fi"; - - static public string IDS_WIFI_BODY_CONNECTING_ING = "Connecting..."; - - static public string IDS_WIFI_BODY_CONNECT = "Connect"; - - static public string IDS_COM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_WI_FI = "Security policy restricts use of Wi-Fi."; - - static public string IDS_BT_BODY_NO_DEVICES_FOUND_ABB = "No devices found"; - - static public string IDS_BR_SK_YES = "Yes"; - - static public string IDS_BR_SK_NO = "No"; - - static public string IDS_BR_SK_CANCEL = "Cancel"; - - static public string IDS_ST_HEADER_RENAME_DEVICE = "Rename device"; - - static public string IDS_ST_HEADER_MY_DEVICE_NAME = "My device name"; - - static public string IDS_COM_POP_FAILED = "Failed."; - - static public string IDS_COM_BODY_CONNECTED_M_STATUS = "Connected"; - - static public string IDS_BR_SK_OK = "OK"; - - static public string IDS_ST_POP_DEVICE_NAMES_ARE_DISPLAYED_TO_DISTINGUISH_EACH_OF_THE_DEVICES_AVAILABLE_MSG = - "Device names are displayed to distinguish each of the devices available in the nearby devices list, and via Bluetooth, Wi-Fi Direct, and other methods."; - - static public string IDS_ST_SK_RENAME = "Rename"; - - static public string IDS_ST_POP_NOT_SUPPORTED = "Not supported."; - - static public string IDS_CHATON_BODY_AVAILABLE = "Available"; - - static public string IDS_CHATON_HEADER_CONNECTION_FAILED_ABB2 = "Connection failed"; - - static public string IDS_WIFI_SK2_CANCEL_CONNECTION = "Cancel connection"; - - static public string IDS_ST_HEADER_CONNECTED_DEVICES = "Connected devices"; - - static public string IDS_WIFI_BODY_SELECT_ALL = "Select all"; - - static public string IDS_ST_HEADER_BUSY_DEVICES = "Busy devices"; - - static public string IDS_ST_BODY_CONNECTED_WITH_ANOTHER_DEVICE_ABB = "Connected with another device"; - - static public string IDS_WIFI_BODY_WAITING_FOR_CONNECTION_M_STATUS_ABB = "Waiting for connection"; - - static public string IDS_WIFI_BUTTON_MULTI_CONNECT = "Multi connect"; - - static public string IDS_WIFI_SK_DISCONNECT = "Disconnect"; - - static public string IDS_WIFI_BODY_DISABLE_WI_FI_DIRECT_AFTER_USE = "Disable Wi-Fi Direct after use"; - - static public string IDS_WIFI_BODY_DISABLE_WI_FI_DIRECT_AFTER_USE_ABB = "Disable Wi-Fi Direct after use"; - - static public string IDS_WIFI_BODY_PS_IS_REQUESTING_A_WI_FI_DIRECT_CONNECTION_ALLOW_Q = - "%s is requesting a Wi-Fi Direct connection. Allow?"; - - static public string IDS_WIFI_BODY_USING_WI_FI_DIRECT_WILL_DISCONNECT_CURRENT_WI_FI_CONNECTION_CONTINUE_Q = - "Using Wi-Fi Direct will disconnect current Wi-Fi connection. Continue?"; - - static public string IDS_WIFI_BODY_USING_WI_FI_DIRECT_WILL_DISCONNECT_CURRENT_WI_FI_TETHERING_CONTINUE_Q = - "Using Wi-Fi Direct will disconnect current Wi-Fi tethering. Continue?"; - - static public string IDS_WIFI_HEADER_WI_FI_DIRECT_CONNECTION_ABB = "Wi-Fi Direct connection"; - - static public string IDS_WIFI_POP_THERE_HAS_BEEN_NO_ACTIVITY_FOR_PD_MINUTES_SINCE_WI_FI_DIRECT_WAS_ENABLED_MSG = - "There has been no activity for %d minutes since Wi-Fi Direct was enabled. To extend battery life, Wi-Fi Direct has been disabled."; - - static public string IDS_WIFI_SK4_SCAN = "Scan"; - - static public string IDS_WIFI_SK_STOP = "Stop"; - - static public string IDS_WIFI_POP_DEACTIVATION_FAILED = "Deactivation failed."; - - static public string IDS_WIFI_POP_CURRENT_CONNECTION_WILL_BE_DISCONNECTED_CONTINUE_Q = "Current connection will be disconnected. Continue?"; - - static public string IDS_ST_POP_YOU_CAN_CONNECT_UP_TO_PD_DEVICES_AT_THE_SAME_TIME = "You can connect up to %d devices at the same time."; - - static public string IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB = "Available devices"; - - static public string IDS_WIFI_POP_FAILED_TO_CONNECT_TO_PS = "Failed to connect to %s."; - - static public string IDS_ST_POP_DEVICE_CONNECTED_TO_ANOTHER_DEVICE = "Device connected to another device."; - - static public string IDS_WIFI_BODY_CONNECTED_TO_PS = "Connected to %s."; - - static public string IDS_COM_BODY_PINS_DO_NOT_MATCH = "PINs do not match."; - - static public string IDS_WIFI_BODY_CURRENT_CONNECTION_WILL_BE_DISCONNECTED_SO_THAT_SCANNING_CAN_START_CONTINUE_Q = - "Current connection will be disconnected so that scanning can start. Continue?"; - - static public string IDS_WIFI_POP_ENTER_PIN_TO_CONNECT_TO_PS = "Enter PIN to connect to %s."; - - static public string IDS_WIFI_POP_CONNECT_TO_PS_IN_PD_SECONDS = "Connect to %s in %d seconds."; - - static public string IDS_WIFI_POP_PIN_CODE_PS = "PIN %s"; - - static public string IDS_DLNA_HEADER_SELECT_DEVICES_ABB = "Select devices"; - - static public string IDS_WIFI_BODY_THE_WI_FI_DIRECT_CONNECTION_HAS_BEEN_LOST = "The Wi-Fi Direct connection has been lost."; - - static public string IDS_ST_BODY_CONNECT_WITH_PS_IN_PD_SECS_ABB = "Connect with %s in %d secs."; - - static public string IDS_ST_BODY_RENAME_DEVICE_ABB = "Rename device"; - - static public string IDS_WIFI_POP_PIN = "PIN"; - - static public string IDS_WIFI_HEADER_UNABLE_TO_CONNECT_ABB2 = "Unable to connect"; - - static public string IDS_WIFI_BUTTON_ALLOW = "Allow"; - - static public string IDS_WIFI_SK_CONNECT = "Connect"; - - static public string IDS_WIFI_BODY_CONNECTED = "Connected."; - - static public string IDS_STU_HEADER_ENTER_DEVICE_NAME = "Enter device name"; - - static public string IDS_WIFI_SBODY_NOT_CONNECTED_M_STATUS_ABB = "Not connected"; - - static public string IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED = "This Wi-Fi Direct connection will be cancelled."; - - static public string IDS_WIFI_BODY_TO_SAVE_BATTERY_POWER_DISABLE_WI_FI_DIRECT_AFTER_USE = - "To save battery power, disable Wi-Fi Direct after use."; - - static public string IDS_SMR_BODY_SCREEN_MIRRORING_IS_ENABLED = "Screen Mirroring is enabled."; - - static public string IDS_SMR_POP_SCREEN_MIRRORING_HAS_BEEN_DISABLED = "Screen Mirroring has been disabled."; - - static public string IDS_WIFI_BODY_YOUR_DEVICE_HPS_IS_CURRENTLY_VISIBLE_TO_NEARBY_DEVICES = - "Your device ({0}) is currently visible to nearby devices."; - } -} diff --git a/SettingWiFiDirect/SettingWiFiDirect/view/WiFiDirectDeviceView.cs b/SettingWiFiDirect/SettingWiFiDirect/view/WiFiDirectDeviceView.cs index 94e4088..a943409 100644 --- a/SettingWiFiDirect/SettingWiFiDirect/view/WiFiDirectDeviceView.cs +++ b/SettingWiFiDirect/SettingWiFiDirect/view/WiFiDirectDeviceView.cs @@ -1,6 +1,8 @@ +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using SettingWiFiDirect.TextResources; using static SettingWiFiDirect.Logger; namespace SettingWiFiDirect @@ -64,7 +66,11 @@ namespace SettingWiFiDirect public PeerSource() { Debug("+"); - mAvailable = new DeviceCollection(Resources.IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB); + + var availableGroupTitle = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString( + nameof(Resources.IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB)); + + mAvailable = new DeviceCollection(availableGroupTitle); this.Add(mAvailable); } diff --git a/packaging/org.tizen.cssetting-wifi-direct-1.0.2.rpk b/packaging/org.tizen.cssetting-wifi-direct-1.0.3.rpk similarity index 56% rename from packaging/org.tizen.cssetting-wifi-direct-1.0.2.rpk rename to packaging/org.tizen.cssetting-wifi-direct-1.0.3.rpk index e261a5162b8e434fd1dabc06b985354c4c744991..29caf918dbbb9ad590be136b230f8bbb72e685a9 100644 GIT binary patch delta 24768 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�~l9+sI<;qTY;%cpiU&Me(EK_@rsCN zaCBc!9pw%_%-oV0vs=2H4oTY+wA(l=Da#%9`8#HooY9XNnZgC5<}~Sw5|iT2OIssn za3Kg|G*Gi2SV<8iG|%bVi6Z!W+<3S}q{eie;7%)5za;*-k9b+FW+IRLjg5U=$bwVi zCt$Rvy)Z&A9TWH+bDh1JBoV{PHyes|1a+DNF6ce8vIKoG8ecUyWNxEXAHse68%CEV zU5Joor0Qr&zOZO|>FhvE`ryo^L^T&U@7J%=6H2(*-?FaDKj`%DVKWe2{|+zho9w7> zMj>y#ikl^-g^plSR>dLyzARc(ALnIkOzWFE;jZD}9MaA|)4ZP$zt2DLb~in7M|Zd}G$q-6|{8{^W@dqAZ0tNm$n?dL^LPUN?*QO%3bdz8;~ z{v4l6J>HLQ5D<{BFF8r*Zx@x$fDJMT2pa_m$bZ%>{tbaFvBatW$N9e+1PBa>gRvv6 zvJxZ+DAT`6#($G0Eif(^}m0Xm8qZ)Ipe5n~d)4_?6D&rZBnN1xQUM~M2Zx&?t+ z+%J|%?vv@KG}?Eu34~Du>CE_sQEC$AU*>m%oh0PCKRd-E9J?DI(?ST))7P%rU%J+M z|C&}eE(02#7Z0m%=ki5YtDd=FGa&D$sy$dgcvZKvcojhe5CF`+9HlJH7sy#pn}Zqo z`LF|P%L$pN;ki<+DT)D+$W-pQh_qI<<*we9mLz)A#l=q%RS|%7hEj>E!|wJ-xV73q znd*mzpASge0RA{=XlnwP{w1Y?ZSMPkdRTExI6&NtLjFO?D~a@3F#-CvKA5R|q`oi6 zhul+VulMcCPZs`K*|!V3rWi~HJrWHPg!RICc~N(%U0@(C@M6WhrA@jO4nI}g71B<) zkEKpU<5Ys9z5?9wn8T#Jm6tTfGj%ZF0@rWz!q;xtwv*sF^!75PQzDEO>RpX@*Cp|_ z9pC_+RVwCj(*Rk0)gAz`q>3@&iyqYL)Bx*O*)l&tLSr=M3pVyTT6b9=y{S@I5= zAJde7L|=6?m9K+55?I^37%VFaGdlC-&%=k*(c&Rzmfp3yYW>d#t9g77t^reC4M5>S zv2ZolQhZWFl54TSNVVva3c`tUN}}EtqC=Sd;nU>!j8}>L%2sR>g}l0|R~Ji{l->Lj zQ=P|T;;TE(*4S+n{lsj+>HRv4S@08CTjQw$EtS$%Qw?O2(cWAb7z9SZ#WN92vHoQ z6zmXw*u)}N!g6)10nanEA52l*U2Vzq-0ID=Och}D}zVSz0$rNLlel5{U44Ckls+Mj5 zW9U;1uWvOH`MX%szRe`;uQ2?QH_%)o=(&zKsK*_02z!v2aym#M%srV!uzpUAsC+lj zEKvkI(Zrs55vi`6`BR^_>Id%u<@GrI(hO?^YQBDL#vciTbt#3k`iyV z%8(G+n{J~EYRwWP4QV^t{3~JKXRUt+g&}DPku9Ju+@&9e%T^&g59KWF*qG1J4$}QV z(A@NG)AhZs2|`SrVH8xs_s8I8TsW69k@iwM&V4V=J%15k>v@4(MtZUdivO#+KQZ zj%Z#eK^l7%9cu|R$TKz2gu8-#lAVt;?eAqVS)#iTf@-76?R}q-f~-yp_GvdD>&n;% zLe_E z18HG27_w^YS{D4C42_H1e#-0C4W$e!p5p2<6kRVTaKT_{vw&UaSMt$*~c2-Y<~o08$pVs)z}%3h)H)7zi#> z0raj{OaHFmp$Lsi%vlz$opZ={X#{&qLiRw8kM$c3)%p6R`N&Yw!!&4mP$APw`^2SZ zo#tc2SUS_#RS(Nh$VJV!6LWk$vpmje0rsdIG&v-)DgIq~nK;uYkgG$afN7s)&ey=q<`4cRz~dnvLlYgV}D($)=UI>`5d z8O8ni(4kBZR(z?Sc_vvh8_>$U|@@5iGP^tNtOIz~M zNkrWH4F=!cG}44^>{R)ORG3>)V2ch>m%6}u4;1wvFlz$>r{WUsQ&#+QDd`se7wEHmhv@#d&g#PLYG5H z^_upYi11A#O}EG`^wnjZGvM@$r0k(CyU;Y7H?=N^Y&wZ70<8b`Sm@@DB6AUhE}?Jd zvZQDnpziEz?A1)Q$F@9{ zIDy))v5<~+m*Rb#6oUh0kcc!=9_iDYG%m5?!l&ArL#k6Sx!vYi+Vtk<3QbUeS&2g* zI8$ENQ7SQMqViY3=tj6+_DBpBjoOlVfABk`c;1J(p*#Zb!mOTd>}bBsFIgn^i0J0R zNw!zEEvwgk`1vKK*lEEG_DU=rah}6qP-{`CKY;p%AVQU7vFuTxQ*{zE@Wso(l`*P1 zXiFa<>6zgFyCEidI?q$vllTKr3Z5~FiWwodAjcGkR`+{iO!xuT_UViJ?gVp|Q6V=C`!3%X`d$mA=#5YIgO}K6X8O|9W}%Pdk487<4tPjU+0-cZRMtht&0SvtP?n6Y}=< z?rZ%%Q>^ zH2h|1w6Q424S-e$K@#>`WCicl*iP5bd(i7;aWq7fH(CODdiGm^aSeQ ze3zikZ@|hq>y|>>8!3F*R<4T?l+h!*(KE~f^8dz+b!I$WgZgfzp@Wzjbs3avQSOC5 zWrDVL)629x`3?H?cvIX0Q=mOL5c?F)Ov>7-1$zWGyr-RYMNqtjjGQvhb3XXPQlAuxJ}KI|ts(lm+EN2=X3TXdBfpc_A!hcOv>?7#C%PhT&e5m^r$3 zJL`sG00fl7D=s0lr?^ZR!YC2&kbWPCewl$7R%cSwzU3R?yuC``hx{k~6Yt5-SMbG! z&2cSJHG$AIzC~wdc_$^^Yax3Uk6y))E3#&Y(;8|gNxtE9JwdwgY7rW@J8h$E z9Rl=2@HT~(9Lw{ETLiVs&=&Ijo*&2qICD&(^SuQ^FSFY~H)~1%!gqgXHHG73BUT z`34zw=F`Mi@<^q-{~1Ueb0-xzdwhXtOU|EjqoXPq+c#sYj8bUl6=DzUPl<6VMQ_uU z^+C9^%k}{!Fev-|MBf7AD!LeNLCR_}^GM6hCt|PzK`!C8aNOaU)rM!#IQaGbk%y)i zIf=h`F&(;sZoc19_qh2rK4t7^(8)CK&zhg2kQBP{Gtw!*t)>yiZMi3va)K^d8AEbLr(TwM?fqaK)6e zWEZ`%q_ue;3r{6Uv}d(_@AMwx(~ERpv=3jE5V%EGOEBFzu~mu-AL$z^o5K~M(c-O=qilOSLoUnQq}^I8RBOZCV%5+E@p4>N3@Gx z_)>oV9(U;pcD0Y%yuEsA!`N=Zs>(Y)!SbmcN%q34A-ZTYtwq`FPrDL`4|4Sq2yb~b zx2?!pBu1u-b`^ISwC5r?e8uc}bTdkrHUQGJ+^M7`DQ^ws(T9Md>rx=1lj#vn{KQk3 ztGG0@GJb|P;)n@hnT{#SF?+V!b3Z(X!f_XsWDB#Y?%sJ~64!`SJyxI&p*qn!wO`RT zGOC65)7*PgNB$venR)6nt$}xK17?u=^{M&`XznS$0u0!*)rlY83tgbbZ-@k^4eJRW zsfIBu$2F>Z>RRyH6~0Vs!O~hH!}7KjreRxg_As49%_@vL7v`%g?ko7Z;jAmdJPq9X zg1T@v_QU+T?RuDGPC2>gwRQy7{5cF-hJ!@%A%Zl2HFUP|N9~lrQ4f1^0rVZm0$}aj z<#u+0>SxMq3jTd+K~It+t~oAH0o&EuTX@l8RAu#S;H8{qzXKlN71G zWy+fk>LTb`t%u4nICj0}{_^CuydkBzr~ax5-NQ{mFOU(%1E`0+bW3=4!-$tC@>sbG zve}wiV`u8K*{baFv<=iMfPQ%_jj~ss29d@S0fg7+r$T#5{ULyYk$M*O&=XD)qY32>LtT&WDrH2%$6YUBwsiyE} ziN1$=e{P)?u~!p`fz!^^A^cCql{~y$M!(}lLgA#62%cyP6j(0;>oJ2XMl&JBN!FPn zD#flS7UO_h>yE(blWL;SKdV~>(xufOq7CGn4W6?_UNq+@)LeTe3(Hn0oPK7_ZXilo z8rO9#3cr%3Mc)P&B_gT{q+cYh)tu-*n3_Wphd-7h1SLw+0S(#7hh6i`Ihk<${L(}3 z{HWyz5TEZn0nmI&<4P;>2BnX&E%GlW4`>Dot^Vu|gZ3o{H3UMr(K9Junrn<{nvGl}04!nGNls7W-LgR= zEis*}jvLJikRy=uK~*o13V+MTO+=63spKlPQPI&$Pjn-3O1o_^IK`KsUAtq$i4LB~^3*yTJeK{ZNW#;_nA+?%yOz#1FR&xNl|B0z39{kZ^Lg)V5O zRH{92kujFEOP{S>QXS%>>#oMM_?~xLv!e1=h$>$V+yE+n^R%#DvK^o$-Nen2J_8)E zADF+2j8+sAc11tGJ1cZtRx309knQZ5(?PEEgL*);SH4IX!}nKt^>1OC$!#iKHe05E zQ!9sLD`zTIhbTY_r+VWUrHb)} zQ{AZzd<2=5wJLrDwM>6`T4bO;@&r)ajBguSB(V|B-k@4OqgrC`KJ_6tU9*;RUOO`f zx?H;2cW1nL+Q~fp4682Zx!>h1L;83owD_jVc;!>XK5*~urTdWQ3&?x3`2mXFEieLi z`mk+>{gvNl)FJdILpW>Y?sf>MX1$*2zB3U5JpLk+A<(rla62%+8X&-)Ye@YxycQCA z6u9=p^_aU(#dC4WvU`40&7!ryOM8H2t(1`3VeCQYoo2bwPL*a|?`5VR`mA0Q--v%; z4z2g4YQ_$+fBYQcI&Wg#E_hYH?DnnJD}I7r{{r2krGx70EkU%0JzCHlyxPlrEqP`G zrb?&7o*X0-rz3d#*p(H{oEmS{JMyYkx< z9SFZSrehAO*haoZWs~`+@|IWcCeu}qHJ$ooDni>qe}b6aFl-Lc{v$PZJNr-wk#kUU zu&P6s2WW*V9VA*cU&?L~4&KIy8inxzMOy{l3ZDGW+EYJ1j4hZ<6(-Bw5n&8q(SSfd3TC)Y9@>K{y5y-6;?3u(UjOpO#Sm+@##i34iE;pJzja17Q@j3!%t?SdLxCQ_;8v%FQ1UaJJe-;OMV0`MJ)Ig9hi9)SY z1xT~|Sl*+be{_*t_KgeG)z7miKoYCd4TVJBc(EwcxkSMuHCyA^P)9p!?735#?!zKR zSrOU@FX6GL-!3;|@=pR+#Gp#(jXj!kApRY1-tp{g^X}tnsxbYjUVfOtp zQASb3)+?;L*pKvJ9Fa~3EdDb;|7BqXd zl)v%S)qC2tbQT!?HXa7Lss#I?6Z*MFcdGXJT#shpDZwIYI{_seujCZ%>JC&v{CGsQ83b@69VSQPfs9?gu*hLi2<9%)R)u!pxp+W;8N_5EuEtwcTwDA z>|I-=p~-5GTetp7z*1lqOJNnH;kx~f&l-n`3A|HkYh)VkSv^C%$nRkD18hM&MtW~@ z#^s#vjB1@c{q`lYFd21GmuTiJIPtB9O9)UyYcYQ&sQvS? zD-~7B2NjXnsUsK@_J(E*wj)kMHU)fgG1gJ-sq*s}Tt=8$ICV!=ieQHO6o0AhGVo-h zaG<63p7r$SFltztX?X*R_^fm<4>n@;b6e_Yh%?gh7>1+r6UM*&P76Ad zI+zn_8sP%e39zXO&-=KZQ6&^cGhL#DX>jNrq2e#5jA$m~=29dGNfvVDQ$abC_>$8* z-xAst)9B5O^J!CCYh}ihF;6o`Fn?Q_7aDA_;6;}caium@QnhyxAJmk&kJH!CF0=2T zSJ>Yfg%eo-JP8zZ$!9!mkrnhqSxP^Z*A*r5GzEZ(4cF9QH2aviF>IH#g)w}_bAei( z+RwV9L=Wwuk%5&|eb<#Gdqn=Q%c)dIOBM%}!M-VN>;8VL9t9uOLe{on(MYMGkp?W- zCUyq-*ir)%gp4z4W#3ylm_>8rNQSnOO&!YSE&B7cfIpi)5(9sw3SDuUT?IUhs*dM~ z#sz_T6^QUu!_Z^p%J||NC!MvO&8Q04bz2+%o(pQ7`X_|k6Vm5V9=a=CH*)Wp z^cupNKw-4Rq!8i!4HwJ>uIKwCnAnUu6K18BJrX?0&^AtYR6MGL_{$MzZ=g&5Uc*qZ zl>XjG(U9zFYR+Krl*ws9Wfj0& z&rV#mjM87nN$~T#0c{qMXG6KLO3ewlWRyivg}W=XpP4|99t)TEH?!)omx^>8_mmxL z<+s5{mr!>Vy<&z7&KhG7wzU|D?d%Ohfq};%h5h$(x@?U+h_vx#Si5uutakKYx~m(E zGnX|8&dC23g|ACYAxBNK!qgrzvjB)Rwq$f>t%g_}<_v9&T@8uTnjEZTSf2GZ#WD&^ z(jWBi3HtFkHBuu|U@z;XiB)6OmSx)Om%a_2!|(gjpRQs$SkmHZdStpX0F11^5r#5F z^4^42M;Ny+-IRFu#b?K`grCw|aV2N}W{*3WL?uec{bnuAXB}C+q#sOPj0Y>7Cc|rF zz(+Glp5b)G2o4d|>Y;bI$L3{A&qE8fWWG%19^bxEAYe!>4hC;Nk6lQOptOFihb9*= z-5a|@r|-mE+%$--A-To80D5s+eV(M@>t&XcY|Rhcrm(e>BP~}c&9P_;Co<0u3b7E2 zCIpI^`R}gDD^V{SGX+Sr#sVaaZb6g8Uo}~eS9vx6 zdQ#yFYp|NXjI|`dRP=(TrfDCSiaMYw)+@^Tn^bKU#@}CrOdZp11K1yqo=Y@$?zyQe z^wHdmAS`-w+Ra!-uaK`XWzHQ6HE#A+r0_nPwR0a%oLLa8v|8R>+wGK`mJoNuur z7>nzxyv+}11NY?qH)v>f)tH$7Fh*U zlePLoHJkMjjCEDeHJS(VY9n`1h9hhj(7iv+n(7*!(#5{^K$8n(K6e66okVpw2Kenm zZhR8@K7sWz6n<+am@4z7-OZ6zR@{UaIbSg?)N6&|kj|b^UfpYa%OlqX>mMwE#Dd`7 zu@C7bsC=vDi-p2SoF_GwGwaIzUIUukRI|4WD;UvIHL#j0eDxK&SOKVn(4S#=Qs{a_ zK~z$ifqw9)K+giujhV7b_p0CD_dpjb0*X5u9<}1%zY_5wwo8YHO;+QJH&g>UtZ#t+ zo8^y`1K7_9hW3*Eh^15UN0^Hgux3S_Z}a7Tk>lYDDD z`-j@|KVWIJNu!AdUGg#XTJdV-^*ll@oFXe3VW?#L(gI}l1D9j|wEw*f5UU>m#kQmK zqk`qroRtyAjiR@XBtdbGbf%me_VpmIB!rrt8?VRoeI@!GjHiGd;wKsAqhE|0+fYV? zpwjI~1>|;xZqR|#rjK|q*xXT7`i`nUhJz~RyiCGh+pCTA@FhDZ9NG!GKXB5*D|>41 zDR^&E&h=_B{Eh5qu09iZc=LDFX1-woEb!ivY{W96U^)Nd#N$LA}I0rxwU zz0oo&(5qQFF_)@IppJB0Ep&^*3>mhUDJ?L%1)8v*5F-2e!RQeiokl8`~G1~e%fviW{y3Qa=0Uf z7Aj^v_7Yqq85=aX=BG7o<%V6!rwryET=SZBQd{Q`ETiL`-ALEsz}aJ=zU9I8W2-2C z5vUNsZPF)Z(PwPKzT`)0s(aGJxfJp|0YZP#Uj`rgtc-w3CwctZ=)v7(iLsgmYdjcJ zuke*)<*TT;M^Ltam8`QU&8N<^Ji?ZvJli60O*pV%aUSkY@eHX!dZX`2TaE%3%SYS5 z9wNABl#O4LDaz|ukNA1da0E&qnGfDM0ni6}V-M*#72ty(>!nMi1@tWFzMGgR(VrY` zjZ__2%{Ujw3wFZ0~uJiZOAfz%m zueg(>bX9ruZdG;cEacgt<3c1gZ0T^bEuw1CT}%<#2s7P=7!QcEKhSY62EY%0jpKNk zh&)WAJdF~1vNqK)77<+K>TjidVz-Yk+bDT*Wc%}-2JTL$1v;U}&T%I!wo({Bb?@7J zRik9Q1wQYdg`G~(EZ}))O9`?z^F4y5(FC1d9jJc`{ESf*D#|Xxc=P(KLFQ4gf=s<~ zz~9e**(&9-~)_0zXyW z%JI0y%R0yUMi!7Dst^BCIIKc|>O6^Kf3FUz7Aqb?{xuk|-(T9TJJj@Amgz0Ia;Av> z=w{d;e?!jmZ=UZ(jn$Cn(9pUxHuY`O%>BrMbs0gH(!+7AD(!G`NWmg8c=Ui{vgq(bYG{Ly z&3)^o&4QuPJr9kc7NSPS3F%V&s;o3Hz-l3f+M8sIocXO zf6x^!;5R6~bgEQ2Npm|bG(~gvk!~OG;*Soo#=G%*X<$hw&a)l_x~-~?9Z34G#Ct2x}tTOwI)lH zN#w=J1t&v6L57Rf8c(`}?WTTVlg(C#;rx)3~mT&7a!=Soc^OT6^)%=4-^34%)qBA2&u)@ury zbDB*}7b^{a%{ICWAJ#|rl^s#&&CnCWd2!Edukryv7N7lPdk1cD%VS%s&F12&vo0rC z24n`Z2BC)oa^=}F(+cGLo!9*i0mQBQS(?3@7Rv4b*c5mE=37Fc9UH#Q?ct z1+VV+xmqx-xZ#arW%2T$6lroYR{h`675aI4(K?X|y+H?&F@iKF^Q^$oL?cZ5!Ih2| zZdsrca&}qv=QSwEi~W!8>i1=TfzKt#C9vlMw(D_kMgWPL>+ES33aTCI%IC$F*KMaZ z!TTxN=N5_ZYfiOIe5f&n;Ig^$EXqmW@N9@Wzc}59 zJ|DiEPb&-bXC-eWO+Nmaz++QK2Q|>}B-jmtC!UnvtM<-w2!V5h zGH@@1xjmf-(zt#yDgs-hs-Im(W4-pYvinIP?_L_7|2CKecrnxJnjA@ZgqmweepwHF z`wOBSDv($eZWb+`cuDW)YVQYfUl+NXsr^ooX`+40=;X~>r?FEW>)hk5PCITU2v+&$ zYj)ikxnl}!{_q(t@D_G+Qqm{5dkO&AmHROR2X099C&AW})SbkTZR~Y$1()fF2g|n2 z5z~3PCPq(7JTqshFxfx!QSJYPL~R+b+fXYj{;yc%|A#vM zH-b{@KjgrF$`y^BoXl-ZRn0}rh0Gm{4V`HIv6Z&Y4u-~#G)7id|374To}z7qtBx@Y z>=kY_m{UrqE~;=j3Cz_g*9V}rhf%MRxMU*Jni~v83;s=tzj@}sr_T<%j4beYnc<;A z&6S`+rES-6S2e1|R+-63Tv>L2T= zM+t=nmE*)eVqS{z1Th$n?P>@$)C@)A_EfV4#e^rvn+`YJ2&<)mKf#CzPU|9Qq#WBv zzXHBz3MB8>ue?` z_ZijWrVdC$vYgj@Y$A+uDf}0DOiIxucAknkX}e$Ma;CfAUWw0c0n^RreiJeeWE*aT zLqA;dRBFZiF_wr5x!fTRODjdAEYzo!BEBpzV-<2aqa>1p9T$Tp;WXp15UHjGM<$K@ z2`EV_1w}pK@JR5jIT?YLVU7$dvNw{`M0KMuYn2kR3z_`&cN zF5>|8+61->lLrgG8pXC8-AtAn!BilHP;1fY0IQC4TX>J4a}e|nGM|(I#de!SK@Ah7h*t$TV&T9?*Yn3boawq$*o7O8*ueL6lRHfG{RGU=Mhai7z!KYc}`6{mri8V0{!d%Nai9sUJ_;Nz*#yuD03 z@%j-<`LNl-K!9FL!%OfSVND2%w)DnXg5r_xdxVY~VCjBPxi!`Y9ohMDEBQeA_o?f{ z=`p4fX}Fv527HgT`)hWQ5O}(J7>4G>TV%fIGmeT7tom7?KM@#oTf{z}*_~w0EIc)K zkWs1fn>WWYO@)PaqE(9}C#`YrM9Po_;fN_aJ#36pO8ct%;coQp0b4?s&}&ua-e}bR zGQ9~GsO(0zcopDi3HCXDcn$n47E_FPl5&dRU?Rx=x~Jb8-PnG45EUdi!0-q;Ec!dOegO@il7g@u@u zmKUBBm=)JL_6}(QfDpl?4EBqKrhWLwhr~%C;F&`eWrs+1BhG|*V^&}6<)q$U7$tYC z4B>Z+y=$XSd5+40>L=`WrKyY^HjN5K_-{ewO12aekYr*7QXb8>i=;Q97kl~9ca|4j zbPJzY6%oc5+bjCUq%=KT5HO(N9q>EaBZWs2HcA{q~#G;Yg`ZusT)a5d%}Iayb-x;}oQq7lie9Hm6zH(EdJyHn)}WZKom$a{wHbdz1U= zlKbd=n*C{S{Y+8UBa0vx%k3H225pXvP^P?Riko+9^mU07ygBKF6a3CpT2|ZTe^hpr zVO4Ego9^xgY3c3|P+&_+O1FTNgru-(kd{rSc#sYW>5%S@4U*CzDIg8sW^<1Ba4&y8 zc=)l$^Nx3nIp$hx!kBZtq%&xj76jYRM3p84ZcW-wR8DN$N)?M(WbI6q**OG$$n>@T z9MV?MG~Vu=IrYsIXd!w8@BJgGky=&H&s+MpnaS+1y@hJomzlN=H@Jz#F?+p8`nQs4 z5qQ@MLyUk7Kc+KmdCWEkwPrMR%4U9}v_sft&fdaiN;l+o(t%_B0OqO@<`FycV_6do z=b%-R7e$t|Md=2f$#QM|d)PCNt;>V1rQEBK<8t(aX3C;7fWJL4cCUY5m%?4_!D*Rv z96r-b#m`W8#{BWs(^;Am{Uk>B7^CZJ|LCKy%=$wv+sgoUs!K|>E}H}+=MG1`@pszQ zSovqVJv@;hQ;T^IovAJbI=XY*qU7-i@nqMnK$?&1@SU}y8kU%G|VBe;jyc-dl264*G)yGfpP zc5@Gqkme-EP(|?%5Os3{>;roIFDav5^>B9~EcYvX!62<=;9!oHasQyB%*(XH#2jmu zhDwx7%W3EIqT5f|SE5a9Y_y!&qLz95S@JL~uOe3`1t~Cp?7hyS`nUJH#yQ!5k0RBZ zY+`6*ii2=*P1yFuli+!+3_~t#m6X?4qXV7C$LD&)d&P5FugC=F3vXOBi;Zg4n%{nQ z^lmJ3tvF}|ldqTNA8UgJF(hw}PX)2Z7kpH%7Sks>t2yVrmf62L{OAw56MfbT`wl#X-u@ zFB>iZae;q_fpb`h8a;Y{aT6}l%p{WZ-47QIbp7xaLH`BPzQ@n>IFWkshrUgITa`Rv zn4-+6Wv`rh)qED@_E%N3_x7jgh!vxR*~Ckh`s`plpkq)mg&DRA;5uyuK9)L0-%QkN zWQyU8iGg~>*@~h)%k8THs`R-y&<3o#X`)w1gP3w-g%*|W)XT5%E@SO1=dBQH0@u5- zGSWk_7wkH$hdB=Kxfk39)CP#Hg7<3Jf7GZOOzy;2)jaO5SFU|^I_IBe;5b`ARWn?i zm*--m1WZZTz#|IWOZ`3SFKqovNt>i;t?D&kx}1t>-C}*er&ft?twXrE{?a35eD6yL zm8S9>rxRyr{d8$Y&B0IV4nsYkFX7j2MjrX6`oFHihv;uKJid6_E!O?6mzE!U@%YpKw`7X6;fNVK6!a4bzARoSXMW*0L zcd-{_QEebJ6^tMTlAPbw;B(diQFr{_>La2qNPhQ^w_i>NaAzA5L8tn@%ct%)S0bafvc-W&#smMUgTl$9pz!H{N`# zXa(}maJn@7r1JJL|Ez^enFvs1LlCxQ5mIZ?)*V>>WVURQwQROzEQeCxOIZI{Vx549mK+lGt~y8@JA{lQ zc-tnfY(@M`jGG__mkqFDoRgsQVVd1htCJ$`Lj_ONwAF0HlGU2Y4R{F^%o-golblj{ z>IVKPmbugF?vgWe_zoxiQE$YXKm@{G6g84;dG#FWAOve!`4>`MGypQc!53=fnZ}AF zGP|`148f}fQqM~cNvNp&Ss2)~RH^YpAaAQ&-^498R=hh}-a5IFzd`$FIqLg`zI%MT z9R2rd1bQk-^S~QhZzYA`A#ZF|e3AT02Y>qtmzCM02Vf~?qEOhBnE^T!7FEauGIGFy z8l4>Sk)TE@R{^NuCb9{(g3!GJ4r=Z5ybFQk6$t;wm-Fb(x623r&Pe6T1PVFAhWZov z<0IZ8V@sJp^GA44n^lPJU69+z+mUzPH<2`VM)np8&|U^QDCU?DiZ+SsMu5g*OXi0f z%#&@Ql%TN;5vTztGw&{N{U=$d0pYLy|D<=Ga~A+J*XNEWs!$M$>MrDmqGC&hp`XP{ z+5h8(eR}7WQ_gp1ocqcHMd4MI{8J$c&_V+l)OgvzamUTxA_g_swpgM-lb-D1g&Ht= z6Yh9E5AZ<^vjdix@DR-*5O|*cZ_yzgP^$do$=(?OpEMc9_;-BaMVM? zaa)+rMkmHo8WgxkaI+~Q8DZOCw`P=sy}cyUlrCERHT%n)gI)Z6;4`lGK>|BI(g*na zAF#fcuz&i>%WX{LRY=sJA^5#a`rI24IS5D7pn@q^skvs z+e(o*e=lMRKv2Whag1T}TNf0Cw7Owo70rEF6YO$PolP0~n7MlX9N1Qq%?z0x6N=H7ql==g z=06+oBz6zqI1on7>dJJ&$Iv{dLsDq}*%Io{NE%RW@~Fd7fIMqXc#~W7m~kQjSy=S> z<+~3a>V+qlm09tYcw8=lkBVeCWwKNUpAm?XCEx)0x!mhCqqa8#dtj7AM@%xUg}lUx z48}N}c_6|=D{tsD7oK-iwvl<2tl$hxb?OMTeinSGuP8O-D%7R?rsgB)#{vz7UlHBQ z2|){h5C1+zWal2Rl( z^psBn^T8dMCerq=pUgCb_l)D&IHU(?mhC55GE6D)oVB7&MVfK&+q|5c3QH@hwas!% zj{a#eMG0^YB&XKHK@y@I+IckXxpmx2ui{?=9I6-aAg4gGVuBs9L6OJR)k$=+jNfvU z2r0xYM&tnZb&SLqntBu?PNz4xr{?Pr#Y*eF0`4G)Z20e*U$0S7pJS5t>v}E>#5S0975Sv7~nPk=y{hJJn#}ve8hsPn4e-oiHmP! zDep@jimozk8jNdt{xT|juJ+Tiapw_w#{=05%r&QaHq7Z)6TA8(0}P6oGvk!HY#Oua zl|mw--ftfB<=LmX_6oVz$Q>sU{d z$@-A6DdanF?UEd9>YlWID+sH-Pz2fyzL_^VddWEDErz{{ITDqKk3SzWui@M4>z!e5 zx^kS5WWC!-Lzs6QzKb~@hnzpKTsG&PM9p(M0Ovw zPqgu)HXpu6j9m@~pq-Ypw96oTw*f0IZXK5)#=eieYlsBG``ENI zid0BrcJ;Afvd-$Ovtu5kAMLOG!T_;UXG&!?_!&+y6QH}=wjlx3bVacE*0;#?@`DA8;S_!)t) zd|P|ssNtn0^AG;O&$xEND)oaduMLR?!piutPx9gvLR8Q97^k%8!eXzK$}6?({TOfrUA0*Lew zARA3Y-@KCC`_!|tfoRK-PB5*vZmuS_7Q=>=15se@CBIovTOsQ-Q(z@LlI)wT49ofR z*H0D0J;`y37nKGwI9XLrfLSlo*WnTB7srEXr9nq&G{c5W*ugy?y_`VbMAp+BW3;WP zTld}Z3WEB{=zTZco3);VnxsS8YQKz{dWc?teKKN2-meWwUCG`cWykNBK2P~vfK_1I z_YDb8&g}RrmawCy{YTQ{9XfXEvuW$WR~*_U$+No^G&yg$6;47lM}h2thRksxOfVo3 z%vqVD)9JWVr!V_WsNZRoZncLRT1=$+);|_YD2D^6pPSY9MgB#u;p-MvESjrs+J$G* zm8T^)>oMa91_!o)d7qkhnCWdRj7AqIMx@2cu+r2~9=-|Jx}5F~uo$dAxH@uDJQXMt zL>tVr5$q_*j@0zTE|`o5w;x61P?i(wkU{~!rZv6|PezerzRnxzBs(q# zPOZ0Y=q{QO(W1JlN^!a#m4OD|+o`?MjyH9Va9VdtBQ}Lca7F))lt%>a7e#k(s8bLo>P)@mCLym$h8Bcyn9y?y?3D%{sfQFe+V1Ark3I35sF z3W$lb~+BVj@IMQ_pJ;yb{22CE!MaFN;Lj#enXb(7Kp-_6i_O;X`U8d8R{>5hQRFqWC%Nj z5j{5N?RQai^Tvd?20Gc#Ehb{L5mkzCo^1)p@$gOP78S)10##ZC6jssfT3b8gvZXBw z;8o3YRHM+kP|BD^s(4l+9bK+kW1Zksh=R1+=6$sn>qxW=a zyNT%%pcpcB42+d4FhxyOE5{BhdlZkWdXis!Ia=jy!)lGTag7*|`3&Zg6$ywB`-yAF zAEvhC(1`m~8^t!;zO8eb&`*UBZ^_zu5mp`Lg{)+TJMyXdv#vXaO^kO-GmQv4oUd`Qe-Lc!6~p ziap2Vhz&=f-drQ1pl$wCCURz%#y;HOQY+eO1v=a?yQ?q3twvPeX!^gp9eZ!Z&io>6 z%q*FC(}(k#*0CYZvhL6zq)6ob0m?WSF?bxX#ZZ)(m$#nB>`M@R@*AhZe0|04D%fSu~JGm{WJ8m}n^qWE*N~w4jclB8o7x z4BPYj(ClriSsYo1n!;_FFVdanl3hD$N@f()vGD+%2$^~CpQ^p^s=)-Cwx3eBs3J6} z9$9}r<|OT_C}f^t@IoYT@*b3RTD2XQl0mrOnEOj|bgrg&*11jr19ip^3^tLPZpxL0 zD^v@6T;#hi_T*LGxdjZlI|~8-TU@VB@$>m_VOq!2FSsd=#^lFcdA3GJ8}-m4g6Zd+Xl zw4mnOdRZ?Z;ifhfrhTL;>j7`32>6+_fGOrgCVf2xEZ()J11F|6kf5Qf67|HKBVHDk zGXXwjB&Ac32A~9de;!h%fs0|EZjy++Q$R^D$n4=p@EUf?f>9S&mGKw59?5JUFOL=c zoKMnlkGir3L?p|cXlZKIBKHj;B5tn(((8LWSJUg%QMONa#hc z;6SF(;S-wY{#@@8p_4uDS-7;8ivZ8?dmJk9@WNi~LaIx91LT{RJEbPcPY;KD98Vk4 zFU`oaBMol&^mxQsujn$)n^i9ukDG2@9l_^cS!7h^f!vy3wj?ne?(O+p9aKkA1DEq} zLVk;#dURc^*Uq5ohYKk{#C-J4RmvLjfafSamN!?qft-Vv@j$Z^w{+gR%!6&fiT7p5 z_waBP7RhBJT&5j$Ec)ezL$yz{!)xj&G{{3Yf6RH$3li_VX(WDmz~(En-cco2E~ z=)i`7S^T5qgM#$8=1$x$Gmsymxswf&Qd#E02^tzG{qjz~$5q>FYN8jw8A=T!pH^&c zD*JZZSS2OFD0;TiF98jqks-rl!OK(m==F?nm0uFqY3xmc!r(V>mXw2ngevRxfu`oh zpu6oO+!@!w+*nE6QgDgTFpW-Mj2y`K?v)^_egTU|F;46U+IDB4#*j&#dL3==zr>XI}cYjfAia!Sl-w0x)(ra0ol4$8uB<1g8VT2 zVYrgTSVJJHg-}SwZ|Vmj!?!G@cPu#% zS5=~FSAY!i6m)=8_Wr!nRYDyNP9C0j-xG4U_-ZJGsTA+Q@ZTX2*m@`g(mQ{!K(R^w zF(62Bx*>(9xK|*jCXmW09q9v?oX*Ey-X(mH>LDTA%MJ*L1hm!g@XXJilEbz3Kp`3} zgb(H@d`1puGYW;+pJ6-*iG)BzCP4*f4EOHdzyCpi&c7FLtb0S4S%!gewzjl4ae3=x z!Oh`rcXvMQ-%H6qx8J`PB)oehtA{W!F4mrqN2#3&=<_)?+3jxwstUJPD+~-B%tzU{nh)|H!L9_M}GIb zNz>t>T=8{ z>M8`l-Y5lrtvnOlRRmISw*Gl1Rg#C|B>fQgcB3tWGiSH(#%ff!&|$mD+W?<{u8>b` zh&RaZoJZ4xyAo@iFCP$AA0MKJSDIV|?f9>2^MUmgn@*)7y!E(%KG(wRS|VBGXBOnP z9SeA*)~S7^vz0Ak7w`6IXKa=8f}JaOL(*`DmDiKeXk03VTGw;QDy7J`?|emw(_{q5 zyVkMcQ%6kL?7w5OZ|X$$2ha>Gq*Y&Gm1j1YR)?q`SF~JbU^AtZ>gQa>apz&5hsC6R z+@!s#F`5-pr6tZbi_jrgZ{gase==kP!5T#bh9sOE$29ojDL@(cfg50o?>9{ys$22R z&PZ9UsYxzU-NDY1Dv*34wa>knb!n6=X?6dx#;nguyCGe2eMA&i4d8kkSaC{4zZ2vE zZK!t?H^1ORBNU0N28q@gT@FA3W5e`s*0+yh(BdLYcVsuPxu9*Mf|v4WgN`qOOwzGl zb>~gW63rWd61{n%d}@{A&ZBLH^%!jEK}`|kwLfO55`f(o39&Yqd3aQ7aORNLbHl-2 z=`C&u$sCc4Sbi>50rVM;ElzdB(bwnQSxJhu#F(yw!G)<$IP!=+Xa=Xk_6Pdl1%kmt*w8Hqb_ z_EthKpdB>sFg7&;HvXhyDkx68EMRdZyQT+MIwMXVI8nD34_H~>JzUf)5X|H_U9Y)e zVm}zh?$VUUiiB%*dLmO(Ne>0P3U4D+6_M-n&O)P^YFN*Wbr*GQ-7uSn&_~tx%&P#d zBzTFeoq2UKhu6D2S+17^_iq_r1Mh%?N9hXiy>NmplI$#jE^LIkWYz9FjHczxRjEHY zQFA>6?euGn0w8xT&RM6+{UM&Ymz1gkJtS`#%HM>Qr7w4oYTSzGfz2-RHUj0! z#ACj^n4TpWFmJRoveEb`9zo9Hb^_l?G3|L5iXS$QK1ok==MCLvF8gTdmTfdTP@jV} z2Aj5Dq?J7=(~%{ASCn3CtGg8(D&U%xRr}5>h7oep0T6z3v(gN(DW%0uXC1#`DMQ z`K1eMUxOBHJ6_yAFIL1DvId{3oBwJCPoA?QI5;EfuG;CqY|YLL*AYb`_gKv(&?&6_ zxJdTYPXJFBad>Om9rnO0&LmF7Nra;;n|UiIad~?|;eL4&QN4Ep2gRuT)DW)L8)gDu zb+$4-UiOH9_+0+=PwtU@So+@2`*8k{kz<=}`tvJH3kH%9-WI=}n~rLHOZmkhmfwjGfsZ zWT{A{$E=HM_*TZUW=mmW6@NC^wch%MAL89i`c1dhsa4WWg!RraJv*~g>@7kFz4ON? zYXF84_Gc{1w0!<`r1#TYL3YqNcF?4<*^#oJ^euHGPuz99-${X8A_26b)wc zNDXvU9FlX7mX=65+&0fuhd`-sg7?J-_~2B+;;^#~XEL-jYrv z%|b`6WCy_tS$*1jly>`d)XG^QnzbgufB>jXf&!0)9fK|ghSed4He*HFX&fFVts)2- z9G(09u-NL4FRxyTtf>5OpgyIROpOx|27xkoM&eG2Sb=5KWESgYR}5fG12GV2ij?co z3+#e)dxYVB&2QVRV|cyY{W+`6yFHNp5wXbu%{m*hSz3kWc`0(mCP$LIQ`78ZyZ{^6 zqUmINmKAmZd1W1B6DXlp{abOJr`gLC!**v-dQ#OIuxHn|n942~uCRjCRN?b3Q1Md0%stU@3>xL0)o zoB~r*<;>stbZZQ{QFk-;g@cn(vbg=56z~YEag6pz39!}A=&HpA>Q0-1XC=1OY*#xV zWiZALjkyR*U}9t`4PggmfP|Z%FKE+=<#%*sT<&&A+d3-MvGSD>(%{*wI>d zS9XJtf-SrSS5Gb1Xu(P(1lCykcfwJ0udAq%?%I!!qx7Uah=-CCvjD2AIC8(3*O0&#Qk#!DlA-y`*Qpn2Ju)?p+2^yqnQe=L0 zQ13a>6p2EhLuX*p&@mOgvkmseDqFfi{&%M;j%H=5oWmCamlMdt*9w8LqC0mIJ8|_E zO%VdG6^5A5(t!Ktp7S!s;?t87Uhj%AgItebFpN?s8ikY0{G>sbz_Sm#+XYlySdW%- z7UT@NHM6A}svd@sGW3nIx{bWLg}gea8;1)M zRTgT@wpFSqxp6)kM?WpZH0GaKc{Wb^3esoEGG~qpKLJM}r}p_4Yf5)fe=arMB|CEi z8>q<+zU;VnG$Z$bqqWSqE4Uqc-bKoVsxN_HGV?p{c!f&?dkI6KuTv8NhvA_GN3vP3Nb^(l`VyhQif^v;w;W9 zHP%lffxJ!ChZqBudsg*G&wHq(9kNAspS!!ral2~Xv+qM+} z9~Q7Qgi{)`r}OBn+X(S0ld>q~r}2Becok+R+|7!?ah@!xwbLrHO_*LBR*Ly7*E&mi z(ikayVAoAT;q@WIKJnc81(`C-K@%13YTmPN2K5N1X1n~3h3FFl<$Ed%V5atD!UCHJ zvkfP$`~>)QpINN7_B|S~%zsDtFd674RSeLT8KI4M-3$yaz9cGg?lN^D3a&N~6y4?> z{I=^da(>HI~#J z`zWR^?pAG;tA!QDqPs8LV-p{d$^BLME~cD}K9`zVv*gZoZK_D)-eFwmo?Y$NmJaBG z-(c4Pau=R!E0$_!8!(crW#wSGB5m+MBasBOyq2}8^^Qy^NDYifX)E^p7E_$`FQo-)DNqmnuk4 z3CBXq3Ne`e*<-iYvj@GA&KLn|=|-E!AR7U#B3yVwz#CC?1=DE9+VL%@s0`o$&x4J& zu*ov*Ie}xh`n3_frbpp3?YYTcWkWXK$z$J{ypHjmgNpYvyVnoorjl{t3^>$jNFgP( z%9u>(U{oujNm+XcxOR9;n8Qb7#V@S6c)#z{$`F?st+T@DgwqX<;b*aVyfvCmEhItQL}iNix_}Xna7c4A`ftR@Y5h#y z5~lALP0<@y$X6FaFFzd8O}AKtrkbzWTe)q5cc%6?o8zhQdZ!4;{_jG-kl{0h1%JVo zD?j}kNa>|#25EIqyY7XaMDO3XU0uL4{ra%m#aAhS_xjxE^Sx#glEFR0-`tDf_;j4P z3kLA_Wz*?%x;or@dLJ;YgtPW7tYh;2JI*84i@*!%Eo&vBM|YGuM)2NYzV}AgG2SQR zjc%zM?S_KP1_uCAzz$1c6TF+QW6qqTclW8Ww#pOVzr$Z^!;c_xU zYAMwSYQ6kO5Lu5abt_F+k<*}fTbE7a3f~+u|B_5A2&->#MmF_aO+OqgJ?A>LTq-hO zYmlA$<+DA}swO#T-`#b6{;osxzLCnw;&?PM0Z4V60uzned;l*2Vg+L81myvHZAEAJ zR{t^6a77~fBCv_E%ugoP-NNTWn~88h>o_Gf0TCBwwL}YQ66xFc2d<#rFE`9gZ%YQN zGb-vzwkdj)k&#+uVe_qx0R6Em6wc3M7GeTuhRiwx90tfOauz)p&74EQXHQhJI3`^4 z3PAGft@?wO_vL=P-49BlbGn2^<_;?dxMx}(gsH<{9>`8LrwWKs$?q9GG9C=5R`bGr zGU2jH!CtyLu{o~B+H)eytSs$XV`oigd?ZEEoMv^REt+m0r-aS%JYUB0yx}ACJRC40Ho@8<(@d{YWc_#0<(8?=Ot?emLlsj zk>5s}_uPh_Z@-|S)A)mVkdxfH=tDI8`jIu2OmW9cXi7Ld?+$G((iv$Ccy38bS5! zo&B_3^vqKC*apESHjdRNhL%8e|J(n?)OuM9yk*lP2IT9_rn0jOXUe+#jdcTbCPmfZ z658S1CfPy3Ul2M5+Dxh@u>z3Wj=uyC#%XH3p>8*e?gebk114aHbmnWz4WQSAfy91x z-bqtrvyl>{w*&WG__HlVF5DVF#NMn}=0aeXw&~jryrd27Kwn?H2DD_SD;cl{?E%!O zSk2PxSdn4Eu(S0Qi*c68D_88!iIlzEsllPqXl+&OucPIP{8+Org(#pMm1$d`sH2N5 zI%&JZW0I`|E4eaxULIp20FZObj=N@PRrJU9vo5AYNpR62kg|h-a9RPUg!s%zvrOd9 zRAFGJJfi{+wqFxPE<1v}N)SRz&>p93Pp!-SDOCL^2i8jVyB7R(1@_No_iog>0d_!Cehs%S0o3_IIVFXazg7}Fz24o4rLRW;AouZ(<%o` z&Z}YlzpS>ZY))-d7Cuyc*EejJ(R<&cHJ6e+n3J>|LSYGIYQHo@qb&mH&$ZD2!e{`H z`)?z%FR{^WwS#M}O~9yJQHIQndf*$c+VV0|2ezH3-Y0h{rvQn&9-HL|SaobD_JXes zwZrBDTG>fn-Br^aw!;!Vgu^-4#VLd*us6(L@X{Fs5UaA)T0p?u@~b7#rwTWPBaR>6 zkL!XZr&vm>0`)3b(`jn8=AVD!4L1c1wM~}8uH@97f4e%bYXjVN>%i5n?PjD1s4E|s zb#+S@D3@5^5B&8F)@X`r;(4hpj$kREk)|v6u5`hB2e%kS9EhQE^zs5 zcZ3q5OOJeKYR#v;h=gbBIBg_$m5#a#*ykQgeW!Dk)!cvXDSHEquBu0BkTkeYbS68~ zx(pb!zHo4~&H?P&3mqEeO`qDYkULu)^kzEZauhor;2B4hyq(cD4O|Cr_Jo8$@{<|< zTn^{aD}zpv35Ua_kLf5CBersL^BsOn*}T#6@cX|?%uXJqe8Pf;KLF(KuVsnB+ZP-$bN30|3F>2_ zpAK`bEL8U6#%IY7ydnU$*?rOi?n%uTDlDslT%4-8;4%0%xoYYIXf(OZrIxW{BZgO& zY{L7>ifApLU@?h0ceKC+(hPbeSV^}Mkrd+)2VzBhJkXh;w&Rt?2HBG%CX=~)bH4b@ zuEe_iN&uI`rL}eMddal9445esS_ThU71Sq?7uzj>LH2s{@Kk%DnsO+BM8BAQJQ;o* z?QWa&)pY#ML6QT>>Qkb6@69R9GQ9$8^vn^=@e9x1r)xl6Wra9KBtf?gD-Om(leYq$ z0*}dJiTC_PLwy)##Uz{Im;R)V6;0JG2+*445MX;xg#JcL^66pnFz*oTK`%H);?*7A z*NN`eBNZmt&T*mbv2v2XMIFR%PsE8>pbVGe%LQ}$%m>1h;`<@pj+u+z!6$INMDL>& z@@Z@xt4;Yr)um+a*8~xF#hi|s-+`JO7(mab`v)Lvno>|i+-s94$eikXZ<1`wqtI0@ zj(}PRBvnGd#g<5=wzTdqOtmyn^`t?1-$wGh+T%WM(LW2#5`>1@16{ z-NFsykRBX@g8p3sGr#<^D9kiR{cZfe{yyFFf>yecG&f}Cj6&IIC1<`#PpJK? zYy@n~`KJSN%AvUCLO14s{il$e-~l0a{@pw%>`}D19Nbo!V#U)a?T+&7Q;8@9zjK+u*psY{f8huSOoV$y;E|a z{L^?x=wy=&oInI2!q`P;Km`^3??4Bo+!4+il* z{vvQVugXDb^Bz*F!OB&4w|z4ubBl4JTi&X(gs@u9DvBg=JuTil;5(G_0KGO|#`6_X zy%!ktVTQ)R>h&Ky_4M-yyF{&f23TxOCyRB9g90LKqm=5UErP{C zr{nH*ymD7b=$o2V5=`IeTTs&B$KSNtxK>T~5bmRepA%^dK`M^D2hVetqBq*;26s?1wQC}<{}WVxD}n@0HEk?Y_`TXH8m&j z%FP#4ca7c7p!}#CK=YzA_sOkH!}Zd($2VY`qz!!PUujL!CF8W;200;A+g?g10Dd5o z-r|m^FZMp89wXl>#^1r4-zsss@127eInOnK@Tf6>*z*PlnLP&&{5*{GJa;t_|0k~nSU4q$YfmubOS2(%Q%i{*=5H7)6Wkm1Q3*Ye`4+YG}5&>;v z|Jcd_!GT~tiuA5f1hRMAgjimjReDKWkqiOB=B1xDAS^`U!d|IHAxL-~Ixbsemu>uZ z9eGEb5B!X7gj`;)2@v--P0z@Up3Gu+b?)$6M`-d|*pAe_0W5wQS|>^j4V@_(ZLM>k*kJj=Ev`jcwxW#QTjlUJ=?EUr-MS9* zeK?qX@{H2MC|0CAz%@&k7fqa7YIFCsig7^bj=9or)C13*KU!mcZui^ivfSEQ6hAeq zpP?_!3|My_1EhTrG}i7X@x5|swl|{l;UcUr-HNSbZ9Ax<1!_QN>uj$sH=@YD2uUy}l5NTyIZrc9jd2e;t{!BDwWy&3xe5ma9|D znmtkl^lvq~c|$b1Iw^6lN?3RQ{gwnaDXxUDPc9{UaY(wiNUUM!IbP1?l3epWdq>8v z4{ccegjjSFagWZk>YmF2n&?;ycFqOqI7bIe=T?x(h`~iT^8@f6G$pPW!WOwX=xqZ^ z2znD84U;LKhoy;SX+cyG#Mq!$dMkANjX=-@FpzB6x&9zs_Uqhu4(Wo)wCTY9&D7L+ zD`bkY*AmS6+cS*C4|pi+;vhFoMZyZQ%&gZ$5RF=TS-m{(Zt@!elwO@8tp}ZQ z02C<>IGgtNZ$RZHzJ^DWezS|&Dal6Gozi<^@Mc;M1eZ9gU)GSK?9Nq{WF;D)=j~f4 z_v!b>SH9FGSkxLhMI--w=_hvcwX4EA97kge6B%jArwd*q0`s?r4MI&Yfy4XH^NE^- zoh@tHccQD!iA!~xZeWZ02}hLkjozDV08__+A@8V5S7sw`&*i7pVtecJwf2He|7DE& zQ+3K0+EHs3RrmNMuhk*}Q-$L-{!&M@^VYx|)V9d}+bo2d#8)o2YDm zRAgrF@%i;EuG_>=23_@HhTAuIX`y!_JVuwXVYWFgDt&`h!pePScV(;H($JJM(o(ae zMQiP+D;tJVy3zJ&QGH2&X8KrGNk2Dcd+~n9x3vZyA2CyM_aOos2cNzn;9PU7sP)!; z2!F_M%hmkxMHzTe1i@&jU|I5`}Cv@@<>BElYX&uk@wj097iSfxilGR7xo_5F;3~ecRb_UcI7E5hvZ+ zqL&)g>cW(Z&{9d44~eovb+fXgzzP|vXas%Qdlr>D{E zMAuMw>MVa1twnziV5We7=_;xmY__^k&0H8>#>(i$InSP7A~rL$eeNy+v#XBsEcHv!ju}|m(QN<%Y#A8-U@*t2vFFx5 zz6Gm3Tk*xm@m%62V>dAKT)oGcUHP4%3&UozpM3z<}N&D;bKSC>X4iS!ots*9+} z%0$Mox)Md~w+dfPW$@0nj9`HuCfBRvOPvP-FupwFOM%@DmfKMM zMgw^mAN4E*pv=C00rPMh(EfRj5dLX)vPOdsw&;hC`S?3R?l4|Ez@YO^p&mYWV}q3} zIOQ9*Su=6CgCnAH?4Hje=G_*ZAUNM#=K|&U6DBX)^ntQrs@@G%h2)9qg5y?Xzkkog ze(O81Mcb=A7pyrVx(PinVNn|}kPs8LKFI$%wHNvmaQz+kf;Gj4`~iH;F@Pk@Kb>#D7>1#dvZ4i4Zj=H*aX{iuR$$$Mo9kExbtt}-aMdgXJOmmz< zK}7y3Xsr0^b$>WU`F;~K=>EMZCG^qo>Oe+>Z}zi3w>9^jFQ-v;ncS7*nZR+gQ;J@GP_Yczh<^c&z? z$3~3Dm9vu|3~t;`wICea&Xv$~+|H9Bl4zZa0Z-h{7H9(d2Lr@x`-eS`BJtZ$L&WO7 z{xiZ2H#J%2jD}s(s<~_ZFt1-L{64i>2(lAhe=UAz} zFP<-Is)WAZxFc-p0$}(bAmT~h4zsD_iHcadgHlu54usT)iLeJN4^L`q ztWhD`t&7XyFOc_=`fnwr&lOwT6}*^dLpP%IjzWT1I~V<}8e|r%{Ujfmi37OvpF{yB z)uqW$>=^+`c!qSg>Y)E$iIF+)PN zrzgRk^zMzn$ERM~T0!or#LAJ*|Ctc~}u}qvm6hIb}h^ zjtnZ!yDhadvm@mp{bXS$TNH&T?%Tb6Q8TizFbJm&6WQ0F%3>xl*BRnK4j+ODH4?Wi zv7)#|2onA~Y`F@eWxv!l1gS>{#E565#h&bpoLKn)h|vhaLlFJ>WcLPxId*E|tGjIY zG+=p@f`*ELdGqn{D9W|QWo32kN+VM{4n~G3Y^&O>M(#ICVu^DOTwVSq?QyRW9B#!!(x56l(KB-wL#-L5wZjM zxx%}E7XeCi7}(Jup!bw2Wn7#w_((pd9`7q7S;jt%F4U9XusbSNHuiK15oyBM_!zM`Upqu&MN|> zQqMx;{p*~}VMkG6l(}MO09jMe=M1F}9GT`$#P~Q+gDdy@RwiZ{O#!7Vh0gO+Vqjmv zr;Nu|JWi*04o*&cc7;Ep{dsB15Yf^P23`~zigpq%8|D$@X_=7J6c-$qognNtDLD$ypz23~dsl(^ZEI%P-WRH_lH6vg55v(Pei zcXN<5cZo@Fch+6h`{TKlH3~MshV%KgN@pqztH#J^B#TR@u{UIf+GQ#ED6@zAj^sOT z#Pxau`zrv#uoHtWy@}@}gsRuA0I{W-Imronqj<NFY*F`wPkHd($&g108YY4=V*5Ufh^wD{Sri3RYK4A69^mVF$kn_ z&4u-j{pKX`c{^}e!}F3L_wm8{qLW}W<`SAPLta}$6m<7)T*i8YnX-R{h9**XBQ#QL z6U;%RWmJY?PA<$$rZw({Vtn$9+L_2nNPMYA$wYCyHd`iod`>*EQ-D9!)Yo!P1Hp5z z1@0T{hAw?8fZYG|`1HP4G~w_X#7o zK~nx;HYE39ocjuEKauEY*Pw?`?v=8D?{Xf<^Bu)u8N6Hv5C1r7h z3(}*c6b7@WjF3mk02JM7H<0K^EBc@xkR=^P*{r!EgqY)}utNjyB34OF$JB`3BPA5` z6@rdwVqw|#=VJrH7BU`~Z!zXpTLtHt5oI+@f`z&MjMPJMve@bobGQ6qNVz}dMoyrb zZ&k_bQRz}Q92voMge8Rz+pFwMh$HK}OXt16`GLcPOw~_a4@g_x4_2jI!i&xbydyIk zNl{NpXQ==l=jkma8)XxPct>~`-oFT#L#|ZIg`A$oEKP`oMuYz4VUkN&&zs3aOP|^h zI<8G-mbN6CN-s-U_1syMF* zuEFR~Ynar^2ym_VwQt8|C_@g7_Mq06#sb~{%V6uLzD6_MGJBj{VdRBFgybSo|5))P z8W+i`dX=j=OZtdboaM~KRM9ay?NK?KGixT>5XJ~_Ba*=r6-oThQ3apYJ;`wyI#QT% zLuNA*n4!@=siKKvmGyNKLBoqA~y`7R^NRQ4|cp{+k(AQ zX7>?^>WTQWi%=uwq0un)$TY{=0o-7gFwTT$k<(fO*-*UtNKjSx$h154Hl2sH$820zym1;brQvl}{;9t{8S?~FS_%^>s&-1O#KceaKYw_K z!%{V)jQrS}CZt00(AqDX1LHL4$qOxHhJ$ILM(Wg$PGpUlF_}$JU{Zfn8MF~=U3BH&A#Dka4xD%R0d zWP-&Oq#9$?#piR9q-M!dtb&urV4k)b1|2$?F9asC*MUjWnM5*Kw!=Fl)4nT#Cve0# zxyZc*kVOf-7|o3^2`vg_HBD$K9-DD_dQvS5tuE*dNvI_VItWvGq;{CuJ|@CChd*{#Q7`wJOfhN2BWFDUG{*(}r&_}o#)#kRIgF5)fl^G~s8^b4cBN{y7kCi0Jn`>x>B9beHt zr|{kpF2aXlhUeTP3*(bgIZRHvC1 zrD{j^ZtSWL2>avZFz=($DZP>@#r5wst$!MsG>wK%!~fF;objKqLP7N<;hOu?2C8xu=xSg$8`KDTf)+nJ|*oNNpau6 zSgt|Fy8hR#n^)uq?mgH``!PUNRvk0kI z@jySP2f8k$-z7r;yI#VOTS?+xfz%asmiq4$Vu)!D+i8$RDr2OmSI#`r;~SJubN56X z#uI2;NVRvvh%8a>1r3a{Wnh6intRRdp(F4Yv9l+dwiWsHXvbu2(+_mZ4>X{pua|BU|LJ}aXmDn$ zbf=KaF&teVgA$zP%!ngIC5hGDQIJYQT&cM~dNvQrKV{)HkzsJjQSLKdpql0mfUd-kEzk!BhgZ)sn#J?`Oi_&$ohFv^3IK6M;u2RL|OZV0; zI}WhRuZ=TRsA_yRT;9l9KlL+2kii`a?cFLN8>B49Xu#7M#KFlioH&y;c%u1osxUZ* z{`TOtw#y+Q`pr$V*oqFJXuelX83}HjUN3l$vsQ=p0Fxu$bj>=W-}xm)&{##^Go^ zc7MlVwS_u^c?3u^Hx=I}oMsx;vXj~I$mz1mR%07s8C}CRQt^C6NGpG5L^3u5MrW|% zLOyUaC6lL1D)aPvkH>unss_tvZN3}nM9f$Re$tp-CuM>`ff9|8R~7Z2U_K)=3$5Z8rLUH!`+)Zl>k6jXuR{)wx;!DC|z=*5(d9i2Bejj z_a1dzeRptzd3s}NeHmeC&!&v)rrHi-v6++?>dkKnmn_u7C-*{e5tSa_YmMELl-j;;F@qvDhKCOgJ|N1(o^LvLSK+tg&Q$xSJgi805W>d|wl4?zG5Er7Hqx%5*uv+hU zwNP4@Asd{5%si&S9T_R|-bz_!dJSioXBv>jF5L#*@ygF(bRaYDVx4!Ult#B0WUz8q zNU}%v!&@|kY7W?et2;LS8BV9Jxn(^W!C5JO!*W&)H^}Yuhi+^7A}D~%qFLhKjp}{Xp|}ATr%z zgJOH6^E%O^n0-DDjUrwtH7(hgY5JJcFeol%e-&w|zG9}cF0%u}KzE@_e%vgoHqdKO zW#aT9{1691SLcp{YJ6lou9*j0a3hQ_qi-n=Zqd^;xYIu4eU452_FS$_1-t7*_nuDh zR&;307L(@uJa>);!N*d8V84*`+7fWcp)1(a%i(_gOU@UyotVt_S?9H{NQnkJ|H)J0 zNR5m$Sh~41?}*24b?ll^sPP&@Gg+~!%zOCvyBxD`;&uZVq3?=(GoMcmFT2BTvhCZO z-`n&y0v%zXG@QWCA3_aH$ZG>Te4EEmF!B&2917>H>cuXnk@LsuZ>cv{b=d&V^^CHE zN~`l+wkRvwOJZq?~Ilso8VHYRzuNfA!Sx!40mpgny-!{^F zi{BV!Rppz}A?`I~i{$z+Xo>Q%`GVKA`}sFNaFnmAX2%6oo7=ac1_^hL)=Sz`(HBoU z9wkgbc>Mg)cL-*jIt~LNGM`4CZfF~z+&H`dVZ zvIJwsQT3xCgJ32tY)~{RAPo^ET3NH`Gj&eTz0iuep)I0T-s);xX2qX*O@^MFUJ!yfu}Sgy~t7x zAz~?ieo4>ml>Pw3X%{(;P<@I|!P;9+1*9R%T%VqPy%*7G0nPYWeyu`3Il)612A3U&JapiFn!eET_L8^F7N{t#dX*WZM6Hc#>f}imPVgD@>1Rv57KoHZ{?Y& zyW5sRy>rdnV+I2FaNHb+oozdAE8Tlu7v~Ajh5(|oK3DK|Z!NDaUrv>OYq#3^J8d`} z{*88YEJ~oeJY24LJ9%+AurhqscJA4d<7*$~qfs7BREl%bi`R?k%iC@{ByDL~fX~Lx zL~nZP;jpN)29xu=_aQVk^M6Do%Wd4OdM+^}Ms=6H#L!gStahn{4MNCTQpRIR7u2Ur zQvhVg8DECeFQ%o_k<^aTzQ6w7E0J(J;9uoERc5J@-+$#`d|!s*5P&G5efx+>ZG!C} z=7sJf_N54+BFX6C+ILaGj{}@RMqRU*5!Mu}|!bVl7_htr;orf6T8xPYf+Os5Uqs#B(;Q<~4!Agnv!;2l3oZzwTC z+Pnumnj0J~5?{q7MO?>FTVBZ~vfsw%wt3|URnXcY7yAHpaej~4-*4GNHX%FiW9=qM z+X>00H|btTX>r#}NP$266fsi_=>k6HY+_BBLkz8See(qkUI=j)uy$j`50ucU+Pw2X`Q>$B(Yy<-5x z|K^$JZ+~mX(EUvpxA>c94*Tz4_Ww;DKN2VW|49?akoXDmH%+`=NurSi8DB?$(k^jN1X1f1t%GUm$sYE;Le-O~c{7==;RrSB)gBzdT1(PTX z{9iw_2I>EEGCj)kPYFL}3irA zf79x$^_|RZZRjl=ZEgO~&jS~~WMkIZ5kF~$GD1MRsm_)d4wQ1hkROB~gX*4!s`!bh ztkHwNJeh>ow6D2D9Z#q@D;f?aI@~>QyEa)qpy=FE3w{I+18bBcvQwC$_1&r@0R$}* zgw&Rw^%3Yk>^8Ci=-7x!<7B4K`z>i=W{x2>=h?qNK7G1^IYP)9u=PFsmsBIOw?Fx= z-ZyP-$A`_EIV;2jFd^jDqi3>qC1SG9n`bO6x?Vvmmst7~4ATr>VR6=8K&^lMe|=na zSXAA&9vVfu8IbOlhM`MJKtMu5I){?3p#-Fn?odf-29WMXQc@ZOi6NAdx+CAu@9OXJ z-1FZ&=Uwk!YwdmZdG=a!-bcYR)F8=pR{_%iW?Wlv6jQizr05ZzF$$Pys=&U7=hcU_ z#yRz2bVvb^KXq#~rdSBo7_Brl&iR^M-3Y(;; z8kIXbiy6>3NpAx6v>vw<($BO3M{l@j@ysTSIUr#V9;=&-QxBVb>hM;SG7i#I&<^QA zCipZcHx_-U8P>r<3f|`Ork7USdN+=|AEj9&No@8bDV8$Fch`N*rc9o1`raipdkWNj zfmCy_5VLesa|S-Dd1WmOCGUDNC4^<;x?!8wUN28yh;DLS)J-^kDT957@cbw^{%TB3M85-LROSV7 z_UbVfWprD;(<-`^jnjy7$W6+ulN-Jyy^orUDFtOx#OCL( zoyI8>)19i+33}FFNCA;! z1TWVa;`KgwIB&?POy-aIzM<}soPt!X#))#eK<5J$*R+WkmQ8ugRF z=fj@x&?^MIOb7lebN);`O0m{ef#mC_$uOLgs|xm;_io>p5Pt8cT`xwy2qOUi=(Xq6|YG`6<>8eLQdvWYs5Yv-Ob??AnZNYN6-Ae2wV71zFXlBjAdzS~a*^)JbvlR%e46mc@Z%1t zzX!QlIahkUA6{!Td}s-Ncxd{TSFU~njqm~aYBY(HWidoocjPPL_!7&DRFM%m&b4T?5e zCWHhnqM|cc=*|YOr16s`$}q%eI~bJT1qbW?CPAUQZ!$zC@BR{wut7e`DOXI82v6Pno?Q(re-BA= zHJvUaY`LxJ!{t^?3~piWZvgO#dPGVkPhb9w!Z*qF{OT@J8>o4&t5E|gmNXiP)cn=Q z5%X~|3@N2{n!Gb%dA_3np@-`Ca+pNEfbmfZ%6s!l8$H8A>v98j%Ys)^U&q#1fmI;y z33fH|Yc~nq3kiuVf~LnYKaJ9o4_&CAmf?g*d_`a@DFHEt1pM?Yr#PV}FGT^+yop>x zWA|$w3OlMSx!eQ4NU?qRgt%}BTf~%KQjVCXd-+&_>Ha~D?C6tnnR4Ooqk+sMX}91f zkKI(Ygkg@4f1LN&jH6mRzW$aBf-a-szD*jqv0b0@Sl&&sC3L#nC&JKkRxbWpT}qSL=V*fjc?5KF z)0XB_c@%KpXqZt9m%Bqj?bWMB(iCz%i+9_8V}^viB(3VzP7J3HEHi_GXv$zNN@NLL zzRzEDod}cBWd%sr?HCxhFdA;ryFKT1m&E(fzn{;i)!mkcY$(su3Reh8d7H2A&>h)q zn7OVZpt^*$7=kYER+cvA&KgJzguGlZ*!G;CYJ1L-0ga-3qg$vI^$g0ET}hwf9v=C! z?rr4Zmq+taVa0?5t`|XWEkzQpQPA9HPKh3TG_E2s4#9cH4(?ZeBh7~3x@Mwx8zw1x zvAd;aY%D>xvzjK{Hr3x_HIId+OjK4+62tfSkRC+(`o*R;1Jc}vC=o1D`yidTD81S; z+}aw3z3SI;SE#-%S(|BAQl_8s_q3uWR{O(ZPhg+OTpLfsdy+j|XfY|rc{QA?)4tlLqI(ySs=PRg1%w1!Z zKe`Os)kRqJKm&e0tPvFWfeg`;5ALds{35rJBtwF|xTgOJ7M!{xzlLW@ghA7LzvaY= z!GIC4d6nuPd~tYePqz>&;4l@Qnt>5Qq2Lmo<}kou%IM5wGgL>7B0cHXz|sHUQ1oqI z&)2a;?si@GDVlqhwJVdv+A^XUF)offBGRae6eohk(XrFsU6C3hXWt+|bGd+Bq`)|b zkKrMxbQ!*qodzgVJn^JS%6=Y%sO4SDs9;(S6;8M3Z@ZP8ZG~PQ>c)WncFBr z$e5xwvxj`tP3RJ&$3P0HFt_Q6S?ieO$`MOU?o(D?KXx2anXOU!F1OECFiNYnu;AUW zgkClHsW<*z+m>Pq=@qEZj2ulU^5r~HFMFYiaFrr>x z2puN)bE_^BQLtDi)wjA838##p<$}z{tPGVD@*?YwFy#UZ3nxCvKnz2>H}QS-&53$z zmz~Z~W=`(rNTl3cbxzKUgQ}6Z#>yB9|8fZ=kWPtG6B$~=FOiV@W@(y&r0LZ`*{?F6 z9D@Vsp1}1o7Q?E zH1_-Uu};Rk@U;oVqVmQfCjKaEJqZbIijYjEXgPVoIJz5eF7v&wh{wUkiw4X|W3T-A z_nysFD88^{nv|C=eWT7&FVi)M@*@uFr4#Kku6f}u%{D8ZzJY{ zR7B9-+A8lM2h$WX%jJ}Y@AGC#)t#{fYW2)XbFz<4p|!6-`jUC#royl_#@v_#0J6^) zo%zolTKc~l&-;+Bv0xQ&`W?&NpuSr_whJpRVmdK2+{`+ZO_C~6BCP13F_NU+P4j;G zr8?dqJ5rg2g0^Lm!SM0251xa2bq<*ogyEDNgjhIJyiAmHzNGxR`1oy;!fS@|R#>19 zQ%~*rQuPZL$f#j7G@G0V5%**BQ{%dylfw*ezRKqryC~by4Ii--9rpH2k6E|*9ESvd z;hLOUS9kN}{%pCz>c2pG^Wqi|iATbiqU7YrdXFL@2)!7l45xhr6vS~F;q&P(? zgS=KB(d$k;(x8p59BEf?p7IHcuWDWXDiUL-xJc_q1vs{KEArlP4nNzr z;l!%hnHu=uIDk-w8k#DKY?SyiVuBC6trlz`DTvEB5w28V z(h5#4urmcwNJ~Fh#o8TLWveL4%H$CE^i;BS6b+TGL$xgeb8hoRx5ouhy0^dMT=u1d zcoD=S<%kaZiuw9MA4pZjJ)FilFpqaYG)@Leprw@-ER}DbohTH_iKAdeq%=w}n-WQf zPcPp_ByI7?yzNqvI9NG995YsiCB7C>9$jpZtYNe(v6gR78NZhF;}|;=i97?eyhpQv ziC>#S6io&EsYRYZ!ImL@kl^qbB*7kW3W7*(7JIu8HQ1U;w`W1DEBb%LBUG|2eD{ek ztqT*;G{$1p-UJ{S4ik;dE`pM8f>Kbq2Zb;QXVYEhu;**U3M;u;8L{DTCku(987l znap!L($#X-q!44pcW)xc96Pij1-XYoc}@g`7g-o0v|}AaLc3j6pP{(nqk(YJw(UU=WwV^Fdaesqzni#rYx;1-CkyF|Ypak-E1Y_1muDwC*L|ARGZ8EoJ7O#34QB+s6nl`fpx+%wrTxgq8DUaI1htX zOF&V055I0m=_bso{=uFZiq+Kpd0YVt4vp=ZP+Tl1-U05VH0DiH@qSD($5Dcg$D7BV z0kMf#_JQ=2YA{PKv#ddLus+kCZIAO1&Ese7`hZlOtg1L29b1QeBxK(>*h-AcbUDUF z0*pqbEot9PD>go9lLcpl=^e!G0HaM@CDy9SE356S4Dpp~qI{Vjh7noHN*>5ldSY_L zv&GF7Wh<`K->hACbmsW8dQKl<@j;A`*x$VQ1fNI@Y&MAT9v;`B<%)YIxJH>%l^E|;Q18q=5w73AZEq7 za^3Yu$_HNLi27p3LD4J_kE8--{q&R=3=(tmVmb@0tgtil*_tsPw;3BooALan3Zt*W z%HzFvrpKG<~uJLhQ;|?bR-XWOUfZ zFt!rtkC#>YP1)2w3D0lMc51;ty3B{}Dv(2pmNoYW7tqjVoH|QRilU9!?b9tE9IX3kn9_wygbXfpqKfd5tKJo?UbE0FQ-4Yz717tX8Aui82f(V1k<(bIy@sp0yq9z8oDTY?Z z3B7Cdx@S>^2P1RkWgAGv{7ViRn)y$ot%=5Sjdq2n8j(V;uFtPR#Q{;= z!n8hX>QR(e6}7-?AO9pWk=Ij+8eSLaL;RIU1VjR)e`Qj2|5x24KK7U$|CeOyZ^-ZJ z^XM^<${H?!@?Y{M|M2_;GF)8c_f;D}kNe9qegKyY{~tw_zsXh3feZrT|F~;y>R|tuCd>Z@|7#sZ zp92xC#N$iOnYHd<`c)_T_rmzs1suSQ}4Y)Og zw*v0u23-OXDMN1|$1!+!a{D_y5kZ0TV*j6f)JNSK!W#&8a>L-OfnS$0uV7}I9U_{f&TWD@Za0WpH<+$-4mMs>lyz4 z8!~^=!qug9|9m%L{U=wDUzw`T_%+gn?hzjXPR=%1