From 653ba7e9578120d832f2db7a40ddf64ff66fc8cb Mon Sep 17 00:00:00 2001 From: Michael Hallett Date: Fri, 10 Oct 2014 10:23:13 -0700 Subject: [PATCH 1/2] Line ending inconsistencies --- RestSharp/Http.Async.cs | 826 +++++++++++++++++----------------- RestSharp/Http.Sync.cs | 558 +++++++++++------------ RestSharp/Http.cs | 6 +- RestSharp/IHttp.cs | 4 +- RestSharp/RestClient.Async.cs | 32 +- RestSharp/RestClient.Sync.cs | 32 +- 6 files changed, 729 insertions(+), 729 deletions(-) diff --git a/RestSharp/Http.Async.cs b/RestSharp/Http.Async.cs index 4ccc7ed11..11235fb69 100644 --- a/RestSharp/Http.Async.cs +++ b/RestSharp/Http.Async.cs @@ -31,430 +31,430 @@ #if (FRAMEWORK && !MONOTOUCH && !MONODROID && !PocketPC) using System.Web; -#endif - -namespace RestSharp -{ - /// - /// HttpWebRequest wrapper (async methods) - /// - public partial class Http - { - private TimeOutState _timeoutState; - - public HttpWebRequest DeleteAsync(Action action) - { - return GetStyleMethodInternalAsync("DELETE", action); - } - - public HttpWebRequest GetAsync(Action action) - { - return GetStyleMethodInternalAsync("GET", action); - } - - public HttpWebRequest HeadAsync(Action action) - { - return GetStyleMethodInternalAsync("HEAD", action); - } - - public HttpWebRequest OptionsAsync(Action action) - { - return GetStyleMethodInternalAsync("OPTIONS", action); - } - - public HttpWebRequest PostAsync(Action action) - { - return PutPostInternalAsync("POST", action); - } - - public HttpWebRequest PutAsync(Action action) - { - return PutPostInternalAsync("PUT", action); - } - - public HttpWebRequest PatchAsync(Action action) - { - return PutPostInternalAsync("PATCH", action); - } - - public HttpWebRequest MergeAsync(Action action) - { - return PutPostInternalAsync("MERGE", action); - } - - /// - /// Execute an async POST-style request with the specified HTTP Method. - /// - /// The HTTP method to execute. - /// - public HttpWebRequest AsPostAsync(Action action, string httpMethod) - { +#endif + +namespace RestSharp +{ + /// + /// HttpWebRequest wrapper (async methods) + /// + public partial class Http + { + private TimeOutState _timeoutState; + + public HttpWebRequest DeleteAsync(Action action) + { + return GetStyleMethodInternalAsync("DELETE", action); + } + + public HttpWebRequest GetAsync(Action action) + { + return GetStyleMethodInternalAsync("GET", action); + } + + public HttpWebRequest HeadAsync(Action action) + { + return GetStyleMethodInternalAsync("HEAD", action); + } + + public HttpWebRequest OptionsAsync(Action action) + { + return GetStyleMethodInternalAsync("OPTIONS", action); + } + + public HttpWebRequest PostAsync(Action action) + { + return PutPostInternalAsync("POST", action); + } + + public HttpWebRequest PutAsync(Action action) + { + return PutPostInternalAsync("PUT", action); + } + + public HttpWebRequest PatchAsync(Action action) + { + return PutPostInternalAsync("PATCH", action); + } + + public HttpWebRequest MergeAsync(Action action) + { + return PutPostInternalAsync("MERGE", action); + } + + /// + /// Execute an async POST-style request with the specified HTTP Method. + /// + /// The HTTP method to execute. + /// + public HttpWebRequest AsPostAsync(Action action, string httpMethod) + { #if PocketPC return PutPostInternalAsync(httpMethod.ToUpper(), action); -#else - return PutPostInternalAsync(httpMethod.ToUpperInvariant(), action); -#endif - } - - /// - /// Execute an async GET-style request with the specified HTTP Method. - /// - /// The HTTP method to execute. - /// - public HttpWebRequest AsGetAsync(Action action, string httpMethod) - { +#else + return PutPostInternalAsync(httpMethod.ToUpperInvariant(), action); +#endif + } + + /// + /// Execute an async GET-style request with the specified HTTP Method. + /// + /// The HTTP method to execute. + /// + public HttpWebRequest AsGetAsync(Action action, string httpMethod) + { #if PocketPC return GetStyleMethodInternalAsync(httpMethod.ToUpper(), action); -#else - return GetStyleMethodInternalAsync(httpMethod.ToUpperInvariant(), action); -#endif - } - - private HttpWebRequest GetStyleMethodInternalAsync(string method, Action callback) - { - HttpWebRequest webRequest = null; - try - { - var url = Url; - webRequest = ConfigureAsyncWebRequest(method, url); - if (HasBody && (method == "DELETE" || method == "OPTIONS")) - { - webRequest.ContentType = RequestContentType; - WriteRequestBodyAsync(webRequest, callback); - } - else - { - _timeoutState = new TimeOutState { Request = webRequest }; - var asyncResult = webRequest.BeginGetResponse(result => ResponseCallback(result, callback), webRequest); - SetTimeout(asyncResult, _timeoutState); - } - } - catch (Exception ex) - { - ExecuteCallback(CreateErrorResponse(ex), callback); - } - return webRequest; - } - - private HttpResponse CreateErrorResponse(Exception ex) - { - var response = new HttpResponse(); - var webException = ex as WebException; - if (webException != null && webException.Status == WebExceptionStatus.RequestCanceled) - { - response.ResponseStatus = _timeoutState.TimedOut ? ResponseStatus.TimedOut : ResponseStatus.Aborted; - return response; - } - - response.ErrorMessage = ex.Message; - response.ErrorException = ex; - response.ResponseStatus = ResponseStatus.Error; - return response; - } - - private HttpWebRequest PutPostInternalAsync(string method, Action callback) - { - HttpWebRequest webRequest = null; - try - { - webRequest = ConfigureAsyncWebRequest(method, Url); - PreparePostBody(webRequest); - WriteRequestBodyAsync(webRequest, callback); - } - catch (Exception ex) - { - ExecuteCallback(CreateErrorResponse(ex), callback); - } - - return webRequest; - } - - private void WriteRequestBodyAsync(HttpWebRequest webRequest, Action callback) - { - IAsyncResult asyncResult; - _timeoutState = new TimeOutState { Request = webRequest }; - - if (HasBody || HasFiles || AlwaysMultipartFormData) - { -#if !WINDOWS_PHONE && !PocketPC - webRequest.ContentLength = CalculateContentLength(); -#endif - asyncResult = webRequest.BeginGetRequestStream(result => RequestStreamCallback(result, callback), webRequest); - } - - else - { - asyncResult = webRequest.BeginGetResponse(r => ResponseCallback(r, callback), webRequest); - } - - SetTimeout(asyncResult, _timeoutState); - } - - private long CalculateContentLength() - { - if (RequestBodyBytes != null) - return RequestBodyBytes.Length; - - if (!HasFiles && !AlwaysMultipartFormData) - { - return _defaultEncoding.GetByteCount(RequestBody); - } - - // calculate length for multipart form - long length = 0; - foreach (var file in Files) - { - length += _defaultEncoding.GetByteCount(GetMultipartFileHeader(file)); - length += file.ContentLength; - length += _defaultEncoding.GetByteCount(_lineBreak); - } - - foreach (var param in Parameters) - { - length += _defaultEncoding.GetByteCount(GetMultipartFormData(param)); - } - - length += _defaultEncoding.GetByteCount(GetMultipartFooter()); - return length; - } - - private void RequestStreamCallback(IAsyncResult result, Action callback) - { - var webRequest = (HttpWebRequest)result.AsyncState; - - if (_timeoutState.TimedOut) - { - var response = new HttpResponse { ResponseStatus = ResponseStatus.TimedOut }; - ExecuteCallback(response, callback); - return; - } - - // write body to request stream - try - { - using (var requestStream = webRequest.EndGetRequestStream(result)) - { - if (HasFiles || AlwaysMultipartFormData) - { - WriteMultipartFormData(requestStream); - } - else if (RequestBodyBytes != null) - { - requestStream.Write(RequestBodyBytes, 0, RequestBodyBytes.Length); - } - else - { - WriteStringTo(requestStream, RequestBody); - } - } - } - catch (Exception ex) - { - ExecuteCallback(CreateErrorResponse(ex), callback); - return; - } - - IAsyncResult asyncResult = webRequest.BeginGetResponse(r => ResponseCallback(r, callback), webRequest); - SetTimeout(asyncResult, _timeoutState); - } - - private void SetTimeout(IAsyncResult asyncResult, TimeOutState timeOutState) - { -#if FRAMEWORK && !PocketPC - if (Timeout != 0) - { - ThreadPool.RegisterWaitForSingleObject(asyncResult.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), timeOutState, Timeout, true); - } -#endif - } - - private static void TimeoutCallback(object state, bool timedOut) - { - if (!timedOut) - return; - - var timeoutState = state as TimeOutState; - - if (timeoutState == null) - { - return; - } - - lock (timeoutState) - { - timeoutState.TimedOut = true; - } - - if (timeoutState.Request != null) - { - timeoutState.Request.Abort(); - } - } - - private static void GetRawResponseAsync(IAsyncResult result, Action callback) - { - var response = new HttpResponse(); - response.ResponseStatus = ResponseStatus.None; - - HttpWebResponse raw = null; - - try - { - var webRequest = (HttpWebRequest)result.AsyncState; - raw = webRequest.EndGetResponse(result) as HttpWebResponse; - } - catch (WebException ex) - { - if (ex.Status == WebExceptionStatus.RequestCanceled) - { - throw ex; - } - - // Check to see if this is an HTTP error or a transport error. - // In cases where an HTTP error occurs ( status code >= 400 ) - // return the underlying HTTP response, otherwise assume a - // transport exception (ex: connection timeout) and - // rethrow the exception - - if (ex.Response is HttpWebResponse) - { - raw = ex.Response as HttpWebResponse; - } - else - { - throw ex; - } - } - - callback(raw); - raw.Close(); - } - - private void ResponseCallback(IAsyncResult result, Action callback) - { - var response = new HttpResponse { ResponseStatus = ResponseStatus.None }; - - try - { - if (_timeoutState.TimedOut) - { - response.ResponseStatus = ResponseStatus.TimedOut; - ExecuteCallback(response, callback); - return; - } - - GetRawResponseAsync(result, webResponse => - { - ExtractResponseData(response, webResponse); - ExecuteCallback(response, callback); - }); - } - catch (Exception ex) - { - ExecuteCallback(CreateErrorResponse(ex), callback); - } - } - - private static void ExecuteCallback(HttpResponse response, Action callback) - { - callback(response); - } - - partial void AddAsyncHeaderActions() - { +#else + return GetStyleMethodInternalAsync(httpMethod.ToUpperInvariant(), action); +#endif + } + + private HttpWebRequest GetStyleMethodInternalAsync(string method, Action callback) + { + HttpWebRequest webRequest = null; + try + { + var url = Url; + webRequest = ConfigureAsyncWebRequest(method, url); + if (HasBody && (method == "DELETE" || method == "OPTIONS")) + { + webRequest.ContentType = RequestContentType; + WriteRequestBodyAsync(webRequest, callback); + } + else + { + _timeoutState = new TimeOutState { Request = webRequest }; + var asyncResult = webRequest.BeginGetResponse(result => ResponseCallback(result, callback), webRequest); + SetTimeout(asyncResult, _timeoutState); + } + } + catch (Exception ex) + { + ExecuteCallback(CreateErrorResponse(ex), callback); + } + return webRequest; + } + + private HttpResponse CreateErrorResponse(Exception ex) + { + var response = new HttpResponse(); + var webException = ex as WebException; + if (webException != null && webException.Status == WebExceptionStatus.RequestCanceled) + { + response.ResponseStatus = _timeoutState.TimedOut ? ResponseStatus.TimedOut : ResponseStatus.Aborted; + return response; + } + + response.ErrorMessage = ex.Message; + response.ErrorException = ex; + response.ResponseStatus = ResponseStatus.Error; + return response; + } + + private HttpWebRequest PutPostInternalAsync(string method, Action callback) + { + HttpWebRequest webRequest = null; + try + { + webRequest = ConfigureAsyncWebRequest(method, Url); + PreparePostBody(webRequest); + WriteRequestBodyAsync(webRequest, callback); + } + catch (Exception ex) + { + ExecuteCallback(CreateErrorResponse(ex), callback); + } + + return webRequest; + } + + private void WriteRequestBodyAsync(HttpWebRequest webRequest, Action callback) + { + IAsyncResult asyncResult; + _timeoutState = new TimeOutState { Request = webRequest }; + + if (HasBody || HasFiles || AlwaysMultipartFormData) + { +#if !WINDOWS_PHONE && !PocketPC + webRequest.ContentLength = CalculateContentLength(); +#endif + asyncResult = webRequest.BeginGetRequestStream(result => RequestStreamCallback(result, callback), webRequest); + } + + else + { + asyncResult = webRequest.BeginGetResponse(r => ResponseCallback(r, callback), webRequest); + } + + SetTimeout(asyncResult, _timeoutState); + } + + private long CalculateContentLength() + { + if (RequestBodyBytes != null) + return RequestBodyBytes.Length; + + if (!HasFiles && !AlwaysMultipartFormData) + { + return _defaultEncoding.GetByteCount(RequestBody); + } + + // calculate length for multipart form + long length = 0; + foreach (var file in Files) + { + length += _defaultEncoding.GetByteCount(GetMultipartFileHeader(file)); + length += file.ContentLength; + length += _defaultEncoding.GetByteCount(_lineBreak); + } + + foreach (var param in Parameters) + { + length += _defaultEncoding.GetByteCount(GetMultipartFormData(param)); + } + + length += _defaultEncoding.GetByteCount(GetMultipartFooter()); + return length; + } + + private void RequestStreamCallback(IAsyncResult result, Action callback) + { + var webRequest = (HttpWebRequest)result.AsyncState; + + if (_timeoutState.TimedOut) + { + var response = new HttpResponse { ResponseStatus = ResponseStatus.TimedOut }; + ExecuteCallback(response, callback); + return; + } + + // write body to request stream + try + { + using (var requestStream = webRequest.EndGetRequestStream(result)) + { + if (HasFiles || AlwaysMultipartFormData) + { + WriteMultipartFormData(requestStream); + } + else if (RequestBodyBytes != null) + { + requestStream.Write(RequestBodyBytes, 0, RequestBodyBytes.Length); + } + else + { + WriteStringTo(requestStream, RequestBody); + } + } + } + catch (Exception ex) + { + ExecuteCallback(CreateErrorResponse(ex), callback); + return; + } + + IAsyncResult asyncResult = webRequest.BeginGetResponse(r => ResponseCallback(r, callback), webRequest); + SetTimeout(asyncResult, _timeoutState); + } + + private void SetTimeout(IAsyncResult asyncResult, TimeOutState timeOutState) + { +#if FRAMEWORK && !PocketPC + if (Timeout != 0) + { + ThreadPool.RegisterWaitForSingleObject(asyncResult.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), timeOutState, Timeout, true); + } +#endif + } + + private static void TimeoutCallback(object state, bool timedOut) + { + if (!timedOut) + return; + + var timeoutState = state as TimeOutState; + + if (timeoutState == null) + { + return; + } + + lock (timeoutState) + { + timeoutState.TimedOut = true; + } + + if (timeoutState.Request != null) + { + timeoutState.Request.Abort(); + } + } + + private static void GetRawResponseAsync(IAsyncResult result, Action callback) + { + var response = new HttpResponse(); + response.ResponseStatus = ResponseStatus.None; + + HttpWebResponse raw = null; + + try + { + var webRequest = (HttpWebRequest)result.AsyncState; + raw = webRequest.EndGetResponse(result) as HttpWebResponse; + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.RequestCanceled) + { + throw ex; + } + + // Check to see if this is an HTTP error or a transport error. + // In cases where an HTTP error occurs ( status code >= 400 ) + // return the underlying HTTP response, otherwise assume a + // transport exception (ex: connection timeout) and + // rethrow the exception + + if (ex.Response is HttpWebResponse) + { + raw = ex.Response as HttpWebResponse; + } + else + { + throw ex; + } + } + + callback(raw); + raw.Close(); + } + + private void ResponseCallback(IAsyncResult result, Action callback) + { + var response = new HttpResponse { ResponseStatus = ResponseStatus.None }; + + try + { + if (_timeoutState.TimedOut) + { + response.ResponseStatus = ResponseStatus.TimedOut; + ExecuteCallback(response, callback); + return; + } + + GetRawResponseAsync(result, webResponse => + { + ExtractResponseData(response, webResponse); + ExecuteCallback(response, callback); + }); + } + catch (Exception ex) + { + ExecuteCallback(CreateErrorResponse(ex), callback); + } + } + + private static void ExecuteCallback(HttpResponse response, Action callback) + { + callback(response); + } + + partial void AddAsyncHeaderActions() + { #if SILVERLIGHT _restrictedHeaderActions.Add("Content-Length", (r, v) => r.ContentLength = Convert.ToInt64(v)); -#endif +#endif #if WINDOWS_PHONE // WP7 doesn't as of Beta doesn't support a way to set Content-Length either directly // or indirectly _restrictedHeaderActions.Add("Content-Length", (r, v) => { }); -#endif - } - - // TODO: Try to merge the shared parts between ConfigureWebRequest and ConfigureAsyncWebRequest (quite a bit of code - // TODO: duplication at the moment). - private HttpWebRequest ConfigureAsyncWebRequest(string method, Uri url) - { +#endif + } + + // TODO: Try to merge the shared parts between ConfigureWebRequest and ConfigureAsyncWebRequest (quite a bit of code + // TODO: duplication at the moment). + private HttpWebRequest ConfigureAsyncWebRequest(string method, Uri url) + { #if SILVERLIGHT WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp); WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp); -#endif - var webRequest = (HttpWebRequest)WebRequest.Create(url); -#if !PocketPC - webRequest.UseDefaultCredentials = UseDefaultCredentials; -#endif - -#if !WINDOWS_PHONE && !SILVERLIGHT - webRequest.PreAuthenticate = PreAuthenticate; -#endif - AppendHeaders(webRequest); - AppendCookies(webRequest); - - webRequest.Method = method; - - // make sure Content-Length header is always sent since default is -1 -#if !WINDOWS_PHONE && !PocketPC - // WP7 doesn't as of Beta doesn't support a way to set this value either directly - // or indirectly - if (!HasFiles && !AlwaysMultipartFormData) - { - webRequest.ContentLength = 0; - } -#endif - - if (Credentials != null) - { - webRequest.Credentials = Credentials; - } - -#if !SILVERLIGHT - if (UserAgent.HasValue()) - { - webRequest.UserAgent = UserAgent; - } -#endif - -#if FRAMEWORK - if (ClientCertificates != null) - { - webRequest.ClientCertificates.AddRange(ClientCertificates); - } - - webRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None; - ServicePointManager.Expect100Continue = false; - - if (Timeout != 0) - { - webRequest.Timeout = Timeout; - } - - if (ReadWriteTimeout != 0) - { - webRequest.ReadWriteTimeout = ReadWriteTimeout; - } - - if (Proxy != null) - { - webRequest.Proxy = Proxy; - } - - if (FollowRedirects && MaxRedirects.HasValue) - { - webRequest.MaximumAutomaticRedirections = MaxRedirects.Value; - } -#endif - -#if !SILVERLIGHT - webRequest.AllowAutoRedirect = FollowRedirects; -#endif - return webRequest; - } - - private class TimeOutState - { - public bool TimedOut { get; set; } - public HttpWebRequest Request { get; set; } - } - } +#endif + var webRequest = (HttpWebRequest)WebRequest.Create(url); +#if !PocketPC + webRequest.UseDefaultCredentials = UseDefaultCredentials; +#endif + +#if !WINDOWS_PHONE && !SILVERLIGHT + webRequest.PreAuthenticate = PreAuthenticate; +#endif + AppendHeaders(webRequest); + AppendCookies(webRequest); + + webRequest.Method = method; + + // make sure Content-Length header is always sent since default is -1 +#if !WINDOWS_PHONE && !PocketPC + // WP7 doesn't as of Beta doesn't support a way to set this value either directly + // or indirectly + if (!HasFiles && !AlwaysMultipartFormData) + { + webRequest.ContentLength = 0; + } +#endif + + if (Credentials != null) + { + webRequest.Credentials = Credentials; + } + +#if !SILVERLIGHT + if (UserAgent.HasValue()) + { + webRequest.UserAgent = UserAgent; + } +#endif + +#if FRAMEWORK + if (ClientCertificates != null) + { + webRequest.ClientCertificates.AddRange(ClientCertificates); + } + + webRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None; + ServicePointManager.Expect100Continue = false; + + if (Timeout != 0) + { + webRequest.Timeout = Timeout; + } + + if (ReadWriteTimeout != 0) + { + webRequest.ReadWriteTimeout = ReadWriteTimeout; + } + + if (Proxy != null) + { + webRequest.Proxy = Proxy; + } + + if (FollowRedirects && MaxRedirects.HasValue) + { + webRequest.MaximumAutomaticRedirections = MaxRedirects.Value; + } +#endif + +#if !SILVERLIGHT + webRequest.AllowAutoRedirect = FollowRedirects; +#endif + return webRequest; + } + + private class TimeOutState + { + public bool TimedOut { get; set; } + public HttpWebRequest Request { get; set; } + } + } } \ No newline at end of file diff --git a/RestSharp/Http.Sync.cs b/RestSharp/Http.Sync.cs index 09a3acf49..ee1c782ec 100644 --- a/RestSharp/Http.Sync.cs +++ b/RestSharp/Http.Sync.cs @@ -22,288 +22,288 @@ using System.Web; #endif -using RestSharp.Extensions; - -namespace RestSharp -{ - /// - /// HttpWebRequest wrapper (sync methods) - /// - public partial class Http - { - /// - /// Execute a POST request - /// - public HttpResponse Post() - { - return PostPutInternal("POST"); - } - - /// - /// Execute a PUT request - /// - public HttpResponse Put() - { - return PostPutInternal("PUT"); - } - - /// - /// Execute a GET request - /// - public HttpResponse Get() - { - return GetStyleMethodInternal("GET"); - } - - /// - /// Execute a HEAD request - /// - public HttpResponse Head() - { - return GetStyleMethodInternal("HEAD"); - } - - /// - /// Execute an OPTIONS request - /// - public HttpResponse Options() - { - return GetStyleMethodInternal("OPTIONS"); - } - - /// - /// Execute a DELETE request - /// - public HttpResponse Delete() - { - return GetStyleMethodInternal("DELETE"); - } - - /// - /// Execute a PATCH request - /// - public HttpResponse Patch() - { - return PostPutInternal("PATCH"); - } - - /// - /// Execute a MERGE request - /// - public HttpResponse Merge() - { - return PostPutInternal("MERGE"); - } - - /// - /// Execute a GET-style request with the specified HTTP Method. - /// - /// The HTTP method to execute. - /// - public HttpResponse AsGet(string httpMethod) - { +using RestSharp.Extensions; + +namespace RestSharp +{ + /// + /// HttpWebRequest wrapper (sync methods) + /// + public partial class Http + { + /// + /// Execute a POST request + /// + public HttpResponse Post() + { + return PostPutInternal("POST"); + } + + /// + /// Execute a PUT request + /// + public HttpResponse Put() + { + return PostPutInternal("PUT"); + } + + /// + /// Execute a GET request + /// + public HttpResponse Get() + { + return GetStyleMethodInternal("GET"); + } + + /// + /// Execute a HEAD request + /// + public HttpResponse Head() + { + return GetStyleMethodInternal("HEAD"); + } + + /// + /// Execute an OPTIONS request + /// + public HttpResponse Options() + { + return GetStyleMethodInternal("OPTIONS"); + } + + /// + /// Execute a DELETE request + /// + public HttpResponse Delete() + { + return GetStyleMethodInternal("DELETE"); + } + + /// + /// Execute a PATCH request + /// + public HttpResponse Patch() + { + return PostPutInternal("PATCH"); + } + + /// + /// Execute a MERGE request + /// + public HttpResponse Merge() + { + return PostPutInternal("MERGE"); + } + + /// + /// Execute a GET-style request with the specified HTTP Method. + /// + /// The HTTP method to execute. + /// + public HttpResponse AsGet(string httpMethod) + { #if PocketPC return GetStyleMethodInternal(httpMethod.ToUpper()); -#else - return GetStyleMethodInternal(httpMethod.ToUpperInvariant()); -#endif - } - - /// - /// Execute a POST-style request with the specified HTTP Method. - /// - /// The HTTP method to execute. - /// - public HttpResponse AsPost(string httpMethod) - { +#else + return GetStyleMethodInternal(httpMethod.ToUpperInvariant()); +#endif + } + + /// + /// Execute a POST-style request with the specified HTTP Method. + /// + /// The HTTP method to execute. + /// + public HttpResponse AsPost(string httpMethod) + { #if PocketPC return PostPutInternal(httpMethod.ToUpper()); -#else - return PostPutInternal(httpMethod.ToUpperInvariant()); -#endif - } - - private HttpResponse GetStyleMethodInternal(string method) - { - var webRequest = ConfigureWebRequest(method, Url); - - if (HasBody && (method == "DELETE" || method == "OPTIONS")) - { - webRequest.ContentType = RequestContentType; - WriteRequestBody(webRequest); - } - - return GetResponse(webRequest); - } - - private HttpResponse PostPutInternal(string method) - { - var webRequest = ConfigureWebRequest(method, Url); - - PreparePostData(webRequest); - - WriteRequestBody(webRequest); - return GetResponse(webRequest); - } - - partial void AddSyncHeaderActions() - { - _restrictedHeaderActions.Add("Connection", (r, v) => r.Connection = v); - _restrictedHeaderActions.Add("Content-Length", (r, v) => r.ContentLength = Convert.ToInt64(v)); - _restrictedHeaderActions.Add("Expect", (r, v) => r.Expect = v); - _restrictedHeaderActions.Add("If-Modified-Since", (r, v) => r.IfModifiedSince = Convert.ToDateTime(v)); - _restrictedHeaderActions.Add("Referer", (r, v) => r.Referer = v); - _restrictedHeaderActions.Add("Transfer-Encoding", (r, v) => { r.TransferEncoding = v; r.SendChunked = true; }); - _restrictedHeaderActions.Add("User-Agent", (r, v) => r.UserAgent = v); - } - - private void ExtractErrorResponse(HttpResponse httpResponse, Exception ex) - { - var webException = ex as WebException; - - if (webException != null && webException.Status == WebExceptionStatus.Timeout) - { - httpResponse.ResponseStatus = ResponseStatus.TimedOut; - httpResponse.ErrorMessage = ex.Message; - httpResponse.ErrorException = webException; - return; - } - - httpResponse.ErrorMessage = ex.Message; - httpResponse.ErrorException = ex; - httpResponse.ResponseStatus = ResponseStatus.Error; - } - - private HttpResponse GetResponse(HttpWebRequest request) - { - var response = new HttpResponse { ResponseStatus = ResponseStatus.None }; - - try - { - var webResponse = GetRawResponse(request); - ExtractResponseData(response, webResponse); - } - catch (Exception ex) - { - ExtractErrorResponse(response, ex); - } - - return response; - } - - private static HttpWebResponse GetRawResponse(HttpWebRequest request) - { - try - { - return (HttpWebResponse)request.GetResponse(); - } - catch (WebException ex) - { - // Check to see if this is an HTTP error or a transport error. - // In cases where an HTTP error occurs ( status code >= 400 ) - // return the underlying HTTP response, otherwise assume a - // transport exception (ex: connection timeout) and - // rethrow the exception - - if (ex.Response is HttpWebResponse) - { - return ex.Response as HttpWebResponse; - } - throw; - } - } - - private void PreparePostData(HttpWebRequest webRequest) - { - if (HasFiles || AlwaysMultipartFormData) - { - webRequest.ContentType = GetMultipartFormContentType(); - using (var requestStream = webRequest.GetRequestStream()) - { - WriteMultipartFormData(requestStream); - } - } - - PreparePostBody(webRequest); - } - - private void WriteRequestBody(HttpWebRequest webRequest) - { - if (!HasBody) - return; - - var bytes = RequestBodyBytes == null ? _defaultEncoding.GetBytes(RequestBody) : RequestBodyBytes; - - webRequest.ContentLength = bytes.Length; - - using (var requestStream = webRequest.GetRequestStream()) - { - requestStream.Write(bytes, 0, bytes.Length); - } - } - - // TODO: Try to merge the shared parts between ConfigureWebRequest and ConfigureAsyncWebRequest (quite a bit of code - // TODO: duplication at the moment). - private HttpWebRequest ConfigureWebRequest(string method, Uri url) - { - var webRequest = (HttpWebRequest)WebRequest.Create(url); -#if !PocketPC - webRequest.UseDefaultCredentials = UseDefaultCredentials; -#endif - webRequest.PreAuthenticate = PreAuthenticate; - ServicePointManager.Expect100Continue = false; - - AppendHeaders(webRequest); - AppendCookies(webRequest); - - webRequest.Method = method; - - // make sure Content-Length header is always sent since default is -1 - if (!HasFiles && !AlwaysMultipartFormData) - { - webRequest.ContentLength = 0; - } - - webRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None; -#if FRAMEWORK - if (ClientCertificates != null) - { - webRequest.ClientCertificates.AddRange(ClientCertificates); - } -#endif - if (UserAgent.HasValue()) - { - webRequest.UserAgent = UserAgent; - } - - if (Timeout != 0) - { - webRequest.Timeout = Timeout; - } - - if (ReadWriteTimeout != 0) - { - webRequest.ReadWriteTimeout = ReadWriteTimeout; - } - - if (Credentials != null) - { - webRequest.Credentials = Credentials; - } - - if (Proxy != null) - { - webRequest.Proxy = Proxy; - } - - webRequest.AllowAutoRedirect = FollowRedirects; - if (FollowRedirects && MaxRedirects.HasValue) - { - webRequest.MaximumAutomaticRedirections = MaxRedirects.Value; - } - - return webRequest; - } - } +#else + return PostPutInternal(httpMethod.ToUpperInvariant()); +#endif + } + + private HttpResponse GetStyleMethodInternal(string method) + { + var webRequest = ConfigureWebRequest(method, Url); + + if (HasBody && (method == "DELETE" || method == "OPTIONS")) + { + webRequest.ContentType = RequestContentType; + WriteRequestBody(webRequest); + } + + return GetResponse(webRequest); + } + + private HttpResponse PostPutInternal(string method) + { + var webRequest = ConfigureWebRequest(method, Url); + + PreparePostData(webRequest); + + WriteRequestBody(webRequest); + return GetResponse(webRequest); + } + + partial void AddSyncHeaderActions() + { + _restrictedHeaderActions.Add("Connection", (r, v) => r.Connection = v); + _restrictedHeaderActions.Add("Content-Length", (r, v) => r.ContentLength = Convert.ToInt64(v)); + _restrictedHeaderActions.Add("Expect", (r, v) => r.Expect = v); + _restrictedHeaderActions.Add("If-Modified-Since", (r, v) => r.IfModifiedSince = Convert.ToDateTime(v)); + _restrictedHeaderActions.Add("Referer", (r, v) => r.Referer = v); + _restrictedHeaderActions.Add("Transfer-Encoding", (r, v) => { r.TransferEncoding = v; r.SendChunked = true; }); + _restrictedHeaderActions.Add("User-Agent", (r, v) => r.UserAgent = v); + } + + private void ExtractErrorResponse(HttpResponse httpResponse, Exception ex) + { + var webException = ex as WebException; + + if (webException != null && webException.Status == WebExceptionStatus.Timeout) + { + httpResponse.ResponseStatus = ResponseStatus.TimedOut; + httpResponse.ErrorMessage = ex.Message; + httpResponse.ErrorException = webException; + return; + } + + httpResponse.ErrorMessage = ex.Message; + httpResponse.ErrorException = ex; + httpResponse.ResponseStatus = ResponseStatus.Error; + } + + private HttpResponse GetResponse(HttpWebRequest request) + { + var response = new HttpResponse { ResponseStatus = ResponseStatus.None }; + + try + { + var webResponse = GetRawResponse(request); + ExtractResponseData(response, webResponse); + } + catch (Exception ex) + { + ExtractErrorResponse(response, ex); + } + + return response; + } + + private static HttpWebResponse GetRawResponse(HttpWebRequest request) + { + try + { + return (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + // Check to see if this is an HTTP error or a transport error. + // In cases where an HTTP error occurs ( status code >= 400 ) + // return the underlying HTTP response, otherwise assume a + // transport exception (ex: connection timeout) and + // rethrow the exception + + if (ex.Response is HttpWebResponse) + { + return ex.Response as HttpWebResponse; + } + throw; + } + } + + private void PreparePostData(HttpWebRequest webRequest) + { + if (HasFiles || AlwaysMultipartFormData) + { + webRequest.ContentType = GetMultipartFormContentType(); + using (var requestStream = webRequest.GetRequestStream()) + { + WriteMultipartFormData(requestStream); + } + } + + PreparePostBody(webRequest); + } + + private void WriteRequestBody(HttpWebRequest webRequest) + { + if (!HasBody) + return; + + var bytes = RequestBodyBytes == null ? _defaultEncoding.GetBytes(RequestBody) : RequestBodyBytes; + + webRequest.ContentLength = bytes.Length; + + using (var requestStream = webRequest.GetRequestStream()) + { + requestStream.Write(bytes, 0, bytes.Length); + } + } + + // TODO: Try to merge the shared parts between ConfigureWebRequest and ConfigureAsyncWebRequest (quite a bit of code + // TODO: duplication at the moment). + private HttpWebRequest ConfigureWebRequest(string method, Uri url) + { + var webRequest = (HttpWebRequest)WebRequest.Create(url); +#if !PocketPC + webRequest.UseDefaultCredentials = UseDefaultCredentials; +#endif + webRequest.PreAuthenticate = PreAuthenticate; + ServicePointManager.Expect100Continue = false; + + AppendHeaders(webRequest); + AppendCookies(webRequest); + + webRequest.Method = method; + + // make sure Content-Length header is always sent since default is -1 + if (!HasFiles && !AlwaysMultipartFormData) + { + webRequest.ContentLength = 0; + } + + webRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None; +#if FRAMEWORK + if (ClientCertificates != null) + { + webRequest.ClientCertificates.AddRange(ClientCertificates); + } +#endif + if (UserAgent.HasValue()) + { + webRequest.UserAgent = UserAgent; + } + + if (Timeout != 0) + { + webRequest.Timeout = Timeout; + } + + if (ReadWriteTimeout != 0) + { + webRequest.ReadWriteTimeout = ReadWriteTimeout; + } + + if (Credentials != null) + { + webRequest.Credentials = Credentials; + } + + if (Proxy != null) + { + webRequest.Proxy = Proxy; + } + + webRequest.AllowAutoRedirect = FollowRedirects; + if (FollowRedirects && MaxRedirects.HasValue) + { + webRequest.MaximumAutomaticRedirections = MaxRedirects.Value; + } + + return webRequest; + } + } } #endif \ No newline at end of file diff --git a/RestSharp/Http.cs b/RestSharp/Http.cs index 136f1ca1f..20a633087 100644 --- a/RestSharp/Http.cs +++ b/RestSharp/Http.cs @@ -176,9 +176,9 @@ protected bool HasFiles /// /// URL to call for this request /// - public Uri Url { get; set; } - /// - /// Flag to send authorisation header with the HttpWebRequest + public Uri Url { get; set; } + /// + /// Flag to send authorisation header with the HttpWebRequest /// public bool PreAuthenticate { get; set; } diff --git a/RestSharp/IHttp.cs b/RestSharp/IHttp.cs index 8857f2bc1..bf3e7ea7f 100644 --- a/RestSharp/IHttp.cs +++ b/RestSharp/IHttp.cs @@ -69,7 +69,7 @@ public interface IHttp HttpWebRequest OptionsAsync(Action action); HttpWebRequest PostAsync(Action action); HttpWebRequest PutAsync(Action action); - HttpWebRequest PatchAsync(Action action); + HttpWebRequest PatchAsync(Action action); HttpWebRequest MergeAsync(Action action); HttpWebRequest AsPostAsync(Action action, string httpMethod); HttpWebRequest AsGetAsync(Action action, string httpMethod); @@ -81,7 +81,7 @@ public interface IHttp HttpResponse Options(); HttpResponse Post(); HttpResponse Put(); - HttpResponse Patch(); + HttpResponse Patch(); HttpResponse Merge(); HttpResponse AsPost(string httpMethod); HttpResponse AsGet(string httpMethod); diff --git a/RestSharp/RestClient.Async.cs b/RestSharp/RestClient.Async.cs index 670420cc5..7e140ce19 100644 --- a/RestSharp/RestClient.Async.cs +++ b/RestSharp/RestClient.Async.cs @@ -34,24 +34,24 @@ public partial class RestClient /// Executes the request and callback asynchronously, authenticating if needed /// /// Request to be executed - /// Callback function to be executed upon completion providing access to the async handle. - public virtual RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action callback) - { + /// Callback function to be executed upon completion providing access to the async handle. + public virtual RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action callback) + { #if PocketPC string method = request.Method.ToString(); -#else - string method = Enum.GetName(typeof(Method), request.Method); -#endif - switch (request.Method) - { - case Method.MERGE: - case Method.PATCH: - case Method.POST: - case Method.PUT: - return ExecuteAsync(request, callback, method, DoAsPostAsync); - default: - return ExecuteAsync(request, callback, method, DoAsGetAsync); - } +#else + string method = Enum.GetName(typeof(Method), request.Method); +#endif + switch (request.Method) + { + case Method.MERGE: + case Method.PATCH: + case Method.POST: + case Method.PUT: + return ExecuteAsync(request, callback, method, DoAsPostAsync); + default: + return ExecuteAsync(request, callback, method, DoAsGetAsync); + } } /// diff --git a/RestSharp/RestClient.Sync.cs b/RestSharp/RestClient.Sync.cs index 6a079c519..c6884925f 100644 --- a/RestSharp/RestClient.Sync.cs +++ b/RestSharp/RestClient.Sync.cs @@ -27,24 +27,24 @@ public byte[] DownloadData(IRestRequest request) /// Executes the request and returns a response, authenticating if needed /// /// Request to be executed - /// RestResponse - public virtual IRestResponse Execute(IRestRequest request) - { + /// RestResponse + public virtual IRestResponse Execute(IRestRequest request) + { #if PocketPC var method = request.Method.ToString(); -#else - var method = Enum.GetName(typeof(Method), request.Method); -#endif - switch (request.Method) - { - case Method.POST: - case Method.PUT: - case Method.PATCH: - case Method.MERGE: - return Execute(request, method, DoExecuteAsPost); - default: - return Execute(request, method, DoExecuteAsGet); - } +#else + var method = Enum.GetName(typeof(Method), request.Method); +#endif + switch (request.Method) + { + case Method.POST: + case Method.PUT: + case Method.PATCH: + case Method.MERGE: + return Execute(request, method, DoExecuteAsPost); + default: + return Execute(request, method, DoExecuteAsGet); + } } public IRestResponse ExecuteAsGet(IRestRequest request, string httpMethod) From 9f5558f0bf54b62dddcfdb65ebbd4047021d2a2a Mon Sep 17 00:00:00 2001 From: Michael Hallett Date: Fri, 10 Oct 2014 10:30:30 -0700 Subject: [PATCH 2/2] Updated the solution to use Windows Phone 8 and Silverlight 5; Created new nuget package for 104.5.0; --- .gitignore | 2 + .../RestSharp.Silverlight.csproj | 11 ++- .../RestSharp.WindowsPhone.csproj | 83 ++++++++++++++---- RestSharp.sln | 50 +++++++---- RestSharp/SharedAssemblyInfo.cs | 2 +- Tools/NuGet.exe | Bin 1604096 -> 1662976 bytes 6 files changed, 113 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 225eac2cf..bd9378e1f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,5 @@ Download/ *.pidb *.userprefs restsharp-computed.nuspec +Backup/ +*.htm diff --git a/RestSharp.Silverlight/RestSharp.Silverlight.csproj b/RestSharp.Silverlight/RestSharp.Silverlight.csproj index 0d272963f..ac3567194 100644 --- a/RestSharp.Silverlight/RestSharp.Silverlight.csproj +++ b/RestSharp.Silverlight/RestSharp.Silverlight.csproj @@ -12,13 +12,18 @@ RestSharp.Silverlight RestSharp.Silverlight Silverlight - v4.0 + v5.0 $(TargetFrameworkVersion) false true true ..\ true + + + + + 4.0 dh!x~msbH158H66`#R&%GBerhI|8KdT9GqcrfG_zFAAu}7)lpPb+ zXP=tJX6Ped=dNb5)eJLJSIv`V+NfD!rn{P5W(KQCj15blsOD@l^VD2wX1SUkW;UxC zX6AsJS!OcU_*N`7Q(4U?W*Vva(M)?ag&quR*jvq6W|C@Jn3<{OS~CmP3^B7>%``JR z)Vyrwu$qs}WUlqC_|{ByHHmRy4fE7gG1FO13p4%HTyJKKnqg*Ut9jJSQZ=ue*`VeN zGyBvWGK1If@NY^+$?;(gv(@C9sjKEnGi}t|W~RHEQDz3KdD_fGHOtM+Q?t#?ay3WH zY*thDp|FMr)HE=YvCg+5-%MpSx0`9CW}KP!YUY{gt>yzWNj2Y?nW^S)GYi#JdN{1% zYBjCQ>`-&FnZs(vnaN!5Td}}Qbu}B!ie8?KIb#><)7~Bz0Y~h zk9+RVbLXbc)}9a9pHc`pjZy-+ic$(`rBp)RpwvOWqqIV{tGBgxLe!eSxi9E}oIy!L zYADgSOfMd$6hOKuMUWpT3COND+q%jj$55&umr$A@_fgs)?@+oRIg4%PUdVV#268GT z_ifXQ>nSnFGn6>wb4n7jO@png0&*Co7IGn_8FCk;9r6aH8?uR#g6wpQt;>1GwD~AX zKICFbA*7j70{IW66!Igb60&ont*Z_)h0+SSgwhGQhtdOigOY}1DA6^h7rWeQ>neau zrW8TWrX(P>lyb4Yqz^gvoEX-F3(`o8H!ic$cH-f8P9g2X5ZNC~AJQckIY z)KZ!tt&}!M7o`i5qVz(dOKp2HkQgPm$Mm9v5`$bqi9;TuBq9H$R6ug?vUSx$4x=B#Ql+pxwi_!+!MCpPI zz1P;>3mHSnK#ri~eq?%4Mu|bHDRIbBN)qxMr2^7JsfGMNX@(4Iu`O(ejHh%%rchFl zb1BYR)8-mVKIA@1A*72^0{Mzk3fb~L+n!3uo|HPsbV@7a5=tlJc8dBN3u|aDDTiE5se;@?X@dNl(gs;e>4N-B>4j|jfNfz0vNt97 zW7CTSB?kFBB@Vfcl7u`!ser7Y)IvU?G($F1)L#WrTAmb=; z$P`Kvaw??)GM7>dxrWjVSwd-tJWlC`tfZtMA5r9|K)TIoNq{BesPJ$Z$$I zq>xetnM`SdsJCoPPun1KDP53SN-tz7MSV9}^`eWCyWYr;lo({xqqeR%WEv$2siIUs z9;MVm)>4`wgCDb*)!$TC?J1&kLuOG@kOqqLnJM)WB_EQe6hd}vvvrj~4xyAn$|;qQ zn<#aVrzq<0qN_Ilm(mIGAGdY&Kz663A=4<)K9lDklmbXIr3msWB>~w;DTi$Hgsr^_ zGKtazIg8Q;xslQZd4|#pSx?D8w)&T?EBABLi;0vNyr)}ow7p4~nQwkvSC`FJKN&?bDDTfScx0$OTaY_?Jy_baJ52TgS z1zAh!h2%bCOJyL%6!kY=)!tM|i9wc8;t=&dk*Pfi$$QpH1*C*h3pth244F@9hulQz zhO|;rkQXWPvrygU4=L*Jh^k(EPbq{9dCs;_{bf!Svn!<(auB5wauTHuQbB2jTubSM z+(YSsJV8lAR#KuHOnW}06hJmoiXd)>?L`8zEu|bXhEfGNh|&a^Mrni0qI5wnrSw8> zq+}rXP;$REy?BZegS<_NL%yRVA;X@x{i=ZMMX7~MqclV2QraOmQ@SBfP*RY$De{wH zJrlm8QKH|N z81){I*((bmJ5q`u6DSGDQIv8>DWwWBpV94~+V-R%ds5_w;qu?&Xo8XtIge5Z zsil-a?x&POR!}M->nL>)=Ox>oR>+Q&PRJxm4`c=<4XLC=zcamPq!d7wQ;HyOQxcFg zr5y4br3$j;%eKu;kew)PkV1<3zM>k{Ln!J?iAttXGLW+-hI~kAhx|h6hU~b)=1D;gr8t{R3ujUCA=gm~A&*i@Aa7Gj zAwNwbwxoqO?NJq;x`RC_RveC~3%Qiu!7k8s{%51(3ljZS6&nF_Z-4C`vix zJW3VhI*R&Ek*ezFWw0U2O`c@q!xsg%{ zX`$3Xo~5)xR#Q45eUu)^W=a~e?Q6Cd(Tr*HI7$IzGNlM|8YKalPbr7oNU4I{Pica@ zKxu=#N9lrWr1V0<*KM0KkWrM}pG_|&Q(};EN*r<>B?(zZser7e)I!voFJ`+pLx%mw zN;_l%r5kc0B?YOZIKP-S-%iPgbWjQ*A5%&ozfwveBUah=R6-7<)Im<8v_h_+bVAho zDW<1AkQXUw$T~{&SJMmc4O^-JGKx|JIh>M!%%YS-uAx*x)SD)zJx!2TDQ%E1DP54E zt8J-XNFgNyIi8Z+Z+bDG5`)}Ei9hEf1Iic$o*n390BP|6|iP^uvA+qSMI$exroNGYWYaucN&@&Y9T`I?gZyXnP< zcWhlT$kCKInQTOVQKW@X#Tr4 zb3SA$r4X`^QUZCFQVK~^Dj}oavzhB4Gbyc*n<<@;E=mvNM@kwJd*5b`=9pg0pcFtB zQHmfhP!fUBCA)`LBc~X#*DUN5_d?O_v@-n3mlA)A9 z_E>8(mqN~@R6-U}>LAZjS|KS)Cq(@%Q`7ezNHHZ1nM;ZKrWehW0?2Ag5k&o^Sd%#c z8S}A~a)?@!G%;0>8cGvH{mnBI(*{{b>4F6RvoXDpv6KwtcuH&-7+S;oi zdr_Jo$5YxM^C(@ATPVGdrzjc7`;^?M>4jPuGcz*=*?zs1IAkIv2|0yQ0a-w)h1^ML zhP*&&hkQoqhU9)`YfnKApvcF~^vKVmuQ3WOlgDE zQo0~dQ+gqNlni8>FKp)AEle+pDKW@JlsM!bN)n>hOw6cOK)$2YLPmUPW11n8DeVxo z`eE{PLvE*}AS)=&5Yy(3lzfO<$1r&cA%{{*AhRi@kVZ-+M6F1eJav#SDXoxU8*EG` z++@JV&X3sAt}0#A+eI_g0!AV<_#AV=3K`d6X2So+2N*H1mg&4|#`D z2-!p_fo!wMwx<-bFQpQ45~U8Jo=ls5wL)&AbV8n`^guqMq#^y3=wD1PcKE?&E`S_F zDT1hP^PAcekOh=-$eolb$P1Jv$p0v95c!lZGIv3Cru0G%rDPyyQF8N4FBVc_kozcc zi29bN=|vLqIi&&;{mI7ELey6bO{r#xdJ=4;9daI}8?uO!f;>u*PoC=e(@n{Td`BsS zglY> zQv|t$l7KW)${|lusvv79O_1*?ZIEHV*t)tPds2EK2}%ZX0VQ`k(~BD^F-RLF4tbA~ zg!EG?AR~XZ?Wu*7P?{lgDD992N;l+LN(!Q$hMG}TAHP+1E@8iwe8^ZzA!Hh*1X4*U zg)F61LSCZOLB6E4LWccjYwv_ir1U_}q@*F&QKH+MUOYi5fP6?Pg1DP)T?xn-N;za2 zr3!K>r3rEmr48~rr3>;4r57^pcUyY~awa8rxambBB?ft&5{GQ2Bq4jrQ!%qmD&5+fUc8Dv_rA(e~$i9>mBFGt(1Y{wl9P%`!3bK*X z1ld)d-F; znQI|OQ<@=HQraPHly1m6N(z!E&mK%>`Pj8?^JGdsq>@qyd5BU1SxYH}Y$;C&Oy)|6 zdSYRu4l7yymGlq!T2Q%WG0P)Z>WQ7R$- zrPM*xeX7aa3OS0>2~l^PCZ-3nl9Gn_avx@5q9aW&4y6=8swhQ}7bpoxKcyTpQSOaQ z<|;@fr3vyBr46!)(goQ|?pI8nUWmFkGLnI)J0T;vyO>_Ap~N6jxnnRfamXY}5>i2_ zfV5C*A?jYlfO3E4oYgXGJV zqlsyS6jM4O6_g&x5=t7Pu2M~&Xw39t6QuxBAXj`QrU+6@NkC>(${`JuDo6*V39_Ej z1{osPWu~q!$OK9+WF{p8SxCwKo9V?eN({1w5{L9tl8{kyJ!NXIfJ~v(LgrGMAxkLj zkd>5fNScy@443O5Q?iBno3=TSN# z4U`_pW0W*xH6^;c>BZNS0>}`#$}qJTL3XDkAV*QkA?H%6Ahnbx$ODu%$Vy5VUEjA-QsOU|QG>8AnM$ zrcj(cOqFxC6E=AQph?=CB&8UJmwE%G^G`C6r~d~htdPNnUaP)MTw3x zz4(w)0NG3_f{c`NxM@!UGMQ2iIge5WxslQYd4kdgd5_Ws`GL|4QCA0;Kac|`x#LYQ zPNT#i)s#4-g_4B4N~wT+NvVYlm2;-4y%|zSX@?w7>4wawq#(CZBR$-0>~Ol z5hO>>8zyrCGLBLXIf_yRIgio=xsK8Xd5F>ld7aV=`I3@>43=|(X;1E6rWa!>xVD`Y996S9)h1KCJPL$;Npsi`YE!Sq5M-HjAL=1__tODGA* z>y&axhEfF?Eyp~Qxd}3z(gwMb(gkUw^g=$SWFSN2IAk*C?qhl}krIQb_%;t(~9jU*vz z&KjwJs2OUc7NX{(k!FaReMZ_LYOWdShNzikBn46P$cVGQX|tL&M)DzQju8>}kS$~kOzjCs zA*CF00;LLaDWwT=E2Ryhwt&gp1^Ix|3;BhTf&5i^V@l;7V0tl$5`&ydi9;@@Bq4WE zDj;esP3Bt2CzNK0E3Ggw?T}q4-H>8R3UU@j{^*{*{;8qlLms3QLRL{qAm30*A;Y8w z)1FGmK9o9$>amGwgKwhMzA?qp815Ga?^8c931&}e6BFHh61Y{ni9C8Px z3i1-A3GxM{4U#MWn%cV{`%!u!r%^JHt0}n$nO-cT#31ib;*eh`NyyIfuc^HPQbMVP zoK0zl)KJ87+o zzNK_RhQ)1rdLUydX~n~Vq1F; zBu+^~$|+GPug0*BQUGbE6hV3^2}tyCTUR-xkWvLnQko!Dlr~5!MfFg%X9cAfvYwKG z_>*nzxzaLKY7`{~DW<4VP%&kcBxE6_0@6aMg{+`7L)KH&NU6;J5w<BIs z3M$VQpf~KCFD3t9b^ur6>>eL6VgiQfxJRVL)KBEGIpvL-W1!O0!WNf1UZJ1 zfXt<+t*i3fN~wZ$P?{j0P}(5jF}C(D$nKP0NP?1qTujN8@m00oPKiPOO^HL+Q<4yO zs;#{OGKx|QnM`ShlvCOv*HOA5%P1+xYKkM#dLV-mwmoUcC`weerOIlwBPqEuCsZ%WC^5(tlsM#eN)qxUr2^7TsfBz+X@-Q; zYzx~VJ5#zLlPD?3NfbxsjcW5;NY#L z4U`^82Sv?w)#mk-sLVDcL#Erh3Lq0GMUa`41Y{wl9I}j31zAIBf^4R=LB^h7Ywv>0 zp!7m&DH+I9lw6sAx?hwSWY~!|a~u+h|`I!=jj6B8Go`f7tsesI*)Iyd}nju}3cE~15H>6;utt$nYLUCj-Qf;oJ#BrIr_@2JD6NoXluk$wr3dm0B@HP!&DIr_Jy!K%GNk}An^FY1 znUa9CQ_3M9Q>q~T>9(#W$QVi+Bthwd%%}81mQXT~mngY%EKt2jQDTrtsjXcdcT~(6 zN)mDmr2Q5HkF1+ny50;gnKH1*H;l2c-_O zlF|zKmeL6sG0WD~137|{hRmfz<(R8_aVMn!(nTqPd{0S0c09+{RSr3TQU#ewX@dNd z(gs;dQD+6!o_|w%A-$9gB&Xcgo-0RlRca(9204rphm=v0kgF*bkozgMkXI?qkQAjI zGW1;A9(BG^?b(--f}Boq!74=E)O?>t*qDP%0A5^@5i4stoA74iV3 z6VgplXEN2opDAg`$n$OOQ90kJm|}`Lw<$S~QUs}^Bp^>w${}khRSzL5mhhVr4&GZq!dB6tFY}!K#C~kkdrA@kV`2|kUJ=CkPb>05{Pq=t-TadK&gbpDRq!iN-Ly_(g|s%^guc(X-F?6D(70&3um5f zPXVNWQUr-p5|C0#Ii!kG1!<-4Kyw>bgg@aQLORt_-A@k}KCDDrOEP25F+iAumyq zkPVay$hMc+x@sYNQ<@>uDeaJpDcz7pin>}-Eqt2d$Tf|U9!fssXG$St_yXIW6379R zQpik7CFGx!I>=H=E9BplPA!d2ugK2w3vS|-RJ1a!aky2Z`orrl?M170( zFYX#h3XzZoZtQ9H-v7QsjP-om^ke6H0Cq zX%pGmRc99^%S8SyGRn=Bg=NS$`2*8dMoB{?k33Zlp%5sP%$H}urZ?`2T~?M zPNS$ZkSbM6nGLz0vJmnHWr>!0XOoE9oBrl5)6$pokhD1^Ega*n(PH);HDbHFYX``i z(y!g!O-7=V&vu;mMfPy}Aq`2#S*yjDvy0=bbhfO@(R2sv8TIWfP5`7 z!A%*7j*;>CNu>!nNK1B`PIBW~8l$_O=Q#c^jx)(E(NfQSXOi2gB|FC^ zxhWIl%$CesN~r_gn4F~s?xzR2g<7(u4su7xnM3W}S4b%}dk=QiSxQNR$aaz^?pA53 z)|qz_In?dYlAX_oxhu3}Gau$|K%NIA&uA%C?8fAHsxrR`IovJNlFc*OovkICXR_OX zQa_{A5pFkR$7++g#2q4g{=l9d>E>z4<~h<;M^9Dz5h!((TlxP=9qm^AzfwoLt^Y4( zire=8Vy3t~TI!v@OJ+6l$GG`&EEw3HscwOm>=vBrs@X3wdVg2*XR2EVIaZDUYW_@h zmq2>t47-P9KGto4tQXl^OB=+_)r8v)v2!)yu7KFNdYrooV(02{ZV%)i(hJp|X>Kp% zY7y0*Y3>F{Jz|b`)lpCN;x5D-?>e%b2KIfr8`aY2JR&g@rOngbd5~vB4iP!Q?#n}8 z6FE}kB+4fusy$ix@=sEHy5kI$*~^%qUt*5edHVlfdroqF`TuMSPu4LLv|OdHZPeG! zlWwtziH292+D~?;K(-N4qj9pEgp8KjRSRdhrI39@RLl&wMN8ix+ly1&Wf0qoQ{3fR zs-vTj`4qPkF}7bb-7bh7pPB9kBRRIGGu>P%Kk)1@)6Iw2v%^fc3}Vj?r@C!g%s!~v ze5yO-DwU_+*;oFb*)kfZaa$~%ZF-s&J2SIl=V4Y3l|1UNNMvQ|pX6kbxqqnZ>_5r8 zKgm@h>N+!<+0O8+G)s)yI$2rvCwcx)^7@~|&iQPfcO*uA2|p`eiCp;y86;zQ!yn|= za~lqH1oaex2c}@@gMUV%DAE#vr5R z-^V1+nQkFuKl%3=Et8DsIj^os&T@+pQzHMW%xAe%AScVeYHpn6CLy-=GPe|BYcF$W z8)4?N-Fb+y^XF`L0pvXSS7koit%ax=rD~t$)!o9%;&o$kVldEe0PzSzCm_w%yt{JR7Z2=8sIIdYqr~r7(0f4 zcUzIij^W?k_FUEG3U@u^HMF_HO+(ba ztYR*7qgR`G_%32Dbn_r;Usf@5-4PHqmTKhZx-p2_yH(6ZZXx6w#9ZV~f~cc}ikasY zLpCF3o}19pH^?3nE_RcM87wXRQMS&-ZW&_iQDVM38!`4gINz;Aj6H5#;#MJMH_4;g ze2KdVG4@DO={6u{Z^Tr(&4{tbjeoeUh_UC&f4IvLV~;&^c1k%zSv{Y#MWYBgZ>e{B-T?CmZ zqRs`?ZY$(e$_mI;lwQb#BI+zt?H1Ik_IxsE6{QriQA8b$tKFh&O-#P@Mjf%M-BH&W zIYvYs)vMhyE!q9O+O5@6?<|m*nDpXGw;Q6ya&M8V+zHp~(cm#^p*u-Sz4NfdOp=&| z?i9!yB8Q1w?M{b$BclFxNsU_u$(8<{Byx>A8?vWJnMkcW4|0ac-$kxp*PtH@1m9^?~| z$3*Jf5s)2Zbk&yu>)i>E<3(N;x!IkkrO~-qWR=Kbw;wTAio7e*;C9_$>bgnfW070j z{5m6di)<8Wa(lHjI{y;+Rpd6euHMAFC^D$uaqe&@+-&3nk!?kmxEaU>kzGXYbZZxz znBPPSMV7h^4Mw(*ZF``|UG5slE+Ugfn%xbM{X|X@x!cXX#gsZ)WR}Q1ZX9yD$R#58 zx=G08BI@t9w73f(cZ%F9a-Z7;=@4lZx!?60P3HGR9v6AQ9Rb-WqP~IH>c%0VY`3>W z9&{HO;XUI+?piH1(H$j59Yr5<*F$y_QAf6i+_aYLoPXHOyH(ZRm!qyB*GcAOZlRWy zj=hF_#GRrgdms0RJ6%imJot!PYGQcZ@`zgwu~!a{xbq-|s)bV5qwWI8!6M&lsnwEg z;bU%(iQyjC=Jsl7bf!wF%~Gn(jW(%XG&-|HJo#?p<8CSBA0knaC)_&7jUwt^_+M^| zmU?FiVwSs=x9M%cQGL=)YcYM#k+aN`u5-JJsfntyuzCXXlpEDj9aU#x74wvvr=`(( zS~71XwLk5~wA4GVL)zUGWWC6?67!53zeCsVq(%NJ@~qnl*(@?rq{AJx#Kc5pulk$F z^X?SLUq#e2&llV($T$&owE4GN2bn6Oj!~U%vk~_6MR${yYL4@ZZoihs=o~3EUg~<$ z_3u=*_vP5@)fe5Umh4P;+0D~pMrss>ki7$X z#a%EU&r}`LHb7>Gyy{L^YPN-%QRVWD<1Tj+#NJzVxy4$tnY-L_E%nZ2(yuclPZ#fi z)YCb&@4V(#m^>Vf*WAhhqV6kSa~BQ}bzk|qTc@ROkj?WSce$2&=NhT2T4aS-@6@J`f_Z)zIRs)5Y?|A+*J_UuZ-I> zKvchecGp8}zkYSo5ZkZc+#c23?WuPj6Ui0%ixC3U(YmB!EFWw+pXuN`8y;9lOMhfIv!f)l**hfQ6hB+nU= zXFo4@nTfI6bfVV@vDIT2FqE1#u)zOtA>bhmRSBIF@h&jP) zLQD^0PVia~vra_K%oDw3h}k5f?hsG(q?_{J${@T+RwreKpX9acn7$ks3PT7CA}ee6JSrsK{v|v%NaVb0X)9{M~DUbctLpGRJFyyerZm za)GxT@~OyDkqf;QkZ&P#y)}^EMedWBi@dd38l9naInJXZ^Sl(~^uNnBi^zO0_LS;Z zqcc)sUKP2-Yl2J=c}wInZ^Y9kX0pgfB3F2E$O$5!iCpECLCQqF5xK^j2bnMOlgPDR z26DN`5GTjE-kZ>FGAkJ_vdC+ITr0At$c^4A$YPNLMC!bvXU(>FOk}c1y_bY^icAw} z@JbaRqS32F%og<~=2ou?F(XA(%&p!c6Qk#I zC^M?bOKCCJ{AE(t?cS*8R134${C99q*}WjZEzn{{Y=z`` z%xl&nZ{W!FnEEpNp+V!qTdg)2=dC4+M0 znSxgi@o&zNKW~!bJm)Qf>>#qeNQc)B*;8Z}kr%v8kc5c3v+MN6zN#`eI%kONAu%s{ zlOTVGyzEWUQXgF)vY*7f;&o_Q;oKxLS?(rY@luebkd!b?>WQftKv- zea(w$$!@RLya`$wo#&<0fl}9N-U7&*BE=%Fd$HHdXnZO%Rb-V{_J)yfL{1WU(`$zO zDsr00+g=xBkUZx&M`VrH3&|ImBl517fs7JS?+Crey=hO8?_^JTpHloMIrUF+-k;>M z|0gSk+Es@4y&bQ(m|S@?ag+z8LPJ#5dpr^sElT&q)p<#H}K zSMG^=yb4{)jQnMi`2(+NfLtT;k(YQ=)t+64{n$%tsgBxp*pIz3#I#6z)N$i~-fYA? zBchI?|MMylqwY@|By+DN+ojJbkEZotNy^Ep#@E zs8Z{^g#+XXkx#uIEsf4r@?7c}k@a55TV`&kd)Q8q&%Ei7Z6xMZkv?yxmTG5j5tZk2 zuR%+8uBN;eEi0U(Bxbe5q`YNX8l5ES`ofF8t?F7FJxk2JF<*I$-Z5={N@SzR*IwQlBd?46DDsUrUCUxe$!{WQZ^OGL<`a?7&2hf< zHbFLtsJ?&aIq#_$)2}UM&;8!Z9U$rmxydUSAVVe3k6x9L=$5ybE5@I_4#)^f-upUp zbb^SwhWy!^0GWcAU%Um7nTYwtTcV}jnJuD@NWXGE&lOQ;tA5JWBI-F(R&EthSFl<6 z*PrCoKgru7!=+!@QoSO(4wT@nQpXwp2l+{2)QUVyac#ZdTdRAqkb7mnw_Z!%AiGM{ z?`=Te?J8BjmqCnrKBk`h|K>S8W(@6H4ZnFqwDb+Kt5lo4JjB>ls?A;jV(j|z?_LZs zYL#k#>BaBf1jN`CXUCs}7_~~JVjRB&F?J0)$4?+etu7rZF**KB#Mo77*DphiTFFu| zu3v!|yH4%-m55O*St`c!7b3=PW#6xb*sbjQiy(F-%l8|Q$F5}gelue1N><>vBF3&{ z1^#lx*p;l%??8-Q$qM~0#MqUrh~JGEyOI_0*CNKQQbqmsh$&uZj($-;jTpO1HOS8( z#;#Hg^8F9gR?e<+4)%v=$*yt^_VW>AXZRNW2#B5GTlk|Oc7|`^#~^lwZ{Zhesfljc zD6>~aehYsRV(fa{5Wg5Pc0F#0pFoUSBU9@{L;WOT)Ee0dl4q!2h8Vm0zokDLF=~yh zRARRDD-mP&udVzg5c`I}R(^|?>Zp2_f4-F3%5T%MGRN+5x&C@nD#z}XxxNgb{I`<( zpp_NDM9HJ}+^ifSqW11we}m4mP_MbD_X=|Tf{)a;xWzd`V$|_xYrjED_C2&={t_+q z&czaQiR2mPw`eg(QFYe)i(j->@45O2pq>cj`AY`KLMgSaKjgnE#yrowNo0G!Kub;Z zX34CMV>|d0v@DDsJwu+vYnh~FrDNZ3*}+d}S>f28?%K^_)E!nG-asGk`?7Q)lz`h%w6}9g4 znA|&L8R3uLMMdWCa!zeko<;e3Yxx?`r z%os-P+5BjK3B;bekM>&zjPq-9)qS+zff&2Sag4uKi@EN-TrwZyM^k3@+BL+fehgyY zZJuh|Gt`bDg(F58YDaadA2)e&>=;hf(_t=`Ye!9i1V^I`v#V={IS)Dq1L+mr1FU z{btA^B2Q>prX~Apiy3|g#P)rL-)V%uwwU2h`a+F!Uykj?48HQREE2K})rBiO4FEGyPV`wIc6}oaJ|DF-Ly2@09r~v}E5! zFY||drD|UsweO;r`FRlgE_#_i0&<6BR`2|u?N5L_PniN)ODTh7C<`F@x7$1okbNl2 zAjeWxKrW!Hg)E|Mg4|CTvcdH0HOeT+7nDhm@DAIa>5#FM*^px?3n3R!mOyTxEQhpG zRzcK?u^Gelkad)PNX`-)llQgh#SWCQkb^13kkcqLA(v9-L2jiif;>)X(URSp&h|S7 z$avO(lLfBgVaZ_3T_Hw}MK1K~w3wNx-lLx9uhL>x z?bZ947yD~WDZOg1GGFZXBBo2)tgaL0`zgeHB%;nc^ZiX)%$<1P%axNq{To$#qq9+B zhKN-9WssjBm-_Rx)H~swInFi`v%t?!n^N0}s61Er6SUMjV?}lrsq!nd^yM5XGDf7@ z?-(HCMXvOVztwr7QzT|zk*oYNh+0usaL}?^JtMI`*C9I=>8J&js~9a^%o5&rJsKLLpJF={9W7aex4C$yuANB zOY+?Amkf{#MDFyPv{XAAC3B@nv+w_)^3*%7tmoH=-0M%*QsWF4QR~$A`Au4?ofxFm z&->Aoii^}qsfYbyE!ECUk=sNb^;@(oc4mp(Bl5WK{A5Zk5LqVjFF%=4QtjL#qMj!_ z>33+UcUnZ$bM+_v3`9L6dQM6`WzTU#?R9uN#h$IQ(k^+__0Kbm8CB{yyUG<>R>q6$ z{s&owQqQuKJ?mxV6N!0Q+LM(ZA7>*^UbGTi zeVVN6Nqb)UgY<~J@&{Qb@*3rC$)ifW@dr^c-G7h`B5Np*p;XTwM3wr;%1}G<|D)KE z&x#%StUP(4!2_?^*c}@(D}*1X)KJ)@-)Lr<6j-ddd{YXO#0HeUw_r z=T?GN5jBRXKZqKQuP7Z7(=YPPA4HYX?*;^z>@;E`i-oMNdNj-JU3G#ndd!-RCkf%n$gaNX(h#ySR zV$Mx}6Nv=NwDjfJ_G}Rp|7!N`AEnJD60=26(r+ZVJI6UzWJoamHzRo>Gem|4b(@Xs zftam=!rztj<=B4Z2EC4Y4W`~XN@8Y7sjY*e93_1@wx`2_a)|BeUxHRG_0FkMYOa*Z z3zkFXi!2b?Cg_4(57{Y5gQFQQsFJQx8PdXFjf z*B}PjO+>|v2qr-eLCg+8sg_3P6pj=StYW2Py~5E^pCJ2kQ}|Rx46c*WN+egX>b>W+24pb#>o@)%mE@pv`9tr-^yT`$X`Sz21y;0y=yxtm^VQFB4?R{f+a@yCgH(Bit3b~ZB400Q#4bnzgu4Q3#mB`N0o`Zu9E!ENYMRwEDg;MKKDjuxTQsev}qQ)m4 zv_{O__(f!#lsY7c%8%>SnR>ex6LV;=Ov{R#u_F6O%wa(rLZC4x0Z9NYIqumPfGi|XldLGEDHixrL?jcGximKx_9Y2h?EVjqw3Ss4tuPu{(h zQqw6rid-ymLeOGL>Am1ekrRUsBisv;!3r(ey&xHMBWA4RStO-S4tfx?pUBNx)@#XL zEzbyww@_`)UK`H{mP72d@hO2nM8%jfyiM|)5{xhsJybF`i_8p0X{nA*7f~@YgF?ip z-$1FDQ-dOi`VEwdIW;JT%#u=S?>;S2}11+AEN(*ej5%ERa0v zzNyrf3a%EpU+T)rTcz^0n8=xoxkX}z%RD@r(juasOwOXTiKzRpb12V=sCPKaDJvo8 zQq-Fm|B{&V{vc0F?XxNGA@dx{=OQa4<^sxhkP6DLBL9(?3n^RNZ)7fITgXMhay_cq zcRc0=9a_wrGjB_tdBF-TeS_>c&kI&T>^RR0dLVY3FAjQ*D2Uze_XcHJ7COgB zU25-c36^MCk#m}e>gjz!o0h&DyG`%6dlR1$KVT)8Bc;|!n;!@^=~8AZe<9KuO#h2& zPv0Q>Z27@pk&zr*>cJqT#rz83TPgKWkcKRf%o&k~gAC*bk>5p@1%95&Z0ZUlInEa_Ib+%2V!5P3RSrR9^H$3zlZ)|i+I8O(?kPRXy=$I7bSCLb+ zY%r1&eL&9CTKsKvPqkbi(jJsT4x8aPl_JjsYX?ZR$g@F8OSO~tfc#QPf}`{e)qpci7Vx<3foc2K3Nor|PBr%C4j2L6slDn;gt{4a=W z>C3TeNuLCZAa;#xeXtCrYNS+^lv*EjX<6*tA#$t8XF(dJ?Ak3K^_z75cxJ(0C`SCmHIAN2zgcHKO)};iy$A0 zs4L-3K@;R_$PYmaB$W61Kaf&C2ECANMAX&tPeBT@n}~XwHxs0_WRE{T2N^9j&i)e9 zCwYDjq9aXD?GfqMpiqn1?rJ@yKPVX>>Im5%lnoGdF8D22FhJCr)bByl0NE&Y<%Iq& zs;=yu_rp9bHC&VO!x0d>Cgq1Ql(I832*+y4uHy&c1TERst{{w?QkU6uXNz00yN|7aUwVWRo|4qfL z$XO_Iw3OODoHszGi3|^0wA4GdO3VzA5n&qgsK{9&JB1lYC!`>hk4mXt=(`fNhPZP$ zN=sw(eTkVXrACH@S{6H>id1T;)w0sDM4pl6iK34bCu|54;ST;bWN$q38d0H0B&rHqg(%7(JfGm`lv0=ZK zdS|G_G>VK1C+(p!XRq1Dhvi0`Jc&^~9Um^xVy>3&)Ur@Z_KJFZxJXNOj~gF07~vUz zeAuKVTUTM&qQ&fS_e$o%FlB^m;`@eaE!9!`hTFbjKVs}E`F^24PW8h40#vOx?HA^1 zsfmu1Ui?ck7lrwdB9UjbjDpzTD()YSMIQB=S#<}!e^`W=sZvUvQznLS#GEIh-bkDn zPC-l!Vh#wWBc>TK2ZW_sviF{o!di&E_dGD{hS)Xw1H+m6GhAkUr&HQ|VA!O^jF>ti z9TYAfD6*#<9L5UGXxLSTL&8FcU1c~VoTR13+45|8hgvcp8YTzGTUx3h&q^=Us{LW% zGRR8E;o(}y+al`ygd@Vt08#Ht92pkusoGQHd?YbzCG(VUx|V83l}d>u!g&MaN0I4a z?Ou9jIzLKGFj(&K!>YY?zZ`i@*BK@{tbt3=KY7eX!+xmjdZ*bKQ^)vuc9XCl99 z$<@;6{2=0PA?*%}OpHE`sbkBWFpijhiP=(O=7h-svYp5UVda2Q1tJ%QwTRhnH+do} zGB<1=AbW~j6n1Ip%h_s~IgZT>d$eTt_j#dTWVXe25~JSxniod3EOthTsCVP%g_9tA zK`stwn^Js(Yks&;OJg)HG3qOh^TS1uX_N*d&fi5;UGu{wf6B8QG1o}ULDGx);U>t9 zBC0)?gvtF?n;RV^M@UR%*bQkBIY#8tPy*z?l|vsFIZ@=Flvg2_Q|xN#6%@N#S`{WI z>TRmG*O`*1IxIKh^h%!DB3Fjpkd%nprdNf%TC(>$SA{7p+54TV!n7%+GppaoUlsNb zkc%Yq!Z7auGo#XySv^Op2}fwDj&2rFN1K{3hL|Cbn75{{2@4TZAfhr~6HYQQx~_jn z=Gw4%fK-cI7j818bjyywPWwU8p48u zRH^I}yvDFdi#cN7CGBYpXKTs!v?;9BlI>|zSoi<(G;y{ZCjC+?&RIEDM4g+ma=wT< zH&KFXMAY-T+iafTPRQ+6hN_wQu(a?Fikg{9mQWs*QcsKAN$G?vwGyb&cv)iZ`h&bF z(oA_*N_`@74`rRmMv;3dYUF5sg8axZT5%AbBVCQ#ON8Ndb%u(#?Ab( zqw#1s0%H61SU4MEN8|CZ4Pr;*iLeu5x8T3RUWna-%R}c7RadnWdDQH=Plowg>YW`# z21^T{3>Row>`V~(i^x-9Ct{|Gj1YM`Odh84)H}08b`@z4D~gR&i>Tw_v*9u=)y_>K zs_)N*9f)~QWKS(CARQtHiFAZ(As>nyF7kYsd$`G*5jj!hg>X7#+sEXHE%NVh9%O>Z zbt0W%Gh~{G%KT#34yh1%P~@es8*(FJUJg@`Wsnu2GuhO>TBJ=%y%Od_(jqU4tPBev z!`e(;uZBgC2_mYlt}tPQ=cd;@woZGO?xIzarP@^(a+($be>Tlh|xe}o#1z8u@aHDQsKl{uG5 z=3FWDZdigC+rsz4ssW-}_ zim7%^7g5&m8BpA{~$pDYZ@{Khh297Wr0W z`$#Wjy~t*f;gK{XBeKPo^3A451~TMdW|e$IL_RjFM{I(~aEaL=64jDjH{UUmtHsRl zoh4?+$V?;rdhkw>GA-F(t?m@5K#Y2`T3sy{L>5BSo7HN26-4SFGo^MFvvZ^gc`gu9 zF*`?E5OXDBMn;w)W(i_OM%oec6k>LXbRy;z#OxATg_t#n85P+8`4lmuA{oech}ktF zAKFzjGwLlj?b$UlL`zLHPeiqObR-WkF~p3H6d-02Vs?wf5R*X6ZjlKl#wint$*9I6 z=^3i7>@hqRaZXWU-sT;rV@hWlxj;(oC-S#Qg%KC7!U z+qYi#h!jHX)0J_NDlPTS^-}6+DK#!qrv*ng*$c);)*Eq_NX#^e*)tM9U1hFu+8}#H z3QCpKJFkkIDlvOU5|DRA)SRCXsnb&Js4v5)Cl&id+7R=N#FR;?eIv;;Odjt^IrfU| z7pc%v?d&LWrASev4l(0JYPF;wQ$%hSnHb4HW{KP@azI2rNUK{|C9+&(QY31GS1AWZ zVpbF#IZ^_7O=O%%Nkkef|E(Nqf7Nm%MLp$HZ;WTf?oC;-`(Rc+mCXA|<|88s zT~{B!33g;8sU^EF9~mh_jIHaa$ZW)@-^{AF(~pW&BF5H!bfgL~c3(a^vIsG@JyRkL zh_T0nDUoKx*cKiWY1LBW^h=x7G2xiVl(Wr<?);Bl2X$mGa>&++x^GoHUIwuKegt1o$EU1RV-ve7{W~6 zhDIzFdcS4w-o!$Pg~rebA(SOyD9g;`tv8vFY17_92$@U>VJ0+^OeVxKneXHIdOcs~ zTwVLTzn{_Cvz#ZULP{a0dvXHgR>&EF4pnL( z%4E(C#9Tx*4@8+vejr21V(T9$bw5fK1gexQQSu1n!a$dj8tV*XRzT(j`sPtR{wU@L z29@|%jphf&!ZOdH)ck;RF_l{5_2<$+9*gNuQ6TXW%HXpM+IknIiUVm%%B@QwpF*xS zBXw_t(6O$>lSL3(7rrcm(C6-Jz0AYg$SMe(#rc^|2z?UwWFpPB@eNwP&eSvUb7W|K z5?_WPbSLTcfh^r;b)AIPa%mt(i9Q~Fk9tZ2jVyGm+YGre(5%E?hBukE+&@q=-4*VO z^Q`W(FMB}7XQp|XHdV9#?s-#SM2VjHWGh-nJ@aYFFSL$DshBvDG?u?Xc7iMnl(L)- zp}9V83DhaUcR(zafuu{R9{-Bst$|b}{=GRyr2o$iq&r%ntRpQtDV4z;ffNicr zJ{ag_G1npg8Aw>5ma4i=LU(OE6v$yQ*CFcz)k^eUN!MHc6^Oq=moj_G!+}H=v!^^9 zNLI4OHhan=ffSa{&}XXWkw6-Y*>@TO8A@;+8yVUM8vpA>jseloDMSZD4;hOU%01)5m?#igDK zv@6lywqK6^tO#_ltVV|JB54kEa;aA!*C4YhFs#I1U#kL`jvM{aasx8Y1QL|2QS<-M z@n>})S&K01Yjq%%#jKsxfpjGc#Rq8XR@AdP(4eH;qWNuTeXS0(DS17r-^&bg=10h# zs#MO^)So4|c?DNMA^#3EDA7HvhqMN|!sH3abAgy^{879Bc_A=GiJmcO4WunFm1Q^7 zO!d4NNMlK6c`1;^ayX<5nU@23EGM$G2j;V!$?{5|l;r}JR|AV!u3&jBP{(pTOGluI z8j2M%oz|Vp$LAg}fOU(_(Lc z&>SXj1)LIEVgvSf5PBziD-fq8ijK5Y&s%{67IOurE0CKd;{z-wD)l#=P&m8))E6A~ICZ zyMboTn0KP?Kr3es7IVJwQ6ODOjdeO|?nhhe&3o>|X58m;F0Mj+7O1+O+S1>o z|A0(ipjyd5l*#l3YFW%YOJ4<+D)HAvf1qB8f8_5EG=*h;LCyVvby~#5=nw6u-vs)U zl#A;ibX@%=FvJ;i$H8D=gfr%jgTVl%yQd?GcZc=20ineI&B?cccqIe2xod1=Ae+V9 zHTGR#5sSI|Y$(vlV(vcsJ`i&QwKZUyyT&#J(pk)1V?P8+SKp$t!?|-%ihBz}NU*GrlXTZ8iFCX)}xIY7q zl1hv2p`&$biIgy*YhO_!N6DHf%Fta}6YvZ+sz(dm$rTVyN(NMh?z{_%9wim3=6$ey zq=+x0Qsow1as3Nql4w#=p(G8mqew2NOojCfMoPbF-$^tpDYsr_*;$m`OqoiH?!}`% zCy0hHp+4^-I>TfZYTi{0DOnRmrDznpi@b$?J=E4-qBKmhP-<^cr$m>ck?teidX#iTeFw=wJqL(kmQj`i1s*GaQFKIY_kzw$6^Sf6upA^(S@vX^ zCNfzLW;s|CC@Hs&hMa}AQbe_qN{jArq&x2p5iLsajUj~Ys+%rECAF@FmPV?`Q?gK% zDnLDHBKcN7Lt{@DB}!_nlhM{fT=AGC%9Q9m&%@~xP`0R2;?G|74^gd4dB5%Xhp6L>`EAcBqJcAJ_Nr4vGiQz| z(?_;bMJs2_>{X|V4i=id>VEVvM|3GE7c_g-!%Eh1hGws#%xR*JGcI{*_88b80nIeNTW@f50MK)*5%v5KIT+W!8sm>AwoG~*~<%#*6F*8%;i4xA3 znW@eeWt_>V(0lILVi60?OhwD^98s&JT+qx^v<%M?^<0mc8|qxq$feBOQ0Iyk7MdHX z38nHy8`nc~Lp`gclj})DhMwqjp6KSxx!9gxL*_iu%k|8IybC#B^mC>hvR=tB*JEaj znkz;*V`ht*D`IY^b-KYe&pjy+4vTs2Nr8xGxgRytJ8XeSW-(7fDG(_vCs*Q^Bj|I1 zNLAv`(^VkSl~j69BPtMCIum7{RCR&qx`X;tV?Bqq1~7^X#SqKKke?tIiJV0`vzet( zlqy+lh1zh<9GQ6{?oP@qw)TQJJK%RjBI7QSay5Gu?aP;nIwh6XG05zWOpzG5n=+Nw ziI9CD3q)?UE_E8@5XhCHn`JI!2IMLccaP2#oo`v`kgG+zk{at&Ja;J*a-GOoOqm+% zGL$+Ea)W4Lxfb##j_PFsk1SD{g^+w?%0&swGRQ@cn?)nbvkL2sT89u$q=gNR$(pCrHsrK6nCyqlYT-Ocqo`DwgCWm~ z34ATNphf9j<{&sdoQc||lS(ZBaQ2lA>&uGg7IP!G*L z`d)8y=ob`ki}*)$rU=r8%sV1S$zqG1Jo`H2T`{#m zXXrTA1?d(Ek7`+nQXfFx6V7ri4?@;M-WSy@k3+tJ^oRzQS0I}pABtg?Pa&HjABp(K zbUi;own9D@g)HtXI8%O8oC8J{KvRG51n^AyPSGp27Ep$ly!`YNk*9eIkoxF@(;(`a~{^nV)}y z$Y(M0^KTIISsvzkz7)kQ&0NoyqKqXMzZ|A_y{|+S%LNcRpZ`kKvRuKLeo@DA6KDEG zBg;$N*4Lt$)`EObsw_533GS6|e$vThM+oY{o6OxJ|Bh)kBKSM@h6zl&^^ogtL@UF5MG1fj8yi2{~mAT;(d(aiF9 z2tAGH57DZmT+D+Uj`j72=-|vk2z{HgRdlf|g-}~t#X6R!IP<3%WHEE1{wao8UPOlW zuRq0@k^$Syl4{v8O?s)CSyC-Kj-?Z&($SwNJAq{#`;}%5Ic$a9%tFtlqP1+>tt|9pRa(oo-NCX2 zOM@~&yNf0Gn$866bu5!1lnL2=EQfL?WDhABu+7Z3jy=MeEM#b%I=1x`t-%5NzI*j? z)wP9^N|DbQ*N*3m`E(=gM9!E`H_}dKp(l`1e`4(v7J33HjVsnpQ&KKUxzBNS21^z9 zInK^zG1u$1w+oak6t&2ljO}N8dp=7&YTBam)LqTR^S2I+(BW}{mCTQl)P2;KX(yC?lDdyEtMy;hPZ zH1i~t+H0IpW^cPqwWa$^TjoA?SD4VIVYvs+orOj(E9BP?d7tRw7{)w*Ug<5sFYpT*3$HN$RHqLpi$5 zelKG8v&6oRvr{F*T#uQf>^OUr>v?4X?yW@TI6LN9JyLVEd6u2PVy-sNvZp9n6Giie z(YBFcXNCz~xjo*VA0~8V@ zA9jzDj;L8Ir`UNf>U#1ayJHlm+8s&;qReb#r`bJ9DlMAFjQV`KJrX9g_0F;5U!r=} zM47qH&alhEg!-IkcPJ^huI1LxwG&^}t-pUBuIu2t{(L)^@4mx{iIdJ;L%n%Qbe~8eQ{7mJ)j^OUxQw>RLOK#msnoon6hc2QstK zpX==|7IPi@276RVjdeUS=OS~Xo&JVyYYwDXNw$(2>n6x;keloRmd79uL(1$zF7+;C zBd!(PY?pFoGvs+>7TQ&u+2aj-f`r^+*K_7X$Y+pByOHH`$R^0Gc8e0d=hC^~ZFWbP zj3RTp-4iB%Lhi70JM}24P!BzW=1x2PO%nfi7kAs)EarC?)pkCMx&N!iE@d&lyST?* z%0j;%+j9c$FtYoVREj6i7QJ^bwuhAX_mVHR@!(6^dc7G87TfVk%DuCK#dejFg~FT_ zEVgTP#%f2+_D;A)WOuR9vvszIEV28P__G`=wMUfra}g}H$KFz7k23c-KVbK~t;NiW z{GeU7I`9pSUx0Wcp6VYtg^>+OGTFjgVkJ`yBW-fw9?P3-)$9SVXy+@ZKp*hB% zu=778sj<2-F1lmoDZ7@1o+h*l#r6qSP~%TZAW(z z_p90^HAJ*#c&BWfMrmO|9iY3(>IRvv`T-v4b+Ww`)CzkPbv&eh_5d(vvp zSK@C`t#%`e*`l7a`&rBu^}L<*v056o*`i*s^ORJI%h48{dA8XFO3K9|2py5y>>?#= zq8^7Fj8VL3x9L(ANgAZxUb>EI#*qZ_SIBF2BMWUUv=?;PtxEi}oi%piCwg6cfKv2p zmNj+~%NG#(HA|;=2J#&w8#S*TC%KTfJoycob0J;!6jhJ@cIhI>J9e59{TZKTb?dgX zSm^WnO~|}&=jqnHUr2sn$E?>qq$g)pBJ+Wr&Jyz`W(@k)Dk)fmddOP`3>S3jI zB+I9E4$BD;df(}_8(2<*P(7d7eJtm)d~PT9>UzvCOun$EE7=fr5i-Z(ewi=q9F|28 zYW)j4kENNV&n{s37(#QnZLq7AR9b&R?!(gf((X}GZaHi5+c8MLo$#4z-P^(k>~tkH z)=tQ*L}tLwWZ56G2J(%a9af6A)j@lHn9vp1Z|!;|dP|^p^Nn`g=hT+|jpEy=XUI-h z;y=w{lby|Cp60O0&ijH&b$HKi*km`bm?vUvvWJwETgRY>>rwM2JExCIm0PDm`jrf` zn5Q|Qo((!P7a7_IH`#+M#hy(4k}`{}+adJaicNMI%TfrTf=rI z3qAjWO8sbevpj-Q?KqD8WcRYPL+E>upY0)*Pf1YEh&{scD}?I##U5jE-@wMN0Ink~>3wvpbax*c;0A()iu(R#Gmepe*~pnOyWeDP)|oMTm@{VfhCl34B^&I6P!By*=?^=xpZYuyWj^cuVNX@!U*-G5 zo~}fXg8KZ2ovurHzZlaVFk3q?M9 zNS~nNf=gM7A#}|lF4&-?Lzo#Fw-2@{sSxJOeEVRBl5%0r%(oAAbH>aIx^u4Z`=AvATn)eFkDXFoZLRDPVl*|_!Ez#m+BzuMr9^LaRsxO-!C@tO>)jD@Sa8Y@)aOcZDN4~?lt%}r zvXn#aSCXov!!qmQm|z8qne%gIutSM%i+^N1*16U^2@SkiROKuB5{w;-cVumaAC`gT*ZMEc1e;EUhdT2P>46 zTip<<`I2C@61{D#M4#seN0j*Ib(aOlSj>6dWkGAR>Y<=x<_jowSx~UhG4mBA@htsl zi_QTq4<;(96cgXkcgS8IoT6kP%G{%Rd2qTeW$la%oiSb>tm2HhNA>bxGmE)LwJ12u zVm^N@2*!_64+o;m=dUY+IV|Q=TXC>JNu{+P+M-{*ULCCBjF}R>aA`TTWFQ2eHA zHlM$)4OX*I4{83N(qKD_xq5I@a8OCPbrjm_#PTT%jt;&&GdgS9OA5Sl@*B3RFIHOno*CYC!PU!k7LU<*qV*K=#IljSYWR0X@0 zEU`91hEVFZU_Z<65Nhl8;MCu#hfA!OcXj5DU?0oQ5IWad6tu>4W*^AUsOQdL63ct} zxGi}X{GuaRz;Y-uOHp%8u$W~Q%RRvg7J8m4WflkfSIy%AWsK7SkfW%+n!ayE|xPOw7#AR_Ojdv*?>|l!9kY0 zxYX+4Fw4Iobo}{uaFk^&WDupE4JJqH)<1{PyLoFch2+2E1nSQcD*P4CYg{xC|}89>vGgg;)I5j)F?Rv zvVABssOzEYTJs>2LbWWnpwyj^T|!+U%3w}-$V$i_A;;0B=-SuIkUc}wmEc?ynNG-F zp*ogVAfG|@33Y|Z2xQ+-s;g`M5E(lWXQ!bGmW_}}ko`kLN)}t&y^p^j2ZdUsF0~7U zw$*8&HkJcf4i0s&%!C|{QYoPxma{o?NT`?PItc9-e+l)oR6}T+KQuJN@+5?g64OH? zENeJ(SZIvpTgczh*5RS)vATy7KERcD$Pu9omfcuVLpdx*Kxh;*LU~G-SahVl9Hov7 zm9P|@k2@(LM~AAy>NB97nC=&Q{b+rA`Q?h6$C*42d0d=4@mhhny73 zWhr7gIaC-X)SthHT3K#DW;NuLkTpryQv>-FXWgfTGQ#8~WafnWlq|98Idf(xGhUZk z1EEY_s5wmDft(u}VWIh`>35aqhZ1(AQZ?4cDD^oqb3^GYUqS{U7lf)9!7nBttF>#j(tU90j>Nl%Pb>j*{st7eUTblCETpH~+?hP_52**P5;f)hY3>U0f0B)}rnky&Uyi5n882 ze^Q|HpDROsN|uOM@m?9g^|32M$ve|1mUvIoyE2r*VxFdVWhj;92K11g1Xmo&W_i$) zLY9|2DP#H6lcg+MJZWaxqn-C^(=>b(#kT&lWvwPJQ-xU!xL*4-RF8w5?ES2Nn!cHlT4Pt$EH8| zEW3JA!g7=+)hwrY(#W#FlXjMJPu8*2dos-OiYH>S9>qtVB(eP9Nh(Wdo#}Hn%M4En zS+Z)G{rlWvxIo(!_w=ZTf5``qeD0?TKfq_AxFsc9>dWr`>H zEGKwU!g8@E)hrdBG_ox7q@CqePu8()@MM?;4|3uqFLu+TIKY!6mh(MHWx3mvY?d}p z3R%{BQpWPLCrep&{LHl8%yNV$oh)Z~(#NvElTnu2J&D_0kD|$wWR~|mNoV=ilU$aa zJ~#a-VmZN+DwaY|>RA?f(#o>ZlWvyxJQ-x!;)%6~?(;!knAQ_mW_yyta+xQYEOnmb zvpnZX3Cr7_RI?0u(#YcUnbzA`_V;8R%S=y(SR*t0$=}k9(5M@~S6= zEMIt1#v(SD9xi3s*OO+JnVxjATyIimet6-47oAXpk%T27NiGK9_m(tCnMlDc;7%4hDKQy=i`^5kjhYU zGSyRKeTh>ht{!7{8CGGsE;KcLT5xZp<$MNA#_G`PiTxK6+&l3 zwIOGJ-PTDEIwQI_6wh)FgxXpXN@Q68IRPZz)_st zL@D~VeZ41#Kq&L6CsCZ~^@NTsG{fF!M%*Q+nXcG>Ze-#mDD@#~_T?(BxzEeY;hHyu zM)lJ0w)rnZz0+y==xv_*^JQo>Oz3GBUxlU~rZV2V`d^2pEAi*m|2mY;ne(s=Y0mtC zP$p*nXu`%p_N)w9@&{#qZSHigD!=$iL~>=}da z%|j(eYB>~=iF$@Ztt=Ukze9cuWv1y&E+iN7b7(2c1rYje&q%237@b)Fc>}Hg66$2B zVEHu^m##C*Am^c;&7l#N=OEPQ-$HT6>I})n$ZQE!u+Y0zG31X>+i{dxY`u>Rjlyz9 zS-yhYhD?-`G)rf;K<$0>MVujd3Nq2j&!AE@)~+l8r;p_b$g{}U zPQ~#$^LNNAkdPxz&{7C_3*tIuN)}tUKt6`VI{7E+{=CHXZ140csj;>|9E@U;lboqD z!Ef~M6Lxg6l+;+eL+FUKlas^pSC*Zf0+wQy1gDtgA(ma73YN8y4d~Bgr;lX-@(W~F zXOJa&5c3%%;T_!>W!W8a5M+19`l}x4k&t5`dpLq+4rDeY$w^=-hMW!A(@E6g?Uj2u zO(#=5ORO4X79g{iGs^NL;{?TB(r2e_JJJlRI!}TlIbLzu4}#) zG7XuNoMt68Ru$whNS4#iaxWwea>N4K>KG7B=>X=Hg7axx^_>0o(>Gp9J~SbAA< zoFSI)Ao(bDx--i1C!`pX>sYzEtw|g43scA$j$qjrau?)GCr*hz8o!IPi?f_$En)^T zA4AS|Qdo|M^eRbJ;vZMfcIsKooR()hBP`~Av~!&FGpIj)Tjw~rTD-RMoqU!#+*ZC* zsKjq8-|1#CZRI;t&ZL^xSf;J>oFXNDTjx1dTD-RAI@K%-xUIR)Qm)6`TQS$M&eAoT zw&prHET*jjr(TKQR)N#1Mcl;8@It4ZrHb3S(COrQOj{Q^DS6}Dy3na$F>PJsbSv@O zy2u&SBI>xUdCoA)!`#+9XO!zPZOwD?&mP~_Jg0@lv~{s#okJPFt&5!mE#A21J4q}n zxvlw5vJ!uN&3CF<%rczs^s|_@E_G7Q9pBcaPNo*|3Xkh@C!1w0w{^LbtHf{Xa;Kfe zv~{@?pRY%1+A4DLmH6W-a!Ry_Pq?isoH7>E))h__*JGC970xh=Y3m9nsn`6iQm?>jwql~l_K<=K5ks^#Ia0;&~f8> zCqaq7zOHx5Sj@PtcY0V%Tcu9Y1*&Fsg`AF2rB13AZ(KJz=`2TcTQ@qHO8mBNbedUA zTQ@o}7wVCkwr+B=mH6Yj$tlz#GI(6&P7%um+*Y|$!u6PCSnl+(n6}ED=@*S}>t?4+ ziQm@E&QdMjxGJ1_mId5ah11COn6@gMxI$gCX{*91U@_ym#c5XJw{?rtsYTqx+p2O#wTMP;>vqSwnCht%|K_%CcZ3pu zeckR9v6yk)?sTx2w(fA^E>ZP(+r}MEvKDU{-sz;UbZ}dDI;l$hw(fN5Sxj4ZIwLHm zt-GA``QzKV%gNQ^wN>rpv%Jr3RXc@B{I;r{ZWhy4wKL^Xy;MzGHBONde;L*|Ra(5Z z7CY4}bR?nuYq7JG>oMzVv147PYc_2yc5+xuTeVKT62Gllr&WvSE= zxgOKj5+~*I@og<}Dp*Wg_c`54{I>3M2DNzaU-vu1ETi1k{mv-YW7@jk$uAn;*8NTk zi)m|_V=bVJ-_|lGL5tT`os+~u@6@ym>zrgI{`#tOs#(l3taJKVOj{2+DOZed>p>?| zi~0;p=TQ$i*(`KtJ+<|aldHsU>mjF|#kBR16Mv;1scEa;$yef!tKKQmB4UU1vG-x8 zjAaUh+IrZj;(E+7eApRgF>O8UWE78Y>k+3~iQm>EPNNoaD7W>f)66o1+j`V#<$6q8 zk2*6%Sjk2=LHW?ajib|rpW%bj&vL?*Y@==8D7;kFu`L9WNN)#zkjJ-)3*r-8+^ z^|&*v#Bb|yM_fatD!pyvNhglQEW;0vQ#H91Kos%GyP)#RjV z5f}2fRygS_xAM4FIGIZPwpKXJET*j$PRzA>q^7N>ooprkxSn6CCiW*M$@`dCa`E1l`rjc;p}Q>MgkYn8K9i&(*JwK(-GFK}BeP9xW2+G=s)uGcl2 zwpyG57BjBZPO}oft<_Ga7H@q$>vXfc$!$IBtmAr2ThBV_rQ_Rr)~RJNZM8amO8mB3 zolz~`x#;tbbpzE?DL&@5o_B;2e|5Kh6ej|fxjIVhal82Ca-4l8qG-W!+ z$>YeZ9VaUxZ+jBYHNQVjs8r85p;8}vvKvah9l%j?oVwX!Er*FjZTqTV*2+RbQSb_r&>w5brMR^cLAH6cAc>Q*nkY(3AouwV|m<@ zEG3oJ3dpx8wb^M6lOG_zIsHn?trwA@`vQ303wmM@h z=2tOWotRsw&x^%DsF{96@TZf=a=IteS#I0x=slOdLGJc+5&eco}z)SSqY;mLHCYdy(gY4W6ik>%HP^Bn>q!$! zsV5yQk9pF|^0p@+%7 z0Eq3*zgw58gHX*OH@;fSvk>~WE953CskGjJOh+ll&E(7m7S}Cd`4d7%8|eTX^U5j-%N*#w%ac&z+CWK1u;C3nTp9-;qEAF9s zI;`1VCRK^9`ERIa2RAQFPJzU`rD2i>*~x9tV$DH4)SsQ*UX~)31UG)M>a$e?q3`u} zaf_9dTTeo0iA{D}m8`K$pLcaTS=x}HQS9ojV|kV9+0`9nc^5Jl{Yi93Sw4kOfA(-i zEw#SJ8h~7aOp=?x@++hWvZtHO5;dwzO>t9MBqV(YTz_}7SayX_fA)6^SPt@}nB^Ex zDp+Pis6YF=wJc|I<^Z>WWdVfVJr8hOSQc@qscuJ@P@fNSdsyy8W&rOXDef@K;}E)= z=}_0YSC5^9`aIo@V`<}3)7>O3;vGl{YCghE;ml_c>hlq9I?K0^8<9zMvst2l)0rdP zd?os>Rch-fcYc^upwv-rNtoOLNptJ9h#gQ5?M=tHjVy;jXcWh|EiAd5nd!E%T)~-{ zZYRqk$i1jJ-R)+16!L%)YzFw(G4Ul5)O@Vl%b5~y-iEc}nd=2@VoBB`6=%W_(`D8a!i#QOaXr0b>vstD?Xza7ye3lFdooCK=7qOh` zNvjq$iV;=MIxXHhJ;hCWNVP8LdQ{Bb_$`r}!cu^GXf2=OX0u%8Ns$)oMo3VVYT`@{ zw|=VI%ksDPu)ZDx@ig~VRqMEhP{1O+tr7U}()Do1s#I0jF2=Wl*GPh01LhEQqBV>U)q@>(B z5%M(T3ODX4s<|U7wn@JiT>FUQYpUhq>eLNJZa<1#6L|v9W3z>S{Eg5w=QMv4Wa&A>()N4 z`fSnINv?C-Sf(Mf2IIQk9c4-5Ql)NLvo7@y&fMTOvJ|k~==QQ)#d4FIyHb~`guIQK z%iKDa`yd}eZg#s^o`&>77P^_Mbg7piG>Qthl;uqbt-)K|R+b)5raYrdeGb`xdTw!Z zS?HG!v_;+O&R0@tZA6Bo$}QuJ+3Id{m$Lkb3@xAA-ARp2(7_IZbFN0 z{a{aeSdQ}~Z?(>3L+HGBk=w*Fmos;|{Ve4WT0VEWRsW_^9rhB=+~rm)sSuAs9!3xE za_c$M>Se}Q-iCaKdhT+qXH`8>pL>}UB^A~XWIgU?y30)ulOIv4+RYA=Es(`-UYJBp z!T#(nQqmE%nQLC=*6NHf=ReEbK^Akiv&nHhX#D{g~qq#;A{sJlpse@?sHtyQ9*+_xv{S?)F~@sBpk-Bu<3yTfv~O-YAkme_K)sf}6> zFV&(XJkzyJrblOl**2EDyhYHi;*?wgbD3m%ia7i*$MAxkGb=eEU~U^#2t_r z*W+$QSmsd3lWudE91VHOU8lu+Cwkf)WHIkVPrETMss0FauJyE=#A431o_5oetVur& zOMZ9s=V`Z4XS{RBm2MH2nu`p*>#cOFl`OOtKK450FZq1P3vRm>@e^vMKELR8 zDk-;|Xx--*-6`!i!6XZ45>Cl;%k*S1qxQQ%15V}Ua#+@1__aO6z zo5n(CadnV4-7FS*muZB&GFd_sqE)FbH|7m0H4sIgq@G4S zZ@U>v{Ii00+#b%*c>>k^uG_CO-dVxBZhR-zJ?t>$Iy;^Sf@E7Ry|X?{=HC zh`rGtT7&PoEi6Ys==14&Zad3K5IR1;?{=~jKmi{`pWDIWeS_fk zg^BtG!5w4qzCmyk-qQ7usBaM5=}OA2M=^>usQG($ewffvbd%ezWU=);GH)aEgFC{~ z1^Ec_lbhT{HFsF%v-z)XixU3``K#NuO=eh0h4m%sq4oZ&oBOuvp?BQ))y>~Vij;)6 zRkBT{Vw=q1Hd63TWLxu<_*edabxV{~i0{!u`h@ta+xTweNaMOA>q$@&-ovtOGF97T zTHcGSr%j8nVxp}tv7CQ(J6I+`hLv=)>W`@7%x|uv#alaD+=MVu-_*EEl~jmUl=>4r{N3$R;xCQg-LxL6 zd9ipKnTh*QCXZ#kC#5Vuds3&Q!V(kp`}^;%_>k(UuqH!7sAtTbuB6tQ0ofk1)vf-B zGUe9Ekli5BvMx-fKqko4bvkn%GISO>iXXEP$$>wdORf}~GYNqE`hNSbkDrK!;abzaTTF43Lp(}H>cxy+> ze9jC|50R0wg=I5KtQ?Cd6(?i9&~1tBqODUbz#GflKK{jy4%$2u`Y|`S* zdbf*gS5kv{1f#9%Q1dP_cLTLmW6gxz4cS#LRWe|k`(+Yky^?Z~i*Ly%;g|V|vPp?Q z!`^PPTZz9V>?YS~vHpgdm!js~^~rM+}KN& zX^EN{&`0CFWED$+CyTh$O^_zlR;?1fH0TI`w!(yt>U+yJE!Gn#Me`c%E!Rb4rpP|d zJdaE>YMvrTA~O5PG0v>z%sw)q-`{?yt$k&Z7HbQh{775xzA`T?^DJaPIbR8$Q@p^k z(y^A4Wv$MLFHtisjRRyI%Wn`miXI>vS!hP_S5VJ^vYCZu6n{fWn-*`KPL&5@&Ldq2-ez zv$x6Qa%LVfbR0{Og%O!UWD#esUxZKnXzLJJ6_GhqR&%D7`+TUZkH}1yjhtD5Oh4+G zF54n9hsh4kyvUiuWPe2Fa5==8Zq6Jo(+0+G2}j5bE!IY4zC&9_$h?S5sx08l7S5!~ z5+xg=TpN1|O3jeHEM{+-A^Ta(-ZVq@eXIAT(@|0!Ebl=wYNms6GaJv>%s=~CWad8}+^G0X5+*~(&ic&zLl z8Q;TWWxp1$hsVkx7SqFHWy&w(dw8r&RpR&XSedKD-x7|KCAyT?!{cNxi|OHUvY*BD z@HkoY>-Zj`9xYxEkCSCAriaJL3NB@q;c;@262FJX$tEsk*6A!6w^_C2?K`t%0*mR- zESWnxzCW{Mz80@Pvt%KQ>CY_L&819#X32F*{Qk_6qe}cGmLU^Wdn;7jJEy)$&^hjyF+F` z{wiBoQXuJ&zsWY1;~*zOPLdr;Hbmt>W<#=M;_u^^VV0c2VwPc+tkz<$LMaz#7g=&C zXJ+DDg8G~#>sib)%#saU$}Gby*`&l@hFP+UOUY2Qm5ctIET@c(@6X9{DvRmQ$+Gni zm9ei!sq%HgPG_pV_iSiQk{uvL{SvIsaYuYQbIH(N-bG{&zVg zO0^zk`kXCGS>Q2WNSp`6xq(1-!ZOIWKNOY5t&ovI?lL`et$nz4k_`s=Ny?aK`#w6 z_8ghTV#b~$TeW!GbB=81%uL>%b7Uur8GDZG;!I#ET%uF$sR6c`g5A>RpR&OG&vR~v@TAUF%zjjmDavk zhBsq5pDvTMc<0!2WHM(?K!%>QI7gO7WO8K%XU;+9Hq?_VYnAw)+Rl(eEM{GtAxBuu z*w2vp0lgiXPi<$&LM`5Qc!n%uF=IbNws0vk_A_Lg5`XMx$X+GoRtb7YV?R@laXsd9 z<(V=^j9)uv$~+d+!!u>C7VmTAnX;cVX6>9QhgeJx&y>Sl%JlF|IjY3(;h8eQ)~#2f zhbQ7w?OC#l#VoP2WHpQF&sj1hq?g$1C`EVBoF!AWcuVXona*PRbC#^&Ql>v=$yz0T zf6kIEO7P8}tCv`w>&AuS>f8Tuao967==8A6|z&ykoWfVMF)jH};EQR-YN zShhmawkL_#;%#;LGEs{)1@-(BrSfG}MCLqM&6&R-L)VeclVz@I%d6*nS)~QP7K*kW zM?L4uYAxbq$ZAM|T*`7bBp<&JD3A>-zdx(L%f3K1v4mRr*AcRn|TE^lDKN_NjqA`Nc5l&Lkm2&+(Zrha)nV$x+T6$(hS!#`da*A{Rp2 zbCJwaQZ6ol(Dqy;b2($40=z)xbH+Rcc!8YH8S@n2D`YWe%u|4`kYzff_6vH#@0GGC zOlVuZTDEAhu0ZRbV)y>upx?@y_W*J5oKtNT+bGa@oK$SlrGMuvWmbc4)` z$lNFkIFpRbk7(;gS*%5*LAF3{lBFysKw|bIsba~7&{fbfSmVQDC|WL?wRlIZn`P@Z(yqn27&XVD^_yi+L}sDvw&o|YlL-CnM*w{d)z`<8z!{XRmeImR!m&9wGaASA)6vHx5yUGtj2o*E$3Tg*EX3R&g_DEX#2TE zIy;ZwS}J9{7Hc154ntd&GMVKN2-SS6%#0{?tIX!i(a0Q!Qn$*2h)k87&zWpwPC}+i zmPKT4lU1BKhwHgbHb!J_m(85H2ANY(&+T$FB6Ekd64bb?YGm?}xkDCe@wT5uvWPQv z$P^;8NG^)V+$n20^8_+iBXg%*7m>M3_HpJ_&fF!Z>@t3--YutUv3iiHLOplO%&<%i zq*~@{5$378_sBveQeW~DJ++8siiVKqSXB| zlQTCXQ->qu{W4F9e`dZ+wzHUhaGC66G5g>$S(`}x@xM=5ChN3#``|L!z+(2nWin?s zUCQi(%VeGse;-^XOO=#c_tLnq%|9UPSQ4WItj4-{KrUr5%jW@E&tjI(1F~>0J<>yVh_+r`>w_p9f^Wl5(pQHPcAzWX#^DXKGG`mf(_)>9Qahra zM`dk9X1T264842Oa$YVww#jsH<|@=f-$gE$BT6~~uiEOochBWAhs7*; z)V!a{*e{?Iy?ZW~U0S>?bGhtcF)n5<_p z+v;PoJFJw>tkYusiBj|p!eeq!i`X$f+M0qT)+mQr_J*V=8DlvFLfhfvGG>43VWmii z&{}?6#%b}^&J!{rOuol=e^1C1B^_4#68)*9Nv4KnsE185U5oX1)J*T5O)@7U^OVfv z%=yUBw~9~6A|)H5E{7bAKCh6SEateeLUyy5wX;Iz9;lad3rbnrQK@__-r89q3t7zC zSs|Oblvz6~WUCT??W~aNl$2YWQ8SI}X*n8}(PB+i%g{RDNnBS(pP!cTTD)c0EE731 zamQ#Y2bpG>5|LRcQ#rE>GG`&PQf4dJ5Opl%e8?)m5B$dQHTQ}v|l_Yv$S~QdQRqOv5r87wz22rqHQv@oH@zMbZHUhsgBRd z9+q>xwtBwy_uFh!*Q&l%lINFUYi%@k_olPTcL952(jO{RGp zY28NJw~@|mq+5%1722ZZyhiqKlNsX79mu?dCALO7hmIdtr;OKP(eD9h&+U{`w#iK8 z%)e028r0J%Ga@o?$}G;jgbZzCZ^}F+{&xy%WebZrj;)n#Eao`2RwhrU9&Yfi;jfh` zTD;@fTA9jXj$>hZ_hhpYe|!Ewc5fr= zv{)hmXJ{z(fgEGm3u5n&nMP#l;p5lfhcaD@m4-|LG9Svkh|EW_fHPUh(9``sk`)n| zkL4oHxQ&t(>`r>Ol|J$>bx(_vaItqQ$C4hJLU0iOh(|te07wd5AOX zWobm_Q(3{8XE^hz?25?r${xUIHJ@hIm)F5xYQ<@ zm9Dl8Yn0^&S;i9DHQL&U-&73CS|yl68$vbzDC<~KSbmZXx|Fx|{w$lgo>|D;i)Hw; z>Dj#KO1`{cVt zIxJ?}*dmwC(%Z(KiP6?UXnl*U*Wzs(TVx}P**3PwCN5>RjV-c8iN9@Zkv(BT+s5y* zSBrHC+M>PtcR3W18IvQNxrsAlGA3jElK(?GTC7Jn^M_1~$ZVBUIP(=}w#w-dnLlM3 zXZGDK+FFMt_NUB=$XKy?oJr@56Z`O8*ozAicg!(fnHjU*-&PUNBAap#8k1b$X2%&G}<711Itg+@`j!l|#X2;lWCAbEQ49QNh z^G~E6mRtXVBw-Xg$F{LN1=$ah5ZlG_3WWNzOKd;OJD#Lx>U!2gsODW_OId#4%;Z?{ zSIVprF?--sE$&a59GjrUGPCPUj!kAUGw@7~O;w`rW}1fnOpa~m%=V}!6|#Hm{J-he zcVXEhwvpvP$V_CCV%wAqM4bSkZDY^ab}hEKCv?x)P8M@d=$^6NN-D)EUa56THbk8V zp}Y9^j2+TqKL(+7x>xL&62H%T#ZEbidg!;lZ)~y_ul0RnQ&>#v`^KV(HGzLuZ~{hQ zWKGmC+M?@G$(&gewV4E&{XLnG6m89cOpQ%dHR~fAt-*t0)3sPGGE~n&u>}#CX|eM; zvnMjN#HPh|Y?JBY%nW4cR~FM^`?kppa^?hN=-pvj?5Gm|)7G@u>?~S7{`Z5^Vslx{ zaUQK}@jh)$i|yjfO#TJewAdaNbDW+DpF6z$DZuef_x`2_1~_W!Owk>yRfySV%kuJ@l2 zfA9TQ8s`M-DdjQVxLY`9@}(*lZT*e=b%uJ4;c^qbavfaGyuQhQn^!$9d_Tu-UjLK7 z#kv1({QtlH|Ly;>eOhMp@BiKQv7X!cRV`P1!dI`+*17+nb|zRG`TvdYb&77^{M{N+ zF5@I!Zkl?Hu^v|cKhgT%=S;geUyZ2mXKr8DgQt9)NcBf^KPOnay%HeAZ zqU*z_^BHQvXpZ8zB zMq6{)ujALd_|=TV)N5Yj)$+leb!t7~_b&YR=_l*{=^WnmxgN8;O-`?OJn4-8-{j4B z-{9r9BI5t`-xI87BfN~;?@%6Xy~Y3E&3}K&fA{mN>Cd{kQ-A zYu4isAO9Vd_m_`ZPUbu!p8r4cZ&OdRs>gpnGk=di-@x+=GpYa4mU%y|Q{(Z^m-bZc zM0@88pYZ#cakD+{&$&amUo-gCtRK_Qqaxh=e-^vRneh#%?JnBV%VmOPmWx?_k?)h* zF&?h(LiHMLJ(W)5#BYz;U*hfE95>B+xsvl{c}KqL@#5O0dY_nJT{>IWYsT?EeU0pQ zWVy)yFXeve+yw8u;J+(p{{QB2<<0u_&o9RRzhA%kymBuuw}-i&r~b>oC;Tt&-UKe| zD*GS5pU<=KJZysCLZU#CNm8lNLQz37rNxv_(PB|ap+zwjMT^BuGBPtc(PCj~QAyHb zQIicVHq=PcqS2HSZ4*tB)Wl?q6D>|u|Mxlfp8Lor8Jll@|F7Tgr!QXTeb2e~+;jK! zb04M057GbQsW-i1x6uEod}zAFo*k!qxcq*^q+iQ@W;>`{$k4K4MWAhZtplXV!o?B;dVfEnEplQp;nhR!zh7lw*Htp}${hW{%M75=S;FI4zK zA2V{HQf`u;uNt}Vg^K(wBbR-oO~x(sbB|oY>-`_RtYr2Fq@HW)+J5ujCcN~YLZw`E ze)FI;WZZh-c;dNA_I`t{d~tA$)uhYWxr7yB>eoIUf>E+%k`e>ZuvV-}dh`HCO}+?!F}rkY zufvt2Pd#Vi)#V@6v!ik2`h7zpi(~=gWJ> zpX7tMKVyDWkHjnaHniNMjehA@ry94=Tg<+;P`yuwyOPGA z?AysWC{*}*KN#QR8UHdL6e|A2&SK+F=I^q;*5%~m{)o~m^>BM~+E%}?b{pLXk#TRX39s9=PhDc-k$spt z;}-jcE;Qj9jaGdJ@jZMA`)q@v@O!(srmHjKd zp21y8!`Jmn)-^uMmwMx+Qg4K2n|-Ydj6Uh7gr*pIpP7Hv8h@f!;=kHs&obk_-_TEt zo+pf3>btHVj*@!vq>&GG`&5_VOT7QL(f5q~_2zt6@^_2j%eW!?=|kN<Tz{U)!;I-nwEN zH*wCuIOF1+Pu9_^SRUPH7QRruFCFb)hq`@A&*O2A)6_dXez~fd$1|V$gBjNjVu}~# z4gVdppRMf&I2C-A9*WdQtj(XhWi#{KadEpQDKZXmx zeSS2bq+UpQ3YGRG<5Z`~|Mg6L>J_Gb^}4ZdIQhFqE_$SY7|O?uNu&1@&AI(dxaquYmWfB^0cRP1=Ni7`!_J~Qz4#3V*6&l&?zhkPt9oO{ z(DsFXf%$$L{w8+gWhReaZ#XTFh7-A-H~LKYs9fw?W%NG9RQfk*-#(?~ekJn%?feqE zbvyfEeu&&__m54_|16*I%bjMwTeq9&eC`#KZ<@Ml<96LX_0@mm`&B}*9*=Vj%^N~p zHPg7u4IR!Nu}{`R7a0FuD&y*osOXV(qCOABuf1}+$1QZz{;N$q+voe$H6FRtBkdpW z4x0VS#m1jdNsrk1ppk1DowtfUp--|u*PMg<)JrCu$i4K>JWjjjJYCwaUwvW5ZyEn3 zoUU*9*2$cg52bjS!h{>j$9J-ZFVrg+x1?9*S+c(?c8EXGBUH})MLv{9=RcATp)#Jl zzJq)c|I#17!TX(ZzJ;-p&!c^6C|~3|qH-Q6{&0W5*dzV>kEQ>&*!eF{eh*FGj`HKj z<`2#zJ>}$e|Fm+G@`_TqCpa`cGQQx~+D*E3e~w?K_?hnigmxKw6PX{~Z_@kOewAkY zd*zdu?^hGKodwMPcTnwX{A)hWnN2(NQrXX%>XHB4*dhLB8+~OS{!ew!GkS%J9a5jY zw95F`_h#_I0lP774#{5`&n5q(ZryJT-|tcXPV=d~%=$#`QA+xUTkl+L>=OH=oPX>( zXt?#2oSWQW^a~ZfQ0YIV|C4@E_(Ekqq321GKhbrQUO(Yo7!#j&9W~VLv;Ms0Bz6du zcx62y`Llg~w7kCLa`4_uMY|iq7q?J7KTg7%5W1a5+o{+?>u6fH47EqxK0CjD(&WSI zhU)n`zV$M0(YK>?$bCfd?~VU^*5|6xN9cY*?uSV}4fXF++3e46*69JYKio-4L3NA? z?=6oVxn(?*^_KKwvOW>F=#hI^L+z6KB>9NfM?CpF)E(Vt*goHH(^Gc1E-&pbdOum_ z2me_f*nu9rILrEly2frD57nazldrOmd8u*VctH?y+Lul?e9qKf1p7)Fz|f8}7%tr5#B-`Hc19 z1yrMVW|7V(p>lt9NBz9?lS0KF(c`6hKOZl}&Cu<#$edTpy6`mHt`W`pkC3_}jkz zXuqew4{??L{=@sdTEOlPd;RI}LHy>NDq!aGLF-@l6EZK2?qfc6g^ zuF~IU`-~jkby|VA~wsGtHkKUKoa#wx0 z-Ta8AU*BtYOg`dmXY<{tt```AkJ9r8sV6!=_4hh-{~`@?8n*-H{^IWJKUyxr7k#?i zd}^xEd#Isu?xNFycgf7XCONkes{3WU5NXc2#4S|njqG2_dDwIlkJsPN3}4pupP70# za|e9MhvSVup~8>j`$V`$$n(T#y&Ni!=DYZ(`iQR#)YoQS=k;I4@!_puraq<52mB@; zuf8AdQ_^=;v`&|Nk^B(8w_ZxU(==Ki#C?TH|4_Hj)*In3^!StZEPPpC$oB*?ZxZ*7 zCcL=iy8v;^eRi$KRr39U=)Kc~7xy1L`lSBp^tS^3iLLzCRPS@5kP!5q&bx z7PnWw)C)=P|IR!tpeC7mBz9=}!~0S@npb-5m-V6OmGOD#_inD5ZsHfYrt%&W-uXB8 zbA_H@%18F8WM5p?sd6q+X7qadWvO2~qTX;`_i*R7QeNKj8|udISDN!ix@Y^J?z74{ zi1(f>om){4w4-~w-gKUC@=vG7XV(ofo(wGq{Ki(H?q{wr`6>JRUcJM)Wj{gJ1H3b0 z=B2g94liHondJ91CSLD;h1dOw=|^uh{xx;goyOf_;(Nfjz57Qp4tn{rZ#5iW>bI9l zd+_rAvpah4iNe#pfya%#QZBL&Cim7Q-P#>JXV>2+N8NJIT;i8|=)(8Tvt@oLaxWFR zj7P(L4=w)W9Tq)K$aj@~b6+#MALsR_*Xw?B4<%syNB85r{$>A8hl}1{(fb84b{}uJ z`s(FNehsCrTFd3)v+u;bZt7RB;gf%w&wpmhPr}Q*QK;|(CAys@GL?5$%cNA&yr4|a-T%zQ(Dgt z_m76=Q?z{y)e|ibx!f)mn0r-U-TS7 z<^_kD@Zvt!<4$5d_BeS>H&x2$k@^ zHTw0u#b>_n@!Rivq#a87#Vz$=s9Wyk$a`FJ{-F8PzwQh@^nI%S-XNf^G5NH8JEHxi z_8%P9zpigP_P=bq@p;o5b?bRG&a+HC^4cl!?kGJw@~6j9pVIb8J_k(wjgG%k|8@CA z+qu}K=gHB1dM{sp=Oy_cO{eY$C0z6#xr7(FjQ5gWxo`es{Ym?hepkY2zK_3yqxwPL zo6$J|*-Q80?@xqwgYVeApU z*e~y!3SY`2#QOX;oW4ik^0_hXn~j$Ec)wfoX&l$_xN0KHeQJNRu9NUuj&aNAC%KDu zcA&9ud*NxEIMBp*goh57U-JE|Pzk5=8Sir&J#vp%_Uok_w@>j-fe9z|WFEV*uW$IG z=OW`4J#z0$Q~8cBdJkXUV?(}~d-qovz4Gpv%ui&!INUl}5~ zV^6jzU->>*#}oZ7P2BD=x_{b{do=sQFQOa&62G{I3twRT7n}4+K8StNzYa&`K8o}g zn&MYtP5NZK9FEF;x)mrd>er7k_6)}_GwCG%)Njf<$Lp5&^F+RVH^xEPm*ewXytiuf zO8l#hTZea*z7OWJ_rZqV5A&(#J$6aFqVHuRmvqQDBJO!6{X^aOorWFowSGta#`u%_ zvEKAwXYx<(?RxJ`dfj&z|IJ3P+yj++h(aZOEyka;GvPln4F3fWU+e2NRzgFY%f2PrM zj)(7^FN!^)U*~d{@3)$_kEg1&$EWQeM;NqH+JDW7@i-v)~+9${^9%`%jw0hf^vWB zs`pI4EBB$rE#)9?dFM#za+B}cUf0@tkJ0~tkrx)~dM<9EQr^NB;DD(p5Pe-lz6q>R0<2eKOw^f1+RJ_rvKg;P5y< zWIKII?4EA)4ks7=$C&UZ8vkb)dgc&{nZ23sO8I-Ke1{|T;v5tHVy3S8opH-Jt|{st z^L^^BA#zvgdgSFhYUsJKPo2--B<6qj1 ztb2rd%kL}WU&8-)6nPWT?N-7`I~qBJk9o)83jgrkq31iQ;oK7bITKFS)oDhrxF@n3 z_ZdBW?e^Js1-I|tZ{_=#@S0-1W89~j_vUmx_i;U=bPUJW_Q-uc$Lg1MWXA_{9w_69 z$A8e z-(T5G~fz6?kI zZv6dYh<{goVcdgE@qNy5RGvOHmMPwuVCtv?hESaI828T&J%K6qd)O|Yn#*p#y4=Y1 zJDE6VGv`@yzd@+{{++mGeIxt-axN$HXxXO{x6C8!J-@f+QvbZ=>UE1gFMWsg z;9V-FKJ}^5D|QY?C10ieiCgY_$-6Y(_{6Q>eTkNfe8(?(gi3i0M`xRMByz94!k6~# zJ6?}3Vuw(ve?sMZb#cqSzqqB`h06Yryu+aF$GL5xj!&q>HyoAk-bJr|zc1RqNI2QI zmiI~}opOIq!i!zf-lcyNxqR;`^*fdG$5mNOefB%e9FuQ4{dl+3xTXAMKUwOdoI}ZY z?7dGX_wVHUTnQ)T=dHhTA5G+9zwGA?{cbDzZkLq1_>=QAd5=Ty%S7*6$$qWGBmJ}7 zi}-<^=KBqs|K>bS-?xbVK7!~IyTvV3%1O>?rJN2o`7Hgc^y{KWsMt01+zRhY82cn1 zkqec2E$vU{jU^^tseh6$LM7f~j6bPAUMls@OLc!9eV1I~)%!+{lKhZxGA_t|#g6tf z%Goa2x9};Mr;PB7=hB{rqw`Gq66`x*X@ zz~7Phn}NTX`1`q<;vA#$@HfSYs6yvN^&9sj(33!C^WQzbQ$SCL-ZS854*tsFzZ~>T zRgb?s{7rG@!ltv;Qs*4}ou}?|YSc6SOI5dXxmu#GgsfKeIlob(1HXsv->Yo*8Z`-j zh0Zm=OVlj)X8bM1-!k=j;8xJv@YkfO@Hfl7L(TWyp}q{OtRQ>XhJP>P-Bt4?Lz;!Tl)y*13;E$Kz@_{^sCs7XD`7ugrY{;Z{So8oVb} zDgI`;e*&*v{VJvdHb1Y%`d)yp7ocN3^sk5h_0Yc_y!Ft(9{Sfq_9EObg1)4t_+C~A z`d(4*#k>OgD)e=$JA!Yh65kuZZ>n9xJ*vw0uDaZ}5r4fZ9e-ne@2NY&eTeUU^<=nT z)%*Iv?+1UgdM>fJ9?vGWD;@oP0Nb}RC9 zEAUq2={M>_-=MnM{TBMZg}!f*{%?`?Z&eBY%J5f(zghSz#NU3t@8R!z_;Z|H;#_Bz z>pBm+ekafIJ5!v1Q;)wq{7rF!POBS&EDRd!oQ%IJ{LRAOEBGsP6P+2p6l|rAbvoU# z&J5=$2c?U@(;R=`bf?mPI`GBNbun~Z=IpO7bJn?+IU_;m;%|wnMVM=xf8lSPdyV7b zZ?3uq{OiHH9=z+pyB@sj!Mg#x8^F5(yc@U%E>SmvcO!T=f_Ec$H^Sdd;N1k?P2k-G z-c8^&g4YOMBY2JAHG;PUyd~f*0dEO-OTfDsyqm$h8N8dpyBWNt&SUOU@RmBG6PALv z6uf25bM7+mmN_?%SO(rQ@NNa~R`6~G?^f_`1+NLbCh(fTYXYwcyyeih9K7Yww;a6X z;5CES3|=#M&EPeIcQ^9uZt(6#e%%e;-Qe8=-aX*m1KvI0-2>je&icT;;N9!|DtIq= z_k#DJv(b4F^jXNBh3r|#o`vjL@ZN-uH^F-oI^G2DP4If0yYRQp?Q!k^or}LE>RsoP z5$`gctKNs6_aT2DdftcpeegeWc6B}i?;~eV(7A9gQJ*@;gg*uEQ|DaJxo|I0gQy4J zI@6L8-N)QScOCvlCnUOaRU&$Vbaz)L9lUgRPtdt=FHyU@`{Qq&ySqCQbT0musEO{A zzKP&XbWcp02;M~S_Hjoh>;v9D?!2UZz}pABBKLiNky{)%9CQZan*sR@#5V)-8IUKd zlW%v_g?r*x>DBs7S1lY+Dy(*$t<-J*QfjtExfWHbH{tJcgveF-iyiekZah?~P2eqH zEgu_crTP-+H{iu{*du^4)p^i71DaFSU#`Q>=T@b1)OYaruPq9;jL34;HSm|LN{m$> z26ul9Hz7ti@b_&4#$t{m3;u3pv-VQYF$dmi9xsN(HZV)aO7QYC6LH8z|kTXtqjRfR!t(&rwt1FJ>~{ zDNxP#IO@n4?7XUhAkv2PW~;kL;w4X{x54IQgE|T~ARhjhc(W~{QT^r~;@uc<)pN+* zMjKm)ngI(&AdU`o4A4YIrvasXufQt@ng(8jddP(BQ1if>4&DY;1vHv1SP$tDyF03W z8_icidLsN)s^0>g&*<0RIqGttUUkG=#i>kHPovx@9b42j@b_y-`_(d_-vK!e)tn&G z+qR8nvOrr(Hj^!_R@%-;*R`gP@fIQ1gL~kwf#Yohx)CTxy#PcxnXFy|q8zVO?*ZKk z>07MjWANI!PQDELI&JOjvT>w2Eq6QWebn(ZrypT8`nN%qD!8kzP2F6A&CuM#<@O*@ zpRKWdHV-P*7?eJ>g&tedInIbyhg;87XC(AJfw0|d!P7wb&Lr^G0Tppxk(rSD(TCXl4z(F-AAUz#Ks?9$1*C(vEo@O$2=UI>lJ`f(QGK}_yuW>kI_~tY z#%no9QGxnkGk(7qVbh!ikX{E~nsW;fg_!T$X|&Wie+2U9qA#&w7dd|cF9cql^H-om zpgf!MVn^Cmfg>%dgr(HKbf}LJA_XB9J6`~00;O&v9kYj0lUScvn#cMM0ItGqpj|yx0jrO7%3|84W}&Wfl9I1?ej1vugA_D6J0W zQR%O8vfz*EbGCEh;|{m@9;>;}=F1j!GTI>JeYZolP|whmbVxryh#qbMG`{H^qLi<4iY~$_+g_+wuGGYMS8C!0rxIbQe787P z042iTIldX!qaC1s*7aZ)@Y0+HNU1GUalF(sKIq;2VT47 zHCWW4HXy{$AT73eP-^oa+x1NLwNEf*@3!*aW z;IV8Sc&*mvR$E4GHr_TXZMVEuH}Mrmy^F9LoHS@AeH)x9Ko#6m7XVSOT&a!(q8VAe z69J;WsngcAP8(aNtwWtQuez+X&&JzrrJHR|_PA0z2duvycW=z$K7xIEygX|H+Lq1J z9`{t(Led_tFEncOxO2gC(B697^MStPu+$HI%l@R^Ykj`GF-BSY{63kz`h8Nb25oE| z?j_I{j}RU1FM)Kv&^%%!chQEvcjWOPB1DXPV$?iI!{eiZ)GOOC+zKQYt7WhMLhqM6FRI4xD zq7L;Iq$faH?33Q7#3#Lvo)4W3X{k?gDBFguup!E9h$cHzsIt6V8zPSpwWu`TJBasu zXrAr-1L!iKG~YKs3mEw)V!j5H?<4E)U_>+3r+_+C9He3NfBi0vJ=4(p^t)rhqa51m ze$wQqx8ZLqOZzCSOS2JbJ(X&*@z-jt>a;U}Zfoa(wV+XfU<$Ms9yr(4Db=DpzgU&N4Ug&p z&0h*^Itu(Ue<`;9@_jVFKMY^4$%x= zwU6ezq;mGhc@gwKi?_7R|Q3g+?^b z(P%XK2#qEH^}7edf>)tMx6n^fPn-NwZY{Rldf6({(qc={@&62A-$hu*Kii35_+E_u$s__EYN6w z%w*F1A0RB{kVe`c@w7ie|hx1>r&ZP}XEE}C;$7v?ob?EV z*y8Mguo2cwv5^IKyPQ{*xfR0BE-V*Wg_WRPH|u zyk9c91SrdgIfI&q8Hz@~2anb+8`PaZ)GjO4GX~A(I2IyorT1+$LL1z`usHGp_#`Z^C-Q8-0~laxGci0MrYA@ockRo8AE) zjU>tHArr#!uLk-D{H0re%luv7eF9#G+6c6jrBq93CcTPtEomzHFh*m5)-lQe+Tia; zh&>s72b2f2MFp?ddmi(hxIJBU2zVO3j(%vhe;4qM0#9qE8kQT7o=~sZX@@1*-2?tk zfImGV(k@PMplB?1da##P9GC_41d!g}I0gPn0&ie#TF!`eNzMZ*wY<`R@Ja#`AibES zg335I=7U#Z^JR;zFI)YEuw@~nTm8oYQ9a$_uK*(JxB4#!TEx=d09_AsU+{ue82J(? z#EsxJfmf+c0&fLSO@MNj>f~%i7SPyTW8+=vP(OLWr|AEjWeD4f5Ltm$K&yZ{)Egh7 z1W+<*PKS{W+WB*<)zW5>-m9W|-x84Vywgg%Eb8acg;La^XtwzzVk-{Htf0sG>rk|^ z>4db;@&+s_4N4DJ8k9Ym(xCK-r9qip584oZ8%MlF=@wO4eN|RpmDN{e_2t?SH5TPr zv^gN_t<<2PY%6VHTPTP0T!qjw_ci41CZuv|V3R?M^!ypT#qMX|Q9T%BE!5u+2B{WP zuQC{v-XcHn9sJQA_aZkmS+`#u8-=J1N_n){7Eo`kYOtuuq85vq*k;nwYI*Gzbz0=N zGte%}>$a%RqRkfdInwJ51ZmDd`^tGSGG|@njzu~?MIPh?WG$&@&9u%dh>`lz=g>a- z@+9mgvu4Vd#^BHXiFpoCo8`3yPqMsxAZisoR@xJ+HqxG;NK0)TD|xj48n!HQXq`fP zcokM!7E^>(kvomr46PB9fs)-_VSQ&1V^rYXO?u5#&N)f-K4R-ZW3OFYOq?G7|~3+$Ib-XVx){(Z5g%O5cz)E!=rkt=N7b6-o;X?<6SYQBSojesvgVh zvAi^=5>l$W16Dd{HE*_PAVx}hAVymJK#bJv4s|KC&?qzzGqjhVi+J@8IITpwI32XE z@Q0+X_1F;pkgPCLLz3Qj>u-^JCE_>_`f|A32rc3qx)^Agdo853KFSIqjTg%*bv z&Q$92PY5js`gRkcKLdROUJ3i7@~E+^<1(AJ5^HmXwXZ|b+UkD9QMC>4eb~|oUXA6| zTZ9&XKKorrJ8k~;**JPavbWR|k{z^$ko4I-A=#H|wE9{tY6yLTc-?(*2E;r{M+0l2 zeU%1leM3lUMB6rDKS$UE4l8x2-AcD`D;o=GZAkj;rjVTC#fK@!?~J25L^~pT!Cx-( z$b#H(DSiumB*xI(@S#ArW9KAq8|f_Y!Ys{B!2ZER^js|E^>6rlShX+o<%Q#OT{QzJ zH7tAU#n#_a->+_P)Gi8rj@4WdJ{_7j^(pYq1saDqD#Ftc2klQr&(%t-ma4GKv}&xD zt?nqqOS6Kl?qAM8ePML#W<68b>b4k!5b$>#?5hb+HmD&iV^2ePU+_+cw9&@a5IzXJ zdEoWCM*v*`)L`Rn+6GBW>2OQouO9x2;_2k^YM@>>?g_kJ469Z;w30guYo?|!wM%Nh zEn#WDEn#W3xKDvHx`D%<4t+})T?lkMT3)M-w=FEQ^{ikWq_mUOYEzWO;{wH-6@32z zM|~4Z>9`jDsE2E{>CN#kz({;6;?N-ucgf~k;co?a{q931M2`Pypp|UPIwNhjdDX^< z))1XsMl>?@x^KhZGL(6a|20_f1uV$%i!IoPGgkGwA_Wg2zC@ku4u20sTDrrtM(DXf z7i*@S_g?pF*!+(X&=))jh*Dk@Ox_E#b?}OU6M!CurQK{5g_s)50gp7#4jurcFdLp4 zECSkquv3F40MUA(Ja`t+V+dOwyxgK2fSzXFT|mzJ3QK zg0%lkBS{+1$msN;$L3llkGg(@n9rs44noxNY`Bk*>OdTH0@xRpwP{~i)~1VtFG9K* z{x);I{L6;@7HGhR7_cFf|C<{fb-II{HXFhpE1LbWqB%a6TA42oE!j#_tu&pb6q`Qf zNrt~1^%iUy1C*>j02&W8+ebG7XoXe~D`Q1Ttn_Qmwsw}Xl;%Epu~%Z|(FIg&LzFS1 znL=5t>|K||O21nXEA6++hR`eAY*;Yg`4qP36%`>`QPo?2TY1cj%f_mMcNb`HQ=j|o zjj)xm2S6I#~<#<83xK+GFKJXLWEM z*2xtJp+|`Gf!bo_Or$+lP8!w)XF~H;kZ!hC#mC9)AvI2VsgB^Sn5mL2D|z)!eO;&3 zm*yM?EwpFUW=pz_^MKBUa;?5>tFJ9q<`!)>9cfO5(Nf0wLgP%HMa33XSyW?DiAD7m zHLzyt1q$M>HZ$Z>meM@CH100TYXYJ^r_F}#vZ&i4y)*k8cP!o7*JQKVNC@V%*30vL6QEn^2o9fU?_+g-}F0INR z1KPlK_bH%7cHKQShEDLG1usA5T4>$?G&P21BgFH^OB)z3)TXZO5KSa0dFiYthR`g6+niUPaSBYff;+SNaURCx&*X zsh;-O`EHM$4X0ZBraFIx7CITowY+qT;^U>o_wcDIojvvNNf(W#dGS(Dd+hmOUc8K} zJ+924I@G6#<71>F+iEVbsLY~bi%KmjiC=F@+Tpbyjj&ZLrL>jUQ@0vxO9Ss&QZ3%< zQfs81W|jH^7JLm0s%(m?;$=--&xmTQ-jn_g{#FOSMTq2nntN0KOw#$zQmo|s`(d>5 z2lvspF?6r@J#Kv9j2^sLNLL2~@RtmPQ&7XpcQXx|?+D6w_qDtzngQM}2%GPo43x!a z9?&G9Mw>597PVT`V$nc+BW`zmgt`1cd@B&m>IdSN1AWbCJx~kgodfYl#VK{bJA{tB z7dOSQ;v0y68qy%WO$}-D4LU1Zj0l zGeV?cU+)}W0d_fQY~0K>;!K2Sw6-)R&~Gtci+pahwk&q;Mc7jiTVulIBV08ORyA3x z=EwXI(m9Z}CP**UV)eCIe@_H1z7I1VK>Hwzofm;FLT;2L%E~Lx?kH7p2%14*Uj_ayhre2@r87Z#vxY>O z6*MGDAKPHVHd@rgh*H^RwdhgfMrdxbVcV^=%c2&G8m+(8!QYq}N?W3=?i#HvO&00% zHyTq~6F)XRaCf4Veve&s^w~HtBSU)W#^r$J)$)lB?bQ$1*m|tAn-SHGsR0@}DV59k zb^@KNMR1ml4VG*e}vSHREx4L%C#uZqGF3mEh@99!lFfdFM}+oZy~eV~uVg|-ng zeq0!oUayC9lKSkLgp=U!bHrPdaPaO*{gctr;L*OyX7=|twEda{iDLt&gVx;}Vh%tK zy@}k|5OX9D&9gVeOoyc!J&Ts|0Bqh6^QJ`)LHaoJ)>w2b5REe%V$K7i(V#X->gfg^ z8{b77ElFZQW0K69nv(49Q4+N+syX#ZC&HGG5Tcc}{2MtGMGb;s_Eu{BRc(VrI>@S{;i6+8*@0S2l2@= zSBX!Sxk`L8jV@<=MpBxqP;R8MKboryCQ&`z6`Ip+*mN5<-G)t1z9dDDDcLrxE@_>j zMX-ftU(q&`%l@d|=UOeP$<&Wi-!z!C0wG=isX>KY?_k)M ztZqV$pwryS7-_53F|R>d3~8~oJ~!bRNkdB6AbY!2F7O%-n=tNS}kWBw2PG zaufan9?db6LoJAd=8mOSU%8KNh0zX1X>wtzoD=_l)_LP~AFC0W)zB{r4GuH4Sw>VFNE z9se21x3SIITp5zx%SP`1_@rT^Sl}Nin)Qx9oglQ^u<;|Mr%AV{(@MK7>a%FG zMFSS)*|3cxzK4C&VdZ)U)c{YD3 z&QL`vf4m$ariQKss;964 z`WA&|6lLs>tS=k6(eyNBBR8Agr`2ldWJEQ)h3%vA=(6@TS)02puYIJ{wa$?=v!osM zE?aJmR`V7&4tcN?R&B9$qsN9#cE>?_C!{?irJg3c)4;n2ycX6>ZDEUh6nI(K^JuY_ z=GzmF9?RR_nN6S7vVEzXr}T}KmRw{{J@oy~2VqN{It3Oy3N$!Ub~Fb^%8q88sx(r6 z3iVBNqbEK^{Kcn;zf_je-lpDRq1i}oiqz*ki#o7Z=c*SF+ah;FBjyo69nM1VXb+{s zvG+xt8x607!%_*(w$?`&eT1;ZDKd{ONuhJtt>BfUNC}pt+yO20%|J=YeL(I3*lP*N zcPypWs$xbod#$ypthLe&?ka?(JI5N){$!;OF4c?qE(ZFioFataMsFhMVJ{QkV)9&$s>v_42*a z1A*$T%|*U32ut@iTbM_?#H}eS_Q4*=hiD7TqZ8hSl=0X(CTT;;B#ZVpyU7hHM_P1> zMRP5>$RgQ)Zb(|ogexc{88`Sma+EQ)+qMB38YZuC^cAG=(T+%c~ zHSj8d{FPbM$^M8pV3FQoE`^qL!C8oH4p3ca9uU>`x=_o>`X*al=pxJOD-&LEy)NIn zP@R>|z^){PEw-oYgDEmrtP5TTfAcuD^V@Ng2*{sGEsAp2pGv*$0`THfC4|E_8tDdN ze5#ByT{gYl7Nv4nx^Izg!}g@e>{V-_?|}Mji0o9k8Qjb{#A^*JEnurCuL@G>H$Umi zzY^wATPR5V5WE*LzbZ&Q7rUlIPbeRbNyQE4YjM6%X46)dD)l9LlKEkfEU3g8)dsg2 z`9i1WH8zf1i#qrY#_y3Yd6qZdS%MLVZXfG=0JlJz=G+G@^!?U+=NTZ{^=r1ZshQ7{ z>FjAG^HLeT1An(8Y#sMpucH@Oep(mEwy}l zLwQwic?}lnJN`5$Y_z;4ioqojQM-II`B-qp1u=b%L$G4mj$UAomVhd$}3%TPDE zIkx$6jygF+-v(WhhWcV{?y;8Yy^NRPPlu=j>KjG(Z9j{re6BY6oaVa>=y2pv7i*!m zl{%X0DWx)X^c_`-S23xhXK4#Ku-)d1V%rj;5M(KGNG@EoiZ*)uJ|w8ZBzFNRRASK#PBj^arUHwOfBx zi86bwN|ezcoBeU^93%OXK1Qr6uv)sTmXa~lYH6e^9V2bJZ}g1KdiSGm^hrQes+(4DL@wfHQJy?%NfOQz@9#%6tvKGpe~z^t}*o6 zSqbl9%{hjCb>|R_6}YAr9#caLeSn=MbTCayz@^jBMV zGor70{=kU(Q)=CnioPMIF)DAY)VevLJz(jbyNL8p@K?-IK0g|}8!S!3X)H;)RzFsDaat^DVnplYR;w@GqBe_kA4X|Q zwY+SL2FJ`ZbHSm8MBcE=iM?oN6^^kD{EU zII=keS&*H!&REdzK8Sii_q6mW{3nQ4qc4Hdd{04&B?rC?TMtCzQ7>*F0imQLPCpRs zZk1VEl9fMC`%6}-gy0X~WdQ}DB^=HLnl)O`$v_?IK=6_vP3H9=^Fsz6+l@rNeTL%puWBHYw#-770|MX(L$i>8T}Uh zOCwM%mlpM%^;}xicQ&L+Kh%&W^{+ln`c6G}qTYA&6X2}@FW&MthE9T(W1wYYs0QdXpmZy(O|!kcMKu;x@%?NX zqjGnVn%!k*s;z7l)#uiaJs@?GaG z&^I-(@;isW|A_FtAR410+zZe;YMHwRDWb1KB4N6TK)k7em%yWwpQ(X&4eC(+Ky>?k zG2h4=gl7LZd1E1U9QDAo+vp!B<53w~MR`!R%crKk{nYyBPe0V?^QRxR6ZEC0ml=KO=?iy) zzC3GRUiz&&L0?Jwy~e(h^uO!`eHGTeiu8>;L0@h9fU&POeV0Ridige{=RgbfSB>e1 z>;!$SHodLsk)5Eg)9UL?pSu(E^;ms9>C{qwYWo;SpKtPSApM%1U|;-r>Hp%#-@X&{ zWm|pOl)u^^mUDI*$Mjk#V!{sg1+1d{=>}tZ$b*tPpyB&6ZSItiYFYj6ZDl#pfwn+1CkY;w$NO; zWCE>SXl|RVzQP=s?!V}lQGy5IEXGH#UyJ}MnIJ2cvI(-vDw`lHmf7|@+}Qy-X{9gW zW(QVUMDKY}Y%|r>SWTosU#^lb2@Ck0EV@l!!S>PqZY9s)-@~e-GVI^aoL{nLy?Rdp zk5FZ}_!}KtW%zi5s`a`Du~kfULgezdn|w-P(@`BRfOG<^>gM+eX&LUKej=mVK3(HGRH4|h{x@LmxwR9`lqwTiu z3Uw>l&#vVh-yK%fv!%2)t+%%5mm{exmxYgn^>p4iJ0N==vjcKQKU*DR_CZ#0o=$~6 zjc6^T(Q)`LP$T-jwmG_o!l(?==I~#>#(S2G#sN{h&Ed*Zl{yIeI>INz0xI9;uvpL> zZa48Zho1qWug{vpF9Xq6h|S@*fyjd9@CQKjnoD!|OP~uGIfz3`6M+hGy4f7w%f@@C zMaNiwr&(S#5S=_Wha0Svkk-5e=mX?rb9f~X?d)izQ`Byy?*M5F`hkAMR=Ha>uiTdJ z<*_6GjWsuTafI_fT^+wP{0$wEQ6(IUGAU zh;{&JUAWTZX?5sQphDzxUHB@XnLtgp*42ftGya-vORfvwX?Xe_G`e|F7rq}nN>P(- z$t~No0IG?{LUW6)VRhk05#l~h8`-=Bt+6iL30@}bs}8*m6akvewd7>Bk9Mf29?TB+ zK}w}CJ1qW^W43^I2K@Efl=p_IEzAXPQTRJZtAH|NZ$!WG8e*#s#O<%^mA<=h1!6;g zfOdHUTQCMv>IL+xP4@(G(&gJ5Jo;93zI{VY_a!yZJl}T+r25UN<19Mept`WcRu?`S zJknejo)1K&+RyP)+UEPN2Co+SR&vUZf^=oL5xj+#M=h#4l!2Xzo7vL6fbImU3$HNx zs%=}Xwx{Mb;YT3-J+#!?Z=A}xZ)yauE=>EZw=w#Y(NY&)XA!;XGm+zX2RuR>!mCE= zbkwq?)XVEHkei{U#+E`&xE~>?1yqLyfLb|@zyYrMBcqW(ln2lPME2E% zKAc$T*ZSSr2tnmh7d{h6TY7;-vfEP~rgwFzX18&hp|c77WfQ$?FvqsvcH5%#+f>~M zp?7fK0cy8xD=Q}YauAKCq_2H~j0^evQtSI1LdMHZ+sZm^+nOJ~5|;W=Myp-A@Axr7 z=pKE5k(|kOO_2LOZPtRm2}j|+E!`36=JAb2tG)^HI&|Lzc`-WAz8X8gX`^vk8pXTpi>Z!(Ie7GX*9NBzi1L1mz0I=0S!Z}N{f}1b z(LULI9Xz_jH)t(*BL3a5tI{#c@Mp-5aJ)sS7NuKM&#w$qDzjn_MP5<7IkEHWG@2UQ zh+9L%%a2`bcxgNvp&F*qD5R)TeT;X&sV6MRC_Yl(h%d;XU!b77@dX?km1RMOya7>= zLBEef=T-$7@)|@z#`WOQ7i0w)@>Ntp#$({o3lRkwzm3Q1tr+(UGF}3YZu}Nxyk*h9 zfM~T{kP*V01HA6G--s1te28Cbq%RMm-y0NUq#1wR@$xECK}IfYW-SSH=1`G9vAH;3 zp!QpkQ4yojVu!v&&p^s6GUSbgvJCk~r!<3RMs$;?B17I-D9(5nrKNfD7DIl_X7F~0 zmf8$?C!vbNQhC&7$SVptLHX*uI!HbGWP~WNU#LzEehDp9n|j@UpQqc*)L*}~r*o(!wf*#hcgbCZvsg_rga zTW<1IKonbU^7TOUl~8W-tw0yCv<8UkOK!51U~Y0PtfvypP2Pey2=&KgqNSXUIC7KA z5#kpJJBPpi`67;Z(&BTIS0ZhfLYkL(H~cMNv<8SQ=t};pNpAsLN_TZT+$qpZZ{8O9 zOe2U>DzrrcDFjzT4w^vhfH`fX|EhY@{eu_SXf z`rS(8OPS4~&GuEFs!X|qQIjcSUQMQ5DP_vJ+GhJcO--hp0o7zmTi9%0zNy+qN;QI7 zXw^1ah)3zDvMK81`zlnQJ4a`uc2fQ8vA0yx$54%>zOLK)tIw1>81GAX za$|7J?@Yeb*ju)(nX(63t1{_gEYUaKGXcNBHh4q z;A`M-Ls(8w>%zr|gI4)^4`2zT^R2&B`<-UBot4gKM7>WPBbsF_vS=B9Z%@3%%%f3l znUyv(q8hQ15tYI!i&k5ISr$#TsKcUljGAC+j^%BzDBq&D7_ET6UPd&#?q@{tZec|B zZM8gyN9_9%BFu>VB{Sl=l;vrEB+atC97Yc#>{QFkXGHN9S>8-Wlz$P+o6YEPge_lEjCBF| zYxdv8G%av1)A4~;rdfeipoyv~P|4vh4D>Lq2^^bG{L2H+Fs%*jcM!Q31nvV3sm8!K zoLPj_(m*EDroiq@mj~#SJ%m>>_W?~*U4cBNg~2nJKPO0M+aXmEoX`Aog1=%~75toO zZSeI1jwkpL)B0d6&K?r++Tc{CF9c6v+7sN!SV zm?p*igK27vAA8A(YHUmj(@8NCK|^?ZWIEH0F*BH|(9c;uHgp`*^iVa^ywFWd4-7rb zv>@~j)51_9_J9-dB3%a48KEhlA@xe=c&6Q?_Ql68jp{yx7l}9vC~Skiu8Q9tIjx_r;#W?(W!M zFja9kGyjITx7pnpw~^h0adG&a1`F;G`EkADOH@oM~px0ue%%s{z}RPSe<0E#z@_V_!yPs=?V z`8!gT=N<_fQq6mnFui-P2q?bg+UG)+FP^d+^o~@wPnpE}XCAy9G*jW7zgd3*+8gMj zS!)dXeAaUYeKTu=LB7Zv2E|3*Gbkl;d9e;VF7hjbc8mPZpvjSY4B9vHfI$aGJ~wE3 zn0+4dZf|r0CMt=p$ zWb_757NZ^@Y?rC`R4-5=^L~x>P7$Nu0nK65094LsG0<5+*F=jfEF=t z1<-QlZ2)R!^g7T=mc9+NhIxTgVJV|nppA@10QE9T1yX*pAPvZ2Gyy1!(QZIRj3xoi z1e)gT1vH0wrvQ~RIs>SZr4>L6nAZqY$7mT)Gow3zIvA}0S_gDnH!J^O>=sIGMSe(2c^Zli9m(SyBugH^L`05hk1_zEnxH{&~iq925JGiEz$|J zhIuaobuzCTXe0C91?mTy=JWyK=QLqUZaDzZG-oPMCiBh)%3)p=P$Bak0V-njIM7U% zwgb&!-j_h-jJ^S?WT`q6mNM@kpgKl}0WD%_G0<}6T?f?6=q8|*EL{q;hIy|7bufAp zXdO%60ousCMvpY~G^UejzVsrse4oho*3YqsLP!Xd) z1I=V~W5a@x(cR-7Pra7Z3kV=*o05vlz0$RcTjsRN8 z{!Rp1!_r>^bujuJ&|3D_0JM(%-3+vmr7r^YGI|AQ6Z?A&sGt390#b358{_99HyG^- z6b72+>;aU?ymFu{M)QDn19~8G9#9VZy8@_)rS}2NWZr{7<;?pKsFHaf1JyBak9o)g zpo=59K#N#<1kiGzxX4vN&Ft?>pp`8B2523lyt9!umi_{$pLrJn;b&Trjt79kK+~Lu zfpQpq05p@)_;X+jqZ5D@FfHIkP6HpeTr9g#@ZU-u2bQjP}plQy%Ky#S)PoQ!}p8{2~bO2}p^L9BG z`Nt>&Xd%$#NH)+S_Ll?H%+fP}R}O())pWS^5spCYHVj z)X&m?06B@2%8BP;egHH%G8rfgG|ia;v>Ws00_8C8T%barO|$L6gefyx*ND2vfjpbkd21NAbxi~NltfA<1q0>wpIfwGu4<3d=) z=;uJ?jE)1UV{{TwGovz~UPk3WzOj@q^MJ~MHqAN@sE*NvKv`+Ty98)DP+a5+gFcFk ztVX}VJi4*B5a^>w9Z)le_#My+<~0CyFz-g7wamK(XcME`fqc7A*cCu?fHuuq3ABLG zLqN+J{Sjyd(B#MyKx>%y6wq4cJp;6ndCvo>aipaSD3j3!ph8Bk1I=OdHqZh_8-bQH zdLL*7(B#NJfz~kZQ=rUr(l-E9$Y?9j97f*(l{4~P1bvJ`Ky{1~fR-~F3DnGJ4A2@z z=|CNfvVb-+nh2!EQ*4ugG8s()DrB@D&{;r}BL@L31d59s2DA}qZR81{tO*qMDWDEU z&j9r@dLC#K&;yY!ASZ+Ty#?e0`aJS?pe*KX0@@AeqsWH_eG~b_Am4HB#aik+F5RNN zESe5f#9C$pl`}dWXdzHsTiz1DyplIr1&g0_M3j zu%3A_K+BmI543`L$v|tEHyUUoqj5l+7-brCO=Ne2Rz&6jsa?sI^MHInlOq=bWijs( zpdvSc5!&?ZJDK)&6{`Up@aqZ5I4 zV{|G|A)`4!MU3VGO=om2&>Th=0F^VU0XmD(e4qu4eg#y=Xd%!-MppwZXLK!4Gou@U zRxr8+Xbqz#pbkdOKx-M@1Jujt0iaEc9tLtIQaT<5@-cc6D2vgbfp%lm2~@~v9Z(UY zzW_~V^eRv}qc{IQ%I-Z*#`2FJ|9xAsyF*eUp=MhpBo!qIvzCy=tej7?Z9+~V zhoo|@h|IQ0%Au1Ksafj~l0-!*vzCyYLMi0;dcW-b;`e!cAHVP8_s46m=e)1$df)fl zJ3G6}?kto={Q`xly-%+eg0-L&)_#Lhsl!kjbsS2kPD7d0zfcx+0g6z?N8lb& zNl*@TC6r5D1LaZILHSe_sDQc&Dx|7G?yYvFw?PTiolpvO4-}vpKxtF}3Q^6VOzJ@> zOtpa`)FV)o>I~&jJ)jts1?5qFpg1)EDxiiyg-~vAM3D;Hjw#aQU<7ii+c~d+TxtX4 zr@n?#sBKVy`T-pkNO9SQ~yB)RKn9Zml}31iI7W` zhWymkPzqH63P8SKWhjlcXQ50g8;VfRLpjt-P>h-m-iK1Ck9MIk(x-eu4bdUMN5vfI`$C zP$qQ(3R8bU5$Y@yrJRxIOqGD*R5Ik$vSXBi{8Tw8Kvjf7)D2K3l?sKaTcHS53yM;A zLAg{tD4)6?ic@J&A@u;{+-}Eh1tm~zAwSg~N~O9$0jejIMm+|FsJ>8`8VF@mL!n&i zX(*q11}dbUgA!`naVJ8l)QeC$H4Vz5UV-wd*P%ix3MJfOdlx{d)Voj`wG2w9K8Bh? z+k>A$nXG*QWl{N1g!&4~rnW#i)OS!W^&^x|?S|r10aQT!1{G3=A?HpztK*PMorV&q ze<4400ZO5YkHXngNl<{g5=x`4fzqk#pb%9B%A{_BvZ!iMn7R#$P z0VtPh2F0icp**S$lutbZ6;Pd_LaGPk+-3JN3re8+Kz?cfltK-GQmGM8fEoj(Q4uJe zngE5U$xtRW70RM!L1AhR6rtur+0LaKS@&!MI66)AFw;PSKqB=oU zq3yx$P&#XmLRnOAD4XgJRZUU+s^NM z$WQ$QrBZvKs?he}J}AK2At;?X3WcbXP!@Ft3RCByanSZ)u`xJP)=EM#suYw@m4)I| zd8m-81o`i=_mLk;hYH(vhq9U$`S`U%RS_CWSiJa~UV*{mIca;c+GK6Mf*q|QJI_3dcqq2dtUAJ5?G zvQ`pGrAk5RR9PsCDi1vdZ4Xw0BCPqLZ0cqxhpGYPQnjHNRTs*m>O=WdBWNwOJ(v!~ zS!)3mP_3atDg$!wvvckUB~aa<6e<%+r5=X@kT2K|N@Hy|lui{uO`+|<-=Iv^4nq;@ zIFwDDhN9HJP!4qg%B6}wi+e;RL3z}bP(F1H6sN9(3aBbjA$1evHn96q4N9PHgHotF zp;YP~D2-|WrBeYYlWGQKQ4c~9stuG)Jp$!WouOQ+2lN)SJ(vZ>SnC7jQ3IfSY6ujk zMnDDB7|6Nb&N%|P)C9;+O@`8`sZbU*3(BVEK)KX>D4%)@N^NNU7C~v$QYfAJ2xPP$9J+N@!$f@H>=B9fQ)SQ;_|f zS7Fv8`a`+YU?`s&4i!?P zp@cL$Mi@$^#zR@u3s8ib0%cP(pR^63V4YK{2WCX_=hgmS6HP#*OGluvyE6;P|7LMjHi57-&3gA%AsP%5<* zN~d-}S=25loB9>Xr3#@u>L8R)9f1m{KcPbEZz!R;9qk;HO1TjngSrBWQa&h$x(bR> z*Ft&J^-uwIBUDILg;H8r=ju?1x*ZBrb)anOUMPoZ2<1^tpnR%1R6soh6;eScp`~^1 zV6#+LDCa?|g`gPZ3-*HYSUYX&sDB}+6@HX4;{xPDg>93c!DBGe5~ z4wVY!QMW<`R4r&9v?_QPp@}27rY>>AQm9X%G-@@JNv(k*)CMSr`Wnikwm}8d z50Kl|`uz;0P;n@Y+7IPHzToe+E@?$aaia`a`I>>#* zW;a18)K(~s+5u%!yPyd5E0jYOLV46dsDL^Gx$UjrpHK?*Hx%h$wR1Mx(d3T9EOiBx zM){yj>MAHgT?^$<*F$;KjZgtq6{_0F9ud`{OsKH!?NEfO1LaWnLU~j}sDNq$xt(oC zb0~#+2uh=ZwvOsx>$=#wuC|T}**dBhltVoMp5D22KiN~3B(nN)2kLe+(GsQOSI z)d(t}(xH?-)~^MWMzw}AsSGGWb%b)LZcrYT2^CO}LvCN|($CgWPue7v8V99Olb}rMWhg?;fO4qUpgd|GR6xB6x&5r)LMVk=45d*YK$+AhP=s0qIx`A`Jf!?DkzV-7Al~whuneI??xzdkf|yZp{heU)a_6nRR=1d?uFbZZAU{Wg=zw& zQO%)D>LDm+u&oP1c~l3efa(glLu@u=>!@C~j(Wn@QG;yVPJM8-oq!6czaV#%?KlgiP|hUmph`fQR5BEy%0M|(IVg{+2o+E_ zKxw0`Un-PI-3mphT2Kyk7nDcUg9@nop|ml!Hx0_99)KcLD=3F*3*}Mmp#rK4gew2&GUjLTS`AD3f{xicqgZIaCzN zqZU8~)Vq*7*7_}jQmBuiH0m?RzS}Hp`-RQgcLi}Zzw`N3FS~Dp*-q2sDPRbxwuNcjG0ghH4n1K zr7z=cD3e+SMW|1q94ZgWqc%YW)ON_l)%0cThEk~gP#Sd<%B22=A{72exsyXBL3z~G zPytm5a&cXK8C9Vasuq++-2-J(jiCtD0?MI+P#)C+v>|+KRUkYA4?2Pz89KNBxescFUJ> z5^vp?P3NE#ss!GqQCH$^CRG7%Ba|O+bExWgn@8P+w*^!KymhBozot+M)f!5pIzX9J zPbfn5fpVz9rg`?r9tGu5W1#|S9OS-Xvy-frV|v+YZ<=O6nQxh1gCf*CTer+=Z`!)| zO$(tEYB7{XeE?-rpFqWz+gHA;Y~81}BWCNUbyoY#YMZP^ZG|$a9Z=5aHoFVTqke@7 zs6r_13!6O%Wl~3=2=%9}TWhm_L+(1$IVk08lZ&g9MqL4AQa&g`T?IA$#?JX#C=V)Z zdp%S@-3aYFYqM2t-8oZrXc9CdcssNR`Y2cj+Q{0yP||t(Dcgonb;uWdph%m8+n|=L z{RH);dQC+?>NvEB8a)mDs4J%9XRN7dP||6EeGpZM@mP_3!86hjJfqlbdd9&b`GQw2@M=#MsX@l8&?2m>ld-%=zTir!^4qxQN%k0; zUZk2CbD^YUt5sNt`v&=fw-qThW0q=fK^yT`uQms-dk0;p6lfA&5hXRF2DAvm$Ex&B zks4&&un2oG+b*Lzbcnhgir2#KcFbp1X=`b4mO8kthI$U zveq7ov(^K$S2M#;2|#|T4-}vVKp|=f6oY)h5m5Mk+fnRY9E~ao1sYkcl+~cF8D$}- zv8g=drz+Vx$`8c?w&P~2rI~6#A*wbMrs_gbsy-B>8bNU?9der3-WHIbYHjP9SuMlX zQ5|jF16J#1>!?g9Ks^qHsD4nGdJ>9K!=M;73W`%>A*Z?Z8wdHRNv0Ndg zP>lKu3beG^Stvv~??De*tppTkZA!KpRR#)E<)A245sFhcK+eOqBNg&fw?YA`78IuL zf}&JCC`R26#i=yN-^RK;00pR4P>5;^g{k&XlfflhgA96CR-#d_>S^@>A51|mX0t!=~ zLs2RZic#yKIJFsa+F8GEAwTs!6rg^BLew58OznfB)FCKF9fji5NyvG``kjIN)OjdC z6s7xqMJr3c|6`@~0$WJ{9g}PX67!;;PK~ZWf6r;vL zacUCebhRBXLw;%o6rf&%LexAcOuY$3sfAFSS`0betjh;bjQYf8sZ}=H-DYEupIT?N z9#-1~g{ZAinA&0LX|ubaDD|t=GObn!Igi=L`9a7}^;?22)KMr(4PJ_Kp-w^mezteS zGOVMo* z_ZF*BH6dq=)$V{o&zSCp!qk0GbgUh>F%+ZTgyK|*4{^?6+tCLKPy?V4H3SM%BcLcX z28vM;C{9g)?1dZ(+fIi3)Kn-y&4NPI94Ji9hoaP5P>fmx#i^x`^PKhj2ntc3LSbq( z6s6WcF=_)8r@n^lr6da5ZiD>P4^V*m846KxC`|2#qSWtDj5-FzsZ)?M&iefWg{l9b zD3$OLc2J2>oGJ}D<88;)ke{jm1*pnUh)RK?)Gbhqs%h&c*n8^^TSv`>;t(D$AEWlX z&6bA3)Jss5`U;9c_zD2uzs9L#$eCodGLWAt2L-5#Q1k_xy#b0*sZgA{6>=uqY%R!7 z-30}xdQgbEABw+dXO(8NQ*Fm0o28aQVd^6&N_}dYX6sf%F=`DIr#3*&bnExE&Awvm zN`8V_subkBYPGVEpDGWHd(Fl7wUwZKlpm@(+iEx4ELFp5bF5YydW@!ACAZMZNs0R6|+n@k-ClsRYfx=V+C`tvO*gLkj z85E};v~}-Vt&Odt9HcC2Aiv847%E zvs0m_(Dq=3m3W*|m7#r93goP|b+mX0=gJfEo*h)>v&E6s9Iw zZLQT_hKjFq@iPfCpa6t_6SP@s9u%hDgrd|!C`K)Y;?xI_v)=Z80{N*`P=Ja-A!;2I zrZz!QYOB>Y*xnshqjo_t$QS$-3T?F6w9m1QdH{-2t)Ljy7K&5tA!n2A=mPnvo=|{# z3<^x>R~8GwS(eRC&>BHc65jQ)T2;<>J5dc{!o}2 z3`MEoP>dQ4#i=ml?6iL4AwTtk)qb&iKE-O(Oeg>qww-OY0@E8-qjI4T^$rxKmOxSJ zLnubAfa28Wkh9mik4hhPqvQQ1BIx4P?$OdMX94uj5-PV z_u1YvP=GoQg{Wd*U@uh?ic+PZ7*!UE@3+0>p}+xCB`8Gsp)hqb6g_COHEi~fskY5h zb#0ca55=fPP@GDKoZoFn3&>Bkh5}TE)ehVHqodWRZcy|OdkopXlE|*k5+vWMbZlErP<-QYcD&1jVRN zp*Xb~@}ISSYoGwN!Di1{?Q6(6Z`x+-s2^+{^)nQr;!v2{4>=cX$M2AzItB%(Q&5Qd z2MSaFK~XAU4bG2BgyK|b$X^_P>$C0EkW<1`!D>`xC_tq^A?g+=Ox1*<)E!Wax*Lj9 z_d(7T)~_+-rKv(!&etd!OEKyhjx$eIDTxW_wA!;2IrZz!Q zYAY0@c0h4z7vxm5y}v?!st^iL2cZyk1PW7sLQ(2(C`O%w;*^X3v2?Dtepf(#$_E9g ztDq2dEfl7%hoaPtkWU}6iEr;UNO31MX9=`TWno@C`L7c;#4~1RI}L@ke_M|1*i-tN_B){R5!?}ZfB4Q#i?A#f17pL z4+W^-p%8Tp3R9<`DD@8%qyB^9RKf;yu4P>kq3|7cjM7jH!cRy-acZ2cyVGiuAV2jo z6u8T3GoTRln$6a++B}=3-Za&<+Cp1LEr!C>2avr+KE4xy;`f+VK@R?o3!Vi`^-b#_ zKeY)8P+Or8wF3%MyPzobD-@#&ZQXs=<)E#jj@UZtPg_U*4f*f4b?2Y}<$i@7)D=*a z@e)JP>A{t3R6E?EzM?kTa7A!qSS9tj5=(yO>Et9o25?MEcGuGr!GK& zbX!+^BRW$_P?)+Bic;4=G3q)fPE~=NrndJc$WK*+!p*F98x*DPgksb^P@HN2IS<&n z02HR0K~d^K$luat+du*85hz4;hQd@2C`x5PF{oy+4-}^cK+c0!8v^;M5m0~{1BIvv z6s9IXQED<2qozV}Y8K?QvVL$e)7wSzYKrMtq)M6-1eE>zNPoNmJ3W`%P z$a&cMt%Cwk&EO^|L~Vt_)D9?0?Sf*|uTY#Sgq$|E_aNk_jz9tGPbftF4TY(5P?T~v zqYHHfA{y3R8bWQR*BNquj62 zkGcYK9^o~B{M1!YfVvh6QP)FZ>P9F^RfS?y^&;U}3W~G#0pzr|d-+L`Y6k0X!7)&) z8EgavsB|bqwSdA@YbZ)(KryOgk$k~!kiUa<-Uo#se8+;H?+R1>p(r&Nic!O%I5pa8 z9c@S0YLG8D9t!ocvx-4c$QN8!q?*AVTfJJA^d=PJj(t#^Is}Ctx6VhQFm)1&QfHtT zbsmaS#lFQA>TNqpLVl_g6rjpNA*#Hsd&17DlFdT+7aNO-hq1JCD6oT+|n9Wja zp(wQxic#M{acVo{JY_p}LVoHOC_wFnLev2$O#J~xsS{8fsu}zXa)z1CLVn8m4qd1c zP>4!~!c-Y3N|h^;FIdsm4Yw{Y**a=E6sKN=oDnuV7xGg%P=IHEPC$WC zw)Zb6M4g4gl(QXssS=Pg+SVmQeyR)g7!;!VLNRI}6sLwl&RE;~ zG~}nAfx^^tP?VYo#i$pdI5iClgl+FDP>6aR3R6)iN-cowCGNXsybJlMWl(_n7z$CJ zK{4tJC{E==&U3c+E67i6fx^^xP?Y)+ic!0vI8^`zvTg5gP>4DVg{k9ElsXML<80l( zke|8$1*qaXu$M}LV$_vToVo^b#@pWOAU{hQK}jgqi%!Z)SXaZg6+Kr3Q-N9 zFcpBJR5Qq#XzLz?{8Sq#Ks^G5sLoJ~>H)>6EXaA@_V$7N)Bq?<4S}N62q;F4f#OsI z3QV%S6QB?^846QVp(r&Aa$c}?b09x89|}-!K_O}p6r+|xaq1(;nQVJMh5XcNC`_$^ zqSOW`Mtu#%sclf;McexW6rz5H!c-iJQu`t2C0qA9!B(*xp;95LFWjQ+Gg7>TbxHYU}QU{8VEoKsALz zR7)sEJq*REc91j8_I85&RCg#$Jqkss-cXF{55@EB*>*7GtT7FT{M2YDK!u?YH6996 zFF;Xh3KXMen$}vE*^qyO=?y4A35(;my{i9TcTHK{2X36sI1A{9A2rZzw?Zhr-lgC`t{7;?!u!`PO!X ztwxQv+BU1b00pQiP>7ldMXA|PjCuo#Q@N1yo$Y-G3Q$X+5cMGxrB*;O>T_GS-FD>J zI%>VGqc+<*>RZU!Ve7t!{M1iSh}r{%seMq4It0b3qmci5+j|lUP-mbpbsmaR#eT#N zswCw6U^_}d0jew%qRK;2suC2V{E+jb?YJ58Q#GIvRT~OZb)hI#ABs_pAZMrTO^5tc z3n)ajhQd?^6o-7lj#BbYoZl{cY~(^A>K!OdErFuchfs`K0mY%N8J|PWPo_L5K&^*D z)MhA3eGA2?@1Z#L6Xg7Cd-p&AY9AD$4na}sC={bkLUHO0qY!~)YC7~!) z3W`x>A^$J7qdXL#DnVh&4@Ie)p*U3oa(=ZPwXH_gwb~x5)rSI9BPc|rLs6;)6r);0 zaVi6H;v z8IZrw_Pz!MsCiJBdJ~FL3!xab7>ZLLK>mHU_Y){Ut%AZ-42n|gAZNclnl?dxYAY0= zc0eI&m(_l=b-!ATDulw+K`2TcfnwC3P@MYPYKLv_Ijd3bPdM%$R=Wc7Q$8p_T?K`x zYoX{-TX#Jaqi%%aR8`11X0z2HKXp44pz7G{ak~ch+AP%&3QF6s4v^ zG3r&w`N!7Hh5S^G)y~@ay=^t>Jt#oE4~3}ZP?%Z?MX4{L7_}CPQyWd^>=@rb&Uw>z zC_wFmLewu%l-di$r~@|ppPkDeP?$Pl>!`nM9d*`p!8$uX<7iX~$nPYemJ9``GEkT* z2SurhCfC;80L7?O$SG#ETOmJH3kp$pL1C(%%_iHr`=J1pX0y}-P?Tx~#i_QCkveIak@bfsmgXYU{4H+S9gyW>k?TtbKY5^3c-i4ynGOJavbst-e`V5LwUqH@vHk%IxsIQ<9wZ&#{vf1w- zKlP){QoErrRRG1P-=H{k7%JwJ?sy!d>s*0G4T^1S>^i?ANdf%5a^yaw9WnqJf<%z# zkvEXVNFMSnQh*#o+%)`MUF0^T0rC*i6X}KYLxv-xipDt@a}fJYmhH$+#OC)P`;o&% zw-cMVP7|aZG8~zUc@=RuHbkxED-q$lzeG6ors%tUPMe2fc` z#mH*Jj^mxjdfeWIoJ4HRImA0g>E^CuDTg#d`XPgnkw_SsgiJ?XN8U$1L)IXL$l;># zBu2Ld-WSNth+R)R_C0VTq$AS3D47^7wx$opfygjqERu~(LS`Vdkx!A$$WG)}WFKOE zf5&(n`K#!5$(F8D3bFfqHAX*j3(_2EjdVinG0+|3Xk-HNBC-;(e)bsO2=7Jg`kcUc z2Kf&u{@}%Px7t;31;mb11>?O%Zd5c{z3F9su*hvOb||tv2D`xn5j*x%7)K#?eZm+g zATJhW8ph?wuASivB>i<<|6MF#d>`R+jE-5j$x1g zPf_~u+_dsnF5rX%x_1&Cc^Tl)e0DPnsp-@tbMyD{2zu{C?)gGI6H zbhOAecN#9%-gOd@tC8!G8i>u^f$<)s5z?$EtufkMJB)TsY_xPn9!L5k6Od`hYsg#3 z5@ai4j}7~{w)5PH+xw8C$SLGMB&h?QPmoH;y+|{p6*2%BicCOWMrILF_o^G1~P=?&vz#AvF+t9NdBNQN%vpEfb5Ji?I+ngxLOKo$&b&DUVb` zY9S4fbmT##2htm{wIeY;SCr>5&OsI+-uuC>n|&;Nh?>Rw7})~bb=`^aH{=iGB=QeZ zyfYqa$hAoA|4SakdWM(ktB9^Z4|w-CElOEIoOHXy$ve>`<8)*(VxJql&$FN7_8P>V-|V`41>4sq-(a-+y&L0EB%voh7a?PiiHN;VreS;) zvFBvF?{?qpnD!f;w#H&LJC?1tad}bQ*4uNLa%1hM`1 zU`$8sG5!!n@3EEz4@Tw|Wg*5T$VZ5Mj{Op&-Pa8mw;+$=nvkg`Z6#2%B?FxI&&_rvx% zqnXVkcAxmU4K+J<2h=i=KFDa~IphW84dgAv)_jO@D`H<4{etl~#NMBGJcetAG)00) zm!kB*I0Tu7*vI}G7#AR?5qpk4i_z_cuZ57ik%7o)B!WDTyo|h!EJi*?Rv{aa9f&JT+;=U?Wnm-*+*eBd&lyv!Fav#rmk`r(WjTm$|`ZZho2DUFM#bxnGe-V4PTF zd*9e&|8?A6TvYoU<62}h@;y?Bl5qk_j zk8ws(W@C(Ac6$+QS&pniHXwf>=a3S8@iiM#8Mz6miPS*?Nb{n!#n=JqiS$M6J`E}w z&7+HK-w$TP_Hpt&##a#U_5#@MgFP48yyX+rK1a;oU_6POMan$kIyWHpeL-!EcNgV; zjP|_XU5|9!ws^N&UFI&ZU6=kCry;K)D-k=^R*a?k;duhF=S=&0It9KPX@xw3*uQ(& zed_|-o)AX+Ubrtt`yST5wzltCpTuojXWy%Ow(nIv+xM!T?fX?*Yu~e4Z5T2Nc>%HS zS8dL|SDlL6_PyyGjBg|Medc0}_PwL6vF{(b7T3bQkNX&NcH6$6vvDPEd&gW0Z$#`q z{D0+Jtg)}xc46F)*!Kg6i=5OS?-Qf~QU$TE*R6jlY+r|0$7sjB2V)vyU;93Y(e9sp zZR?$jeGTe41M`+ni1)cA1V3@vZToy|eTSkJL8c;Ri+#Sx!T26xYwYul*V{htSk0c3 zZCrshs}UP5R$GH{BVzAsyB&4V5C3}iCjQ-Sy_4*0aD2|!PAO-LbER|0xym`^TzxZuW&GP-z2c5D!TvD`<4wgJr(@A*f3Mzdk0~0b7L9KgjjM~s?~BHx7{4od zsh{=z7q^`fj`Lqp{qo!YyWTslcOKqxz4P#n>z#*pT<<*ox8MK!b}?L+1YCoXxc`Yx zIVZ`v30J2ouFlQ4I=4EdojRCp=#+7q<0`dq$~vvFvaNHC(+;aUIM+H|aMhl0DmVjh z)rL7$@WAyBF!n5_@I-J_z+$ps`X{}5x=i9!+A4trjwgE+gXq}$9X4luJdldEvOP${m-**n;r5_F_e&`&*%LW|Bul4_#xZF9J_=$5WafS1D;-}8} z#Lt}n5?4CKl2$nhNuN6%M9!&bv zX_a)!c{u5`(=O?6r+?BJXJFDl&hVsjPHxh9{O$SwoTW(@oMlPH-1n1;yB{T$a91Q< z;eMJ_(#=asbk`&$x$E(=Ro^6C>26Od<9?rXjoUc+IyaDfy_=p~*=?45quV^$@3u@% zaa$$dUK`9?siSC;dW21>Gn*%&CN`%${_q?{l9? zZs3khzTb@`H*~X;8@c0?8@m&e1MZ~c2i(cY&D|H1Te_bnw{kyAe#l*!+}hoMf6m&N z+{WFK+}7QNf5wR?XSfB)kGKbu+q=h-JGsY`ySOLtEz9ZT9`0YsJ>9>PA9w#ve!@MQ z+|Rv`Jj6}#4RwqAM!1Q-XWV4pWVe)WihHGRs(Y1hx_h;6hFi`z(=G3tx;OcvZdG57dy8*@d#mqlw}x+_dz&=+?f@fEloeEZ!_z5{L--(k0#@0i=e zciIj4&bW{I&bg2It}NEeSGibk-_6DP`fe%K&sV$H0N?$^2KfTThWOHo4fi!EHp;G9L!&(tTXeIxw<#X0+{^qXccNR=P)`gLyT>2B4UNbRIc$GCLd zOM5S!RR}xw@eBq-hp5reiT|lhK<#hVUWU$7bD(1P+r4}fDoK3;m8MofWvO+l?SL*` zmpxDg&K`uSP=7V?wF<80;nxJFIVl-HQ0>W#ryU%baC&qZHhS^xZ^kNI4vDY z_0FYC2k-u-Ko`&NR;b(m+@t@~nby{hme9rHUOM|r=iF86p47VWl3lfndmqtb?NZHt zGWz1|BI!fu;+bw%ZKrCN-shLP{Hoal+HvV)rb0FR3MKFFQLVGR7vGo78+)^VYxdH6 z@X~uap`&-Emv&rw@0Y^t#eU_Wi$|+0U3!0{s8&a6CS7_Dc1P{v7#ZjYC~9C zp?+)C?|bOt8Q4#>U(}_K-#`9;uRD(&qyOg&+)m!vUxD{;gtL`VyLhcGeSFw6!$i*B zirH!ZqkB<%m9+pgmkLUcOQWT!(gJCvv{l+C{Ucr3**iw6bg$G}dQ=)JJul6ZK9n{{ zyQLG-6gt_=U#cs$kh)1vO5>#0q?J-! zx}uwRjN7CP>1pW=X|43TbX9k+%RN#z={e~g>2qm^^oLZuhu5#NR9AXPdQ2K4&6E~P zYo*=NDXDZ%?`Soo=F($QM0!J7CGC_>OIL@y&b6h7q`uMwX|D8%^sV%}R6Nt`e1mka zlp*z(CP-0frL;pjDkVSa9ixWyp!9_Fg7mJmN%~z%&Qd?=LFozU1?gSsOKGQcLP~zj z>zpdxFSVBjN)x51^qKUXbXY3h%R5Gj)I`dX#z_mL_0j<;@o}$Tb?HH=pY)=%MEXWL zB3;$n>sLqWAdQsfN?%HQr4oI-F1Jdpq=C{j>0@c5v{yPSmFw$ut|dJn^^~5Lrb+Kg z`Onkp@o)<{1|e@e;y zz0NmD_emMj6Vh|i9O*-8leAa*SGsC|ceEN(Q>lmav@~5>EUlN~(!WxmG(-dp7Off zBZZ_Fq>rUvrNm+0-n*o3(gf*!=_l#DRCT!5rIj>9nk~ho1JacvyuEiz-K1>kU1^(i zMyl|%*X1rLC_O1nk(NqZq(3CzNUvWFsio9Mnkc<3t&`45caQS=4U!f~g;JH#-nx#` zG-PzjV!O~o5v-Gc2 zeXQ57lQdEKMA|Qv3wt}#r6E#|^sRJ3x<2CVtuJ+wMo6zn%cULCN$Kk6ync5|ZKXld z%hD2Qjr6m0N-CZ0b-qPvEOn9wOD{;d(&y6m(ow18IPVxYNokV(zT?Hu*kh$Pq}9@H z>8y19cyDigsgpE9dPQ0;ZITM5bJDdFyw0~v%_aN&$&2SaQkpKkC#{u!k^Yj(O!T_k zBBe>)q!H3|X^HfeR4Dx?Reat%MqR0m^n^5CdR4a42C2wytX^=Eq%9oBv6<+rC-XnFE z#z^y}HPU`5af;Waru48hSehxVkbaWROa7@|zvj|FX_oZ4R464+^Y-2;b&|$PZ%bRG zQ&OerUY8cqNa>4cOr%i9~2BGLy^fmHSt zZ%3LmSjv&MN$#uOjyt7HX^1pYnk#)Et(Sh5j!Pw8^Nw-7R9k8)b(RK7+0qngzO+pG zQrar*k&a0hq%yO;v$|2LEj5PxMp?$RJBBF&H%NGqg`($CVLQt7$gx!fwHOFg8K(oAWYv`N}8IrF^E zm85&5pwwH6NUuxFrLEE-Dd7$87*(WtQc&tAjhE(2pGj+^tKxq<+#wX`!@1Iv|yddS_5gYA*GbCQ1vX4blOrWRChtjis*A2x*42Oxi3R zkP_bXI^QTYkUC03r76;T(r40U=@;pk$Y&ZUA>Q)(==lX^>|r72Rbv_je@9g|8g@QzzkYAN-W#!Is(*z zC_O2?B)uzbkoHOLLa*NqQUj@zG)$TqZ)=7U$)!+Aa zw38yzGU*q|_kp*gzSLWqCFM&eq#Hl<_O_NrON*o*q>>+bJMNYGN^_*m(mAQt$KKu^ z(iABsose!??(JwNjg)ewEz;jo$|v65R?;wOzO+#~DOFkF?QJd%mR^@uO20_Xr{3OF z=>e&)^rEy(`c676UH6&SuYuG1k<}^r5s>`cta7+Up#UdP^@$%cb2?!WZ7&8d6Yt zTADAdmySr~zVx~@mY$GiNipfLR6geIO_TaduS#pABhqzw-rjVnmo!=WK>ATSFQu;W zy0nxANwcI?Qh`)5-`iVDYA215=1Uu-V^W2+UYEvFZ)u9OLfRvhT<7hrEp?Q}O0%S8 z(nhIJIxkgN?{&UYY9;lO#!9oLkEAWq0qLxC%?9rnHKlZ^t29)aEagh8r0vpSDd8*c z7?q?tQd?=TG+p{g+992m%5U^K*ONL)Bc(agDrvWLUMj!I>sLo=D-DodkQPd7r2^?c zsnTYz^Sx4gX^1pMdPiC(?UgP_mB02n*Oxj-L#3(G5^0lkKq|h)>z5)mkUC2vq*>BO z(l+UsRQemQb4{tG)LR-ap6HI({Ev!xBvX(@HLw>Kz_m6k|9OG&?YJL*Zjq#4o&(st>zRN+^zOMR)U^o%rL z%99GE5_`NZ)ufhEKj{@|opee{jeA`(q=@vsv`4zKz}wMK>My-6ZIb?xYVY;-_LXv_ zU!)3!-nyVPSz0Gukm~RAb_|u4NC%{p{ocCP(lgQ$=@+T=Z{CiE(g10mv_(2E)jHtq z?Jm6}t(LY)ha~r)x3{8nr_@r)ltxO^q(xGmv`ac6B^~mPcC*w>>Lrbr7D(%){ZfhF z)lX_B^^(R*3#4_@A*t+PuU~yBQ<@}wAnlUeKfJxwrJyuY%8@ooC#14Rye@Z3ouy}_ z9BG|&NGg5Q>vE^mUK%OQlk%kfQpsapms(OgX{0n?S|=Tr${zQ+)RVeP+0r6ut8`i_ zb;9dXO===_m!6hpNK2)S(mv^ebp4;+G47VyO8umW^t!ZM+A1BA5>9%Zt4Q^vpwv$q zFU^-eleSC8q%x>MPBVR!aw@vj2H|8%VvRDbiUx3``Yl3tQlN(ZEJ_?_sBUlXQD z1EtrcucXt`O?d6ji+kHhW28mWHtD=ny_mPRy%dp_NV}vG3Eqx7rS8%sX}MG&l`ih> zy<5tZUXnhO_Df|;czYX4eWh7ao^(X2c!jsOnKW2>Sz0E2E1i(8F6nitBRwJwlU|Wl zNIRu}r0WyCehs8Yq`}h5(tFZZ(tfE}lGpD>>3*rRG+de?y)SK%4oW5Q8m<=~VYf)l zq{pOe=}jq5vR8t=*yVzB16~vMVy&UnO&TrDkycA_DWR0t)L)t+eJFh|oslY) z_WCuFGNn<{tJ25PHtDG3yVC1-tJF+-R2nPIl|GYxkWNZTc&*%v*DqCSD0P$uOOvGq z(wEXM>7-N|uf2Qm7}caSsjKvqG)-D6ZI%v7CCYl8Z;~2I-K3GyE7C{Ox6%=*G+rC{ z;yK?bwU2<-yp$uYmUc;} zrLxz0ooh)grC!o-X|fcRmP?zYJ<=&Dsl0cz8>Bi?3#q#_M4Bkgm6l82NCzYbud;mc zs#TQkl3GcRNzX{HNXw+Jqyp(LsSIAV`Qp)TmC~dx(opF|X@T^G^rLiKN~-7`<0h$r z)JYmC&5>3~yQTBe4cB{}8%rT6BE2c)OZ%h}mAo!DN)4s1(n#r5X}PprIw6&*>~*ds zwUYWu6Qu>xr_xsGH|e}ou8Mbzno<*~v-G4iQF=pKE`2Q(N`FbEZ}5&*Rcat*NPVTS z^s2N}S|{z6PD;r)dPhr<(xhI}Bx#AXO*$=A^n3jpN}1AlX_2%=Iw4(~;&o{t^^&GY zpGk#M>6^U0^`uN`vb0>t#JUcai+|HIt9fZ15@|NpwEqG*Z=DJ zJod|beeT1$*L{E1XD!>hJBxI`NRvcbCel`s_K0*uq%$Hp(_`CcAX00QvPJ4E(kPK8 zi!@)PRU&N_sY0ZmMABQtw%bsoERpUOX|zZ$ic~7nhay#p^ruLHjMz3>h?FDJ2$Awd zdRL^wB3UhCYsnDlZjmO4v|OZJBK;;(a%OBTH;FV1~lJMEX@Ece~j7t`;d=8y)ROgNT)^e-4I)I zx=1-94HjvVNQEM85~)(8lOnm>$JX3bq%I;26ls!3B_iz<>4ZqW8)NHhBT^rcCWurd zQn^USL~?hCttC^WULrjzQocxUiBu`lA0mZsimmTDk@|@Aq)3ZIdQYS(kuHkVpkr)( z9Yq={(oB)oi?m;)OCqIqimfGAq|qYH7io(~M?|ta$Ck|ysjEnXMS51Gr6Rp2(teTt z5GinTY|Sl2>L$`dB25)(xky>PV!zO|jau~Ar{cc=caYk$$Zs&ke+#af+RA_Xt4)81 zHHW*1y%MRLNDqnhvPiFsv|FUw-zY1KY_0a!?cV(VY`ed*2OA?>`-2qy4XgO?>zx<1 z+TQ@%66sgFr_p}3ze2X--!7})5?h~Jq%diBWQk^?)>5SSZ)e>oY6ryY_MexCuetUY z$Nv5P<B1bLqYlD%a7D=_oD!RVfV--!cM>3lJ+oKjgLYF&!4cXHM zk!N0etkNQ>_DE(%(skm|?xd_ptsg0RPCiA7zN(8v+9J{+QuI8yC{n$yvDc#$Df$}a zk)p5L5>oWJ#gBb4wJwqE)?N$I--K#?))%JTN^5}U|^xXC5#QHT7DOIFqq-ei(qIRoDwd;F4vc7)Q zo{FRgNztSGnCLfw^laqO+9h5P>7_`T!lQE|X)Y=HTcX7xy(7{#kvp(sLOBKk!nY-=zGt@)S}l>{D{Yo^8_A^{#I=KcU)(RTKrYGT)*01%G?!sjp9qhuj%-x zw}kcWjr3a~*1V3iFH(z-lOIuwj#pocbW$Yk_SmEKNL7(#Q$#JkY`hjG@5?x#OcApNv(cli8G{>NK(7UX5l`Ot|CQ`b1TySjMOag?~hd{`bEd~ zTS?I)bh+C7JlZs}-A6^gyW2@pMx+)$F7dIcc2tS(%LJB)rWZweRirYJ-Vv!>q)L(E zYmQ%+@ioV{R?QM^B760Jzr=@$u^IATtR;F}E{f#1BX)%9k)rQlX`*(msC5*z+B2d< zWMBUCn(ttV=n?8IQhaNJs72=tm)oleJlZ9)jhYs*U-q3&E&5viw|iQ^61kDJ)b4YS zNGhZj-K+SuA3rDKDL!(=N4WSk6Tb#8cP;$$OuBbuyR|dvX!?KS^G9^e|NP!PAhO-~ zCybRm^Wl+N{Jr~f^WrVy2*qc}@p*B4MzNoMkBekrFe@^+&M>jsda`uQ_3-w9SwOmb#&e3lYkM$ zj?ZK+H$%DHGoQ@*R!8>bB~o<0ak*Jbe9cSf_fBMq|GeG!Jg0UWpGKC5|HAzmYSHHr zpL1RASk>-xWn|e8SR#5%t4Psz$=aF1fykrBsU42)74MSKUqFw~!Y}aX|NMVMddAYV zB6Sz(A(5ttR3y?mk#>r7Sfo=TdG3mBBSoYRA`KGhNs;D@v|6O?B7G&&k0RCW728IJ zNF7A#E7HRvO%tg=q_raL7U}OIof64;cWi5IM7mR?heVn#(sGeDi*!(=KSfIJ9b0pI zkp_u0L!{LrZ5QdVNaj7UwWNyFU8E5r%@pZPkvu8EHNv{T@l$jj?akm){=yMm=78 z^D?zhM6G`h>3_bBU)59kpKs&W_lniVWXEdpep#Jj+xWg+Y`c9#zo&9y%f@Se+!CvO zFZ%7gF1GBKVqYG=C06@Z)Z+c#>K@ydwW42(+*mE%@2FU|G&{DwR$XKLPV#73cWothHMQe@3 z`nKK{t5u4>F=-|CrM>9aRn+3!jW3%oj#W?5?|!lDgQ9lfw%GGY-=?#&-7D;~~wnQ6|`inGOq|GAzBvNQ_Y}s2x$`k2zk@kvoN~FM$*t{u?^jBo` zc~0EfrdXs_JSugl{U#=xWJFRgkp_@lk=h86){c}Uf21~nTJ$W5-{0y*QClL?I+3=L zqU);=>3dRiySFrm-Noh@wdf4_cadtZ+N8*K<)N|dnj!^A(IwJEYEQZ%vcw%C#h+#T zxeese=w6K?T^U*8Y0}k^G?x^effkXX&-ZmwbZhU4^o8j6EvaQ>*&5Qdk#wFEUDowr z?D-~%luC*|dW}e(MCv2b0Fj1^^f)Pc{HBQ7Jkkx3?f&OitM(g*PLY1`^Z~r{@YJVlUX);#J7>|kF5DeQLFu&HzZO!M{PtT#rysLsdnQ-9HGd&WPJbTQG4`X z_W8f9U2c7st6lE+U9NV4eTlwv#`o{q;jycy_FK~@B71rRwWlK~{ykh*YSGsy{`Yy8 z``fPvduPi+?}Vmq({Xp4&iD^c=7Kd(P-_d5GG-9-;U*B1?HR z`rXatj_z6>&HtBI`V6(`JA2nz^8aite(W#t=z_=+`iR)RB#>T>)KWxhOZwNn8b)nZ zq+cE>`aGT{MgPtrzKt!^HvY?A)jr?oRi=-OEgQd9-J(`IB5jE*d%3gja$CFHaS5`% z==dDps~*&%-yFwl@xK+E&!f?Et%$TevInn=TDeFENzpa`M2e2>mm3{V@o4l2T@=e+ zuHXOpEG_8^m%=@3_hR%ew=(~$a+lj5T^jXcSo>$4JK$<)Nk6#^>c>&x&n9&PE$L^M zMg0VF2TAUbD^s&+zqlOKYf$0OPU;S{qzf(=^^2(RXE${hTGAy~0(HrqK;6w9b!G0X z>!B{Yz0?&{__L3?7cEJ3`$-ydmrCxqD|6@F0QHdxLFx~q!kiIqA8I%5SJhH*ptX?mUf_bjouz_1{sEI&o)V?huZa)ZEvcdO9l7 z%~Cq`E@(+Dd@ZPFpd#HOWl+yXOKRzBNj(!4?rNM#JqInRm9G``)~HCga_?jA7>*os z-!;@9Mn$?!YD2vna?E|#Qhx*$>2~gHEKA+dl3wy%M|~D@7fz`i^&V(RFZ-^iJ{uM3 zPAQ9ePgJD4c;2$q3%LiU)PdX^73m(Hw=DHRg*z>G#=r5*6sbSYLzV`hA`N2SW$6J_ zq+#qYciBco8qPj)hjdi9J9Bp&&0cViMYhRZwo#EDW1HN`8x`){+?zZW73m4KDRU3! zKIA8*zU1+!NKZ-q$P-YJo@Ot&yEiJ*GtxlvBvhnl*&{`oEDgqa(opL2QIQt1cZ#%# z{o>y3s7QtEmnRQJ9UpHzlw@f%$~~9a#W-e_LO_3qau~Er?T`KD$+{! zRF+;x{{DzPRiwl0BX=)HMLNPh%F_3!NY(74Ed79rbd-IRr5};M`IV-Se?mn%&b_J? z>1Xa#tw<-N8TgAd6IFQ@eKceokY|%E$qwXtmkY=)=c(zWs` za$8iST)7Nylh;t`hMb@BI&yd9oRrs-d!QoqmN$^^K}G5#ZzSJ~iqu!$M7|Fdsh_-= z{5Ry>legdic`KEH$Q?xGZRA0yNDs){$%9dmhREgQp{Pg?$~(xzP>~*zcan!AcL9}m zkw>B;JuL6WQSu%tk058PyqEkaDpH1DZ+JR22hj=YbYkBT%`-cK$-?)5Go zz+$-ym&=E!m!Kl8kPnkfQITGgkC0cQBE2qGlUJc4y&)eZm!Tr9mXDFwpdx)PA1CiY zMfzGkLEeXo^mn<2dzbN(RbkD_9GMW=EjGAb%2c2;aEH=`ouC{DaxabthQ zg98*F4pss4MKF**Hnb z!Dp3RoUC-i=alX^Md^XhD?M?l(hFZudgC;u4^CJ5;tZu9zNqxanaV(XNg0H*l)?D2 zG8AVk!*Gr=9P^ctI9C~k17yDaQ|#9k@-|i61JvaJ#Y_KT`H!xw02ORw{6ZQi-1^`*5eSA3s$N;4Y;K zKT{6jZsjn3t{lNVN;Q6=9L2rLG5k_FjupxY{7R|8O64Set(?Mr%4z&YIfMI^v-quY z4i6|7@St)Ds}xz`N>o%lr0Dn$#l*vkjo&FwJfgVqd&Ps*iVuHK0(evj;g3ofk15Ic zlTsItEA{bbr2(E$8sRTW3f3s8_^XnJCzYo7o6-zVDe3sTl7Xj{O#DM>jc1fL_@~kq z&noTkFC`1lDedvR(g80h9r2>l880baP*Sr|R&!8Mb5T{hp{906UG0H}+7nH+7h2p< zn)f5M4?5Jo=v4cmOYM(tbs#3FgV3W6Mz1;)ed;jutHUv%j>Mok3Pb8>OjPqQtd7AX zbu1>U*>#LLS3Ux9zP^Vx+bt*RE)<%ldSe=0>>P);+orS6DY;20oLepM-lrB}3$++C)Dmo|mSU#55?iUOu(eu-*Qjf- zjk*r6Ro7!%bpu|fZp3!#CcIwVj9Kayyg}WH?bU5~qq-eCsO5N*x&u3^JF%0x3p=a3 z@n&@oc2W1@Eoud3tCiSQ-G@2qe!NvZfVpZF-liVHZt7vYT|I)`)oQ#$J&HZlV|b@} z9DAxK@Gi9md#NY!ZhlsZ_h|Jr-lLwuKI&P#S3QS))eCr^dI|ffvda8WRk6RS;{esf zfvS!7t44h2z!s_>|fKC#W6qX|*#> zRJ-6aYBo+%bMRR;7bmOT@HzgkV~qc54}4zjiBr{H_=4ISr>T8#y4n|KsQvIowLi{O z2jWZWAe^NR#+TKhI9nZtbJXFOua3mI>L@HwN8>y-59h06@D+6|E>OqeLUlYYQYYYI zbs`q3lW>VT8JDV4aG5$4i_~fOsyYLU)tR_lorNXpY+Rw{W2stzuc`BKrMduLR~O+b zwGiJ>mtvV(gsatJT%(rYTD26{sVnhKbrr5x%kV9A4Q^1^;oItZ+^BBAchrrzN!^6+ zs+)1Mx&_};x8fFc8@{h@$E|8PexUBaZR$?^P~C;w)!q1!x(CbEz4)P*31jY7JJZC-H0b6z)?` z<2ULV+^?R+Z`E^nK)rwm)k|2V${ORps^TG4$A73M9#(DqPIclD)s5e)9;{Y<_=6h2 zqiP6$RKs{oO~#+px_Dfzk3Xvo@Pyh3e^FDgMoqYu%XllLC(t4w<^+AW$7oA!^bZPz3tqsHkZ4i32!RXb7qE8!!er-4gw2>IpMqx-B zjfq+whP5%6q>aU7Z5-Co#$#P=0@l+eVts8AUZG9K2HF&Cs7=L2+B9se&A=3GCSIw{ z!c=WGHqr7iO)J2wwE5UnTYy(9IZ9QN3~{{r={a#S_Y2MGVyV(HICKV;1gO~9H+IzC$%gbueHagv<^5y>xfTl zopGYp1)tHfagvsU&uY0iS?h++Y29&()&rl{dg4^A7rvnN#%Wp~oUZl78CpMlQR|O0 zwSoAOHV9{FgYji;D9+Y~;T&x^=4&Hyt~Lq_w9zltZl*fw5_;B+lKFJ+i|N_jvr_{aGSOhKh$>Nc5OF)r0v0SZ7+VTRp1V-5rX9lF+F|@$JA!+(YWzYwihH$V_@#CnE3^~%l~#k5+DZIcJB9nS z)A)^c2KQ@c@muX29?&k}LG2P&X|loiuc>%Q)A1jgiH9{Cztfy}M04Z!ng^>jAO4^P z@TeBTAGI(Z(~|Kgtu7wd>f_H^13aNM!e6u$tkF{OS1k=sYEAJstr?!u((!jK15az2 z_=naS&uDG%PpvJU)!N}-S{9zu+T(ex176TN;zg}9Uedatq-Ue7=b)nJqN;a8P4AAn z-UAK2Cz^UMwDjI+>wVCn_eH1P4_$hHbn62#K_7%3eK30Uq3F|xpoYJ#pNUuM zvoKYkjZO4?Ow$YSDt$gS)feE^`XX$m7h-dLDW>a1*g`MH47~(f>ZO>euf$gRDr~Kn z;WhdiY@@HkYxVWmR^Ncv=^L?~z6r0_H)EE*1#i%|VtaiX-l%WK4thD>r0>9v`cCYm z@50XdZoFCFgI)B!c#B?v*?J{*)%RhJz8`PZ4`8ldg}3R4u$z7uZ`Y4tcfA_#(2rsd z{TSY{T%kyFW`OpCG4lmCgZ=ZVt-x7 z0lJ9;bsO*3oj6E$;{&<}2kSl@q6cuO9>NFpFb>m`@gcn~4%h4B2)zN0)EnW$dJ2xx zQ}Gc!4M*!u@lm}Q=IQD9n4W=S^h|tQZ;fO1Hu!|z7RTxB@JT%j$LsC!DZK+u&^zMO zdS{%dcfn`$Y@DR$;In!zPS(5Ob9#52qW8e(^`1CY?}abuy>Xh}2dC?OafaRxU)1~K zOno4}qz}Sb`e1xnABwZ}VK_%0j`{jXoU4z*0(~^j)AMk?J_cXW$KnEg94^$y<05?m zF4iYvp*{(h=#z1&J_VQQQ?W>&hOg=~uvnjo%k^1UqR++^dOnuw1^AjiA6M!N@O6C= zuF?zf4Sgw==|#9&FUB=`39i*kah<*r-_%#(dc6$a(%0YyeI357ug8u027E`~h@13H z_^!SgH|tyQJ$)-~(YN9I`gYu^m*WTe4&0{i#1HjdxLx0kAL)CrT;Gcy>lL^|uf$LE zeYjKKkDuxXaF)=%L+ z{WN}~pTYh5S^QQ%hX?cvcu>EDRl003{_83p(slfYZsK9x#_x0|9?{+Sz3#zk-G@Ku z0X(XQ@JBt2$Mj_UNw15?_4@d;-T+VNjqn#e1#9$F{8dlGlX_G9O>c&$^mP1P&%o1q zCjOzf#xr^w{8Mj>XZ3dYm!5^^^!9jO?|>Kdj(Ab;jFhx(8#$;Lxu_c5P&2xt zZuCII=!vG$3oWBJ+D0FA7=6)c^h1}?AKk`4OfUwa#~6%WV<`HJVdyu8W55`RL1Pq# zjM12ANaxF=pbG z#w<)VW@8g0AJdEiyvmr5O^pS3wXq1B8HL!~Sc>UJ5wKE_$R*EolLjSG06aS8hwvd#E!sMz1o zae!gsK*PrS4JQsV-1vau!NG5gu@wmvC zfQyZZSZGYbCB|f2YD~dp##Agars1o`3@kQg;&NjamKd{fg^`b?MghKN%*U0+0({+A zgsY4~e8X6ZWkwOMHi~hLQG#oYQe0=O#5avqxZWtkw~RHo!B~fH8|!hSu>s#PHsU5@ z6TWL~#?8hSe9zd5Ta0b^zOfy*8s+$bu>-dmJMlwf7j8Fp<449GEI0Pz$3_M2Fe>pA zV;}A`_T#6<0o-L&;b+Dn+-)4j&y6Fv$Ee0HjH9^MIEG&u$FagVfnOOlSZSQZuZ>f< z&p3_W7-w+5aTdQd&fx*$0vZm5~v zQ8#;_VfIAR?1h%u8*Q@>I?TT4H2a~;?2m49ASRfD&|?lpuQ?Qb<}mb|!!clv#Gp9} zL*{5qH1jZQj=>~zEGC=du#Pz%>zWg=o;eZgo0ISgb22tCr(i>KDmF5wVPkU!rkFGF zN^=&bnzONqnU85^0bXU!$EM~2yxLrZ&CEh3_2y>GGPmFj=2mQPZo?bR?byLA$D7O@*wNgH zoy=X>+1!mcn|rW}xfgFSD=^!v#IEK(%rW=lt>yvDHLLJ8^AL735996T5$tYO;~nNv z>|q|mJI&+R(>#H9nKjtUJc)Okr?9tq8t*aBU?1}=-fN!2zUBqI&%A{FOxel!Z>ree z)Nz1m;y}~J`%NbfGTr!q>A}IK4~Lim9BPK}K{JfQ%w&AXtc%0V`Z&UDfFsRD_^_FR zqs&x%#7x7{W>b9BY=(JeIzDD*;21L#A2(a$ShEd2VYbC_W;=Y+%);?zdwk05fD_D) z__Wy>Cz@UG88aIvnK}5ZnTwOnZup$p9jBN*@OiT*PBnYs3ubSeX7<79W?!6P_QMy= z{y5Vdh%cFgaF#h3Up9y0Y;zdSF^6NmITGiZqp-jnjq}VroNtc7SIn`vz#NAQ&GER% zoPdkXiCAb(!X@TpTxw3iW#&{YGN<9I<_s)0XX0{m7M7T^afO+WrDg%XX3ocz<^p`( zT!gF4LVUwqie+XIt~QHtjahbnfw=>>nLF`Aa~EzmcjHIq9xONa;>TtM?l3Fy z6LTN#H234D<^kMgR^eynA>3^q#?Q?oxW}xB5*%uL3g%({5otdBpN4e*572!AnCu*OWqU(GZ;X*R{*%w~AXOvm5N z3_NXS;vZ&fJY%-OKh3sy)@+A=nOS(wY>(&74tT-rh!@Syc**R7l9i3Jm4k|vi>lQP zHLE-7Ru43+o@iRV(6V}?ZS_Hi)fb&sKXh6B(QOUH1Zxm_tikBDhN90JhJI@}2CR`7 zv_@gb8jXoo9)_(km}HH`WNRGOvBqOvYXa7@CSrYS5?*0V#s=0DY-mlzM%FZJY|X$F zYbIW4&B9b`Ha4;HG0iH#tE~Ch)LMX7TZ^!nRfx^4rI>CNVGFAmGprJ9X_aE8wGvxd ztFX0IhSykYu#L42ueH`=TWbSeXKloG)+W5(+KgG&7QDgQitVj!c%!u)J6Pp-leGgo zT060mwF^62yYXgg4|cKk;w@GMW?Plm)!K(S)_%OzI)J%W72akY!fw`Kyxls2-K}c8 z!#avRtYdhmbsT$IC-5$-276g2@owuB_O?#rJ=PiQW1Yo&t#jDdx`6jtm$08DyBYs2 z75iH{4zNrdXxVtb<-|dj8y~PdIN0*x5G#N~tq?wFg>jgbj1O6Laky0wm8mehfi8rINoZHPgxys zg4Ge9wmRcPs|!A3W#c3(2cNZaakAA7pR>B-6sre5Z}r5fRxf

W$N^J~-X#i!-c# z_@dPxXIcaCC2J7QvIgVJ)=->n4Z}IsaLl(x;#_MK7FeTko|T95tugqDH5M0G<8Yxh z9v4{?aIrNJ3$01G#F~stttq(7nu{K(pa<kRI<&f>S$IXqxpz=PH$tg_?;#(zu2Lza&JuuME`+4!C1#3Pm)zqdSC zZTavAD}YC>5dLU|@tBp2KUsD0xK$s2wi@6Gs}cTUrC^PfioaTEc+zT$zgf-jl$DOZ zTN!xT%EUjc)_BHhgMV6W@vPMj|FW|1oYfxBTOII%)e$dRo$->@1tmKhWjhBII~P^E z8)|lU)a@Q<*ges-d!c3bM%(U#4!bWp?SAO8`=i?)hza%}^w@*ZYY#=AJq-Q!a17WZ zF=&s%kUbg`?K}+IV=&1ci^=vltYeSIy7mODXHUfX_9VQ*o{SCbDcI1SijC}P*w~(d zDfUdf(w>E>_H1lo=VO{(fLGb`v8lZPueKLqGrJI*+ey}cQ;>@9eMy%pQr+wewvJ9ee5Cwmumws+&r_8#nF@5Ni}3e2`Ev8%lgbL{*8>`K8~;(;7Gd> zK5VDpC_5D&vD0w0-4q|Sn_-@vj*rFXeBSPfQ|(^(g54XZ*?n-j-4|!r z{qRM*KhCrV;!E}*oMjKjm+hfA+a88}mL_Jp+sFnYi4Zg(dcETw&*9sa=4t+4FIw zy#Qag7vUiEAdTx6|T3-@GW}{Zm`$k+xB|gXm7xG z?2Wj|-h}Vkn{l(f1>du`;ud=wzHe{G9dV(-AO?42H2szgR(dlz{hG8)^v$@`Jf z*xo}vfQ+T~Ui{InpmGcuOYKTLZtugN?frPdK7ha2Raj#m!e8yfc+x(Cf7sP{#y*PY z>|=P|KF-=MAS0xG0x#J$C^=4|>^Oyr<20&{GpISvqV70{4#x$Sbs{67;}Y48jD!x^ zD@z_^By^}`A2J3ybZp@;sbnDIjKd~pBIAt1Np6jdGY&Vo4KmI+Jmj{>IOFh<+aaTh zBY-zLLfF9(#+w|;*u_zoKDQvFhoe5ZD>8aG8sM#tMpSZ<(Zi8~-5jZSmm>{(Ihx|# zj%L`~k&gE`GO&*$6Yq7j#=ed=c%P#!_H(quzd5q7zoR`4aCE?dj*fW0qcaY2bioH4 z**MsdgF_s-IMmS%A98eOe}*HYfujd`Br*;-dXgVO#sNn!@}tNI;OI>rgNy)z?ifp6fL!U0apXnF zmF^f%E<~<$#{}|HW#7`f6NlgTB>mF}2AE=8_%$5ir4|!LbP6b`;_v$5Pht4`goRC?X$4 zu17~P`4}=wag>mMN3I}eDQeD@s5@7o;VeVjxdt81b?9`iN4IkW`kWgv=-h-M=VnZF zZo#l~D>ij*!|R>fG0RzweVsel)_ur%=-f&E8*&~xcaaAmqqlQ6`2}S3cJ3ihM_x7O zUYzHw!1>Nfe8ssB7dZE0k@Enqa8}_)=OHY29>$NIM{tL;8b5I!#huP$_^IM{)yNp-Jc}ot=cxRK97*Q|^6$u~<-CMv zoU)IZo>RrMP96Vpnt0A><9VkOWtZE>zxY7LE0>3?A;;h4BOAz!&J`eA$ZO#WksZiu z;R=&o$SdMXCMO^>I#*q?7kQ0b_0jKYfB{z{>Oti7a;1Mu)sEa0nbEnj z$jy)$ovS^jyE;&5fy}{N9kIQuGd|$zf`eVzIK-8MkGOJiw5uEDxw_+6R}UQL>WR;~ zda<6#$cW+UO`d{`7_L4z)zuegyZYfASAQPON3MO>KrC<#!g;R2INvoCUvUk?1+L+^ z&@~blxklk)*Jvzs<>3<77+mTai_2W&u*fwYUv*8uV%J1m?wW)puF1Hw};wslHe8V*x%Ut=m+EsvWyXLdE8J*8=h;eGV_UFW^P@CHh=K#@Gbe&sCqG`nl?nF*8BOD-%p?l3?T2 z2~HkuhFl#9ZgM&@4@vNlGmv>mf{&bu%tI0a)Mq2t zLP7=>CuCAtj-2xet?|2rHuy_ITdYZFhapcEeG-xJ$J3sigp5C)4&*w>_~YqFu7`|2 zp3dYeknzXUh1?Jse>~ab#>n{N$su2fe4_N^lA9pso~IjTd%9y+PY=xT^u${|y)f6) zo1V8JGb>LY^6kjyGEZOf9mwZ0Pe1aV$mcRoe;no+NaZ2q{PYaM5uU*~(leC$!^mvM zGYrRihT{{SkvPsX3deg!<2+9uJ?A6ijAsma0djtN#^NH+I4X;gamF*AyaX9%JQK*v zka5N{k^Cw$EAULhb)L!ire_N7^i0K1J=5?D&kTC*Mc(f`GszXmS?!rcu0+mi&usEO z12QxBZY6g_#x(CXa%W^r z^KK`1LC!00IXN3Sue>|RImmhC-AT?xX6)Ww6NW7m#-fZx#7<*&7SuJc{}pWp0|cvj?AOHC&@dId6f4Qc_(sqc~6sf zA>ZtI&yaT`Gb`^|@*d>e^PVH`Mb16%1#$&)?s+efE0J^0D+f6DkP+3ZlJ_Gcs#hl; zK)%`Ynpowvsr((8-+GKoc?a}*$loL1?0J3UACPm{8zBFPoWtG_`6uKY z_J+wnBcDdS$>d*`!dNoG7tB)CY#7Nd%iYk``V(z z*AAV&EOhzWqubX36MP-f&;q-+=jY$=4&ZbYC~}4an@v z*PVPL@>$i_gM1S*@ACD;M}568&(|9t^Yy_ozP|K%9QhRH>xXlE{i)<5a~|J7EcFe- z*L;Jq!Z(yhze2v<^$jC`jeNW78;;-jM&d!=C_L;N&7UEKCLH+Z|^^tEu{R_wqkZ(c#i^z?TQOjS5 zt^G^!8h;V>Hpr;uFUGe15`4#Bikti^dGuXmPU2sM+x%rzK19BU_piZ^{OhpXzaBsK zZ@?Y?jrfUw6YlhH#!vlQaF>58e&*kXyZzhobALJR@$bMd{5x^4e;0n~-;EXiJ@}P> zFIM_1@N0i1?(^@%Z~XglzyAP!>#xEC{zG`se;BL$NAU0dYCPmWivRE*!^8gL_?`a* z9`V=U_x_Vu?LUP-_)p_e{~7$ze-@AV&*4x03wYdr34iv>L9SN6iof`Etnr)ptKY_x zekcCscjGC)2Y>hb@U%aGfA~Xq#vjH%{mFRNUl;%K*T-}I26*1z2ru|k@S;BzFZt6@ z3N%GI&5P2U?>MXoF^;En0zgXa};;5onLjKnHXMI-)z!8506s&=bf; zZy*PKfn4+lx?v#D9fN@$7z*^n#6T|$2YO>tpbsVo`eL0xKdc+*kM#lrv3_6>UJ)3K z4FW^4VPF_G3Jk}_fsvRJ7=>2`Mq_Fq51RzWU|L`-UKJRJO#|cc>c9lNEie&>1}5Qy zfyp>3Fa;kEObzng4l>&bOe2p&zP}C3z-Iz8@uR>jEDy}aPXqb5D^P%61m@%3zyka_ zun6}B3h`iIDOLrF@Vh`U9to7-kAYG=7FdbD1Xf{9pbUQxtijWPb@*3cJ)R3}Kq!56fnYf%1$SU_a3@|7+=UH-yYb549!w4H#jArA*eqCy zEra_oGq@kG4IaR@!798VcnI4E4`Zj`5$qhS#;(Dmm=ipPw+D}7_uvVzGb1)6x3pT|q z!Dje=FderBGw_38CTUAZ?GqR8SI4>!QS{)un$%S`{LKZez-5#AHN9>#QniR z_-$}79taM_gTY}~6&#L#501n`!BO~qa5VZtd6*O$!!b!luCmZra$V#q3ymY!N6wJY zcx)J&fQ>>Ev2kb;ri3PAYG?{J2~EYc&@{X%Gy|K4W@78mEW9Q(8{38Q@%m5!W`*YC z4WR|tA+!i@3Ke3<&{FIiD#DvX#n>fOg13Z9@z&5v%nhx=+d^g7Ewl!Eh1TKyq4hW@ zv;iLoZN$N$O*ka98Ha|p;De#9_*iHgjty<+IX;1$QK52tGPDE7hj!vqpTre z?V;yHQzY?o*!GE+icmqaIaNOV)V33){lJ=iVLhj%0f z@V>+lkM={pZ%+)9`y)pzF&QT&*2U?G^>Jom1DuoC2n!NZurM(dmnEj*io~Y4GO-!1 zNleE#6EpCg#7x|r*cv}bY=heq+v1mr?XWU23%^Zlk5!2s@Vms0Se@7ze@^UzHHq2y zS7HucNX$hg+zs_`cl3sPU?AKRlf%8RUbr_l3irV)!+r6pa6g_`Q)E00_a`?)<~HGh z*tne_rAv_%0heu+^@F?sQ9*v#Dd3bYp40Z{R#aqJT zuxofc=7cBUt>KB78=i!>g(qXT@D%)8cq-fKkBpz;Y2<;(`5&G^9)!$V!!yZ`Bjln54;SF_@O-e|On>Zl!7TzCv z8y^U*#v!4#_+aQ$d?@q@jtG4md|P_5uC9L~{ZvoaKb83Bi25$64*o1nZ?Gu%v$U{* zuAi0`H(VV&EiGxd7MC^r5MOQhDK2mLaqz6 zQa(>o;zz0&k#33mk*3sm(DNhFb$#a`s(KJtfw)vC6vGUyJ+0s~fUUOX^E5Fh_ zhrFH}x6vZ_O9+%Rs-=bB6o}J!i;&HZP>|7d>al=jk~^zDUnm zazgqdemBUQu9N-gInpdSm|jRFF}*N2OHN8Jqf#f`)L)jbpy$hSLwdd}H>T&y@|E;_ zS#Cnlm*uPI`LcX9J?F^R&~uJ_Ej{PR*U@v1d_6tq$T!e)j(j6M=g2qFGhe=ip80ZD zdgjZw(lcMajh^}P?exr-@1SSCd?!8U%J&=gRldbFTb1dd`&x&~vVQKRxHl z574tfeu$n0@(6ks$Pd%AKz@Xt1@fcxERY|gXMy}UJ?F_!(sQ2t6g}t3Pt$Xr{0u$k z$hz_- z1@c;YE|A}(=K}ey^dc&6({q9R4m}sh@6vOj{60Mw${)~kq5L5|7s?;ebD{h(Jr~NK z&~u^uDLogwT^js$YMb9GnB0Y=vYZ9HTw8)W)WUWOS6{AIAut>IAlu>cCF!d6- zPK#`QQ>A6C_j-I9R4K3FBOXVBsSt{Q|&r-Qliw#t6re~>q3q4EauJkPDOS&qPUyaJp z$y!E^R4yAC#ldpf$|yufMi~`XhN*ueKai0veIpN{=Qr|$^!!GCC?gj~(DNJlVS0We zKSIxg@^cxdq=WMF^gJlPK+l8n^o-N^B0UevFVXX${4zZc$t$p0{ybx|T`hk>|7!V5 z`d7`l#BGNSNjhe^i<{Q z%xo!DX`ZQ*TV&>tTW02BtIWb+s&Y+c8TndzHc@WKG=oi)8|m3Zxrv@lluns8m7D3= zM7f2YO_Z+m%ut@lEDdHTPtr3(d5WGH%F~%EsXRl^4CPsRW+>0mv!il8^M|WDDiuvKb8SEX?)UGJ(~*(yissx)bpM&+tjg~6`M)vd~?G;d|ybl=z)UNqU$zmNtntl~yrAmR{n2=h2qX*3sUfZKds?eM|eE_A~7iO=CkY z8efV?$+R?DCav~IXLD%1X!p?u(H^BeNqd$yo%Rat9ojb9C$v4Z1GHagf6@3k8HxW( ztrVs;q&20rqIIO@(C(md3nqR~Pm+ex9;ZD`n@w9tdzJP&Z4+%f?K9fnX}{8v_^J3b zS_bVpS|=K}R^b<#Bz{qe<3XEFn@f9@_73d>+E=tH+7GlE+8LUz@s~@qL|Ow{8ZCo% z9jzlRht``moR&u$PkV`0Kr5!LrEQ^oMEj0*oOYJx)@$EDCI0oi#J`A___ym4{}Nr| z-u!mEt1a>Guh~c1V%i(DcWK*cyJ%n0s%SsZYG|6l>qM(ZOQkiZT|>*FWz)Xq zweQRS4y8Rpn@F2U`+wRy)9@&&v<;uCbVwix7=a*!gb>3HN!VpGAcTFBur(MUga$&V z6HJFSghfSAz`+d$StE!FD2U*~A}Xi|q7ZQ$zy(l5z!7B;0t(;#p02L6Gcecu`mXsg zmFs@aTkl!xRMn~Ks!pG0VFj#(t*{#oz~A5$`~l@c_$7U)0S%x9+zZ_y4JN=5%Kr+c zW6y46 zFb+1sTkswngd=bTjBxr7?t}zr1Z|)b^aCekKo&d*GhrSqg6Cl!ybe2H4;+Ob;8*w^ zLL+$84RUT*C9Dbcto3BVme2`$!2>WF3gBT_3NOJXcpKh_1Mmg>09T-DdCni`3u8d) z$t9d**)s^|z+Yf7tbvWN4J7Rz!cX8BoP;xQ0d7D9gIHyVh5FDG+CnPyhCwh4a$y?G zgGKNnY=PY%b$m+rB^-w{Z~?ACIerYf62w4lXbGt>0EWS6$bmw52G+tR*ao}d6ZjHN z!a2AMl_NO^pcQn0zAy~3p#WyXB3KRUVH^Ac{IoRBzLiRZcF+&xoN*Fnz&Mx$Ghh+C z0z2Rk9EUS-0m@Wl?1ySl8=63O7zSRL2J_%qcm;OA1-JoaDlwKp6{rDqp)quU43PF@ z5k3foFdG)a^RNy!gY>uX4)$I+3IBl05Luby1!_V)Xbc@;7)%C#-kI17;91xJTVV%$ z0EgilI1e`=l=(KJAs!k-9xQ-GunxAtZa4!{{zby;P@#%acSACa1UD4ITv!6D;T3oj z_ChfngR>CKg|!8wKv%dQ215png94ZhYv2ty06)MLFsgDqLn3s9!H^5{;VgtyqfD3$ z(%z>DrQerX;Tp>?aT_e(8-(w|$50Fsca-o1oP|H2Y&7Q(w1qUthnesgEQ6O|JM06= zUrhKld=Ka03ItcDuc0l>hL7PaNP1~wwHTirPuLKeL0jkulBNe?e;5I|AbF+`&V{Ey z(mY4F8eWB6a0JBvBjF{u33tSDd_x0h4xJzkMu7)rz(RNhz67}mY5;AZ6ZC?CkOdQ9 zE-ZzYVJqwh6~`D36`>|1!#ywnhQSz^3{QZxPgsP#2401ouosTOX}AvMYEm9lhuYxJ zmxSE{QeY5_2I-p|!ig{)o`kg{x6?A~^Fbv!<2bRIB@ID-d%TPIi_QNb#1{>fb z_y*3xA5gXy;{sHJyP+X8hn}ziUV{^G7D^zZHuqXk1L{IDq(D~~2;*Qftb&(d2Ydyp z4s}5k)PTm&4tj$Na^Oi=4I5z_d;s6U6)0bq>jQL$fiMXkgQsC7Y=mv_349CuSiVYz z*3cRH!Z0X=P4F$8hv@n=4O&8H=mWzc4`#tLuo7N_ZEzG$gY3uigx4UV0sRJDU?_}% z@h}7Cz%tkXyWto}-tP#1gDMSaBY0su?1n>d1Wv+Fa0x0k;{F6uVFo+}ufcopH#i5E zp;jX2H@G1m=7G#wxei{3FCip}@fWH<95jIr&>aTCNbrEPa{}SxumpC&5x54y$>f7h zFaSouELaY&z)m;@HzB04uPiA~sK9!4XbLIN57J>Yfdc42@$C%}F(z+M_)zYt(=46xr0uy+U82LkLb1MCw4 z_PGH2a)5m^z%JXgwEYzW?3e(%PJrDwz-|*@rv})40&Hi1of%+z0_;fv_N)MVUV!~< zfW0!nemTH?J;2_H{SnAM`i$`Ja2!skS6~lF z`u&8T!`E=y^8HMB6+&A0(l9}WiU!FaPgozCKnLg!!(bdt1W7ZUaFJ!NAY5bF8wuZp z?@1%+&RL}df$*-w)GQOoy)70Tz>MV7t73gvUH zq+M&R%Xu&7yPW5*T0UumT+iiLc+2w1y{{Yx{$oRqgLkdCy;gWIAiuvKzqy6)XMDc~ z_+?y?@kGWE89(GcU5+ogC->ir%l*6DkIOyxbt|tNV=~6b*dk+!j3qLL$k-wGqH-T9 z+bYMMY?B;&K{=)Ofiix`*dk+!j3075%Kf0+3x-+gm@k7Q98875`ma#&{2pJpF zC@&qxSmovt%4Z$fR{8uQp`1UJdOLW=t7AB zJUq<^h{OqxRy`dzRW|n$tU$KUv%qyQeW-Gw~mv1CvH=wW@1tqam?F1>b$hghX4+phJkJ)+}cw))mK>9wza^sODyYnu$_o}$c4dd*`vn198= z>?>u|cq2?b$fKb=BSLv0A11&=m;{qy3QUCpqr94CR91yX6*V1Zz)Yi>nq@@uw6&&s z*r=->f!Rg_^(f4Nx$qb~4)cseHQz{53yj9<38NM7u-fu=sv~o|bmHApDsPoK^S-DH zZ-Tn=j;EViZ1mviZExPq4CJlLAhpyO%sUmQT5b$cD~xot5>^?*c_%W08DKJ*|HZ}Z zFJpQ0F_w24V|iQQVb+&i=6uOx#uu+zZ%kyim#NJ4GM$-TW-`yqOts0FrCx*0#%%RE zY%%7jt;PcNhOtb&X{_SO@hbH;Y%|uV?XUxO!aK~%vkTs3UY+-tPv?E(4YeEgzz6Ul ze8k*3d*Nf)2m9d@H~^o*XK)Y>K{0&J{5yx?3-}v+34ezp#x`{nj=@*V$n!OPW4y;4 zH2c+YIKf;xC*eEep!yzoE24g29-Y(1Vf7<(<(z@Da1MTgf56Xh-Z-j$VV;~{;R0NQ zOU7|^+4x@lW?WKN;HvSPDuHWo9e!svn?H=-ncL=fX14jALFsp8fC)k1U=EvLC<7r7 z3T2tgrkrUSVP=pK4iQk^bQl%PGR7Sc33oz8vz$?h8Eh&;6jXt`pej@|!;NUD4lxi5 zH6RXZLOk5fyf+C@3u;3h^A4jf)Pwrwokjy_2#w52Mxt5WNP=W&3{9XZG-DQ==FkFK z!adLmT0~fhOeaWXHkr<**XROWp&RqZbZ0h| z9_B%#Co`$^VpfyhW_wf4cBkSak6xxSy8F)jsm$pn3*Rs@_|T=7Y{Q>!p=~{5$1dWG zl7;^wuzjm+>m@6edr;eVui09s=X1O1zoN9aeeKPWx;&n^+P?eDS(dMp`HYpflli>m z>uhefe4Wh?EninVU03s{+`&Q{Mi_GSFOOr5kAOvwVZ?bc30}#+Po0`LmU72(!ib zd=D@ijIWLd%x0Evn4Nc+*~RjWuze%UA(n5X?Hj4LNJ<=KdWe+@N15^_NtV%e|BW{P zV)@3}zOlL|CEYl4y_I*I`KFaF+uUpUvdxp0FUS1N^5vL@b*UL|R>qQg$D8#mU!Gk@ zo}D+}Y-gp*H#4nt6U_q4H_?D({mMmYH{^P!Pknb30PX{GfvHgSm=f@*K{&bIOOIr1)oo=oj z`?zh*x29!TaxZWyN^|H2)Xw{weoxv#l)KnrGLxz^-kjZLPLrH`>0B z?YxI<>-AWF`?gw^LzURpbvyPh zwxZ<`oL*9FtAlNIw5?Rz>S9~nY^#TDO|dM8>Q=9zJ}a>5`|5D0LfhI{-xtfX$3_x6 zST#d8$EKnws!)4Goy@t&vpucpT8C@R)aq92b(+u6bR}A-b-30UTHWffj+N4e>XL^l zsU=-q*UHBlW`tagmT(8g=Qgd8-2X`$pN?njDrA(Bl(SKfF%K<{dR_ZP-ORAXGiswO zV~5A6fWBzNp-yHQAD}%WwN6Hhj5%6mtDXGvtfUl;G(?9g>G_-d z;;Q&XhwJuuj7!)%nR`mNklUD3L8+*lU#sL^QW@@cBDn zr#psdf2Q_NLkBq?(w@26ep1`3w7!UXjJHsZ|8lYyMBQo!TBK`tt1qyf{Mv%}FKK^p znAp)M_j2044=pm%w4I@C*%r5&itSYMw10{AuhaI&sK@vb9pv~G{Z?M`n| zMTXc;?QyGC+S46sV|B96D65FX`i;UUWoYCkmeivE%e_&HWq-Z#LPM3KqC>HzMG6|@YnR+F5ueQI? z_6e;eTC3hEX%bMkO4T|~dsb_E54tnxDB2<9Iy%T9=WlV8^xhFubdW9M!s#^pz;J zXzhp2;6Fg5ZEvH;LPXvCSA%%gQv3OkGuRhH#J(KjI~U6E;o!VZPv2q}8CmFRGY_p5 zDkQp_oJs2J2ko~(SdW`nWK=(w8$E}L6XE48@wAr^U z2l14sZ_pc2zBFZcL+vp{-F&NCV$;ygu@bvjk33UC^L6Y(tyfW}s>Hi#&Qo-#F5j(^ zu+vQ0%P)ue#)LxNPrKFgs8j9I_UBr!YK`WJpi{L#)68_#t;VB8hMcV>Y5{g~jBI-| zt&dx_^vwJi(PlBylUHN+MDr%Atawt?P3*Bc)?-xUO*7X)eU3N4cB_8c^Psk$MTc@m zivNABM^LA_uI;ihQks-GLzl2#m%qNO)ObwqN4I)Ir}+piQKFN~1Lzf<(yh*8yVXSA zCcD)N)Twr8d#~10+H(m_Gb`}+*sZFg#ZkU7p&53h9v{-xYHY6EY(=5gbhQ)DAct?e zj$x;l`$^K26Hk#59VcgQSJbU?(QnJhbzzW0{O5G+!I-(&^s|yQ7qGXNlXi9p=~+|y za|GHUdIc?xvaS@`6LPnB zd{==xu+#aS7s*=_+pSKaeB(Aj+LnlNwxTZt4?&$u{BAW09adY$v0=5PoFYSXSZ&|6 z+vk_98_MsUN%|4B_^w{~1g*Z(1e2$Cz11TCyCy7JCqNtD{WW6AZdFTbqSo`MQ$^Mje+@KUpWQDS zdJJ@kQoD|Q7j>!|+77EPJs?|D5F)x-->amVGH%?|C4@wXKP=)UQV!L3cjxpS+8~GY zn3Gvvq?cs>eyYc%{klf(>qx&hVJ-bu9F>ah)An(#pJ**GB{nHMxB+kJBdVj5%y={` zLTWG6wckjPylz#dp=dwUspf0@d2P#4J=7ZErJY5_e*Ec5w8)S?9}pqiej`CVZWY0s zYqyF)(;fGqY32}gN~ma|@}LF5a@Hh;mrazGv__fT9Zd?~jXKqj+Vh*X>+*hjX_)BS z5sB#O2ssN1^&M2xV6kuNJG4Tr_v&NGtu~Ody|(YuniO6snfKe;?yR*!`CL3j#zNGo zM8hHuphLCYRj28$)nojEKV4thXJ}0=pVL@!O+$+epRUH9T<0*_G+0KPNJBhH;bBcA zWiskk_o4+Ml73dO6PpnXyC6i;FDWnEGOhm2rlPXfUacS8Of(FgRzDu?T2K7b>em&! zervQ%s9g0HHj=yCg^f1jS=i_;t?y{vgKnuVxh{r8HJ3K@K-p{Bo`{yH`DnTl&rN+z zZxbqed1;tj6I)f>hX4MGk~d9jks)@iP|@{ejTU^9M_+v+jW*aXhssrHIR9fQWr~hb zb}>DJ+BKumV=XDp;#H#8k5dTu7~@JNDRsb-!Q2 zwzhwG$K1Ts$*x`*Svkt%&CJbnxe`ZZXY0f_YmHqn*v?j($9DY}8vK70t%~CdXVMdW z2?+ugevO2+dv4*EL^DPHwD{7G{g)^yg{No^j;K|4G52U`rsF{zRBE6~V?Ph%tm}u> zP4!W|S?`8+#+GHLl%Qyk>Q8J2UN7+(DxY+@tofErj`p}%JcB&B6mKu@XaPQL3Lq0pPu)}N()A@-c#4&!s<`HT-wApu2hs=&UoF{DU^|+ z%anHZB2Omm%cb;Ow$5K}o*K`(Y+dPAHB)6M%ikNFXoXkj%_41Ss=zjK{Hut7JOjy- zN3PO-YN8TVOK8Scw}KXWol}~nnJPzK>Ggb_FNfA-2eiJlFA|BL41DVr#M z(RejQ?}0IDEG6;T_g{Q*stI*BR!!-Gr% zKAeI-pZX-e5Btow1({fRYNGabrWF(Po-6I+I=WY; z#L`yxQ6FpjED-f z{C3j&y#rg|rG5`RlCAsXc6n~K|7Y@5+p~sjrEfXEeOKF*$)4=EiLN|vR&Gwa_{NFJ z@o}!4%-m5~Ib+(z59r^y(LM2T-u#T5Q5o5}Ij(l`Q(WHolzSt}waxH)U7nHIQ{pHf z$J;J`LS9a5Z{}E+C&Sywla-m5>&+dV-zYQJ(>lZJNu1a?KF*VolQr7q%^w(88%4#% z*@bl*<;uy=%AfM579}Q2t8y|tRNre#hwVf2`0?>cz7q2DCV2C^<&4h# z58KluUgx83uPbvx9(7vlc=B8iPN1ExQGN5WCT3;3#<;xyVX001rN*(8mcwN#bAq(E zr)#1sJ1$$aU3`YOTh7E>w<|9`ZbDXv%uJV;ZXBJF?R8ljr3*>AMQi*`Px@2a+a}qa mK!UbO{yoHse~