From 0e67cc2087a490dc95817cdd04a7da1600bd1583 Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Mon, 1 Feb 2021 16:10:48 -0800 Subject: [PATCH 01/54] creating a dummy PR for the 'flow-dependent, cross-timescale model diagnostics' POD --- .../doc/MDTF_Documentation_flow_dep_diags.pdf | Bin 0 -> 115198 bytes .../flow_dep_diags/doc/flow_dep_diags.rst | 136 ++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 diagnostics/flow_dep_diags/doc/MDTF_Documentation_flow_dep_diags.pdf create mode 100644 diagnostics/flow_dep_diags/doc/flow_dep_diags.rst diff --git a/diagnostics/flow_dep_diags/doc/MDTF_Documentation_flow_dep_diags.pdf b/diagnostics/flow_dep_diags/doc/MDTF_Documentation_flow_dep_diags.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b35b8acbe7b9309f202a55c7aadd959e459a42ee GIT binary patch literal 115198 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¥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 literal 0 HcmV?d00001 diff --git a/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst b/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst new file mode 100644 index 000000000..2dbd5097f --- /dev/null +++ b/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst @@ -0,0 +1,136 @@ +.. This is a comment in RestructuredText format (two periods and a space). + +.. Note that all "statements" and "paragraphs" need to be separated by a blank + line. This means the source code can be hard-wrapped to 80 columns for ease + of reading. Multi-line comments or commands like this need to be indented by + exactly three spaces. + +.. Underline with '='s to set top-level heading: + https://docutils.sourceforge.io/docs/user/rst/quickref.html#section-structure + +Flow-Dependent, Cross-Timescale Model Diagnostics Documentation +================================ + +Last update: 01/02/2021 + +The flow-dependent model diagnostics compares daily atmospheric circulation pattern, or weather types, characteristics in reanalyses and models to analyze misrepresented physical processes related to spatiotemporal systematic errors in those models. Relationships between these biases and climate teleconnections (e.g., SST patterns, ENSO, MJO, etc.) can be explored in different models. + +.. Underline with '-'s to make a second-level heading. + +Version & Contact info +---------------------- + +.. '-' starts items in a bulleted list: + https://docutils.sourceforge.io/docs/user/rst/quickref.html#bullet-lists + +.. Here you should describe who contributed to the diagnostic, and who should be +.. contacted for further information: + +- Version/revision information: version 1 (01/02/2021) + +.. - PI (name, affiliation, email) + +- Developer/point of contact: Ángel G. Muñoz (agmunoz@iri.columbia.edu) and Andrew W. Robertson (awr@iri.columbia.edu) + +- Other contributors: Drew Resnick (drewr@iri.columbia.edu) + +.. Underline with '^'s to make a third-level heading. + +Open source copyright agreement +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). + +.. Unless you've distirbuted your script elsewhere, you don't need to change this. + +.. Functionality +.. ------------- + +.. In this section you should summarize the stages of the calculations your +.. diagnostic performs, and how they translate to the individual source code files +.. provided in your submission. This will, e.g., let maintainers fixing a bug or +.. people with questions about how your code works know where to look. + +Required programming language and libraries +------------------------------------------- + +.. In this section you should summarize the programming languages and third-party +.. libraries used by your diagnostic. You also provide this information in the +.. ``settings.jsonc`` file, but here you can give helpful comments to human +.. maintainers (eg, "We need at least version 1.5 of this library because we call +.. this function.") + +Programming language: Python3 + +Python Libraries used: Xarray, numpy, pandas, sklearn, cartopy, matplotlib, PyWR + +Required model output variables +------------------------------- + +.. In this section you should describe each variable in the input data your diagnostic uses. Here you should go into detail on the assumptions your diagnostic makes about the structure of the data. + +Geopotential height anomalies at 500 hPa + +Rainfall + +2-m temperature + +References +---------- + +.. Here you should cite the journal articles providing the scientific basis for your diagnostic. To keep the documentation format used in version 2.0 of the framework, we list references "manually" with the following command: + +.. Note this syntax, which sets the "anchor" for the hyperlink: two periods, one + space, one underscore, the reference tag, and a colon, then a blank line. + + +.. _ref-Muñoz: + +Muñoz, Á. G., Yang, X., Vecchi, G. A., Robertson, A. W., & Cooke, W. F. (2017): PA Weather-Type-Based Cross-Time-Scale Diagnostic Framework for Coupled Circulation Models. *Journal of Climate*, **30** (22), 8951–8972, +`doi:10.1175/JCLI-D-17-0115.1 `__. + +.. which can be cited in text as ``:ref:`a hyperlink ```, which +.. gives :ref:`a hyperlink ` to the location of the reference on the +.. page. Because references are split between this section and the following "More +.. about this diagnostic" section, unfortunately you'll have to number references +.. manually. + +.. We don't enforce any particular bibliographic style, but please provide a +.. hyperlink to the article's DOI for ease of online access. Hyperlinks are written +.. as ```link text `__`` (text and url enclosed in backticks, followed by two +.. underscores). + +.. More about this diagnostic +.. -------------------------- + +.. In this section, you can go into more detail on the science behind your +.. diagnostic, for example, by copying in relevant text articles you've written +.. using th It's especially helpful if you're able to teach users how to use +.. your diagnostic's output, by showing how to interpret example plots. + +.. Instead of doing that here, we provide more examples of RestructuredText +.. syntax that you can customize as needed. + +.. As mentioned above, we recommend the online editor at `https://livesphinx.herokuapp.com/ +.. `__, which gives immediate feedback and has +.. support for sphinx-specific commands. + +.. Here's an +.. `introduction `__ +.. to the RestructuredText format, a +.. `quick reference `__, +.. and a `syntax comparison `__ to +.. other text formats you may be familiar with. + +.. Links to external sites +.. ^^^^^^^^^^^^^^^^^^^^^^^ + +.. URLs written out in the text are linked automatically: https://ncar.ucar.edu/. + +.. To use custom text for the link, use the syntax +.. ```link text `__`` (text and url enclosed in backticks, +.. followed by two underscores). This produces `link text `__. + +.. More references and citations +.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + From 4110808a30cf0fffbdd50adc946da00ad459822d Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Wed, 3 Feb 2021 13:56:46 -0800 Subject: [PATCH 02/54] renaming files; adding settings file; deleted old directory --- .DS_Store | Bin 0 -> 6148 bytes diagnostics/.DS_Store | Bin 0 -> 6148 bytes diagnostics/flow_dep_diag/.DS_Store | Bin 0 -> 6148 bytes .../doc/MDTF_Documentation_flow_dep_diags.pdf | Bin .../flow_dep_diag/doc/flow_dep_diags.rst | 50 +++++++ diagnostics/flow_dep_diag/settings.jsonc | 46 ++++++ .../flow_dep_diags/doc/flow_dep_diags.rst | 136 ------------------ 7 files changed, 96 insertions(+), 136 deletions(-) create mode 100644 .DS_Store create mode 100644 diagnostics/.DS_Store create mode 100644 diagnostics/flow_dep_diag/.DS_Store rename diagnostics/{flow_dep_diags => flow_dep_diag}/doc/MDTF_Documentation_flow_dep_diags.pdf (100%) create mode 100644 diagnostics/flow_dep_diag/doc/flow_dep_diags.rst create mode 100644 diagnostics/flow_dep_diag/settings.jsonc delete mode 100644 diagnostics/flow_dep_diags/doc/flow_dep_diags.rst diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..154a9f593ef8c52363aab9e7837607dcd5f414c5 GIT binary patch literal 6148 zcmeHKyG{c!5S)b+k?txSAO)m=6p#W^;6e&iVcqU7be@ip0#e|56!7muqdWG(IWayR9HIpvZWs>Z zJbDRY^8m3I&WViBEUCn#TD2IKbjDld^};zZ>9A@(tZugIP%Lie`7P36JyD|+kOE5u zZgaW!`u{-xqyJx$w2}f+;Hng`&GGSg;FGGht{&&Lw$Y#Hp7Tw2<2)!Fq8t;W9CP92 e_%4z%ulbz&y>LzpI^#hn>Sw@pkx7C7R^SK1dKMG_ literal 0 HcmV?d00001 diff --git a/diagnostics/.DS_Store b/diagnostics/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0057e0c0f8407a39d280cb0d5ebda06c6132f45e GIT binary patch literal 6148 zcmeHK%TB{E5S)b~A|X%@960(H_=Biwj=-TGz$0lsidpN}sA9%zIHmI@Gt#zhztf*@6&bW$hn}};VKX-1V1sA`&VSDI!$qaAIQ)0c( zwWH>h8EfV)@yYgW5o09P*W?U11I~amFlq+$a-w8shTb~^&VVzpXF$(~z^0fdYz^bl z!7i2n#0k|=IM!N1V?x3_VQWYWMJ$wPp^{1rv2f}`^2-yph87M<#fPLXcg2guuQPv$ z?vUKjduPBI=reF^)2ZJ71%H{rBEKKvGiSgV_-72rWWJcsxT$ov{@9-0wSnz{O-21$ o9Z)##Jpwqk@o~Ffr|E7bw^h;#@Ihw#xlK?3DnJFO02QDD3sN8t z^7Upx&%{Te0#slb3fT9dz>PK8g8u11@DTv)QFg=HX9=)a0j$XuLtMpWxr-|5*!DDnJGPOabkW z=i>n{m1pb6>skGhRa-YW=$9kB{RAMfqj(E`__. diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc new file mode 100644 index 000000000..22ac7a55e --- /dev/null +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -0,0 +1,46 @@ +{ + "settings" : { + "long_name" : "Flow-Dependent, Cross-Timescale Model Diagnostics Documentation", + "driver" : "flow_dep_diag.py", + "realm" : ["weather"], //should there be additional tags? + "runtime_requirements" : { + "python" : ["xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib"] + // I could add here that you need an IRI login? + }, + "pod_env_vars" : { //names and values of shell env vars used by diagnostic + // could add spatial resolution but not required + "RES" : "1" + } + }, + "data" : { + "format" : "any_netcdf", + }, + "dimensions" : { + "lat" : "latitude", + + }, + // properties applying to data the diag is requesting + "data" : { + <...properties for all requested model data...> + }, + // apply to dimesnions (netDCF terms) of model data + "dimensions" : { + "my_first_dimension": { + <...properties describing this dimension...> + }, + "my_second_dimension": { + <...properties describing this dimension...> + }, + ... + }, + // describe individual vars + "varlist" : { + "my_first_variable": { + <...properties describing this variable...> + }, + "my_second_variable": { + <...properties describing this variable...> + }, + ... + } +} \ No newline at end of file diff --git a/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst b/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst deleted file mode 100644 index 2dbd5097f..000000000 --- a/diagnostics/flow_dep_diags/doc/flow_dep_diags.rst +++ /dev/null @@ -1,136 +0,0 @@ -.. This is a comment in RestructuredText format (two periods and a space). - -.. Note that all "statements" and "paragraphs" need to be separated by a blank - line. This means the source code can be hard-wrapped to 80 columns for ease - of reading. Multi-line comments or commands like this need to be indented by - exactly three spaces. - -.. Underline with '='s to set top-level heading: - https://docutils.sourceforge.io/docs/user/rst/quickref.html#section-structure - -Flow-Dependent, Cross-Timescale Model Diagnostics Documentation -================================ - -Last update: 01/02/2021 - -The flow-dependent model diagnostics compares daily atmospheric circulation pattern, or weather types, characteristics in reanalyses and models to analyze misrepresented physical processes related to spatiotemporal systematic errors in those models. Relationships between these biases and climate teleconnections (e.g., SST patterns, ENSO, MJO, etc.) can be explored in different models. - -.. Underline with '-'s to make a second-level heading. - -Version & Contact info ----------------------- - -.. '-' starts items in a bulleted list: - https://docutils.sourceforge.io/docs/user/rst/quickref.html#bullet-lists - -.. Here you should describe who contributed to the diagnostic, and who should be -.. contacted for further information: - -- Version/revision information: version 1 (01/02/2021) - -.. - PI (name, affiliation, email) - -- Developer/point of contact: Ángel G. Muñoz (agmunoz@iri.columbia.edu) and Andrew W. Robertson (awr@iri.columbia.edu) - -- Other contributors: Drew Resnick (drewr@iri.columbia.edu) - -.. Underline with '^'s to make a third-level heading. - -Open source copyright agreement -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). - -.. Unless you've distirbuted your script elsewhere, you don't need to change this. - -.. Functionality -.. ------------- - -.. In this section you should summarize the stages of the calculations your -.. diagnostic performs, and how they translate to the individual source code files -.. provided in your submission. This will, e.g., let maintainers fixing a bug or -.. people with questions about how your code works know where to look. - -Required programming language and libraries -------------------------------------------- - -.. In this section you should summarize the programming languages and third-party -.. libraries used by your diagnostic. You also provide this information in the -.. ``settings.jsonc`` file, but here you can give helpful comments to human -.. maintainers (eg, "We need at least version 1.5 of this library because we call -.. this function.") - -Programming language: Python3 - -Python Libraries used: Xarray, numpy, pandas, sklearn, cartopy, matplotlib, PyWR - -Required model output variables -------------------------------- - -.. In this section you should describe each variable in the input data your diagnostic uses. Here you should go into detail on the assumptions your diagnostic makes about the structure of the data. - -Geopotential height anomalies at 500 hPa - -Rainfall - -2-m temperature - -References ----------- - -.. Here you should cite the journal articles providing the scientific basis for your diagnostic. To keep the documentation format used in version 2.0 of the framework, we list references "manually" with the following command: - -.. Note this syntax, which sets the "anchor" for the hyperlink: two periods, one - space, one underscore, the reference tag, and a colon, then a blank line. - - -.. _ref-Muñoz: - -Muñoz, Á. G., Yang, X., Vecchi, G. A., Robertson, A. W., & Cooke, W. F. (2017): PA Weather-Type-Based Cross-Time-Scale Diagnostic Framework for Coupled Circulation Models. *Journal of Climate*, **30** (22), 8951–8972, -`doi:10.1175/JCLI-D-17-0115.1 `__. - -.. which can be cited in text as ``:ref:`a hyperlink ```, which -.. gives :ref:`a hyperlink ` to the location of the reference on the -.. page. Because references are split between this section and the following "More -.. about this diagnostic" section, unfortunately you'll have to number references -.. manually. - -.. We don't enforce any particular bibliographic style, but please provide a -.. hyperlink to the article's DOI for ease of online access. Hyperlinks are written -.. as ```link text `__`` (text and url enclosed in backticks, followed by two -.. underscores). - -.. More about this diagnostic -.. -------------------------- - -.. In this section, you can go into more detail on the science behind your -.. diagnostic, for example, by copying in relevant text articles you've written -.. using th It's especially helpful if you're able to teach users how to use -.. your diagnostic's output, by showing how to interpret example plots. - -.. Instead of doing that here, we provide more examples of RestructuredText -.. syntax that you can customize as needed. - -.. As mentioned above, we recommend the online editor at `https://livesphinx.herokuapp.com/ -.. `__, which gives immediate feedback and has -.. support for sphinx-specific commands. - -.. Here's an -.. `introduction `__ -.. to the RestructuredText format, a -.. `quick reference `__, -.. and a `syntax comparison `__ to -.. other text formats you may be familiar with. - -.. Links to external sites -.. ^^^^^^^^^^^^^^^^^^^^^^^ - -.. URLs written out in the text are linked automatically: https://ncar.ucar.edu/. - -.. To use custom text for the link, use the syntax -.. ```link text `__`` (text and url enclosed in backticks, -.. followed by two underscores). This produces `link text `__. - -.. More references and citations -.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - From 61d7f8b2f6e07e55f34d6baf5c4836fb5905758e Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Thu, 4 Feb 2021 11:04:11 -0800 Subject: [PATCH 03/54] adding to the settings.jsonc file --- .DS_Store | Bin 6148 -> 0 bytes diagnostics/.DS_Store | Bin 6148 -> 0 bytes diagnostics/flow_dep_diag/.DS_Store | Bin 6148 -> 0 bytes ...f => MDTF_Documentation_flow_dep_diag.pdf} | Bin .../{flow_dep_diags.rst => flow_dep_diag.rst} | 0 diagnostics/flow_dep_diag/settings.jsonc | 54 +++++++++--------- 6 files changed, 27 insertions(+), 27 deletions(-) delete mode 100644 .DS_Store delete mode 100644 diagnostics/.DS_Store delete mode 100644 diagnostics/flow_dep_diag/.DS_Store rename diagnostics/flow_dep_diag/doc/{MDTF_Documentation_flow_dep_diags.pdf => MDTF_Documentation_flow_dep_diag.pdf} (100%) rename diagnostics/flow_dep_diag/doc/{flow_dep_diags.rst => flow_dep_diag.rst} (100%) diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 154a9f593ef8c52363aab9e7837607dcd5f414c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKyG{c!5S)b+k?txSAO)m=6p#W^;6e&iVcqU7be@ip0#e|56!7muqdWG(IWayR9HIpvZWs>Z zJbDRY^8m3I&WViBEUCn#TD2IKbjDld^};zZ>9A@(tZugIP%Lie`7P36JyD|+kOE5u zZgaW!`u{-xqyJx$w2}f+;Hng`&GGSg;FGGht{&&Lw$Y#Hp7Tw2<2)!Fq8t;W9CP92 e_%4z%ulbz&y>LzpI^#hn>Sw@pkx7C7R^SK1dKMG_ diff --git a/diagnostics/.DS_Store b/diagnostics/.DS_Store deleted file mode 100644 index 0057e0c0f8407a39d280cb0d5ebda06c6132f45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%TB{E5S)b~A|X%@960(H_=Biwj=-TGz$0lsidpN}sA9%zIHmI@Gt#zhztf*@6&bW$hn}};VKX-1V1sA`&VSDI!$qaAIQ)0c( zwWH>h8EfV)@yYgW5o09P*W?U11I~amFlq+$a-w8shTb~^&VVzpXF$(~z^0fdYz^bl z!7i2n#0k|=IM!N1V?x3_VQWYWMJ$wPp^{1rv2f}`^2-yph87M<#fPLXcg2guuQPv$ z?vUKjduPBI=reF^)2ZJ71%H{rBEKKvGiSgV_-72rWWJcsxT$ov{@9-0wSnz{O-21$ o9Z)##Jpwqk@o~Ffr|E7bw^h;#@Ihw#xlK?3DnJFO02QDD3sN8t z^7Upx&%{Te0#slb3fT9dz>PK8g8u11@DTv)QFg=HX9=)a0j$XuLtMpWxr-|5*!DDnJGPOabkW z=i>n{m1pb6>skGhRa-YW=$9kB{RAMfqj(E - }, - // apply to dimesnions (netDCF terms) of model data - "dimensions" : { - "my_first_dimension": { - <...properties describing this dimension...> - }, - "my_second_dimension": { - <...properties describing this dimension...> - }, - ... - }, - // describe individual vars - "varlist" : { - "my_first_variable": { - <...properties describing this variable...> - }, - "my_second_variable": { - <...properties describing this variable...> + "dimensions" : { //should these be labeled X Y etc as in the data? or as lat lon etc + "Y" : { + "standard_name" : "latitude", + "units" : "degrees_N" + }, + "X" : { + "standard_name" : "longitude", + "units" : "degrees_E" + }, + "P" : { + "standard_name" : "air_pressure", + "units" : "hPa", + "positive" : "down" + }, + "T" : { + "standard_name" : "time", + "units" : "days" + } }, - ... - } + "varlist" : [ + { + "adif" : { + "standard_name" : "geopotential_height" + "path_variable" : "hgt_NNRP_rean.nc" + } + } + ] } \ No newline at end of file From 7dede336fdb8d22ee1a881654bbbc27953d666fe Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Fri, 5 Feb 2021 10:58:04 -0800 Subject: [PATCH 04/54] added python files for diagnostics --- diagnostics/flow_dep_diag/PyWR.py | 148 +++++++++++++ diagnostics/flow_dep_diag/flow_dep_diag.html | 29 +++ diagnostics/flow_dep_diag/flow_dep_diag.py | 206 +++++++++++++++++++ diagnostics/flow_dep_diag/prep_data.py | 65 ++++++ 4 files changed, 448 insertions(+) create mode 100644 diagnostics/flow_dep_diag/PyWR.py create mode 100644 diagnostics/flow_dep_diag/flow_dep_diag.html create mode 100644 diagnostics/flow_dep_diag/flow_dep_diag.py create mode 100644 diagnostics/flow_dep_diag/prep_data.py diff --git a/diagnostics/flow_dep_diag/PyWR.py b/diagnostics/flow_dep_diag/PyWR.py new file mode 100644 index 000000000..dd7843600 --- /dev/null +++ b/diagnostics/flow_dep_diag/PyWR.py @@ -0,0 +1,148 @@ +#PyWR.py (version1.1) -- 27 Oct 2020 +#Python functions for weather typing (using K-means) and flow-dependent model diagnostics +#Authors: ÁG Muñoz (agmunoz@iri.columbia.edu), James Doss-Gollin, AW Robertson (awr@iri.columbia.edu) +#The International Research Institute for Climate and Society (IRI) +#The Earth Institute at Columbia University. + +#Notes: +#Log: see version.log in GitHub + +import numpy as np +from numba import jit +import matplotlib.pyplot as plt +from sklearn.cluster import KMeans +from sklearn.decomposition import PCA +import xarray as xr +from typing import Tuple + +def download_data(url, authkey, outfile, force_download=False): + """A smart function to download data from IRI Data Library + If the data can be read in and force_download is False, will read from file + Otherwise will download from IRIDL and then read from file + + PARAMETERS + ---------- + url: the url pointing to the data.nc file + authkey: the authentication key for IRI DL (see above) + outfile: the data filename + force_download: False if it's OK to read from file, True if data *must* be re-downloaded + """ + + if not force_download: + try: + data = xr.open_dataset(outfile, decode_times=False) + except: + force_download = True + + if force_download: + # calls curl to download data + command = "curl -L -k -b '__dlauth_id={}' '{}' > {}".format(authkey, url, outfile) + #command = "curl -L '{}' > {}".format(url, outfile) + get_ipython().system(command) + # open the data + data = xr.open_dataset(outfile, decode_times=False) + + return data + +def get_number_eof(X: np.ndarray, var_to_explain: float, plot=False) -> int: + """Get the number of EOFs of X that explain a given variance proportion + """ + assert var_to_explain > 0, 'var_to_explain must be between 0 and 1' + assert var_to_explain < 1, 'var_to_explain must be between 0 and 1' + pca = PCA().fit(X) + var_explained = pca.explained_variance_ratio_ + cum_var = var_explained.cumsum() + n_eof = np.where(cum_var > var_to_explain)[0].min() + 1 + + if plot: + n_padding = 4 + plt.figure(figsize=(12, 7)) + plt.plot(np.arange(1, n_eof + 1 + n_padding), cum_var[0:(n_padding + n_eof)]) + plt.scatter(np.arange(1, n_eof + 1 + n_padding), cum_var[0:(n_padding + n_eof)]) + plt.xlabel('Number of EOFs') + plt.ylabel('Cumulative Proportion of Variance Explained') + plt.grid() + plt.title('{} EOF Retained'.format(n_eof)) + plt.show() + return n_eof + +@jit +def _vector_ci(P: np.ndarray, Q: np.ndarray) -> float: + """Implement the Michaelangeli (1995) Classifiability Index + + The variable naming here is not pythonic but follows the notation in the 1995 paper + which makes it easier to follow what is going on. You shouldn't need to call + this function directly but it is called in cluster_xr_eof. + + PARAMETERS + ---------- + P: a cluster centroid + Q: another cluster centroid + """ + k = P.shape[0] + Aij = np.ones([k, k]) + for i in range(k): + for j in range(k): + Aij[i, j] = np.corrcoef(P[i, :], Q[j, :])[0, 1] + Aprime = Aij.max(axis=0) + ci = Aprime.min() + return ci + +def calc_classifiability(P, Q): + """Implement the Michaelangeli (1995) Classifiability Index + The variable naming here is not pythonic but follows the notation in the 1995 paper + which makes it easier to follow what is going on. You shouldn't need to call + this function directly but it is called in cluster_xr_eof. + Args: + P: a cluster centroid + Q: another cluster centroid + """ + k = P.shape[0] + Aij = np.ones([k, k]) + for i in range(k): + for j in range(k): + Aij[i, j], _ = correl(P[i, :], Q[j, :]) + Aprime = Aij.max(axis=0) + ci = Aprime.min() + return ci + +@jit +def get_classifiability_index(centroids: np.ndarray) -> Tuple[float, int]: + """Get the classifiability of a set of centroids + + This function will compute the classifiability index for a set of centroids and + indicate which is the best one + + PARAMETERS + ---------- + centroids: input array of centroids, indexed [simulation, dimension] + """ + nsim = centroids.shape[0] + c_pq = np.ones([nsim, nsim]) + for i in range(0, nsim): + for j in range(0, nsim): + if i == j: + c_pq[i, j] = np.nan + else: + c_pq[i, j] = _vector_ci(P=centroids[i, :, :], Q=centroids[j, :, :]) + classifiability = np.nanmean(c_pq) + best_part = np.where(c_pq == np.nanmax(c_pq))[0][0] + return classifiability, best_part + +@jit +def loop_kmeans(X: np.ndarray, n_cluster: int, n_sim: int) -> Tuple[np.ndarray, np.ndarray]: + """Compute weather types + + PARAMETERS + ---------- + X: an array (should be in reduced dimension space already) indexed [time, dimension] + n_cluster: how many clusters to compute + n_sim: how many times to initialize the clusters (note: computation increases order (n_sim**2)) + """ + centroids = np.zeros(shape=(n_sim, n_cluster, X.shape[1])) + w_types = np.zeros(shape=(n_sim, X.shape[0])) + for i in np.arange(n_sim): + km = KMeans(n_clusters=n_cluster).fit(X) + centroids[i, :, :] = km.cluster_centers_ + w_types[i, :] = km.labels_ + return centroids, w_types diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.html b/diagnostics/flow_dep_diag/flow_dep_diag.html new file mode 100644 index 000000000..3db22c31a --- /dev/null +++ b/diagnostics/flow_dep_diag/flow_dep_diag.html @@ -0,0 +1,29 @@ +MDTF example diagnostic + + +

Flow-Dependent, Cross-Timescale Model Diagnostics

+

+The flow-dependent model diagnostics compares daily atmospheric circulation pattern, +or weather types, characteristics in reanalyses and models to analyze misrepresented +physical processes related to spatiotemporal systematic errors in those models. +Relationships between these biases and climate teleconnections +(e.g., SST patterns, ENSO, MJO, etc.) can be explored in different models. +

+

+The names of any environment variables set for the diagnostic (enclosed in +curly braces) will be replaced by the same values they had when the diagnostic +was run. For example, this diagnostic's favorite color is "{EXAMPLE_FAV_COLOR}." +

+ + + +
Time averages, {FIRSTYR}-{LASTYR} +{CASENAME} +OBS +
Near-surface temperature (K) + +plot +plot +
diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py new file mode 100644 index 000000000..15b67990c --- /dev/null +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -0,0 +1,206 @@ +#Load libraries +import xarray as xr +import numpy as np +import pandas as pd +#import eccodes +from sklearn.cluster import KMeans +from sklearn.decomposition import PCA +import cartopy.crs as ccrs +from cartopy import feature +import matplotlib.pyplot as plt +from matplotlib.colors import LinearSegmentedColormap +# key PyWR functions are imported here +from PyWR import * + + +#The data used in this diagnostic was downloaded from the IRI: +#https://iridl.ldeo.columbia.edu/?Set-Language=en +#If data of a similar nature is desired, refer to the prep_data.py file for instructions on how +#to download anomaly data from the http server + +#need to be changed to where the files are located in framework +reanalysis = xr.open_dataset('WUS/data/hgt_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +uwnd = xr.open_dataset('WUS/data/u_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +uwnd = xr.open_dataset('WUS/data/v_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) + +#get rid of dummy pressure coordinate +reanalysis=reanalysis.isel(P=0) +uwnd=uwnd.isel(P=0) +vwnd=vwnd.isel(P=0) + + +#viewing the data +print(reanalysis) +print(rainfall) +print(t2m) +print(vwnd) +print(uwnd) + + +#DIMENSION REDUCTION: choose a percentage of variance explained that we will require +n_eof = get_number_eof(X=reanalysis['adif'].values, var_to_explain=0.9, plot=True) + +#project the data onto the leading EOFs to get the principal component time series +#We will retain the PCA model for use later. The reanalysis_pc variable is now indexed [time, EOF] +pca_model = PCA(n_components=n_eof).fit(reanalysis['adif'].values) +reanalysis_pc = pca_model.transform(reanalysis['adif'].values) + + +#REANALYSIS WEATHER TYPING: perform the clustering. We will manually specify the number of clusters we want to create and the number of simulations we want to run +ncluster = 6 # use 6 WTs +n_sim = 50 # typically 25-50 -- try 25 for quick preliminary computation only + +centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) +class_idx, best_part = get_classifiability_index(centroids) +print('The classifiability index is {}'.format(class_idx)) + + +#Now that we have identified a suitable partition, we can use it to keep only the corresponding centroid and set of weather type labels. Use centroids to define KMeans object +best_fit = KMeans(n_clusters=ncluster, init=centroids[best_part, :, :], n_init=1, max_iter=1).fit(reanalysis_pc) + +# start with reanalysis +reanalysis_composite = reanalysis.copy() +model_clust = best_fit.fit_predict(reanalysis_pc) # get centroids +weather_types = xr.DataArray( + model_clust, + coords = {'time': reanalysis_composite['time']}, + dims='time' +) +reanalysis_composite['WT'] = weather_types +reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='time').unstack('grid')['adif'] +reanalysis_composite['M'] = 0 + +wt_anomalies = [] # initialize empty list +wt_anomalies.append(reanalysis_composite) + +wt_anomalies = xr.concat(wt_anomalies, dim='M') # join together +wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 + + +#FIGURE: prepare a figure with rainfall and temperature composites +#Hashed out options for adding wind arrows, and additional plot labels + +X, Y = np.meshgrid(reanalysis['adif'].X, reanalysis['adif'].Y) +map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) +data_proj = ccrs.PlateCarree() +wt_unique = np.unique(wt_anomalies['WT']) +figsize = (14, 8) + +#WT proportions +wt=weather_types.to_dataframe(name='WT') +wt=wt+1 +#wt.to_netcdf('data/t2m_cpc.nc', format="NETCDF4") +wt_counts = wt.groupby('WT').size().div(wt['WT'].size) +wt_counts + +xmin,xmax = reanalysis['X'].min(), reanalysis['X'].max() +ymin,ymax = reanalysis['Y'].min(), reanalysis['Y'].max() + +# Set up the Figure +plt.rcParams.update({'font.size': 12}) +fig, axes = plt.subplots( + nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, + figsize=figsize, sharex=True, sharey=True + ) + +# Loop through +for i,w in enumerate(wt_unique): + def selector(ds): + times = wt.loc[wt['WT'] == w].index + ds = ds.sel(time = np.in1d(ds.unstack('time')['T'], times)) + ds = ds.mean(dim = 'time') + return(ds) + + # Top row: geopotential height anomalies + ax = axes[0, i] + ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) + C0 = selector(reanalysis['adif']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap='PuOr', + extend="both", + levels=np.linspace(-2e2, 2e2, 21), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -65, -12, 12]) + +# # add wind arrows +# U = selector(uwnd).adif.values +# V = selector(vwnd).adif.values +# magnitude = np.sqrt(U**2 + V**2) +# strongest = magnitude > np.percentile(magnitude, 50) +# Q = ax.quiver( +# X[strongest], Y[strongest], U[strongest], V[strongest], +# transform=data_proj, +# width=0.001, scale=0.8,units='xy' +# ) + + # Middle row: rainfall anomalies + ax = axes[1, i] + C1 = selector(rainfall['adif']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap = 'BrBG', + extend="both", + levels=np.linspace(-2, 2, 13), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -75, -9, 5]) + + # Bottom row: tepmperature anomalies + ax = axes[2, i] + C2 = selector(t2m['asum']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap = 'RdBu_r', + extend="both", + levels=np.linspace(-2, 2, 13), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -70, -9, 5]) + ax.tick_params(colors='b') + +# # Add Colorbar +plt.tight_layout() +fig.subplots_adjust(right=0.94) +cax0 = fig.add_axes([0.97, 0.65, 0.0075, 0.3]) +cax1 = fig.add_axes([0.97, 0.33, 0.0075, 0.3]) +cax2 = fig.add_axes([0.97, 0.01, 0.0075, 0.3]) +cbar0 = fig.colorbar(C0, cax = cax0) +cbar0.formatter.set_powerlimits((4, 4)) +cbar0.update_ticks() +cbar0.set_label(r'$zg_{500}$ anomaly [$m^2$/$s^2$]', rotation=270) +cbar0.ax.get_yaxis().labelpad = 20 +cbar1 = fig.colorbar(C1, cax=cax1) +cbar1.set_label('Precip. anomaly [mm/d]', rotation=270) +cbar1.ax.get_yaxis().labelpad = 20 +cbar2 = fig.colorbar(C2, cax=cax2) +cbar2.set_label('T2m anomaly [$^o$C]', rotation=270) +cbar2.ax.get_yaxis().labelpad = 20 + +# Format these axes + + +#Add plot labels +# letters = string.ascii_lowercase +# for i, ax in enumerate(axes.flat): +# label = '({})'.format(letters[i]) +# t = ax.text(0.05, 0.9, label, fontsize=11, transform=ax.transAxes) +# t.set_bbox(dict(facecolor='white', edgecolor='gray')) + +# Add a quiver key +#k = plt.quiverkey(Q, 0.9, 0.7, 1, '1 m/s', labelpos='E', coordinates='figure') + +fig.savefig('figs/wt_composite.pdf', bbox_inches='tight') #this needs to be changed to appropriate folder in framework +plt.show() \ No newline at end of file diff --git a/diagnostics/flow_dep_diag/prep_data.py b/diagnostics/flow_dep_diag/prep_data.py new file mode 100644 index 000000000..69e246033 --- /dev/null +++ b/diagnostics/flow_dep_diag/prep_data.py @@ -0,0 +1,65 @@ +#Downloading anomaly data from the IRI + +# Specifying spatial domain +nla=55 # Northernmost latitude +sla=20 # Southernmost latitude +wlo=-140 # Westernmost longitude +elo=-100 # Easternmost longitude +#Specifying time domain: +season='Jan-Dec' +yeari=1982 +yeare=2010 +#Indicate if force download all data (True in case it's corrupted or new one is needed) +force=True + +#Create folder to input data and figures +!mkdir -p WUS +!cd WUS +!mkdir -p WUS/data/ +!mkdir -p figs #this will probably need to be changed + + +# To download data from the IRI data library, you need an authentication key. This is stored in a file called .IRIDLAUTH, but is not part of the GitHub repository -- you need to contact the IRI Data Library to request access. Once you have done so, you can put your own authentication key in a file called .IRIDLAUTH and use this code. This is a moderately annoying step, and we apologize, but it is required by the S2S Database Terms and Conditions and is necessary for us to share all our code while maintaining some security. + +# if you're using git, be sure to add .IRIDLAUTH to your gitignore file + +with open('.IRIDLAUTH') as file: + authkey = file.read() + +reanalysis = download_data( #Anomaly data for physical field used to build + # weather types (geopotential height) + url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.phi/P/(500)/VALUE/T/%28days%20since%201960-01-01%2000:00:00%29/streamgridunitconvert/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', + outfile='WUS/data/hgt_NNRP_rean.nc', + authkey=authkey, + force_download=force +) + +uwnd = download_data( + url='http://iridl.ldeo.columbia.edu/home/.agmunoz/.NNRP/.chi_200/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.u/%5BX/Y%5D/regridAverage/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/P/(850)/VALUE/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', + outfile='WUS/data/u_NNRP_rean.nc', + authkey=authkey, + force_download=force +) + +vwnd = download_data( + url='http://iridl.ldeo.columbia.edu/home/.agmunoz/.NNRP/.chi_200/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.v/%5BX/Y%5D/regridAverage/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/P/(850)/VALUE/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', + outfile='WUS/data/v_NNRP_rean.nc', + authkey=authkey, + force_download=force +) + +rainfall = download_data( + url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.CPC/.UNIFIED_PRCP/.GAUGE_BASED/.GLOBAL/.v1p0/.extREALTIME/.rain/T/%28days%20since%201960-01-01%2000:00:00%29/streamgridunitconvert/T/%28%201%20Jan%20'+str(yeari)+'%29/%2830%20Dec%20'+str(yeare)+'%29/RANGEEDGES/T//pointwidth/0/def/0./shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', + outfile='WUS/data/rainfall_cpc.nc', + authkey=authkey, + force_download=force +) + + +t2m = download_data( + url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.CPC/.temperature/.daily/.tmax/SOURCES/.NOAA/.NCEP/.CPC/.temperature/.daily/.tmin/add/2/div/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/T/(Jan-Dec%201985-2015)/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', + outfile='WUS/data/t2m_cpc.nc', + authkey=authkey, + force_download=force +) + From ff796c9aecca72a29dff808e21d799c5c6d9b49b Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Wed, 10 Feb 2021 15:23:48 -0800 Subject: [PATCH 05/54] adding variables to settings document --- diagnostics/flow_dep_diag/settings.jsonc | 47 +++++++++++++++++++----- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index adaa7c65a..4613933ce 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -1,3 +1,4 @@ +//the indenting in this file has gotten messed up so i will need to fix it { "settings" : { "long_name" : "Flow-Dependent, Cross-Timescale Model Diagnostics Documentation", @@ -9,7 +10,7 @@ }, "pod_env_vars" : { //names and values of shell env vars used by diagnostic // could add spatial resolution but not required - "RES" : "1" + "VWIND_PATH_VAR" : "/Users/drewr/mdtf/inputdata/model/IRI/v_NNRP_rean.nc" } }, "data" : { @@ -35,12 +36,40 @@ "units" : "days" } }, +//All data used in this dianostic is anomaly data "varlist" : [ - { - "adif" : { - "standard_name" : "geopotential_height" - "path_variable" : "hgt_NNRP_rean.nc" - } - } - ] -} \ No newline at end of file + { + "var_name" : "hgt_var", + "standard_name" : "geopotential_height_anomaly", + "path_variable" : "HGT_FILE", + "freq" : "day", + "requirement" : "required" + },{ + "var_name" : "t2m_var", + "standard_name" : "air_temperature_anomaly", + "path_variable" : "T2M_FILE", + "freq" : "day", + "requirement" : "required" + },{ + "var_name" : "pr_var", + "standard_name" : "lwe_precipitation_rate_anomaly", //Is this okay? + "path_variable" : "PR_FILE", + //anomaly standard name not available for precip in CF standard + "freq" : "day", + "requirement" : "required" + },{ + "var_name" : "vwnd_var", + "standard_name" : "eastward_wind", //this is also anomaly data + "path_variable" : "VWND_FILE", + "freq" : "day", + "requirement" : "optional" + },{ + "var_name" : "uwnd_var", + "standard_name" : "northward_wind", //this is also anomaly data + "path_variable" : "UWND_FILE", + "freq" : "day", + "requirement" : "optional" , + "use_exact_name" : "false", + } + ] +} From 488c6ac3acea11b6e7597a5af5515c58820f03c8 Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Wed, 10 Feb 2021 15:33:38 -0800 Subject: [PATCH 06/54] changing diagnostics code to start incorporating envt vars; change file name --- diagnostics/flow_dep_diag/WeatherTypes.py | 217 ++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 diagnostics/flow_dep_diag/WeatherTypes.py diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py new file mode 100644 index 000000000..70248787e --- /dev/null +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -0,0 +1,217 @@ +#Load libraries +import os +import xarray as xr +import numpy as np +import pandas as pd +#import eccodes +from sklearn.cluster import KMeans +from sklearn.decomposition import PCA +import cartopy.crs as ccrs +from cartopy import feature +import matplotlib.pyplot as plt +from matplotlib.colors import LinearSegmentedColormap +# key PyWR functions are imported here +from PyWR import * + + +#The data used in this diagnostic was downloaded from the IRI: +#https://iridl.ldeo.columbia.edu/?Set-Language=en +#If data of a similar nature is desired, refer to the prep_data.py file for instructions on how to download anomaly data from the http server + + +#HOW WOULD THE DATA FILE BE INPUT IN THIS NAME FORMAT +hgt_input_path = "{DATADIR}/day/{CASENAME}.{hgt_var}.day.nc".format(**os.environ) +t2m_input_path = "{DATADIR}/day/{CASENAME}.{t2m_var}.day.nc".format(**os.environ) +pr_input_path = "{DATADIR}/day/{CASENAME}.{pr_var}.day.nc".format(**os.environ) + +#Trying to write the open_ds using environment variables here for a single variable; the other variables are kept as original code for now + +reanalysis = xr.open_dataset(hgt_input_path, decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +#reanalysis = xr.open_dataset('WUS/data/hgt_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) + +#old code still retained +rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +uwnd = xr.open_dataset('WUS/data/u_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +vwnd = xr.open_dataset('WUS/data/v_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) + + +#get rid of dummy pressure coordinate +reanalysis=reanalysis.isel(P=0) +uwnd=uwnd.isel(P=0) +vwnd=vwnd.isel(P=0) + + +#viewing the data +print(reanalysis) +print(rainfall) +print(t2m) +print(vwnd) +print(uwnd) + + +#DIMENSION REDUCTION: choose a percentage of variance explained that we will require +n_eof = get_number_eof(X=reanalysis['adif'].values, var_to_explain=0.9, plot=True) + +#project the data onto the leading EOFs to get the principal component time series +#We will retain the PCA model for use later. The reanalysis_pc variable is now indexed [time, EOF] +pca_model = PCA(n_components=n_eof).fit(reanalysis['adif'].values) +reanalysis_pc = pca_model.transform(reanalysis['adif'].values) + + +#REANALYSIS WEATHER TYPING: perform the clustering. We will manually specify the number of clusters we want to create and the number of simulations we want to run +ncluster = 6 # use 6 WTs +n_sim = 50 # typically 25-50 -- try 25 for quick preliminary computation only + +centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) +class_idx, best_part = get_classifiability_index(centroids) +print('The classifiability index is {}'.format(class_idx)) + + +#Now that we have identified a suitable partition, we can use it to keep only the corresponding centroid and set of weather type labels. Use centroids to define KMeans object +best_fit = KMeans(n_clusters=ncluster, init=centroids[best_part, :, :], n_init=1, max_iter=1).fit(reanalysis_pc) + +# start with reanalysis +reanalysis_composite = reanalysis.copy() +model_clust = best_fit.fit_predict(reanalysis_pc) # get centroids +weather_types = xr.DataArray( + model_clust, + coords = {'time': reanalysis_composite['time']}, + dims='time' +) +reanalysis_composite['WT'] = weather_types +reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='time').unstack('grid')['adif'] +reanalysis_composite['M'] = 0 + +wt_anomalies = [] # initialize empty list +wt_anomalies.append(reanalysis_composite) + +wt_anomalies = xr.concat(wt_anomalies, dim='M') # join together +wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 + + +#FIGURE: prepare a figure with rainfall and temperature composites +#Hashed out options for adding wind arrows, and additional plot labels + +X, Y = np.meshgrid(reanalysis['adif'].X, reanalysis['adif'].Y) +map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) +data_proj = ccrs.PlateCarree() +wt_unique = np.unique(wt_anomalies['WT']) +figsize = (14, 8) + +#WT proportions +wt=weather_types.to_dataframe(name='WT') +wt=wt+1 +#wt.to_netcdf('data/t2m_cpc.nc', format="NETCDF4") +wt_counts = wt.groupby('WT').size().div(wt['WT'].size) +wt_counts + +xmin,xmax = reanalysis['X'].min(), reanalysis['X'].max() +ymin,ymax = reanalysis['Y'].min(), reanalysis['Y'].max() + +# Set up the Figure +plt.rcParams.update({'font.size': 12}) +fig, axes = plt.subplots( + nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, + figsize=figsize, sharex=True, sharey=True + ) + +# Loop through +for i,w in enumerate(wt_unique): + def selector(ds): + times = wt.loc[wt['WT'] == w].index + ds = ds.sel(time = np.in1d(ds.unstack('time')['T'], times)) + ds = ds.mean(dim = 'time') + return(ds) + + # Top row: geopotential height anomalies + ax = axes[0, i] + ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) + C0 = selector(reanalysis['adif']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap='PuOr', + extend="both", + levels=np.linspace(-2e2, 2e2, 21), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -65, -12, 12]) + +# # add wind arrows +# U = selector(uwnd).adif.values +# V = selector(vwnd).adif.values +# magnitude = np.sqrt(U**2 + V**2) +# strongest = magnitude > np.percentile(magnitude, 50) +# Q = ax.quiver( +# X[strongest], Y[strongest], U[strongest], V[strongest], +# transform=data_proj, +# width=0.001, scale=0.8,units='xy' +# ) + + # Middle row: rainfall anomalies + ax = axes[1, i] + C1 = selector(rainfall['adif']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap = 'BrBG', + extend="both", + levels=np.linspace(-2, 2, 13), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -75, -9, 5]) + + # Bottom row: tepmperature anomalies + ax = axes[2, i] + C2 = selector(t2m['asum']).unstack('grid').plot.contourf( + transform = data_proj, + ax=ax, + cmap = 'RdBu_r', + extend="both", + levels=np.linspace(-2, 2, 13), + add_colorbar=False, + add_labels=False + ) + ax.coastlines() + ax.add_feature(feature.BORDERS) + #ax.set_extent([-95, -70, -9, 5]) + ax.tick_params(colors='b') + +# # Add Colorbar +plt.tight_layout() +fig.subplots_adjust(right=0.94) +cax0 = fig.add_axes([0.97, 0.65, 0.0075, 0.3]) +cax1 = fig.add_axes([0.97, 0.33, 0.0075, 0.3]) +cax2 = fig.add_axes([0.97, 0.01, 0.0075, 0.3]) +cbar0 = fig.colorbar(C0, cax = cax0) +cbar0.formatter.set_powerlimits((4, 4)) +cbar0.update_ticks() +cbar0.set_label(r'$zg_{500}$ anomaly [$m^2$/$s^2$]', rotation=270) +cbar0.ax.get_yaxis().labelpad = 20 +cbar1 = fig.colorbar(C1, cax=cax1) +cbar1.set_label('Precip. anomaly [mm/d]', rotation=270) +cbar1.ax.get_yaxis().labelpad = 20 +cbar2 = fig.colorbar(C2, cax=cax2) +cbar2.set_label('T2m anomaly [$^o$C]', rotation=270) +cbar2.ax.get_yaxis().labelpad = 20 + +# Format these axes + + +#Add plot labels +# letters = string.ascii_lowercase +# for i, ax in enumerate(axes.flat): +# label = '({})'.format(letters[i]) +# t = ax.text(0.05, 0.9, label, fontsize=11, transform=ax.transAxes) +# t.set_bbox(dict(facecolor='white', edgecolor='gray')) + +# Add a quiver key +#k = plt.quiverkey(Q, 0.9, 0.7, 1, '1 m/s', labelpos='E', coordinates='figure') + +fig.savefig('figs/wt_composite.pdf', bbox_inches='tight') #this needs to be changed to appropriate folder in framework +plt.show() \ No newline at end of file From 6d1ea26fe8a7fa207a8cec172c2bdf4fca7f1bf0 Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Wed, 10 Feb 2021 15:35:32 -0800 Subject: [PATCH 07/54] adding a mostly blank file which will be used as main driver file --- diagnostics/flow_dep_diag/flow_dep_diag.py | 209 +-------------------- 1 file changed, 4 insertions(+), 205 deletions(-) diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py index 15b67990c..fbd61ebc0 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.py +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -1,206 +1,5 @@ -#Load libraries -import xarray as xr -import numpy as np -import pandas as pd -#import eccodes -from sklearn.cluster import KMeans -from sklearn.decomposition import PCA -import cartopy.crs as ccrs -from cartopy import feature -import matplotlib.pyplot as plt -from matplotlib.colors import LinearSegmentedColormap -# key PyWR functions are imported here -from PyWR import * +#driver file +import os +import glob - -#The data used in this diagnostic was downloaded from the IRI: -#https://iridl.ldeo.columbia.edu/?Set-Language=en -#If data of a similar nature is desired, refer to the prep_data.py file for instructions on how -#to download anomaly data from the http server - -#need to be changed to where the files are located in framework -reanalysis = xr.open_dataset('WUS/data/hgt_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -uwnd = xr.open_dataset('WUS/data/u_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -uwnd = xr.open_dataset('WUS/data/v_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) - -#get rid of dummy pressure coordinate -reanalysis=reanalysis.isel(P=0) -uwnd=uwnd.isel(P=0) -vwnd=vwnd.isel(P=0) - - -#viewing the data -print(reanalysis) -print(rainfall) -print(t2m) -print(vwnd) -print(uwnd) - - -#DIMENSION REDUCTION: choose a percentage of variance explained that we will require -n_eof = get_number_eof(X=reanalysis['adif'].values, var_to_explain=0.9, plot=True) - -#project the data onto the leading EOFs to get the principal component time series -#We will retain the PCA model for use later. The reanalysis_pc variable is now indexed [time, EOF] -pca_model = PCA(n_components=n_eof).fit(reanalysis['adif'].values) -reanalysis_pc = pca_model.transform(reanalysis['adif'].values) - - -#REANALYSIS WEATHER TYPING: perform the clustering. We will manually specify the number of clusters we want to create and the number of simulations we want to run -ncluster = 6 # use 6 WTs -n_sim = 50 # typically 25-50 -- try 25 for quick preliminary computation only - -centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) -class_idx, best_part = get_classifiability_index(centroids) -print('The classifiability index is {}'.format(class_idx)) - - -#Now that we have identified a suitable partition, we can use it to keep only the corresponding centroid and set of weather type labels. Use centroids to define KMeans object -best_fit = KMeans(n_clusters=ncluster, init=centroids[best_part, :, :], n_init=1, max_iter=1).fit(reanalysis_pc) - -# start with reanalysis -reanalysis_composite = reanalysis.copy() -model_clust = best_fit.fit_predict(reanalysis_pc) # get centroids -weather_types = xr.DataArray( - model_clust, - coords = {'time': reanalysis_composite['time']}, - dims='time' -) -reanalysis_composite['WT'] = weather_types -reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='time').unstack('grid')['adif'] -reanalysis_composite['M'] = 0 - -wt_anomalies = [] # initialize empty list -wt_anomalies.append(reanalysis_composite) - -wt_anomalies = xr.concat(wt_anomalies, dim='M') # join together -wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 - - -#FIGURE: prepare a figure with rainfall and temperature composites -#Hashed out options for adding wind arrows, and additional plot labels - -X, Y = np.meshgrid(reanalysis['adif'].X, reanalysis['adif'].Y) -map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) -data_proj = ccrs.PlateCarree() -wt_unique = np.unique(wt_anomalies['WT']) -figsize = (14, 8) - -#WT proportions -wt=weather_types.to_dataframe(name='WT') -wt=wt+1 -#wt.to_netcdf('data/t2m_cpc.nc', format="NETCDF4") -wt_counts = wt.groupby('WT').size().div(wt['WT'].size) -wt_counts - -xmin,xmax = reanalysis['X'].min(), reanalysis['X'].max() -ymin,ymax = reanalysis['Y'].min(), reanalysis['Y'].max() - -# Set up the Figure -plt.rcParams.update({'font.size': 12}) -fig, axes = plt.subplots( - nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, - figsize=figsize, sharex=True, sharey=True - ) - -# Loop through -for i,w in enumerate(wt_unique): - def selector(ds): - times = wt.loc[wt['WT'] == w].index - ds = ds.sel(time = np.in1d(ds.unstack('time')['T'], times)) - ds = ds.mean(dim = 'time') - return(ds) - - # Top row: geopotential height anomalies - ax = axes[0, i] - ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) - C0 = selector(reanalysis['adif']).unstack('grid').plot.contourf( - transform = data_proj, - ax=ax, - cmap='PuOr', - extend="both", - levels=np.linspace(-2e2, 2e2, 21), - add_colorbar=False, - add_labels=False - ) - ax.coastlines() - ax.add_feature(feature.BORDERS) - #ax.set_extent([-95, -65, -12, 12]) - -# # add wind arrows -# U = selector(uwnd).adif.values -# V = selector(vwnd).adif.values -# magnitude = np.sqrt(U**2 + V**2) -# strongest = magnitude > np.percentile(magnitude, 50) -# Q = ax.quiver( -# X[strongest], Y[strongest], U[strongest], V[strongest], -# transform=data_proj, -# width=0.001, scale=0.8,units='xy' -# ) - - # Middle row: rainfall anomalies - ax = axes[1, i] - C1 = selector(rainfall['adif']).unstack('grid').plot.contourf( - transform = data_proj, - ax=ax, - cmap = 'BrBG', - extend="both", - levels=np.linspace(-2, 2, 13), - add_colorbar=False, - add_labels=False - ) - ax.coastlines() - ax.add_feature(feature.BORDERS) - #ax.set_extent([-95, -75, -9, 5]) - - # Bottom row: tepmperature anomalies - ax = axes[2, i] - C2 = selector(t2m['asum']).unstack('grid').plot.contourf( - transform = data_proj, - ax=ax, - cmap = 'RdBu_r', - extend="both", - levels=np.linspace(-2, 2, 13), - add_colorbar=False, - add_labels=False - ) - ax.coastlines() - ax.add_feature(feature.BORDERS) - #ax.set_extent([-95, -70, -9, 5]) - ax.tick_params(colors='b') - -# # Add Colorbar -plt.tight_layout() -fig.subplots_adjust(right=0.94) -cax0 = fig.add_axes([0.97, 0.65, 0.0075, 0.3]) -cax1 = fig.add_axes([0.97, 0.33, 0.0075, 0.3]) -cax2 = fig.add_axes([0.97, 0.01, 0.0075, 0.3]) -cbar0 = fig.colorbar(C0, cax = cax0) -cbar0.formatter.set_powerlimits((4, 4)) -cbar0.update_ticks() -cbar0.set_label(r'$zg_{500}$ anomaly [$m^2$/$s^2$]', rotation=270) -cbar0.ax.get_yaxis().labelpad = 20 -cbar1 = fig.colorbar(C1, cax=cax1) -cbar1.set_label('Precip. anomaly [mm/d]', rotation=270) -cbar1.ax.get_yaxis().labelpad = 20 -cbar2 = fig.colorbar(C2, cax=cax2) -cbar2.set_label('T2m anomaly [$^o$C]', rotation=270) -cbar2.ax.get_yaxis().labelpad = 20 - -# Format these axes - - -#Add plot labels -# letters = string.ascii_lowercase -# for i, ax in enumerate(axes.flat): -# label = '({})'.format(letters[i]) -# t = ax.text(0.05, 0.9, label, fontsize=11, transform=ax.transAxes) -# t.set_bbox(dict(facecolor='white', edgecolor='gray')) - -# Add a quiver key -#k = plt.quiverkey(Q, 0.9, 0.7, 1, '1 m/s', labelpos='E', coordinates='figure') - -fig.savefig('figs/wt_composite.pdf', bbox_inches='tight') #this needs to be changed to appropriate folder in framework -plt.show() \ No newline at end of file +os.environ["pr_file"] = os.environ \ No newline at end of file From 44a6b974e3cc7c93f5500156ea7d4913c0b49144 Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Fri, 19 Feb 2021 11:15:06 -0800 Subject: [PATCH 08/54] editing files to include environment variables --- .../convecTransCriticalCollapse_usp.py | 5 +++ diagnostics/flow_dep_diag/WeatherTypes.py | 19 +++++------ diagnostics/flow_dep_diag/flow_dep_diag.py | 34 ++++++++++++++++++- diagnostics/flow_dep_diag/prep_data.py | 2 ++ diagnostics/flow_dep_diag/settings.jsonc | 25 ++++---------- 5 files changed, 55 insertions(+), 30 deletions(-) diff --git a/diagnostics/convective_transition_diag/convecTransCriticalCollapse_usp.py b/diagnostics/convective_transition_diag/convecTransCriticalCollapse_usp.py index ba0f85a15..8ebfed36e 100644 --- a/diagnostics/convective_transition_diag/convecTransCriticalCollapse_usp.py +++ b/diagnostics/convective_transition_diag/convecTransCriticalCollapse_usp.py @@ -1,4 +1,9 @@ +<<<<<<< HEAD # This file is part of the convective_transition_diag module of the MDTF code package (see LICENSE.txt) +======= + +# This file is part of the convective_transition_diag module of the MDTF code package (see mdtf/MDTF_v2.0/LICENSE.txt) +>>>>>>> b4c88bf... editing files to include environment variables # ====================================================================== # convecTransCriticalCollapse_usp.py diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index 70248787e..ef1d30bdf 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -19,7 +19,6 @@ #If data of a similar nature is desired, refer to the prep_data.py file for instructions on how to download anomaly data from the http server -#HOW WOULD THE DATA FILE BE INPUT IN THIS NAME FORMAT hgt_input_path = "{DATADIR}/day/{CASENAME}.{hgt_var}.day.nc".format(**os.environ) t2m_input_path = "{DATADIR}/day/{CASENAME}.{t2m_var}.day.nc".format(**os.environ) pr_input_path = "{DATADIR}/day/{CASENAME}.{pr_var}.day.nc".format(**os.environ) @@ -29,25 +28,22 @@ reanalysis = xr.open_dataset(hgt_input_path, decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) #reanalysis = xr.open_dataset('WUS/data/hgt_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -#old code still retained -rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -uwnd = xr.open_dataset('WUS/data/u_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -vwnd = xr.open_dataset('WUS/data/v_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +rainfall = xr.open_dataset(pr_input_path, decode_cd = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +#rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) + +t2m = xr.open_dataset(t2m_input_path, decode_cd = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) +#t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) #get rid of dummy pressure coordinate reanalysis=reanalysis.isel(P=0) -uwnd=uwnd.isel(P=0) -vwnd=vwnd.isel(P=0) + #viewing the data print(reanalysis) print(rainfall) print(t2m) -print(vwnd) -print(uwnd) #DIMENSION REDUCTION: choose a percentage of variance explained that we will require @@ -212,6 +208,7 @@ def selector(ds): # Add a quiver key #k = plt.quiverkey(Q, 0.9, 0.7, 1, '1 m/s', labelpos='E', coordinates='figure') +plot_path = "{WK_DIR}/model/PS/WeatherTypes_plot.eps".format(**os.environ) -fig.savefig('figs/wt_composite.pdf', bbox_inches='tight') #this needs to be changed to appropriate folder in framework +fig.savefig(plot_path, bbox_inches='tight') plt.show() \ No newline at end of file diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py index fbd61ebc0..28c0dac2f 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.py +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -2,4 +2,36 @@ import os import glob -os.environ["pr_file"] = os.environ \ No newline at end of file +#specifying file structure for each var +os.environ["pr_file"] = "*."+os.environ["pr_var"]+".1hr.nc" +os.environ["hgt_file"] = "*."+os.environ["hgt_var"]+".1hr.nc" +os.environ["t2m_file"] = "*."+os.environ["t2m_var"]+".1hr.nc" + +os.environ["MODEL_OUTPUT_DIR"]=os.environ["DATADIR"]+"/1hr" + +missing_file=0 +if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["pr_file"]))==0: + print("Required Precipitation anomaly data missing!") + missing_file=1 +if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["hgt_file"]))==0: + print("Required Geopotential height anomaly data missing!") + missing_file=1 +if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["t2m_file"]))==0: + print("Required temperature anomaly data missing!") + missing_file=1 + +if missing_file==1: + print("Flow-Dependent, Cross-Timescale Model Diagnostics Package will NOT be executed!") +else: + + ##### Functionalities in Diagnostic Package ##### + # ====================================================================== + + # See WeatherTypes.py for detailed info + try: + os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") + except OSError as e: + print('WARNING',e.errno,e.strerror) + print("**************************************************") + print("Flow-Dependent, Cross-Timescale Model Diagnostics (WeatherTypes.py) is NOT Executed as Expected!") + print("**************************************************") \ No newline at end of file diff --git a/diagnostics/flow_dep_diag/prep_data.py b/diagnostics/flow_dep_diag/prep_data.py index 69e246033..e3e0af3b6 100644 --- a/diagnostics/flow_dep_diag/prep_data.py +++ b/diagnostics/flow_dep_diag/prep_data.py @@ -25,6 +25,8 @@ with open('.IRIDLAUTH') as file: authkey = file.read() + +#NEED TO CHANGE OUTFILE PATHS FOR POD reanalysis = download_data( #Anomaly data for physical field used to build # weather types (geopotential height) diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index 4613933ce..2b290e4bb 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -41,35 +41,24 @@ { "var_name" : "hgt_var", "standard_name" : "geopotential_height_anomaly", - "path_variable" : "HGT_FILE", + "path_variable" : "HGT_ANOM_FILE", "freq" : "day", "requirement" : "required" },{ - "var_name" : "t2m_var", + "var_name" : "t2m_var", //this could be at other heights + //so perhaps shouldnt put @2m "standard_name" : "air_temperature_anomaly", - "path_variable" : "T2M_FILE", + "path_variable" : "T2M_ANOM_FILE", "freq" : "day", - "requirement" : "required" + "requirement" : "required", + "alternatives" : ["t_var"] //others? },{ "var_name" : "pr_var", "standard_name" : "lwe_precipitation_rate_anomaly", //Is this okay? - "path_variable" : "PR_FILE", + "path_variable" : "PR_ANOM_FILE", //anomaly standard name not available for precip in CF standard "freq" : "day", "requirement" : "required" - },{ - "var_name" : "vwnd_var", - "standard_name" : "eastward_wind", //this is also anomaly data - "path_variable" : "VWND_FILE", - "freq" : "day", - "requirement" : "optional" - },{ - "var_name" : "uwnd_var", - "standard_name" : "northward_wind", //this is also anomaly data - "path_variable" : "UWND_FILE", - "freq" : "day", - "requirement" : "optional" , - "use_exact_name" : "false", } ] } From 64582dc68d3b9ad867ca39238502aba6a1075d9b Mon Sep 17 00:00:00 2001 From: drewmresnick Date: Mon, 8 Mar 2021 13:36:06 -0800 Subject: [PATCH 09/54] add in info for envt vars --- diagnostics/flow_dep_diag/settings.jsonc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index 2b290e4bb..2a92f4f54 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -6,11 +6,10 @@ "realm" : ["weather"], //should there be additional tags? "runtime_requirements" : { "python" : ["xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib"] - // I could add here that you need an IRI login? }, "pod_env_vars" : { //names and values of shell env vars used by diagnostic - // could add spatial resolution but not required - "VWIND_PATH_VAR" : "/Users/drewr/mdtf/inputdata/model/IRI/v_NNRP_rean.nc" + // Number of ensemble members in model data + "NENS" : "3" } }, "data" : { @@ -45,7 +44,7 @@ "freq" : "day", "requirement" : "required" },{ - "var_name" : "t2m_var", //this could be at other heights + "var_name" : "t2m_var", //this could be at other heights //so perhaps shouldnt put @2m "standard_name" : "air_temperature_anomaly", "path_variable" : "T2M_ANOM_FILE", From d0d2ac249906d44210dca9062b12e8c433d82c42 Mon Sep 17 00:00:00 2001 From: Your Name <> Date: Wed, 14 Apr 2021 14:28:10 -0700 Subject: [PATCH 10/54] create new file with working code without env vars --- diagnostics/flow_dep_diag/WeatherTypes.py | 144 ++++++---------------- 1 file changed, 36 insertions(+), 108 deletions(-) diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index ef1d30bdf..8fd97b314 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -1,5 +1,3 @@ -#Load libraries -import os import xarray as xr import numpy as np import pandas as pd @@ -12,118 +10,81 @@ from matplotlib.colors import LinearSegmentedColormap # key PyWR functions are imported here from PyWR import * - - -#The data used in this diagnostic was downloaded from the IRI: -#https://iridl.ldeo.columbia.edu/?Set-Language=en -#If data of a similar nature is desired, refer to the prep_data.py file for instructions on how to download anomaly data from the http server - - -hgt_input_path = "{DATADIR}/day/{CASENAME}.{hgt_var}.day.nc".format(**os.environ) -t2m_input_path = "{DATADIR}/day/{CASENAME}.{t2m_var}.day.nc".format(**os.environ) -pr_input_path = "{DATADIR}/day/{CASENAME}.{pr_var}.day.nc".format(**os.environ) - -#Trying to write the open_ds using environment variables here for a single variable; the other variables are kept as original code for now - -reanalysis = xr.open_dataset(hgt_input_path, decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -#reanalysis = xr.open_dataset('WUS/data/hgt_NNRP_rean.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) - -rainfall = xr.open_dataset(pr_input_path, decode_cd = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -#rainfall = xr.open_dataset('WUS/data/rainfall_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) - -t2m = xr.open_dataset(t2m_input_path, decode_cd = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) -#t2m = xr.open_dataset('WUS/data/t2m_cpc.nc', decode_cf = True, decode_times = True).stack(time=['T'], grid=['Y', 'X']) - - -#get rid of dummy pressure coordinate -reanalysis=reanalysis.isel(P=0) - - - -#viewing the data -print(reanalysis) -print(rainfall) -print(t2m) - - -#DIMENSION REDUCTION: choose a percentage of variance explained that we will require -n_eof = get_number_eof(X=reanalysis['adif'].values, var_to_explain=0.9, plot=True) - -#project the data onto the leading EOFs to get the principal component time series -#We will retain the PCA model for use later. The reanalysis_pc variable is now indexed [time, EOF] -pca_model = PCA(n_components=n_eof).fit(reanalysis['adif'].values) -reanalysis_pc = pca_model.transform(reanalysis['adif'].values) - - -#REANALYSIS WEATHER TYPING: perform the clustering. We will manually specify the number of clusters we want to create and the number of simulations we want to run +from ClimAnom_func import * + +#running analysis to generate climatology anomalies for vars +reanalysis = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.Z250.day.nc", var_name='Z250').stack(T=['time'], grid=['lat', 'lon']) +rainfall = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.PRECT.day.nc", var_name='PRECT').stack(T=['time'], grid=['lat', 'lon']) +t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) +reanalysis = reanalysis.to_dataset() +reanalysis = reanalysis.assign_coords(P=(250)) +rainfall = rainfall.to_dataset() +t2m = t2m.to_dataset() + +#dimension reduction; projection of data onto leading EOFs for principle component time series +#PCA model saved for later use as reanalysis_pc +n_eof = get_number_eof(X=reanalysis['Z250'].values, var_to_explain=0.9, plot=True) +pca_model = PCA(n_components=n_eof).fit(reanalysis['Z250'].values) +reanalysis_pc = pca_model.transform(reanalysis['Z250'].values) + +#perform clustering using manually specified number of clusters ncluster = 6 # use 6 WTs n_sim = 50 # typically 25-50 -- try 25 for quick preliminary computation only - centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) class_idx, best_part = get_classifiability_index(centroids) print('The classifiability index is {}'.format(class_idx)) - - -#Now that we have identified a suitable partition, we can use it to keep only the corresponding centroid and set of weather type labels. Use centroids to define KMeans object +#define KMeans object best_fit = KMeans(n_clusters=ncluster, init=centroids[best_part, :, :], n_init=1, max_iter=1).fit(reanalysis_pc) -# start with reanalysis +#start reanalysis reanalysis_composite = reanalysis.copy() model_clust = best_fit.fit_predict(reanalysis_pc) # get centroids weather_types = xr.DataArray( - model_clust, - coords = {'time': reanalysis_composite['time']}, - dims='time' + model_clust, + coords = {'T': reanalysis_composite['T']}, + dims='T' ) reanalysis_composite['WT'] = weather_types -reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='time').unstack('grid')['adif'] +reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')['Z250'] reanalysis_composite['M'] = 0 - wt_anomalies = [] # initialize empty list wt_anomalies.append(reanalysis_composite) - wt_anomalies = xr.concat(wt_anomalies, dim='M') # join together wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 - -#FIGURE: prepare a figure with rainfall and temperature composites -#Hashed out options for adding wind arrows, and additional plot labels - -X, Y = np.meshgrid(reanalysis['adif'].X, reanalysis['adif'].Y) +#prepare a figure with rainfall and temperature composites +X, Y = np.meshgrid(reanalysis['Z250'].lon, reanalysis['Z250'].lat) map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) data_proj = ccrs.PlateCarree() wt_unique = np.unique(wt_anomalies['WT']) figsize = (14, 8) - #WT proportions wt=weather_types.to_dataframe(name='WT') wt=wt+1 -#wt.to_netcdf('data/t2m_cpc.nc', format="NETCDF4") wt_counts = wt.groupby('WT').size().div(wt['WT'].size) -wt_counts -xmin,xmax = reanalysis['X'].min(), reanalysis['X'].max() -ymin,ymax = reanalysis['Y'].min(), reanalysis['Y'].max() +#plotting +xmin,xmax = reanalysis['lon'].min(), reanalysis['lon'].max() +ymin,ymax = reanalysis['lat'].min(), reanalysis['lat'].max() # Set up the Figure plt.rcParams.update({'font.size': 12}) fig, axes = plt.subplots( - nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, + nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, figsize=figsize, sharex=True, sharey=True ) -# Loop through for i,w in enumerate(wt_unique): def selector(ds): - times = wt.loc[wt['WT'] == w].index - ds = ds.sel(time = np.in1d(ds.unstack('time')['T'], times)) - ds = ds.mean(dim = 'time') + times = wt.loc[wt['WT'] == w].index.get_level_values('time') + ds = ds.sel(T = np.in1d(ds.unstack('T')['time'], times)) + ds = ds.mean(dim = 'T') return(ds) # Top row: geopotential height anomalies ax = axes[0, i] ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) - C0 = selector(reanalysis['adif']).unstack('grid').plot.contourf( + C0 = selector(reanalysis['Z250']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap='PuOr', @@ -134,22 +95,10 @@ def selector(ds): ) ax.coastlines() ax.add_feature(feature.BORDERS) - #ax.set_extent([-95, -65, -12, 12]) - -# # add wind arrows -# U = selector(uwnd).adif.values -# V = selector(vwnd).adif.values -# magnitude = np.sqrt(U**2 + V**2) -# strongest = magnitude > np.percentile(magnitude, 50) -# Q = ax.quiver( -# X[strongest], Y[strongest], U[strongest], V[strongest], -# transform=data_proj, -# width=0.001, scale=0.8,units='xy' -# ) # Middle row: rainfall anomalies ax = axes[1, i] - C1 = selector(rainfall['adif']).unstack('grid').plot.contourf( + C1 = selector(rainfall['PRECT']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'BrBG', @@ -159,12 +108,8 @@ def selector(ds): add_labels=False ) ax.coastlines() - ax.add_feature(feature.BORDERS) - #ax.set_extent([-95, -75, -9, 5]) - - # Bottom row: tepmperature anomalies ax = axes[2, i] - C2 = selector(t2m['asum']).unstack('grid').plot.contourf( + C2 = selector(t2m['T250']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'RdBu_r', @@ -195,20 +140,3 @@ def selector(ds): cbar2 = fig.colorbar(C2, cax=cax2) cbar2.set_label('T2m anomaly [$^o$C]', rotation=270) cbar2.ax.get_yaxis().labelpad = 20 - -# Format these axes - - -#Add plot labels -# letters = string.ascii_lowercase -# for i, ax in enumerate(axes.flat): -# label = '({})'.format(letters[i]) -# t = ax.text(0.05, 0.9, label, fontsize=11, transform=ax.transAxes) -# t.set_bbox(dict(facecolor='white', edgecolor='gray')) - -# Add a quiver key -#k = plt.quiverkey(Q, 0.9, 0.7, 1, '1 m/s', labelpos='E', coordinates='figure') -plot_path = "{WK_DIR}/model/PS/WeatherTypes_plot.eps".format(**os.environ) - -fig.savefig(plot_path, bbox_inches='tight') -plt.show() \ No newline at end of file From 5736bf484e698efcc672d140cd6ea11c7fb2b6fb Mon Sep 17 00:00:00 2001 From: Your Name <> Date: Wed, 14 Apr 2021 14:43:18 -0700 Subject: [PATCH 11/54] add function file to calc climatology anomalies --- diagnostics/flow_dep_diag/ClimAnom_func.py | 27 +++++++++ diagnostics/flow_dep_diag/prep_data.py | 67 ---------------------- 2 files changed, 27 insertions(+), 67 deletions(-) create mode 100644 diagnostics/flow_dep_diag/ClimAnom_func.py delete mode 100644 diagnostics/flow_dep_diag/prep_data.py diff --git a/diagnostics/flow_dep_diag/ClimAnom_func.py b/diagnostics/flow_dep_diag/ClimAnom_func.py new file mode 100644 index 000000000..c1d14bc2b --- /dev/null +++ b/diagnostics/flow_dep_diag/ClimAnom_func.py @@ -0,0 +1,27 @@ +import os +import xarray as xr +import numpy as np +import pandas as pd +from datetime import datetime +import dask +import cftime +np.seterr(divide='ignore', invalid='ignore') + +#function to calculate climatology anomalies for eah variable +def climAnom(var_path, var_name): + + ddir = var_path + va = var_name + + ds = xr.open_dataset(ddir, decode_times = True) + ds['time'] = ds.indexes['time'].to_datetimeindex() + # Drop 1 dimensional coordinates + ds = ds.squeeze() + da = ds[va] + da_ensmean = da.copy() + #would need to make envt var or something so you could use either 'time' or 'S' as coordinate name without an issue + da_day_clim = da_ensmean.groupby('time.dayofyear').mean('time') + da_day_anom = da.groupby('time.dayofyear') - da_day_clim + da_day_anom = da_day_anom.drop('dayofyear') + + return da_day_anom diff --git a/diagnostics/flow_dep_diag/prep_data.py b/diagnostics/flow_dep_diag/prep_data.py deleted file mode 100644 index e3e0af3b6..000000000 --- a/diagnostics/flow_dep_diag/prep_data.py +++ /dev/null @@ -1,67 +0,0 @@ -#Downloading anomaly data from the IRI - -# Specifying spatial domain -nla=55 # Northernmost latitude -sla=20 # Southernmost latitude -wlo=-140 # Westernmost longitude -elo=-100 # Easternmost longitude -#Specifying time domain: -season='Jan-Dec' -yeari=1982 -yeare=2010 -#Indicate if force download all data (True in case it's corrupted or new one is needed) -force=True - -#Create folder to input data and figures -!mkdir -p WUS -!cd WUS -!mkdir -p WUS/data/ -!mkdir -p figs #this will probably need to be changed - - -# To download data from the IRI data library, you need an authentication key. This is stored in a file called .IRIDLAUTH, but is not part of the GitHub repository -- you need to contact the IRI Data Library to request access. Once you have done so, you can put your own authentication key in a file called .IRIDLAUTH and use this code. This is a moderately annoying step, and we apologize, but it is required by the S2S Database Terms and Conditions and is necessary for us to share all our code while maintaining some security. - -# if you're using git, be sure to add .IRIDLAUTH to your gitignore file - -with open('.IRIDLAUTH') as file: - authkey = file.read() - -#NEED TO CHANGE OUTFILE PATHS FOR POD - -reanalysis = download_data( #Anomaly data for physical field used to build - # weather types (geopotential height) - url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.phi/P/(500)/VALUE/T/%28days%20since%201960-01-01%2000:00:00%29/streamgridunitconvert/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', - outfile='WUS/data/hgt_NNRP_rean.nc', - authkey=authkey, - force_download=force -) - -uwnd = download_data( - url='http://iridl.ldeo.columbia.edu/home/.agmunoz/.NNRP/.chi_200/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.u/%5BX/Y%5D/regridAverage/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/P/(850)/VALUE/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', - outfile='WUS/data/u_NNRP_rean.nc', - authkey=authkey, - force_download=force -) - -vwnd = download_data( - url='http://iridl.ldeo.columbia.edu/home/.agmunoz/.NNRP/.chi_200/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.DAILY/.Intrinsic/.PressureLevel/.v/%5BX/Y%5D/regridAverage/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/P/(850)/VALUE/T/('+season+'%20'+str(yeari)+'-'+str(yeare)+')/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', - outfile='WUS/data/v_NNRP_rean.nc', - authkey=authkey, - force_download=force -) - -rainfall = download_data( - url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.CPC/.UNIFIED_PRCP/.GAUGE_BASED/.GLOBAL/.v1p0/.extREALTIME/.rain/T/%28days%20since%201960-01-01%2000:00:00%29/streamgridunitconvert/T/%28%201%20Jan%20'+str(yeari)+'%29/%2830%20Dec%20'+str(yeare)+'%29/RANGEEDGES/T//pointwidth/0/def/0./shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', - outfile='WUS/data/rainfall_cpc.nc', - authkey=authkey, - force_download=force -) - - -t2m = download_data( - url='http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.CPC/.temperature/.daily/.tmax/SOURCES/.NOAA/.NCEP/.CPC/.temperature/.daily/.tmin/add/2/div/T/(days%20since%201960-01-01%2000%3A00%3A00)/streamgridunitconvert/T/(Jan-Dec%201985-2015)/RANGE/T//pointwidth/0/def/-0.5/shiftGRID/X/('+str(wlo)+')/('+str(elo)+')/RANGE/Y/('+str(sla)+')/('+str(nla)+')/RANGE/dup/T/to366daysample/%5BYR%5Daverage/T/sampleDOY/sub/T/5/runningAverage/T/0.5/shiftGRID/data.nc', - outfile='WUS/data/t2m_cpc.nc', - authkey=authkey, - force_download=force -) - From 38faa870fbbe41dc5b6a7580fc5a90a6a0999049 Mon Sep 17 00:00:00 2001 From: Your Name <> Date: Wed, 14 Apr 2021 15:09:32 -0700 Subject: [PATCH 12/54] initial redo of settings file --- diagnostics/flow_dep_diag/settings.jsonc | 109 +++++++++++------------ 1 file changed, 53 insertions(+), 56 deletions(-) diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index 2a92f4f54..2fe33f175 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -1,63 +1,60 @@ -//the indenting in this file has gotten messed up so i will need to fix it { - "settings" : { - "long_name" : "Flow-Dependent, Cross-Timescale Model Diagnostics Documentation", - "driver" : "flow_dep_diag.py", - "realm" : ["weather"], //should there be additional tags? - "runtime_requirements" : { - "python" : ["xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib"] - }, - "pod_env_vars" : { //names and values of shell env vars used by diagnostic - // Number of ensemble members in model data - "NENS" : "3" - } + "settings" : { + "long_name" : "Flow-Dependent, Cross-Timescale Model Diagnostics Documentation", + "driver" : "flow_dep_diag.py", + "realm" : ["weather"], //should there be additional tags? + "runtime_requirements" : { + "python" : ["xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib", "dask", "cftime"] }, - "data" : { - "format" : "any_netcdf", - "frequency" : "day" + "pod_env_vars" : { + //REANALYSIS WEATHER TYPING: perform the clustering. specify the number of clusters we want to create + //and the number of simulations we want to run + "NSIM" : "25", //typically 25-50 -- try 25 for quick preliminary computation only + "NCLUSTER" : "6" //Number of weather types + } + }, + "data" : {"frequency" : "day"}, + "dimensions" : { //should these be labeled X Y etc as in the data? or as lat lon etc + "lat" : { + "standard_name" : "latitude", + "units" : "degrees_N" + }, + "lon" : { + "standard_name" : "longitude", + "units" : "degrees_E" }, - "dimensions" : { //should these be labeled X Y etc as in the data? or as lat lon etc - "Y" : { - "standard_name" : "latitude", - "units" : "degrees_N" - }, - "X" : { - "standard_name" : "longitude", - "units" : "degrees_E" - }, - "P" : { - "standard_name" : "air_pressure", - "units" : "hPa", - "positive" : "down" - }, - "T" : { - "standard_name" : "time", - "units" : "days" - } + "plev" : { + "standard_name" : "air_pressure", + "units" : "hPa", + "positive" : "down" + }, + "time" : { + "standard_name" : "time", + "units" : "days", + "calendar" : "noleap" + } + }, + "varlist" : { + "hgt" : { + "standard_name" : "geopotential_height", + "path_variable" : "HGT_FILE", //this value is used as name of envt var. framework sets value of this envt var = absolute path to file containing data for var + "freq" : "day", + "requirement" : "required", + "dimensions" : ["time", "lat", "lon"] + }, + "tas" : { + "standard_name" : "air_temperature", + "path_variable" : "TAS_FILE", + "freq" : "day", + "requirement" : "required", + "dimensions" : ["time", "lat", "lon"] }, -//All data used in this dianostic is anomaly data - "varlist" : [ - { - "var_name" : "hgt_var", - "standard_name" : "geopotential_height_anomaly", - "path_variable" : "HGT_ANOM_FILE", + "prec" : { + "standard_name" : "lwe_precipitation_rate", + "path_variable" : "PREC_FILE", "freq" : "day", - "requirement" : "required" - },{ - "var_name" : "t2m_var", //this could be at other heights - //so perhaps shouldnt put @2m - "standard_name" : "air_temperature_anomaly", - "path_variable" : "T2M_ANOM_FILE", - "freq" : "day", - "requirement" : "required", - "alternatives" : ["t_var"] //others? - },{ - "var_name" : "pr_var", - "standard_name" : "lwe_precipitation_rate_anomaly", //Is this okay? - "path_variable" : "PR_ANOM_FILE", - //anomaly standard name not available for precip in CF standard - "freq" : "day", - "requirement" : "required" + "requirement" : "required", + "dimensions" : ["time", "lat", "lon"] } - ] + } } From 0c4ce2be6f17e563e1b911a7311c0e5e4389e83c Mon Sep 17 00:00:00 2001 From: Your Name <> Date: Thu, 15 Apr 2021 08:41:08 -0700 Subject: [PATCH 13/54] adding environment variables into main code --- diagnostics/flow_dep_diag/WeatherTypes.py | 57 ++++++++++++----------- diagnostics/flow_dep_diag/settings.jsonc | 2 +- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index 8fd97b314..a5edcb62d 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -1,21 +1,24 @@ +import os import xarray as xr import numpy as np import pandas as pd -#import eccodes from sklearn.cluster import KMeans from sklearn.decomposition import PCA import cartopy.crs as ccrs from cartopy import feature import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap -# key PyWR functions are imported here +# key PyWR functions and climAnom are imported here from function files from PyWR import * from ClimAnom_func import * #running analysis to generate climatology anomalies for vars -reanalysis = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.Z250.day.nc", var_name='Z250').stack(T=['time'], grid=['lat', 'lon']) -rainfall = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.PRECT.day.nc", var_name='PRECT').stack(T=['time'], grid=['lat', 'lon']) -t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) +reanalysis = climAnom(var_path="{HGT_FILE}", var_name="{hgt_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +#reanalysis = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.Z250.day.nc", var_name='Z250').stack(T=['time'], grid=['lat', 'lon']) +rainfall = climAnom(var_path="{PREC_FILE}", var_name="{prec_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +#rainfall = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.PRECT.day.nc", var_name='PRECT').stack(T=['time'], grid=['lat', 'lon']) +t2m = climAnom(var_path="{TAS_FILE}", var_name="{t_ref_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +#t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) reanalysis = reanalysis.to_dataset() reanalysis = reanalysis.assign_coords(P=(250)) rainfall = rainfall.to_dataset() @@ -23,13 +26,13 @@ #dimension reduction; projection of data onto leading EOFs for principle component time series #PCA model saved for later use as reanalysis_pc -n_eof = get_number_eof(X=reanalysis['Z250'].values, var_to_explain=0.9, plot=True) -pca_model = PCA(n_components=n_eof).fit(reanalysis['Z250'].values) -reanalysis_pc = pca_model.transform(reanalysis['Z250'].values) +n_eof = get_number_eof(X=reanalysis["{hgt_var}"].values, var_to_explain=0.9, plot=True).format(**os.environ) +pca_model = PCA(n_components=n_eof).fit(reanalysis["{hgt_var}"].values).format(**os.environ) +reanalysis_pc = pca_model.transform(reanalysis["{hgt_var}"].values).format(**os.environ) #perform clustering using manually specified number of clusters -ncluster = 6 # use 6 WTs -n_sim = 50 # typically 25-50 -- try 25 for quick preliminary computation only +ncluster = "{NCLUSTER}".format(**os.environ) +n_sim = "{NSIM}".format(**os.environ) # typically 25-50 -- try 25 for quick preliminary computation only centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) class_idx, best_part = get_classifiability_index(centroids) print('The classifiability index is {}'.format(class_idx)) @@ -45,7 +48,7 @@ dims='T' ) reanalysis_composite['WT'] = weather_types -reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')['Z250'] +reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')['{hgt_var}'].format(**os.environ) reanalysis_composite['M'] = 0 wt_anomalies = [] # initialize empty list wt_anomalies.append(reanalysis_composite) @@ -53,7 +56,7 @@ wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 #prepare a figure with rainfall and temperature composites -X, Y = np.meshgrid(reanalysis['Z250'].lon, reanalysis['Z250'].lat) +X, Y = np.meshgrid(reanalysis['{hgt_var}'].lon, reanalysis['{hgt_var}'].lat).format(**os.environ) map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) data_proj = ccrs.PlateCarree() wt_unique = np.unique(wt_anomalies['WT']) @@ -64,9 +67,10 @@ wt_counts = wt.groupby('WT').size().div(wt['WT'].size) #plotting -xmin,xmax = reanalysis['lon'].min(), reanalysis['lon'].max() -ymin,ymax = reanalysis['lat'].min(), reanalysis['lat'].max() - +xmin,xmax = reanalysis['{lon_coord}'].min().format(**os.environ), reanalysis['{lon_coord}'].max().format(**os.environ) +ymin,ymax = reanalysis['{lat_coord}'].min().format(**os.environ), reanalysis['{lat_coord}'].max().format(**os.environ) +plot_path = "{WK_DIR}/model/PS/{CASENAME}_wt_composite.pdf".format(**os.environ) +title_string = "{CASENAME}: Weather Types composite ({FIRSTYR}-{LASTYR})".format(**os.environ) # Set up the Figure plt.rcParams.update({'font.size': 12}) fig, axes = plt.subplots( @@ -76,15 +80,15 @@ for i,w in enumerate(wt_unique): def selector(ds): - times = wt.loc[wt['WT'] == w].index.get_level_values('time') - ds = ds.sel(T = np.in1d(ds.unstack('T')['time'], times)) + times = wt.loc[wt['WT'] == w].index.get_level_values('{time_coord}').format(**os.environ) + ds = ds.sel(T = np.in1d(ds.unstack('T')['{time_coord}'].format(**os.environ), times)) ds = ds.mean(dim = 'T') return(ds) # Top row: geopotential height anomalies ax = axes[0, i] ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) - C0 = selector(reanalysis['Z250']).unstack('grid').plot.contourf( + C0 = selector(reanalysis['{hgt_var}']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap='PuOr', @@ -92,13 +96,13 @@ def selector(ds): levels=np.linspace(-2e2, 2e2, 21), add_colorbar=False, add_labels=False - ) + ).format(**os.environ) ax.coastlines() ax.add_feature(feature.BORDERS) # Middle row: rainfall anomalies ax = axes[1, i] - C1 = selector(rainfall['PRECT']).unstack('grid').plot.contourf( + C1 = selector(rainfall['{prec_var}']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'BrBG', @@ -106,10 +110,10 @@ def selector(ds): levels=np.linspace(-2, 2, 13), add_colorbar=False, add_labels=False - ) + ).format(**os.environ) ax.coastlines() ax = axes[2, i] - C2 = selector(t2m['T250']).unstack('grid').plot.contourf( + C2 = selector(t2m['{t_ref_var}']).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'RdBu_r', @@ -117,7 +121,7 @@ def selector(ds): levels=np.linspace(-2, 2, 13), add_colorbar=False, add_labels=False - ) + ).format(**os.environ) ax.coastlines() ax.add_feature(feature.BORDERS) #ax.set_extent([-95, -70, -9, 5]) @@ -132,11 +136,12 @@ def selector(ds): cbar0 = fig.colorbar(C0, cax = cax0) cbar0.formatter.set_powerlimits((4, 4)) cbar0.update_ticks() -cbar0.set_label(r'$zg_{500}$ anomaly [$m^2$/$s^2$]', rotation=270) +cbar0.set_label(r'{hgt_var} anomaly [$m^2$/$s^2$]', rotation=270).format(**os.environ) cbar0.ax.get_yaxis().labelpad = 20 cbar1 = fig.colorbar(C1, cax=cax1) -cbar1.set_label('Precip. anomaly [mm/d]', rotation=270) +cbar1.set_label('{prec_var} anomaly [mm/d]', rotation=270).format(**os.environ) cbar1.ax.get_yaxis().labelpad = 20 cbar2 = fig.colorbar(C2, cax=cax2) -cbar2.set_label('T2m anomaly [$^o$C]', rotation=270) +cbar2.set_label('{t_ref_var} anomaly [$^o$C]', rotation=270).format(**os.environ) cbar2.ax.get_yaxis().labelpad = 20 +fig.savefig(plot_path, bbox_inches='tight') diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index 2fe33f175..3cf4a0bd2 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -42,7 +42,7 @@ "requirement" : "required", "dimensions" : ["time", "lat", "lon"] }, - "tas" : { + "t_ref" : { "standard_name" : "air_temperature", "path_variable" : "TAS_FILE", "freq" : "day", From 41220500a3f40fed1cef1c77f69a4aaf5dd8c090 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Apr 2021 10:22:33 -0700 Subject: [PATCH 14/54] editing environment variables --- diagnostics/flow_dep_diag/ClimAnom_func.py | 7 ++-- diagnostics/flow_dep_diag/WeatherTypes.py | 48 +++++++++++++--------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/diagnostics/flow_dep_diag/ClimAnom_func.py b/diagnostics/flow_dep_diag/ClimAnom_func.py index c1d14bc2b..4d94c57ce 100644 --- a/diagnostics/flow_dep_diag/ClimAnom_func.py +++ b/diagnostics/flow_dep_diag/ClimAnom_func.py @@ -7,6 +7,7 @@ import cftime np.seterr(divide='ignore', invalid='ignore') +time_var = os.environ["time_coord"] #function to calculate climatology anomalies for eah variable def climAnom(var_path, var_name): @@ -14,14 +15,14 @@ def climAnom(var_path, var_name): va = var_name ds = xr.open_dataset(ddir, decode_times = True) - ds['time'] = ds.indexes['time'].to_datetimeindex() + ds[time_var] = ds.indexes[time_var].to_datetimeindex() # Drop 1 dimensional coordinates ds = ds.squeeze() da = ds[va] da_ensmean = da.copy() #would need to make envt var or something so you could use either 'time' or 'S' as coordinate name without an issue - da_day_clim = da_ensmean.groupby('time.dayofyear').mean('time') - da_day_anom = da.groupby('time.dayofyear') - da_day_clim + da_day_clim = da_ensmean.groupby('time.dayofyear').mean(time_var) + da_day_anom = da.groupby('{time_coord}.dayofyear').format(**os.environ) - da_day_clim da_day_anom = da_day_anom.drop('dayofyear') return da_day_anom diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index a5edcb62d..b5c103e0d 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -12,12 +12,20 @@ from PyWR import * from ClimAnom_func import * +#set environment variables +time_coord = os.environ["time_coord"] +hgt_var = os.environ["hgt_var"] +prec_var = os.environ["prec_var"] +tas_var = os.environ["t_ref_var"] +lat_coord = os.environ["lat_coord"] +lon_coord = os.environ["lon_coord"] + #running analysis to generate climatology anomalies for vars -reanalysis = climAnom(var_path="{HGT_FILE}", var_name="{hgt_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +reanalysis = climAnom(var_path=os.environ["HGT_FILE"], var_name=os.environ["hgt_var"]).stack(T=[time_coord], grid=[lat_coord, lon_coord]) #reanalysis = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.Z250.day.nc", var_name='Z250').stack(T=['time'], grid=['lat', 'lon']) -rainfall = climAnom(var_path="{PREC_FILE}", var_name="{prec_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +rainfall = climAnom(var_path=os.environ["PREC_FILE"], var_name=os.environ["prec_var"]).stack(T=[time_coord], grid=[lat_coord, lon_coord]) #rainfall = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.PRECT.day.nc", var_name='PRECT').stack(T=['time'], grid=['lat', 'lon']) -t2m = climAnom(var_path="{TAS_FILE}", var_name="{t_ref_var}").stack(T=["{time_coord}"], grid=["{lat_coord}", "{lon_coord}"]).format(**os.environ) +t2m = climAnom(var_path=os.environ["TAS_FILE"], var_name=os.environ["t_ref_var"]).stack(T=[time_coord], grid=[lat_coord, lon_coord]) #t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) reanalysis = reanalysis.to_dataset() reanalysis = reanalysis.assign_coords(P=(250)) @@ -26,13 +34,13 @@ #dimension reduction; projection of data onto leading EOFs for principle component time series #PCA model saved for later use as reanalysis_pc -n_eof = get_number_eof(X=reanalysis["{hgt_var}"].values, var_to_explain=0.9, plot=True).format(**os.environ) -pca_model = PCA(n_components=n_eof).fit(reanalysis["{hgt_var}"].values).format(**os.environ) -reanalysis_pc = pca_model.transform(reanalysis["{hgt_var}"].values).format(**os.environ) +n_eof = get_number_eof(X=reanalysis[hgt_var].values, var_to_explain=0.9, plot=True) +pca_model = PCA(n_components=n_eof).fit(reanalysis[hgt_var].values) +reanalysis_pc = pca_model.transform(reanalysis[hgt_var].values) #perform clustering using manually specified number of clusters -ncluster = "{NCLUSTER}".format(**os.environ) -n_sim = "{NSIM}".format(**os.environ) # typically 25-50 -- try 25 for quick preliminary computation only +ncluster = os.environ["NCLUSTER"] +n_sim = os.environ["NSIM"] # typically 25-50 -- try 25 for quick preliminary computation only centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=ncluster, n_sim=n_sim) class_idx, best_part = get_classifiability_index(centroids) print('The classifiability index is {}'.format(class_idx)) @@ -48,7 +56,7 @@ dims='T' ) reanalysis_composite['WT'] = weather_types -reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')['{hgt_var}'].format(**os.environ) +reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')[hgt_var] reanalysis_composite['M'] = 0 wt_anomalies = [] # initialize empty list wt_anomalies.append(reanalysis_composite) @@ -56,7 +64,7 @@ wt_anomalies['WT'] = wt_anomalies['WT'] + 1 # start from 1 #prepare a figure with rainfall and temperature composites -X, Y = np.meshgrid(reanalysis['{hgt_var}'].lon, reanalysis['{hgt_var}'].lat).format(**os.environ) +X, Y = np.meshgrid(reanalysis[hgt_var].lon, reanalysis[hgt_var].lat) map_proj = ccrs.PlateCarree() #ccrs.Orthographic(-110, 10) data_proj = ccrs.PlateCarree() wt_unique = np.unique(wt_anomalies['WT']) @@ -67,8 +75,8 @@ wt_counts = wt.groupby('WT').size().div(wt['WT'].size) #plotting -xmin,xmax = reanalysis['{lon_coord}'].min().format(**os.environ), reanalysis['{lon_coord}'].max().format(**os.environ) -ymin,ymax = reanalysis['{lat_coord}'].min().format(**os.environ), reanalysis['{lat_coord}'].max().format(**os.environ) +xmin,xmax = reanalysis[lon_coord].min(), reanalysis[lon_coord].max() +ymin,ymax = reanalysis[lat_coord].min(), reanalysis[lat_coord].max() plot_path = "{WK_DIR}/model/PS/{CASENAME}_wt_composite.pdf".format(**os.environ) title_string = "{CASENAME}: Weather Types composite ({FIRSTYR}-{LASTYR})".format(**os.environ) # Set up the Figure @@ -80,15 +88,15 @@ for i,w in enumerate(wt_unique): def selector(ds): - times = wt.loc[wt['WT'] == w].index.get_level_values('{time_coord}').format(**os.environ) - ds = ds.sel(T = np.in1d(ds.unstack('T')['{time_coord}'].format(**os.environ), times)) + times = wt.loc[wt['WT'] == w].index.get_level_values(time_coord) + ds = ds.sel(T = np.in1d(ds.unstack('T')[time_coord], times)) ds = ds.mean(dim = 'T') return(ds) # Top row: geopotential height anomalies ax = axes[0, i] ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) - C0 = selector(reanalysis['{hgt_var}']).unstack('grid').plot.contourf( + C0 = selector(reanalysis[hgt_var]).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap='PuOr', @@ -96,13 +104,13 @@ def selector(ds): levels=np.linspace(-2e2, 2e2, 21), add_colorbar=False, add_labels=False - ).format(**os.environ) + ) ax.coastlines() ax.add_feature(feature.BORDERS) # Middle row: rainfall anomalies ax = axes[1, i] - C1 = selector(rainfall['{prec_var}']).unstack('grid').plot.contourf( + C1 = selector(rainfall[prec_var]).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'BrBG', @@ -110,10 +118,10 @@ def selector(ds): levels=np.linspace(-2, 2, 13), add_colorbar=False, add_labels=False - ).format(**os.environ) + ) ax.coastlines() ax = axes[2, i] - C2 = selector(t2m['{t_ref_var}']).unstack('grid').plot.contourf( + C2 = selector(t2m[tas_var]).unstack('grid').plot.contourf( transform = data_proj, ax=ax, cmap = 'RdBu_r', @@ -121,7 +129,7 @@ def selector(ds): levels=np.linspace(-2, 2, 13), add_colorbar=False, add_labels=False - ).format(**os.environ) + ) ax.coastlines() ax.add_feature(feature.BORDERS) #ax.set_extent([-95, -70, -9, 5]) From 2d2ae39778b70acf72f606f055a46adc6d70c336 Mon Sep 17 00:00:00 2001 From: Your Name <> Date: Thu, 15 Apr 2021 13:54:47 -0700 Subject: [PATCH 15/54] editing environment vars in driver file --- diagnostics/flow_dep_diag/ClimAnom_func.py | 2 +- diagnostics/flow_dep_diag/WeatherTypes.py | 2 +- diagnostics/flow_dep_diag/flow_dep_diag.html | 2 +- diagnostics/flow_dep_diag/flow_dep_diag.py | 22 ++++++++++---------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/diagnostics/flow_dep_diag/ClimAnom_func.py b/diagnostics/flow_dep_diag/ClimAnom_func.py index 4d94c57ce..ce63e74f8 100644 --- a/diagnostics/flow_dep_diag/ClimAnom_func.py +++ b/diagnostics/flow_dep_diag/ClimAnom_func.py @@ -21,7 +21,7 @@ def climAnom(var_path, var_name): da = ds[va] da_ensmean = da.copy() #would need to make envt var or something so you could use either 'time' or 'S' as coordinate name without an issue - da_day_clim = da_ensmean.groupby('time.dayofyear').mean(time_var) + da_day_clim = da_ensmean.groupby('{time_coord}.dayofyear').mean(time_var).format(**os.environ) da_day_anom = da.groupby('{time_coord}.dayofyear').format(**os.environ) - da_day_clim da_day_anom = da_day_anom.drop('dayofyear') diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index b5c103e0d..e9ecef186 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -28,7 +28,7 @@ t2m = climAnom(var_path=os.environ["TAS_FILE"], var_name=os.environ["t_ref_var"]).stack(T=[time_coord], grid=[lat_coord, lon_coord]) #t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) reanalysis = reanalysis.to_dataset() -reanalysis = reanalysis.assign_coords(P=(250)) +#reanalysis = reanalysis.assign_coords(P=(250)) rainfall = rainfall.to_dataset() t2m = t2m.to_dataset() diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.html b/diagnostics/flow_dep_diag/flow_dep_diag.html index 3db22c31a..7f7760529 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.html +++ b/diagnostics/flow_dep_diag/flow_dep_diag.html @@ -18,7 +18,7 @@

Flow-Dependent, Cross-Timescale Model Diagnostics

Time averages, {FIRSTYR}-{LASTYR} {CASENAME} -OBS + Near-surface temperature (K) -plot -plot +plot From 1cc7cac81466d9bbff031108068a19446ba8bba5 Mon Sep 17 00:00:00 2001 From: Drew Resnick Date: Mon, 26 Apr 2021 16:09:40 -0700 Subject: [PATCH 28/54] editing driver script to check for missing files. --- diagnostics/flow_dep_diag/ClimAnom_func.py | 4 +- diagnostics/flow_dep_diag/WeatherTypes.py | 1 - diagnostics/flow_dep_diag/flow_dep_diag.html | 2 +- diagnostics/flow_dep_diag/flow_dep_diag.py | 55 ++++++++++---------- diagnostics/flow_dep_diag/settings.jsonc | 8 ++- 5 files changed, 37 insertions(+), 33 deletions(-) diff --git a/diagnostics/flow_dep_diag/ClimAnom_func.py b/diagnostics/flow_dep_diag/ClimAnom_func.py index 912401e41..d7bcbbb22 100644 --- a/diagnostics/flow_dep_diag/ClimAnom_func.py +++ b/diagnostics/flow_dep_diag/ClimAnom_func.py @@ -3,8 +3,8 @@ import numpy as np import pandas as pd from datetime import datetime -import dask -import cftime +#import dask +#import cftime np.seterr(divide='ignore', invalid='ignore') time_var = os.environ["time_coord"] diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index 3ec1ae556..e0a12fd00 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -40,7 +40,6 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t #perform clustering using manually specified number of clusters n_cluster = int(os.environ["NCLUSTER"]) n_sim = int(os.environ["NSIM"]) - print(type(n_sim)) # typically 25-50 -- try 25 for quick preliminary computation only centroids, wtypes = loop_kmeans(X=reanalysis_pc, n_cluster=n_cluster, n_sim=n_sim) class_idx, best_part = get_classifiability_index(centroids) print('The classifiability index is {}'.format(class_idx)) diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.html b/diagnostics/flow_dep_diag/flow_dep_diag.html index 8aef8bdf3..6702772e8 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.html +++ b/diagnostics/flow_dep_diag/flow_dep_diag.html @@ -1,5 +1,5 @@ MDTF example diagnostic - +

Flow-Dependent, Cross-Timescale Model Diagnostics

diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py index 9b9d80ad3..88884224f 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.py +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -2,38 +2,39 @@ import os import glob -os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") +#os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") -#specifying file structure for each var -#os.environ["PRECT_FILE"] = "*."+os.environ["PRECT_var"]+".day.nc" -#os.environ["Z250_FILE"] = "*."+os.environ["Z250_var"]+".day.nc" -#os.environ["T250_FILE"] = "*."+os.environ["T250_var"]+".day.nc" +os.environ["MODEL_OUTPUT_DIR"]=os.environ["DATADIR"]+"/1hr" +if not os.path.exists(os.environ["MODEL_OUTPUT_DIR"]): + os.makedirs(os.environ["MODEL_OUTPUT_DIR"]) -#os.environ["MODEL_OUTPUT_DIR"]=os.environ["DATADIR"]+"/day" +missing_file=0 +if len(glob.glob(os.environ["PRECT_FILE"]))==0: + print("Required Precipitation data missing!") + missing_file=1 +if len(glob.glob(os.environ["Z250_FILE"]))==0: + print("Required Geopotential height data missing!") + missing_file=1 +if len(glob.glob(os.environ["T250_FILE"]))==0: + print("Required temperature data missing!") + missing_file=1 -#missing_file=0 -#if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["PRECT_FILE"]))==0: -# print("Required Precipitation data missing!") -# missing_file=1 -#if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["Z250_FILE"]))==0: -# print("Required Geopotential height data missing!") -# missing_file=1 -#if len(glob.glob(os.environ["MODEL_OUTPUT_DIR"]+"/"+os.environ["T250_FILE"]))==0: -# print("Required temperature data missing!") -# missing_file=1 - -#if missing_file==1: -# print("Flow-Dependent, Cross-Timescale Model Diagnostics Package will NOT be executed!") -#else: +if missing_file==1: + print("Flow-Dependent, Cross-Timescale Model Diagnostics Package will NOT be executed!") +else: ##### Functionalities in Diagnostic Package ##### # ====================================================================== # See WeatherTypes.py for detailed info -# try: -# os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") -# except OSError as e: -# print('WARNING',e.errno,e.strerror) -# print("**************************************************") -# print("Flow-Dependent, Cross-Timescale Model Diagnostics (WeatherTypes.py) is NOT Executed as Expected!") -# print("**************************************************") + try: + os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") + except OSError as e: + print('WARNING',e.errno,e.strerror) + print("**************************************************") + print("Flow-Dependent, Cross-Timescale Model Diagnostics (WeatherTypes.py) is NOT Executed as Expected!") + print("**************************************************") + + print("**************************************************") + print("Flow-Dependent, Cross-Timescale Model Diagnostics (WeatherTypes.py) Executed!") + print("**************************************************") diff --git a/diagnostics/flow_dep_diag/settings.jsonc b/diagnostics/flow_dep_diag/settings.jsonc index bd02bb38e..f9d5fa1e0 100644 --- a/diagnostics/flow_dep_diag/settings.jsonc +++ b/diagnostics/flow_dep_diag/settings.jsonc @@ -2,12 +2,16 @@ "settings" : { "long_name" : "Flow-Dependent, Cross-Timescale Model Diagnostics Documentation", "driver" : "flow_dep_diag.py", - "realm" : "weather", + "realm" : "atmos", + "description" : "Comparing daily atmospheric circulation pattern characteristics in reanalysis and models", "runtime_requirements" : { - "python3" : ["xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib", "numba", "typing"] + "python3" : ["netCDF4", "xarray", "numpy", "pandas", "sklearn", "cartopy", "matplotlib", "numba", "datetime", "typing"] }, "pod_env_vars" : { + // Number of simulations run in reanalysis weather typing. + // Typically 25-50; try 25 for a quick preliminary computation only "NSIM" : "25", + // number of weather types in clustering "NCLUSTER" : "6" } }, From 86e80799400c8c8e7a1cd8a57537548f555564e6 Mon Sep 17 00:00:00 2001 From: Drew Resnick Date: Tue, 27 Apr 2021 08:46:13 -0700 Subject: [PATCH 29/54] adding documentation, removing excess code --- diagnostics/flow_dep_diag/WeatherTypes.py | 6 +-- diagnostics/flow_dep_diag/flow_dep_diag.py | 58 +++++++++++++++++++--- 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index e0a12fd00..2982f63b2 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -30,7 +30,7 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t #reanalysis = reanalysis.assign_coords(P=(250)) rainfall = rainfall.to_dataset() t2m = t2m.to_dataset() - print("climatology anomaly calculations completed.") + print("Climatology anomaly calculations completed.") #dimension reduction; projection of data onto leading EOFs for principle component time series #PCA model saved for later use as reanalysis_pc n_eof = get_number_eof(X=reanalysis[Z250_var].values, var_to_explain=0.9, plot=True) @@ -58,7 +58,7 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')[Z250_var] reanalysis_composite['M'] = 0 - print("reanalysis completed.") + print("Reanalysis completed.") wt_anomalies = [] # initialize empty list wt_anomalies.append(reanalysis_composite) wt_anomalies = xr.concat(wt_anomalies, dim='M') # join together @@ -74,7 +74,7 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t wt=wt+1 wt_counts = wt.groupby('WT').size().div(wt['WT'].size) - print("beginning plotting..") + print("Beginning plotting..") #plotting xmin,xmax = reanalysis[lon_coord].min(), reanalysis[lon_coord].max() ymin,ymax = reanalysis[lat_coord].min(), reanalysis[lat_coord].max() diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py index 88884224f..a36a2726b 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.py +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -1,13 +1,59 @@ +# Flow-Dependent, Cross-Timescale Model Diagnostics POD +# +# ================================================================================ +# +# Last update: 4/27/2021 +# +# The flow-dependent model diagnostics compares daily atmospheric circulation patterns, +# or weather types, characteristics in reanalyses and models to analyze misrepresented +# physical processes related to spatiotemporal systematic errors in those models. +# Relationships between these biases and climate teleconnections +# (e.g., SST patterns, ENSO, MJO, etc.) can be explored in different models. +# +# Version and contact info +# +# - Version/revision information: version 1 (4/27/2021) +# - Developer/point of contact: Ángel G. Muñoz (agmunoz@iri.columbia.edu) and +# Andrew W. Robertson (awr@iri.columbia.edu) +# - Other contributors: Drew Resnick (drewr@iri.columbia.edu), James Doss-Gollin +# +# Open source copyright agreement +# +# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +# +# FUNCTIONALITY!! +# +# In this section you should summarize the stages of the calculations your +# diagnostic performs, and how they translate to the individual source code files +# provided in your submission. This will, e.g., let maintainers fixing a bug or +# people with questions about how your code works know where to look. +# +# Required programming language and libraries +# +# This diagnostic runs on the most recent version of python3. +# The required packages are as follows, and all should be the most updated version. +# Python Libraries used: "netCDF4", "xarray", "numpy", "pandas", "sklearn", +# "cartopy", "matplotlib", "numba", "datetime", "typing" +# +# Required model output variables!!!!!!!!!! +# +# This diagnostic assumes the data is structured on a time grid with no leap years. +# It also assumes each variable is for a single ensemble member. +# +# DESCRIBE EACH VARIBALE IN INPUT DATA +# +# References +# +# Muñoz, Á. G., Yang, X., Vecchi, G. A., Robertson, A. W., & Cooke, W. F. (2017): +# PA Weather-Type-Based Cross-Time-Scale Diagnostic Framework for Coupled Circulation +# Models. Journal of Climate, 30 (22), 8951–8972, doi:10.1175/JCLI-D-17-0115.1. +# +# ================================================================================ + #driver file import os import glob -#os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") - -os.environ["MODEL_OUTPUT_DIR"]=os.environ["DATADIR"]+"/1hr" -if not os.path.exists(os.environ["MODEL_OUTPUT_DIR"]): - os.makedirs(os.environ["MODEL_OUTPUT_DIR"]) - missing_file=0 if len(glob.glob(os.environ["PRECT_FILE"]))==0: print("Required Precipitation data missing!") From 42fb69797bb26c97a9aa22fecc0a717b8c565e28 Mon Sep 17 00:00:00 2001 From: Drew Resnick Date: Tue, 27 Apr 2021 10:21:38 -0700 Subject: [PATCH 30/54] Saving climatology anomaly data as new files --- diagnostics/example/example_diag.py | 94 +++++++++++----------- diagnostics/flow_dep_diag/ClimAnom_func.py | 18 ++--- diagnostics/flow_dep_diag/WeatherTypes.py | 16 +--- diagnostics/flow_dep_diag/flow_dep_diag.py | 4 - 4 files changed, 57 insertions(+), 75 deletions(-) diff --git a/diagnostics/example/example_diag.py b/diagnostics/example/example_diag.py index 9d1c38a34..728f2e675 100644 --- a/diagnostics/example/example_diag.py +++ b/diagnostics/example/example_diag.py @@ -2,66 +2,66 @@ # ================================================================================ # This script does a simple diagnostic calculation to illustrate how to adapt code # for use in the MDTF diagnostic framework. The main change is to set input/output -# paths, variable names etc. from shell environment variables the framework +# paths, variable names etc. from shell environment variables the framework # provides, instead of hard-coding them. # # Below, this script consists of 2 parts: (1) a template of comprehensive header POD -# developers must include in their POD's main driver script, (2) actual code, and +# developers must include in their POD's main driver script, (2) actual code, and # (3) extensive in-line comments. # ================================================================================ -# +# # This file is part of the Example Diagnostic POD of the MDTF code package (see mdtf/MDTF-diagnostics/LICENSE.txt) -# +# # Example Diagnostic POD -# +# # Last update: 8/1/2020 -# +# # This is a example POD that you can use as a template for your diagnostics. -# If this were a real POD, you'd place a one-paragraph synopsis of your -# diagnostic here (like an abstract). -# +# If this were a real POD, you'd place a one-paragraph synopsis of your +# diagnostic here (like an abstract). +# # Version & Contact info -# +# # Here you should describe who contributed to the diagnostic, and who should be # contacted for further information: -# +# # - Version/revision information: version 1 (5/06/2020) # - PI (name, affiliation, email) # - Developer/point of contact (name, affiliation, email) # - Other contributors -# +# # Open source copyright agreement -# -# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +# +# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). # Unless you've distirbuted your script elsewhere, you don't need to change this. -# +# # Functionality -# -# In this section you should summarize the stages of the calculations your -# diagnostic performs, and how they translate to the individual source code files -# provided in your submission. This will, e.g., let maintainers fixing a bug or +# +# In this section you should summarize the stages of the calculations your +# diagnostic performs, and how they translate to the individual source code files +# provided in your submission. This will, e.g., let maintainers fixing a bug or # people with questions about how your code works know where to look. -# +# # Required programming language and libraries -# -# In this section you should summarize the programming languages and third-party -# libraries used by your diagnostic. You also provide this information in the -# ``settings.jsonc`` file, but here you can give helpful comments to human +# +# In this section you should summarize the programming languages and third-party +# libraries used by your diagnostic. You also provide this information in the +# ``settings.jsonc`` file, but here you can give helpful comments to human # maintainers (eg, "We need at least version 1.5 of this library because we call # this function.") -# +# # Required model output variables -# -# In this section you should describe each variable in the input data your -# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, -# but here you should go into detail on the assumptions your diagnostic makes +# +# In this section you should describe each variable in the input data your +# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, +# but here you should go into detail on the assumptions your diagnostic makes # about the structure of the data. -# +# # References -# -# Here you should cite the journal articles providing the scientific basis for +# +# Here you should cite the journal articles providing the scientific basis for # your diagnostic. -# +# # Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate # and wether forcasting models. BAMS, 100(9), 1665-1686, # doi:10.1175/BAMS-D-18-0042.1. @@ -69,8 +69,8 @@ import os import matplotlib matplotlib.use('Agg') # non-X windows backend -# Commands to load third-party libraries. Any code you don't include that's -# not part of your language's standard library should be listed in the +# Commands to load third-party libraries. Any code you don't include that's +# not part of your language's standard library should be listed in the # settings.jsonc file. import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots @@ -80,24 +80,22 @@ # # The framework copies model data to a regular directory structure of the form # //...nc -# Here and frequency are requested in the "varlist" part of +# Here and frequency are requested in the "varlist" part of # settings.json. # The following command sets input_path to the value of the shell environment -# variable called TAS_FILE. This variable is set by the framework to let the +# variable called TAS_FILE. This variable is set by the framework to let the # script know where the locally downloaded copy of the data for this variable # (which we called "tas") is. input_path = os.environ["TAS_FILE"] # command to load the netcdf file model_dataset = xr.open_dataset(input_path) - - ### 2) Doing computations: ##################################################### # # Diagnostics in the framework are intended to work with native output from a # variety of models. For this reason, variable names should not be hard-coded -# but instead set from environment variables. +# but instead set from environment variables. # tas_var_name = os.environ["tas_var"] # For safety, don't even assume that the time dimension of the input file is @@ -117,10 +115,10 @@ ### 3) Saving output data: ##################################################### # -# Diagnostics should write output data to disk to a) make relevant results +# Diagnostics should write output data to disk to a) make relevant results # available to the user for further use or b) to pass large amounts of data # between stages of a calculation run as different sub-scripts. Data can be in -# any format (as long as it's documented) and should be written to the +# any format (as long as it's documented) and should be written to the # directory /model/netCDF (created by the framework). # out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) @@ -131,9 +129,9 @@ ### 4) Saving output plots: #################################################### # -# Plots should be saved in EPS or PS format at //PS -# (created by the framework). Plots can be given any filename, but should have -# the extension ".eps" or ".ps". To make the webpage output, the framework will +# Plots should be saved in EPS or PS format at //PS +# (created by the framework). Plots can be given any filename, but should have +# the extension ".eps" or ".ps". To make the webpage output, the framework will # convert these to bitmaps with the same name but extension ".png". # Define a python function to make the plot, since we'll be doing it twice and @@ -160,14 +158,14 @@ def plot_and_save_figure(model_or_obs, title_string, dataset): ### 5) Loading obs data files & plotting obs figures: ########################## # -# If your diagnostic uses any model-independent supporting data (eg. reference +# If your diagnostic uses any model-independent supporting data (eg. reference # or observational data) larger than a few kB of text, it should be provided via # the observational data distribution instead of being included with the source -# code. This data can be in any format: the framework doesn't process it. The +# code. This data can be in any format: the framework doesn't process it. The # environment variable OBS_DATA will be set to a path where the framework has # copied a directory containing your supplied data. # -# The following command replaces the substring "{OBS_DATA}" with the value of +# The following command replaces the substring "{OBS_DATA}" with the value of # the OBS_DATA environment variable. input_path = "{OBS_DATA}/example_tas_means.nc".format(**os.environ) diff --git a/diagnostics/flow_dep_diag/ClimAnom_func.py b/diagnostics/flow_dep_diag/ClimAnom_func.py index d7bcbbb22..c2c46efd3 100644 --- a/diagnostics/flow_dep_diag/ClimAnom_func.py +++ b/diagnostics/flow_dep_diag/ClimAnom_func.py @@ -3,26 +3,22 @@ import numpy as np import pandas as pd from datetime import datetime -#import dask -#import cftime np.seterr(divide='ignore', invalid='ignore') -time_var = os.environ["time_coord"] +### Function to calculate climatology anomalies for each variable in the diagnostic. + +time_var = os.environ["time_coord"] #set environment variable for time equal to var for function #function to calculate climatology anomalies for eah variable def climAnom(var_path, var_name): - ddir = var_path - va = var_name - - ds = xr.open_dataset(ddir, decode_times = True) - ds[time_var] = ds.indexes[time_var].to_datetimeindex() + ds = xr.open_dataset(var_path, decode_times = True) + ds[time_var] = ds.indexes[time_var].to_datetimeindex() #convert time to datetime so we can use groupby functionality # Drop 1 dimensional coordinates ds = ds.squeeze() - da = ds[va] + da = ds[var_name] da_ensmean = da.copy() - #would need to make envt var or something so you could use either 'time' or 'S' as coordinate name without an issue da_day_clim = da_ensmean.groupby('{time_coord}.dayofyear'.format(**os.environ)).mean(time_var) #.format(**os.environ) da_day_anom = da.groupby('{time_coord}.dayofyear'.format(**os.environ)) - da_day_clim da_day_anom = da_day_anom.drop('dayofyear') - + da_day_anom.to_netcdf("{WK_DIR}/model/netCDF/".format(**os.environ) + var_name + "_climAnom.nc") return da_day_anom diff --git a/diagnostics/flow_dep_diag/WeatherTypes.py b/diagnostics/flow_dep_diag/WeatherTypes.py index 2982f63b2..6d084d812 100644 --- a/diagnostics/flow_dep_diag/WeatherTypes.py +++ b/diagnostics/flow_dep_diag/WeatherTypes.py @@ -1,3 +1,4 @@ +#Python packages/ modules imported for the diagnostic import os import xarray as xr import numpy as np @@ -8,10 +9,12 @@ from cartopy import feature import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap -# key PyWR functions and climAnom are imported here from function files +# The following are function scripts which the diagnostic calls to run specific calculations +# refer to PyWR.py and ClimAnom_func.py for details on imported functions from PyWR import * from ClimAnom_func import * +#Setting variables equal to environment variables set by the diagnostic time_coord = os.environ["time_coord"] lat_coord = os.environ["lat_coord"] lon_coord = os.environ["lon_coord"] @@ -21,13 +24,9 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t2m_path, t2m_var): reanalysis = climAnom(var_path=reanalysis_path, var_name=reanalysis_var).stack(T=[time_coord], grid=[lat_coord, lon_coord]) -#reanalysis = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.Z250.day.nc", var_name='Z250').stack(T=['time'], grid=['lat', 'lon']) rainfall = climAnom(var_path=rainfall_path, var_name=rainfall_var).stack(T=[time_coord], grid=[lat_coord, lon_coord]) -#rainfall = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.PRECT.day.nc", var_name='PRECT').stack(T=['time'], grid=['lat', 'lon']) t2m = climAnom(var_path=t2m_path, var_name=t2m_var).stack(T=[time_coord], grid=[lat_coord, lon_coord]) -#t2m = climAnom(var_path="/Users/drewr/mdtf/inputdata/model/QBOi.EXP1.AMIP.001/day/QBOi.EXP1.AMIP.001.T250.day.nc", var_name='T250').stack(T=['time'], grid=['lat', 'lon']) reanalysis = reanalysis.to_dataset() -#reanalysis = reanalysis.assign_coords(P=(250)) rainfall = rainfall.to_dataset() t2m = t2m.to_dataset() print("Climatology anomaly calculations completed.") @@ -36,7 +35,6 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t n_eof = get_number_eof(X=reanalysis[Z250_var].values, var_to_explain=0.9, plot=True) pca_model = PCA(n_components=n_eof).fit(reanalysis[Z250_var].values) reanalysis_pc = pca_model.transform(reanalysis[Z250_var].values) - #perform clustering using manually specified number of clusters n_cluster = int(os.environ["NCLUSTER"]) n_sim = int(os.environ["NSIM"]) @@ -45,7 +43,6 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t print('The classifiability index is {}'.format(class_idx)) #define KMeans object best_fit = KMeans(n_clusters=n_cluster, init=centroids[best_part, :, :], n_init=1, max_iter=1).fit(reanalysis_pc) - #start reanalysis reanalysis_composite = reanalysis.copy() model_clust = best_fit.fit_predict(reanalysis_pc) # get centroids @@ -57,7 +54,6 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t reanalysis_composite['WT'] = weather_types reanalysis_composite = reanalysis_composite.groupby('WT').mean(dim='T').unstack('grid')[Z250_var] reanalysis_composite['M'] = 0 - print("Reanalysis completed.") wt_anomalies = [] # initialize empty list wt_anomalies.append(reanalysis_composite) @@ -73,7 +69,6 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t wt=weather_types.to_dataframe(name='WT') wt=wt+1 wt_counts = wt.groupby('WT').size().div(wt['WT'].size) - print("Beginning plotting..") #plotting xmin,xmax = reanalysis[lon_coord].min(), reanalysis[lon_coord].max() @@ -86,14 +81,12 @@ def weatherTypes(reanalysis_path, reanalysis_var, rainfall_path, rainfall_var, t nrows=3, ncols=len(wt_unique), subplot_kw={'projection': map_proj}, figsize=figsize, sharex=True, sharey=True ) - for i,w in enumerate(wt_unique): def selector(ds): times = wt.loc[wt['WT'] == w].index.get_level_values(time_coord) ds = ds.sel(T = np.in1d(ds.unstack('T')[time_coord], times)) ds = ds.mean(dim = 'T') return(ds) - # Top row: geopotential height anomalies ax = axes[0, i] ax.set_title('WT {}: {:.1%} of days'.format(w, wt_counts.values[i])) @@ -135,7 +128,6 @@ def selector(ds): ax.add_feature(feature.BORDERS) #ax.set_extent([-95, -70, -9, 5]) ax.tick_params(colors='b') - # # Add Colorbar plt.tight_layout() fig.subplots_adjust(right=0.94) diff --git a/diagnostics/flow_dep_diag/flow_dep_diag.py b/diagnostics/flow_dep_diag/flow_dep_diag.py index a36a2726b..2ecde3f9f 100644 --- a/diagnostics/flow_dep_diag/flow_dep_diag.py +++ b/diagnostics/flow_dep_diag/flow_dep_diag.py @@ -69,10 +69,6 @@ print("Flow-Dependent, Cross-Timescale Model Diagnostics Package will NOT be executed!") else: - ##### Functionalities in Diagnostic Package ##### - # ====================================================================== - - # See WeatherTypes.py for detailed info try: os.system("python3 "+os.environ["POD_HOME"]+"/"+"WeatherTypes.py") except OSError as e: From bd736c0f6c8b3147488271847af940b3da01a69f Mon Sep 17 00:00:00 2001 From: Drew Resnick Date: Fri, 14 May 2021 15:42:35 -0400 Subject: [PATCH 31/54] adding in documentation --- diagnostics/flow_dep_diag/doc/figure1.png | Bin 0 -> 917165 bytes diagnostics/flow_dep_diag/doc/figure2.png | Bin 0 -> 622072 bytes diagnostics/flow_dep_diag/doc/figure3.png | Bin 0 -> 1046840 bytes .../flow_dep_diag/doc/flow_dep_diag.rst | 140 +++++++++++++++--- 4 files changed, 122 insertions(+), 18 deletions(-) create mode 100644 diagnostics/flow_dep_diag/doc/figure1.png create mode 100644 diagnostics/flow_dep_diag/doc/figure2.png create mode 100644 diagnostics/flow_dep_diag/doc/figure3.png diff --git a/diagnostics/flow_dep_diag/doc/figure1.png b/diagnostics/flow_dep_diag/doc/figure1.png new file mode 100644 index 0000000000000000000000000000000000000000..ab83145a2d60642c047c74c4fd04ae9e07834c1c GIT binary patch literal 917165 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

Z>*z-(|yQ!}S;R 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%0DiIPU~ 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 vejA!z z8(pCsxCtK~Ay}ykIT1cFD?>7_$WPptQa=~cR?j!K&^q)9p^4x@2w#Wp0seZJLh3;u zrI7cKJAD+E61?DgZP2Y-w}Q}T&=_cTNt1HPz_aUZ;S(wKl9;&38t-fE*vRoSJI|u*B#EF0bWUlD_G;gBaTl7% zJmlM1i_lkr4+95&5RZ9MWd8X;>{j;!C6ext(rz21w8JVXZKg1NPd=V6n!Xk*w~yXI znNyBd#N}&~62Rv|!963|jEt(y3V(+-zC7G4Aq3%pnM1Kwz;hrgvR(nuYHez%%qIz6 zFE>A$r#5zlLIYK&OE3RGA$?}deHs2J+)k_1!nRC{DE!u13#3G()?<(TWro(F4?i3J zP3m*$Eve&9ho??^9i0w4>4Nm$|8g=2_sc=|)Bl>b+_OiyA_eybef()U_Rp93ySCY< zXFBGLOVigQYS%+Fh1L;9H%2JHih1xK1W=8O9}OKNpYDOk!( zTt6+csc$CO>huCIQn3iox8;;u1$9pU2j+(uc|41vOD57@5*PhrwGCrah$>N09WLz|ApWw?e+T{ZkuqR!x|}_ z)LRou_i6#!#rpvYE%5`eJ;XJEj;7$8oo<)SG)QaZ+N_E~cL!wlm~yJYR^aiZm#8b$MGm^XQ&_&Z=M z&plh4DQBIZZri>~e%$kg=hhE>zZzKnD5J=y+0Z{|m=fH2tW9}7m;Vs4;7=-UkLgEFbqI*YI;YeDZ1)*zs6KNI6h9aL!yCxj-IYG%2Vs*Ao(3g58^F;|QNG-nxro9*mWH(! zgY>n?k*L?4tDJ>y#w(ll2t76QcQ^d-b_e}wviPG>;!SgP**rL8JL&qDN zBA@SNvxiM-z8B>?YZ|~Ag$Voz>m6fV8!#@+gKV67_#AK@S{?vS&a5JzI%b9!VZ#jt zBJ`T0lu{_#SNc3Hy(+~E&n_xOAv^;HLgf@>*?M9=f_JWnm!e0Nl|5cjjAYg}_ziex z_&NA)@RE5_+uUZ&>?_`qbqQJ%ilc0M*c3qV$M?Yd0JN>KDf0O)cn}nbY_clkO1|IV zxxoXJ;NWO&{Yf3f$7Wt+H)#2dA~`EVQs+JQ{3CrjjHl`c_2oyRcD^C_Y|eG@R`DEX zLVbTSY+AbNn)4hNw%v9c-{b;s>dWtE>n;AxMiT2|%s)2$QOxrml*at#`|ARXCfJZ+ zUXCz>!m>hwZc?`k>;c zbN^#>0v`h|Tzc7K>4;rYI$Gjyz|bKnU2{Q7H(nyv_&Vj|Q#btcfx>((eA8{ZcWIxL z`katbSE1CJ^QUyVM7Z(e$G9%)z4wNsR(6W=YgM_d%O(pn13*{Bh9Slq%Pg}@KGy~P z+g_V2`Y4r}=5z`^`{tYPO;=o~bc$LYelK|=(!M~)p<#SWvu175&fD}$E2_+a2llMd zFT8hNf|-etpZ&fce;Ski`SeSv%Yi4R4gc@3w9k=$N&W79JX@s3?@o%7zvtn9s&T!p z3*UVEUAp7`r_$!T9i?|2p1K})PWtD+YU;C^6#2r`#t3yG$j|jYOd(bc8k77H3*?+= zGYeBGrh;pgDq$*VCw1i&`KmiDCkFTCew930zRVL+nyBweWnyDDJo*)7XQhHc_Ju6O zavODpCjvD}6?TRd(#9E76c7a~^wnd)!z_Cm*JCu}nF)-9Cq(O1zl*h@;7D z0L;w0cm_+gNUR2a@3QNzX=*7c!opKwR?@KQl=j{W&&TXr8pm(u zc`2nYUpG7XY;Y>8$iMe?Z6rvcGBdbaY0snF1Xnofq}gA}0OG2fQrdB+lvZA)fPQ?d z=P%IFR&*ae8|4zlM0`(eygU8MH`BM^(*)snB{XR(@!H@vmYdX#GL(%G>Y=_$=yJLK zVclYL1D+nMbmmlJROAQ#mZD{~$(H5%t=v77smLpH5~iz@-0V(a#84uUe<*vLaDdGI-!tJ(>-^Ds7#7M0FpLneF^SP^2Qm4)S zk`}iQ($Y3cIDWSh?JCjf78|*7%Ja_;P#;Y$S3!+?>ee)N9Bbl?TLc!^;x}JOk-wQX zNSAa228__~O2i`y83k_{JSbQLz)5%=HnN_SUEAL-`A#@`wUqobc<(QUizSzMxxBvd zN{QtF&nlmV_XisTZ@-l!uO2(gYeBB|x%YQg75UkgzxLL^w6&7VZnEo<*~$C^F-pxNM$%(j&6?j;gaJFIEe z>pWAS#hHF5b2A&$bBCRFvgYsV9lu&e1{O8vL8%u>!Kp+=yLqfmG5Q{Vkh6qM`-@@@ z9;*Bbhi|&2RbO|bzT?kIP`#bm(km#qr{?WKOX^T8-$j%tc!ibCez%_4F5Q%9`bx6_ zFWOIUylK~+cfQ@$udjWl;Lw{Zfiq)4B0G}8W&56d7qU$B82H4QB?dGxI*FrCtknQ* zbom@3#&{_pwyGFAA8%p@k5(*2Y0OF$o#(IBhQHuNwr}UP4<#2~=bb*#dNk3SzRD^q zc|zFweg}A<@CHt^#Q}N@WN=TGQP!zKf!-VJmx4TV!@d>;8 z_1El%r5CfeufNfz4*l2;Sz}GxRFzzD$bL5MnSYtRuDHzazh(BtX9_I(q1gj}H`_vU z|3$_7{lj5q%Lsor-b$Iv?sFOdO|AL(eW6c?rtFwXyx zZ>P4LI!aAqeIL=(=%zTSLhb3z_4+FLLp)sKNdvNo7GFX?C4E;VPtRLrnCIYdDQGZ0 zTQBQOXpLyw+}T5FVKvSja@+Bm4m}Ru;f><^nR*wCA3)*23Sq;7sL8>96PD zyLq1c4$z%gR~f5H=yJLD$Wql~!c#xVLua+Va_^ek_oCm5+W}4lUKHP(9sj>DKB%{_i@~Y=1Y+{N*fw8Ko?4_)8KqV;&yF)y0lo)d)_cp`k%6} zsL*z}a8D_8O2UDMO|vDc{-Jy0{rkv;5`a4DADSa8bu`;*o48td7Fn~i|J1_1_|Mta za)H72wf)W}%-`K6x4zk4dhs>SU%2b8y9p1sHWE!&3aFeEUR^Qo-}8J8+K3YEoM1Na1W_w2G|#m_bs zoOgRbQ-AIQnd9Y3T%#c*Nm9J$f_t*oa79D5Fv$racrXjU2v~d-v+t@+*-NApTxjM# zdFUr*Kk7K>z#7k^5GU~#j0eoL+^lAbnI`d#tcE>l8;SEE_Ke>E3BxGw5iI1|Whfe1 zbedPcYqr-lHQG~rK~@aDP;p&5$6hDN7-5WLl~-Im|3AzV3GNVb5Ee+7R39OMBvdHz zNem;ajYiLixr~Hod!oM-h8wG{))m*Z?z-!mV$?d_*+d&%qep&gPxQUbI(#_L_L1^u)z|)G z3+Wi88W$FxwOnZ(ZNRlRYcpLT@tp*Z@zPR_{no7db+gy>P2Y}CGBGpMGg4#P7ehX= z4R+Yx+O=+DqlI@LE2&);NC3tB>esKIUzYWnCzL`kkHkd?>dcYON_@BQg0<5M5_B=w zc@AY+eda~BO-;Y&P7gra6oz8@%UjvRAGdSHyS};Kq0zFqHif|Q&C#l=Drf%XUFAvI zzmlpRd&cb9m(02yY_`f;Iv=F< zVi!%ADkk&vZ!bK_+s7}UaEj!ag(aH)Yp5PTuw1tep}DSiYZb7u?XN$?IZ+mNf$f z4DTjE914As^U5mJX|FehcHMZ3+0{2nGbDm| z-4$k=Z({b_HS=Ew-TzU$K<$q2X^V~@YiEjAht9FNL=tc|oxnqQX4ZIFWjkGGp0M8Y zJp9lCN;q8?jF2JAhnhR8(B}l@QA(ohgqLD&%?`dnA$mNyDRp)3+}Yb%SKFHI*RKce z5G(!dS2>n+Wr>rO0yOb{3Njko%Yqnzy)R^VFjT4 z-b(VVWq##m_Pcf4D>?avGHTgUJi>WSr=NfRMQzNsmAp6DPCvbuCwvZi4{nzO@V-x< zKF&K+jyXrtW#~6@uR@!tJylNM!SC4#@J(zEGiMY+%HXG(V9xcxVp?1RspT(k7((bByn$!-GZ9`rT<)Z1luvkf+ssMjX0);uGM9e1hh#}*%Luf4jnc!o`! zrYbLkz5DJvjwA9kaQt91WSebv64`BKBfl|iS}D=4#Ks@B543Anlab|&`v3iu*@-7y zY99=GQaConTC`k128gTZw~3!=Wt(lbnHwa=d{mfNPj)L$RewLSpDglyt$5|lQ?28s zi`no`R<`^8x}^Q*QL_VjzGmYmzU9f=J9gYqb7#ihn&pcE8fV3RqX)c;|n1L?X^>9>v`z! zt@V5wj1q9&?GM?fUwmyx9lX2nYKBFI!sQt63m89PqTPPwU)1-xdiejv*WR@&Zobb( zegC8Ee3!H%58B-h+dpT-6wfuC8+i|CVVi3}fytLx7gqvvWAVzye zXdOQGJoz)Nw_(m#Y-TWViSXI^UXK+Sm49TB&4bD>q)+g`<56Q zPgp2s-N$tEmTlD@OD{k9l*hlt4Ka@FJ8)GG7cOvt1eV0_jnE+390|DG5i=AJVfDmd z#1JQ;7IAXx6SI*za5p1FgBDhA1968NYiJ$5cTNCq)cMdlmAr857{w4c#Bn9<-%Vk7 z23GP^L74|0cpym;@9_aWh|@X>-*JKBiOV&7rr^~#QabABBpxdLxWcc~$WHsF?G{yH zD{xybv@0rH%^AIWr$Gw*IR)2qy@aC}KKuOB)J>sGZdE<6P?t6L@01EN9jkgCKdNU+ zqrNNa>yIliA$N!=Jap(#che+3_(udZJnamH56aDl?7Nv~#2RKUN(gfIUt%J1{bvFC zerQA4qr%WSbMkxUWN00}ix|aSyB?A@>Ue0{YPCseudNlSO0KoD0|;9}d{S^pg0ItT z38Ri@+L%p~nL8g2QUIAiX1`E##aM2$U`p5DTJT!va;)9B^+K0Bb?W5TaPh4q=6OMd zXDCpqXuspc(Z?xhc4B@e5f7ad zDz|#fV)E|P2INd2rg3$3wa0xWNhdKyRi?5@}`Qq?rw3m=9+N|&+f3xXFy?cQ1 zC7cE!A(XxqdGTBY zQTxCR9=s<=|WGl^p#c<}AClG?GL-I|))ZymP@H3l6-?hAgR zlnhB25b!Ga5oAJ=MhETJ=8?<34H1fnoLbOp-nHR|8+y{y|7Y(!z@#dcHe5>%N(S+& z1Op;^&7zo4F`!q)EGi0$2|+QTm;f;$DyC}!m26hT%vA);zga{vgAp(QA_mg-|GhQa zvoo`^vjI@St>>AUGbi-v)2F(+y1MGC)N!S3Em3hcEl^r$oz&Kvr)ku)g1(Um%}TGl zEVM_V{1%rIXT*rnf~VOuTy&A zehpjI6aN0XA?&?=P~M2bo9AnD6QNPAZTVqc^^KiR6@3r zTPgMzIW&a+nybQ_j4%8?`sgD;B021}>to?x|7z+vAltTW>$%lZd3T>px#!$aJ?~KE z(d*@TKK?dy$kc}}!*+4dI$+OtIP#3J_t9thXE)*6|2Q|1Kk2S}pYX)9I~{atIQ*20 z!{g72nM$CqzndL)61M$GeT3VTK{wz1VA%Vp#C^CQ<;r;PXI*jAsIX1P6T&V^j(hAG z1H=El{b9z{MgLYn>qz>pj#Ttj|2ca|Vx;y=e!w2bphS|N)Pa_B6#kYxkN-`YG;u-m z=hXDCy-N{8{y2e`HC~5IVCAcr6q&Hj79sRkR+PVhQiVGP$9fuI_SQR9S{m4f#DX(Bgd_s=V0m9%84jkn`@}~C52+C$@ z2|Px4lgSYGV-cakkYC!?%YI&&4f(McX4q?JHlX(qCOn(dxE(Jk_P62MAv}^W=oEWS zwgXan!bv?6b*R-k)yS)^EJE;o<50(P@W+8n+ZL5`)!0% zIOMilLu=vPD)u1Eu2wyS+R9|a^B&hdgx6jV%1)Q9R&Kn)5HGI_Pvqr`S!iOrYSzZ} zPdrs*_D13(unkcf;cal9|29OOOZrq8^3z@yYp=U2wZz$CPsIK5Qk1>?qUb9MF3H#M z%fQ+RqxzI;HNr*LT^sIIVr2|P@j4dIz;1>oNfJ-8QLe+l&caieC0TbT`9=Ja=se5LqQ~j7wqgpd18sFZJa~&UeJk@|z zTpd#PAFy=@gDx#ynjjX?&}riR7+Wf+{4Ed-`HL4XlFk{zPA!ApU-`=`*OgOV3Zaq` zL)6#JCr!>-1i5f9%12^RfQ2r2m_(BpEF+<7kkBxW@9+!`F}Enurx>Wj&!yshaKj_7 zDT>-L&oTCJ-_(8-?^)ho%3@KDIbOV9g(1JZt(mwk(~!^J7hjN3zH$h!|6l3LMwD(Y zRdoEg(qFT3&dhhr^A7*kR5tIYP}vTZK9bN~aWsHe;~WxRedU!`((v?8J@r&~$P)Zd zz)>*b`SYJeu3^K5IS<0yE0UN)(q~!dg}2e8R%G8H5ez>og3foO*n?bl@eS|A337Zww5~HB;>vTWr-T)RLaNS(`({ z?mIrBzHyB68VgpRe)?@VY@ZMw)^mUL)#A{#>j|M>zy4k)_)w9G?zq4LFm@-w?)aiG z4h=ZM(AE(5+-IKy!pkpD^Z$HJp7MOyxy`d$Z1^qIutA!89<|Ezc5#OMQ`Wh;@FVwnAX zxh`Lxi)PH25rli0EP`j7FGJ?HGTeVEqfY81I=*u};DsIPg9jI~0E9=s@b!Ii!g&~I z@Y-WC#s_25;hLoM?Ag=rB}g4lY!@f>g5e3QD!Vth>Yx!vpJcU)-C*LPkakZNgJ;Ex zj8-W2rmOLRavSn#6Wom-d?Yamy=`dujQPLF7;d$tg=kh&TEd0tt+#bu;}F)B1& zk+lzR2ly%ye9Hgf!-snUE%-R{bo^z~K@!HO%##r8<(FS}161q_3f&CTlvpk-l&1Hh zR`-vQMks@OFnK=rI0LOJs~abMs|XFcKG9yi&nvPJz{Fpno$fKT=bn2Ox%4mFq5iFg z%l)Y^Xp@)4b5+(@w1TQ>qq7HRKPwEri26te8d6Qr(;|j5~%&hRM2g_9e<%SZIVV?s_7b zh-l6vqE`F#>Ei~Oc#LPGKfL+oo1t5`Zoa4r&y+Z>>YUG%s5Cmuu<(lW40JH+?^?{hwe`*!Wx zxkC=o#YCz^nl|nIuu1Fv!=_E9h5JTpxKcZ#kNo!AAK}hnAB44RUf6Tb&Z|6cm&cGF z+o-g^N1l3#d(;mdGd_%adP?&1*n}5LTSS@8t1#qC+OLjOCN5ZkCr1wtR;P=jRId!R zePAX1pGHLt`ODh?*WZ*-;8Q$ymbb{|zW$tZ!?Mk`4v#9-9S?~UPB_6oKr+A|C|r0+ zKzP;TK@lg}cotzWVjzKpeXBua&mjEUaKHfv_{#D-ib2D0FKm842L+RC^UqD16vD8( z6=&Kpgv$p7;h&V~Hi+VdVT*~g63uye6<_6Rf#ovfb4#?Or=?Mm&f(D~vwGy_tQoGN z)nN2RDy;w-IIw7p38QBl%i+LN9g&{xdtN6cHL)camh_mFGFWblpr+lKr^nRusc2qdIKxPxQ z1k?i`Lfs<~<-w$aPYZc?0&TXG#W)tI=F58pEEVxzxrjc&f?5Mj)~l~02&saZNkL(Z z4NRU1^Z#4WKg^IX+hW+Msl3exmhBb)_=BS9zAD`t!?5`5v(GwQNW220<`=?AiMm1D zpX(Q+my+Llw3PBdxQ8>I`RF7>lpwS5ZsuOlZMWSWYE|Do)Uq4HI`(teZll-3oH_Gy z-6H2PCh~Z_UVBx}(~<|#X&76g(?aq<#YUN00KG0k>!8-L=#*_OyiA3b=Hz*D|Lk*7 zVvL(C17#__>xgm^o^iPK)>|E3G8zP#FTl5W;inRPfO9ZnKL7ml;dAL7C624&^$iN5 z^x%16?F(k%yOjc|lUmof&0-kPRuvxku|>-Fo6V3rm|IJi8Fp*x9!(+ToW4!X5I)dvDiQIrxu#psJe9gP zefzH4Ll`3S19}pKT>*3oqE&G$xJXW~@GDV%$isg%JWu+@O`)N^tj{~4iH!2QwoY7& zUR|e7{ZQ4q2zIJ-*r9EYF!jB;ZfsASk+{$MQ-2M^?)WI|wQYWQP4k3EOmSKCjS-D^ z-g&1(XcCPWNjWLiXF7%vcP$LtX;I*q14H=uqr@D8@nyvD$5q#p%A|M2vj0xME8CEN z`3)mNd%^Mm&6D}rtMi#Fr70>5`KzB5KX+D`mHfOh(TlL{ioKIo1UIGY=L*DDT9|1v?$3>c}T`SPvR!11Wy1b!%V4*A<3Wf5X=37uSx9uOu=iwfB=l0$h9{omUQ*hW z6L?J}N1A7v?EAJB0X(^p2CPIjv&G76c5z>`%amC0x|_`oIlz=vFIi^l2G=S=zz#d? zuw*?`k5_E}i7lXaVSDds*0YbRFezq+_|%nz*f;F$#Q&y{&-udFUBaX72?iyx0DESg&fjs6ssUr6g^oQR@i&6Hu zl8eedXDRb8^W)12oGjts#c5GqRuzo`RwrH+>b?Gp< zt4p7N=O2)M(EZFr7O+>J5??3!BK0E4DKfi){`?kD4mI1OtJ%|IG_)RRwo$9n)nVL& zdZo83AGs2RR4Ej-$%|zKQS!HiJ`R(xO~y^v5lPwx@f)|37Zq%vW5BDLAg3K7X*9{; z;1`nIau0cDdbx5S@N>~ONE`=EpZ<>hwrH~Y)->Da&}Mej(Fb{=Mn71Nua3%5_N>_S z>5o_r3t`Lm?BkC=b{#>BN+viRPgakfOTtb$nj}w$*ZIK9e6~@7+&W5H zTM`{4+55Q?L8G52n##1m<@${lX_e5hlFR$D=>H|%FY~yZ9PGO5uJeS{na3*rFMkWv zSMtyMpDx=}@P=Ut)v}}^S&mnxg;duC;FY`Xy31q~^aP%Y7)i=z^z5?mkep&X8K^wk zy#Y{ZcT%@$x3k8GDm9FL!Tc}IA)kKwX`_EYiY)P8=7hr9_iYm04jnqwv_R#2#vD z#O$?~C3^QrJ(_zPHC19Ujie$Q3DVbGbD?zYMFsp*%_jfPO!-G`w+?Bir~T=6Qo>v5 zi!VO0jielrbQw9WMJSC!>zEAr&ad<*#`zi3XW6SSPO-(dhE=i#`qZ*@TW#iLzWeUG zwm|xHZEI^y?Ku1C^;&lRiB)YIJ>T{_DuM5Q=tatz{_k4WX48%Ba7|@vC)6dso$%pa&-qrreqHak(Z<5~fnBCms}^?ju{BkWrk|R6p4H8)?;!QXU8-BxZu{FC zZ$6XujH}|Go3A)q34Fs!tNO`ZI@u}5b}FWP&1qHwRgoU?!0iKl{9XygR}}ddv_OVv z`*UlckUPI&5kpl31**vVRoY?RlWMF zeKfg$Lz%*tE=iW1xsf@s$~<22|4(WGG_;!so3+`%?1VE+T2$$8Ja@iXV;TEo@DpT` zDe;d9OVAZ;MRuh3vFRV19eKD}S809^jZQP-b3+WB@N97ezf_Y_P)$l&o{aumem%?3 z?Y8}Cfz^KP4YPOOv-b7s+J@C?SS_8m`IcKa&lXpn@24+y?PB)z|EUeG5&vqIwcSo; z!(|21f<&>jzqGmkn`HL=LbDD>i_e#)ol3u|pjE#Gc#R$R|Iwa!>N4l+?Y7(2?z`_k zm#1ZUx*{^0i|>EH>=X5g8-`frHEKKWBfDA1f`8ad5|lqa;H zr}5+zU6(->GCQL|{=~mW9%GiTHPZ)1mHwuCbTpf$S6MJ@7rAiUxN#<2SCbc|op;`O zcJ8_7rY-6hxgcc+#v^&!r|d~=V!T(Rn8}mhcVO6Iffm^w^-=Z-BEgSuzx@u(Op=0q7PuKhmhke*0PVXD6?O`em-xMH@~%L(ZbJL*i5+vv7`uCNRolO_*+*|lRUcrs zcv0bfS&U%H8v71M=FgKa<2iX&ef}Nx+AA&e?A3fBH;zB(MH44Zbf=iARV&#x+nGJ0 zvgMy+bAKvaFo|PB;oVlftp@e#Sfd7YS6amzH>{`fi~Fp+`*Kg7t%6pg7SLe!mynuJ z7F=_fl;SD?UROMi5Tk!0r9$hlO~{js=pJsR#gMW!2{DwwY8=(AOxKZY7(Cf-!q+76 zTYM)Z2P#X#SCX<2)|f^>E3hD4kcm6>7&w^`Mu*VMv17+NE+_bgGVnXT;dkJY6N7(p z@9_TUF`=cB-x3-R!~?J;Bt4>?9)J9C$IKluVuZIHusx|sVv_g$S)tCC4^f?}3TW^A zVlgSeP%O){C(EzcNVdRoL+d0<(gyMHl?9VSGT746$a}*4Mr(!PN)oq+!d#_%Bzb!` zVFD6j=mci%`kRMvWEaKdW`|9Xhfh%~=EaKhBS;h3I^8y0Xf@Hzz;h&dmP*vxwc5?M`nDqHWBxGvWPK=j}z zecmMrXp@3-fodoV97V2MEcda3c5xX|+;#=DPLXB?R~VTs17|XE;F@+vs8zE?m_Gf( zBIoDYQAB1V!`EmU!mYOzxeRzF89u!qZK81Cj|N^D!iKHGVyhfv!wvsYi2IBeUy{84 zqsXs1A&M!(}no7V%{VnJp z2CWm@{MMU<|1MaD(h_h`C+rtO-`)z5FMx)U!O-;p;6u=bQe}4U-n|_U@_GU@~w z=;LV)okLPv_+Q4*G~SIT$y?ty;d6KwxeV0Q;vIKP+_$)~v|zs$$s7s=Y-Slo1OFAR z=unlkRn!l_{08np1|)|H0RqBvPwDQQ&-1{W%po|ptOQg;%(YV1Yb(xAv_NstITaY2$lb9>&+jHnp_Mb^W4be9%sQfLE39XY^l8|`IO-w0UYg%^C zsPrOkx?0I=PfY9sLTdErvEj%AXN0Eqflyv+C3$l*i1U?3K=fe-b@r1hDY_qfKkf+4T z2m5*P3zZw)0-~>6bhaQ5n}u+_o<}HVNt!41{;pf3zibl1&P_u&&;yY~wrS9mwznFD-BiS!4{u`(HUXkX%~ zoIpRr`=3xqWh&Q-adr2&j29FB1+ZeVtrV()&LB@gF2OXr4?ETm%NPj3N2Z6CPX?9jsmFLRXHz8!K_ z!Fh4|XZHS&bL@C|;WSYAIG#I^Kcy_0a4b#v7UVT|rD7?+H@o|eBwR;k;dp5#$0bFE z*prfJ*UQsxnq=5!EzR~Algar;f}(dQ;wH^J>JmIp>H6;{7;Rhu9Phw-=E zVXsV@V0%`nW~a>gMBd4V=-zVI*kWzDc63uY`zS_u19yGEO9Ia);gEX0iD0STS)O=1 z%9HNov&^<`Yj*i%W?j@C>MunIh@RJ8P&CX=;%~Wy47fPmJ)_746+2di7Em%;(*maR z2Hri$ZBwLX)v%d`-*2+32MxDjcV6lIUYh5LeIj}8r=Q8qX|`Dw&rUp*HMuc4=-9D> zerV9|LVIDmoh|?VOYN*)r`yl-=GxC|DwdZzWh2~!7|Zx)M<(K!pHhDsJzCLH zn<|RxRJmG-R|~@Hixi`%8awZD$$?`8-SZV;Tt!Z)*zxDLK#$YQc2B(2x}0OyTb^@! zAD|$Ooql(yJ>?j2odC!WbRr_`AmPKB@``xGU}^3Ij2d*q4L2AOe5ap&y2IuH%@7Hh z4h+LN=bV#-TSF%ieyxX?6BU35XCkCsx>W(~xU+;Q$5 z3cu4=Xp`uPkA4ji<;sV8qhnJy<^yt^G2tpZd?5W*hAF{NP4{DzQ9*y77Wn8RvEd$O z@60oKsIQoM0mDR;26_ly_k4hYV%`Sdrh51?|KDh%jY_4D&^PH1*+{HzpG_4?)ey7W zBzvn?(`;9Lg7fJI=<`5FGEM-ghUY%V=u^md*ORgpT(NJJZGlvN7NCGNYE=41Az*() zjpNVD#6U!06kDgCmnZ{X#GY{MvBy|78(?eNcCtGla}&pZoco&XbMPeHQwo5H{pU*u z`fjG+0^j#t{snv(`h#+`xV*&se)#a=He<#NJNoFOU8ezNn)@MlvBhBbL1$qfAI^XA z@guBhjdg6n+#|*aK%Zz~CDU%AJFTuQoow~)k* zq$4B~5~iQBoWEQ0qt8}yON}()nP*ErS7+cYaOtI&x<^iN?`o4xHVJqmmxg#2JZ#cv zq?UEp{#V+r_y^AmOKen#9%XKgz(_QA#@RsH<62k$uoJj z_KUQT<_W+_&P8%0Jo=J^D@w0()!&~rz6ZgVXf5d3@FJ<=nxBB=vdHWT| z*9(3Qp^?Uw0aqr^sqn}zbE_A*;P%^Z55kr&vcIf5Vz5(5*YV2t-$B7~$0?uKg=RZv)LEI#M2x>6uvb;i(9e7`@W@}z2Gr#x zdF01C+#|KI`+@Oa(cdSeN{*H1eWqU0=kyTTH48!Fv8kUtyYA{@(bR>ZuJ$i)Z&6@`~Z@S(?L`nPh z?E}%`=;TDZ$WbTB+w0cv9`3v&ggth+PswgC40Y|+aBi=}w3x~xx+nfmYV$)O%u&Fh ziqIHAlIRe|KcXq-0SP@N^+CCY^CHncvu7o)o3AP6V5!&JG)%M|f$PxB86lk5{qzct zd~c14uUsvlzEeTV*#fKGl36Z{>g8;!<+>bi81T-(v&6Gp%2AohQ%7)bmH`6>c!D-O z^1-T?!Nzgq@#dL1bEbv}WO@!-B(rxVnJrt()3FqU=L{anBpNP`h?*dwP-zGceuc58 zpZbx2WY=z*zOUdP9(N>ii&(b&vNHW|;dky|t+w5$Imf)_TMHlj+9F<;)LnyKTHRUA zj)}Um-Y|719$6jtlIQ1DW*2D*{+q8;k5+6Kv;dwplO|2_s2VBbe{H)|ts)Qf0cMjY z$&KK%oOP)wub?&!TG)3wtGHhCx{~_LzT!rKd^b_%L3#S;p!X+Ew8a+%e5u!m!Aja8vNka6IA$7G!8b^b*0SU20Rv-h+~|ErUJ zD967vnXSkZyZcc^yht|cUYR7$x7!-7V>)U$F8!}|E!$BMBTeMqMDjw2D6TRS_rgoR zYZoPWen62iOU=5;UHe{b7kFf+mAR&#Pu_rb%YTLC|7qHxfBGNZ=kw1$@A?Rd)&6WE zU}?zZN-q9u$#>?J_r6p~awW!^G->SKY1tBrQ&I?(?4G;p+Le9T&RsS-m=^i{Bs@jI zw3QLmlWXGrOtc?_{)0y`-qIux{8WR_d>}<=J+rJot)nKrMAS|D+R17>~?mOq6l1%#V(jBYBp}b8V?^2J_1U(|Slx zs8ZE0L1vR&dH?&` zB=v#k1bOC3W3?#ebJQ8~Dn9@G^KG-uHY-|q!5%>|+1qcwUF`AH1MnRYQpFL8POD2i zzw~V44Cai2(ecO<_Ru%Tse+D#CqB`Gctf0T91+WWf!N=t`2mmXC@J4@qvQjAN zlZ}4;&1|UjjL$Mu#m%-f`$Hmojsj34p<67GM|-VWwe2KDRVVCDziA%H03XMkMsi`< zO}W=*c#b~Qkx_Rju=)VAy*lDq&z=Nn;nO1xNhmI-0?!|TjF-cr%hIc^y2^3)X(yts z&`q$ppyO+yz@uC!spFyfcEU+ZZ2u#^vL$w@Y?Tqa0pduhA=@c55;*2XOyDEU+#H9AHvfUPbNI-z{J($ zK4^lGaYg!HP22-fNMO`P@6z-$^bh{MLVZNf8O9aj>=rri{b_Q`Y8k=>1KjhpRPv-q zAuC}A^)Bgyx8VvV!IrtKRw!uzk65s7WxB&(<&hsNN#BZmocUYZ?hIS3wM0Qo<&fFa zKF}DlMhI`d9dDKX`|zXwzTWHAJ2Yt2$m;-)(w^ijp)TNgE;kXCa;4mytwADkD%<$C zR4&lfRM(z;{B{){`3ad#4jHhu1tH_|qb%=YMR?@DuOPXt>MOY7&LHo~vfMopB`Bj% zvAkW)P7keXq3vx_DHz#;}M7VJ$ZPtVKIZJPrJd#cu9lRPgEo_9Q@ki zq7$zg7{Yho=Bi22W8l`ds3f(cgdr6jvBD!ixK4}?LjEIkQb80HZPa4+$SCa?`FMD8 zeUZq~Vy-Lm?n|!-p{`sQvk+L}srccUa$81q_jFfMXUC(DJS*tSAb19k&Xdu{^)j9Z zFL|PPe^Z_mF>HySd!$Fe!`v4y=IgGzHneE5kvvVChyC~O zFSy_W_Y@V(k4H1e=_sHVMk0!bcf-7;EL7oVNo2i&Yf0+;sM7A)ItbdL$Eb$T)`;WK=lqw9_14oI2cm^G(Zr&+-&d;gQccy(l2h z@G@syg%1P`S?cC2tw%oU;owW;J+45gOdjWE4F4V4gm8ZE^jkA#ci23H=bkCt|HbEu z5Y+VY_16;n$OVzg%WPM-o{E0`I8?8;We~)en_Q+mAHpjy2!5?pbEfgege90x3xZEc?1{pwP36W3CPvZTFCPTMl{z$Y55nHK57kl*;1*%>U z!k(=Z*jigD0sE$&QMf%sfn$4Z8N%&12KCLv{;BUO4c$Q@v|U@l=XV$OF(M9cQ#X<- z;zSOLzs(%7@R2IE{$?#8zOA4Y(E@+7_qy6u2Vq7?DTzrS;h=@1k3QO!U6fQNVX1_& z6cr}+M?-!*2f>W+MsY%+Lir(lwp7#y>D{T!hJ1NJxMI)XAfEFN;a>4ShR4!OB$))K z4qzVBb%5gC4)30``WPum{-W&d8XzsarVmE^o!e|0=4Xp}%UN1E4u1ZHCP8^2T&&qR z8iA<7kRLpBRvux2i5z^6L4$-mF`PSdAV+Cqf*A>8UaXuK z<_j99tc0%4%{Sgm?k=+N zj20mT-E+4l{<-d5Og{ zHQUiXW)3PNCvp7d+jY;XiEA<&hl~646C~9}iXUDWDh&A{2p`xd%ks4JrX{H+iCy8} zOvr-B@2Ro?L;k0qe&YG%kLVb}G>Px>(4!A4%)E*wgTqUIHABbz`T1_3MHh&CB`@Tp zQAUXqLL()eBUC;Y@ocFHL{rZtK_W0Y7^*Vcgtov~&+&MFen~pVBzi>>`F2}M?U?a- z?o$8wV~G~j&&++&Kj5ga*+bvHeO>=x;T7i(WHX;k!#p}l+{ZQvT89oD8qjrPvQ~6! zoMcuQk@c|kzm@G!mXIt&eSpqPg>Q<icXW2!z{a+`b zV-+TJ&i93j=FOYC-bD!{S-$pK7EN3Dxhy~71~ReTGGS1V{aTc9GAtQ-vpl!%lY57#4P4~QFiba_dHsmqhg6dB;j zN7$)B$CLgDPu0)S1k@8py(ZWWDL8(;lrBHU7hzOaUww7*f9eKdjwFyG#G6n>DNdf8 zt*a8em6QnB%en7yvrQESPRw^12#6a(@p)dtWg!{5lF5OnKQI&}5n%gTZZ#!%NS-Q5-j-LD$uq#8miJE*Gd{pXL4^7dRw$*! z+leq%5^WM*3+#Xvulzi|=r^aFa*9F?-%IXeL$g+8%Q;E0i$9C0);0Uj;fjA`nFhV2 zoJ6AA#p3bN_ZD9Ok;%XQZhQAR*(NC27WIWR~k|> zdAC}}+I{tn)lm}WGLd+#QT+yXncBJah8vn%!gf}l9;2{i;IlMwPb&^sE<*naTi0Ts zhg%Z%Owz7Y;u+vwP3RIK*pzenDVE>mc-40g3$teVan6an&Na4Md&Pb>vr6wOzBJ?B zspYR~+wf`6o;{O%O{jN-%i&iZL7wOmNCk*?L#D|i#{bIz?tBfj0gwYE^ovCMkt9<_ z;<#&t|LPWkG7y5;5anG~SZpM6CU$D8(AIWl-8(D1b&%QTpC!5u$r6E>AoQ0c$Pmyr znoMhJwgQ01+bb_CuC^2e>_d`f&(WrqQybJz?n-V9AE}!(6I9dDRz-4wwxVq`Sy#fZ zMkeEqjT<%EnmzWUAfq%MuHQoZxU-ThD=y}_m&{&Jyzcpeo!CWv5xL$(Nt>@6Oy;cY z@<8{nQ@dN}eSxx}>YDf7cYaRe>!S` z38C7MJY$`&BcvC}kbx^8DIqd2bsVQ}0NoX@jqQf0ASe7fEtFHclU`dnn)ZN$%zEin z-`v~m!TVy#xqk_J-?d(zZNF`Ad-&mp9ae-Z=&L~9BxsiXY}eQT^@m&pPr{$s2t7qn zlnxV;nE(-)3`~fOPKI8DKBP&sCm-b%T==BmsL`{FNfEF%Vc~30tDhW zjzc`pOE10T&%3TgGs@31Q*z6GWMeVJ!w9IGa{hLY$<>EvGu!jkLSwcEuy z?s=CrvdPx0>ce(umv%Pv$u(`$&6;~LK==VAB`;9d|Cx`_kF;oP%zuFG;=a_GwiiaZ zUk7wb^XAR0O6B$Jl;g|}S9hH}k-nSIRZ?YkH~K|cXvdud|E2fQa{a=q=tuI9c34+* zcRAiTtPOQ!oInQdu)_|10enirSS@~f5^$ao0{)RXtqhqyheQvHq(yy~q5PNO*5P&H zb@80cUt}-PIJsy~iS?^)G|7R&v*=sg8(AG?_@F_9t!IxX?Z!*0Wku&Jyt?=;#vWvb z9B&*lkmraxHNU)%RNhW~zSQmF@33keVGfzf+wd~5U=aE!a$Ji#Nhl@c1vU}JTnN1t ze#Zs^bPS1*BO$-BnE>aTO0XK^U;)de9!lGmc(WU&raz`()W-Pkmx1t3qT3{u#z-p)Yqd;aFwN`Yyp+I4@LCHsX zVZs0|C4-MvOHE!VuEa8-X2QXshLSsM*f3YPP=*lVC}#3zaY2l7q19KfDuYy}0gwNb zrI24Y;9(GnlSn2ZDF5=nF$}NrfXx2LjC5a56F{2`BjqsCVFc>dt(z;44AvNAqr#2C z7ja^<-#oDwBcwbxk_xH)qKVaaG7L3cE7xUy41@74=bdLYhG`VO<#ub|rL*NR(_KM? z!J3I86At)@XTu-@KPf4xRa0Fr&i~!E>U@@+bMkXGOIW95j$fS!!wpITn7}+g{4Gxz zSHk5P;D&gf_mD#lajZ@zyeP65I8nM#I#5dFePwUG^_EYJ+bd52SgR|2s?u<=teRJX`?5=bLT46{nSr*3cxl=P9xhjga=SKiXmT>!oz( z>HW5o;-h4-UVnM-`9!*_3u@z`VTWK4=ZtTvLxpN{{0RzS->!d0Uti39eGypI5BuIIY6E=p{DO6 zi!pQ}S6SF%!YnTtZ(H~p`L~;RR7nP1dF6jJwyemfSJ$$8MwyM3o%^Sc&DwMnH2uMa zcfgL_|5i;(#73WeWH#wZvpZ$e-swoQVKRrpwr)b%PAJ?hTC^xEEXNkl zmz3`sx6Cvn(wLV}M+fPwA~^t`FIk!Z^VB=DXPy=CrpmkQ3R!)7nVs0xY~xnR+cJiZ(mR^?$(wfK z!ryHBcDvaL+iz}PYK+0)#A4hgl0C;)t70|JJJ-f;@o(?v$pTjK4P^8?@4VwTUgobBdj$LgK~&#r2> zKd`TiGEewq7vo7>gwu#(Rcnp2M?ShuMHQn9=?HCw@oe|qcX!Nh76#C-7^@)qe_ZVF z9T{H=ZFi&Ubjf`dKo~1C^|p*l?0K>C^ba&N2~Rc`A)~+yzVF^CG6M{-UOl^6^;%y# zo-=(KU5NLCGsmJuRc-R^SJ-yPO21o;2)zP>B!)_KPuiAe=e@D$gkcaPBeI!yAWw2X z7o!GxnIZ$-Adjp^_RZ9|$ie_)CWLOsb&-%4=riarg1+>A0!A_N9%B>>=gUpgKUWcA z{B~`NEed0dlG*xrjnSU|$@mosO#Eud-cCK_Nul~r6jO;;G4i0p&`!ujbh5*>SW!)V zx+MBsMkDk9bcrQPYucORcCkz3yu8i!^JFw_AyJ>_qB*mi{QPCoM|Sja6nVpa(eDKR z;)W*L@+jp2!tjb-t%wz?RePbe*yMg2|Hzj%bJrXKN=J~1rd1i6~Fz?-Mx83}m@a~u^wU8bKzhW0aW}rhdFXwoiLo$}|Y>Y3o z9q$?gZR)~C>it&LZS)cPeUz8cU;Nw^XJ(jX(E~<+G4A{MlE~v!Szi3fJ#C3 zlbv=ry z$}Uhphfu{3UZ65kanYm{ zc-X4Eal`uSukZIFT#;~LjA+u=8b+)9D+ z>!o=6d0Yn(#tCt~Ci1>51>Ju&$Od`;2Qip`q^x;JB+oHv(j-5J&}1nv9+FJi)G=O9 zNIK;co=Y8<3W{V&tp*`HH6a<6%YC_?dsBZx=?E2u{}E5*YhTxe7Hlu%i4{~*F)WnA`{F3{eg;r+)L5Jj1eEwjSf;ws|KZnoPV9%=cd0(%?RUZ-7hDv=8f%3mTvv62 z5Lzi-@yM=%|F|eDJL`PK1MB$Sl3}}a3`-TF8G82#zo^aQGioyId@1GFp{D2~@G)VT z^1|?UcagBjHL3P@q6wg5n1a11Wm@P^c|m$w_*9>R^ohL9FK|AbvzGRswAbD%2I9!y z#BzSAKHko`ese(UAm=nG@X%9g!ux=)AuZe`WjQ=3h1vO-V`IjQ@iv6l?c1$Rm;EHhmR2 zC!<&xt!M18We5|WUFP?uT{s_#;~V#wHEWjlmxaLH^u0JN-C!H%5BBq1j3)~pdDP$2 z?C8g98w*!pXR(Efn%i$bT>aA6LRF8bxZk;mindq0wl|Kq)>A)L}% zWh?*0?)wR7{5x+)>PNUfIOXuQ=Hfv%;c%EB&{FxjhWheZ+V`=J)lew^--6)RT>Ko5 zl~7q^9&G?lJ48G3q21Ai$fZNO0=*$aLjcMQl6R#;H2@DIhXdaSHY*t1GBN}i#eJV9 zIu9GG-JjL|7D!wxj5#$t@e#&Qdfv)<$6Bx`uX#}59jp? zVdu3I^@_(SD~?O?`Vk{W1TCD2kE?|>?S5gD*U@&myoSdar>a(JFD%|qG(PwAd#^5E zyf1VJu+@1-k+*4EEmk@F0{hS*;8|pm4BjrQJ#4@&R>>JVH6pJoxCWeqmYN2L2!ZhA1Px z|Hz~K*W!W8Yj_)(4MZ8xX!6<&`9I7FS~k@nbsxilUr!q`uE1B+^jYF3;d$<{``>k>3#SUk+WKFTr={ zOAEBlH@w669^oM%gip=%C$DEda!#SMKeWPqde#uZCkU8`N+Jn9Yab4_3%t4XQeByrQbDSUhA@$KBliFx* z^7-O1=Ac~n!w=twPd`}}wpuGcJo<2=FH;T_$12L<`S}26r06tUJY!<662kNkzYfnl z8N&Ki=7zI-gz)%dQw2dqUZSe{MEx4RPUmg*M1AvwMn5Xu5|x9u7nWu=*`!-dAI# zxFkKdew61%qiQuwhDrAv`(1UaA`dd^PyHxIg55oy_{FQ3>nW2D_XD0m!rnca@Dd`N zmk=;k$YlWabErJe$n_c&+#>;RlXyM*@X)~X8_&T%w8FkvE4%e|os>j}>*4-*FL178 zfIqJkMysP||NXilR{i{eHe2%G~?`^htvf(kEZQgcU zTfMRJZaH(H0Eh=!-XkMz-o_g_Z*eZ(dE65opdYbKzoP!!>xV5jvvq#0YRg`H+2*hF zFXs(-lX}sAYu2n`zc*-RHGlZY`5G@7O+fsa@fPX)+$+{-VJo}lfl+>(x<>w4_^tX_ z&wjSx#GY2A%_dew$MA?CdP5T>=P~YqS43siFYn)bnoWD&=GSg)YYi4$(Z;Q9{XN>- z9F>DM#Iwv&J2aPP&(||&x_8}I^3rIw_P^XKcCpI9iwN&N2;^nu-ujyvKNa zRsH3?5vdUQ8c%%SX7I?GskX*TjP{4{f>8n~ml?D%5mvl&JVI$_h<<@58tuwCc=To? zWGmMqH{nqToJ6&O64VX8ydn)?uG|)^^A5ZTCHaF{`Ywd$|hb zHFOzIo#1(Rf60U_Z5JYK`?gv?=2qGI-ft zcUx_F!p{Ew2Wz6(W1bxz)IyZie{zB??s=Lm8+e7)Jg2vPr$~ra;;-)|d+X{R`RW6d z&$G}b+&A{Mc}*Hy{i`pvyiU?2m~hq?-Kk2ckW*kv>FU5ic* ziNLrAMei=Q@#;lp5SfBZkpY6;X+(Py$-?*wU(~Hz-7dO*w!HG!x4Zv4&n~&Dk;`*< zo-r2P1s>sj($5%sIR;;Gyl&kp*1YBSx<~yaUoTwvi{x`HKMxs)9F2NKojUVuz-_hc z0R6A6aB$$KLH8s+3Rvh94r0e{`80*eO5BtK1*{;yEZ6eU7mo4?yZgzvZ5k zgFb-ng10?-Knuxd znT$(3h5iYtRNzdwj(NmcZN=?1#9KjGz51_e z%aQiw=hf`JsUNDpQRCqKj`rbMcrWzB)rn%%FP^u^oNnE^d31@4)Gn)m8R5BsiNeF1 z_eo?5ZAPEqIIMpl3Q%{&{_uYqmR_GiJduHpSK_EE+~ z>N8LJ)wHS1Q}b=Rb_-R{8s6W~S!iSKPdji=c%BFsAVs;JvUn~TN4;*e<)A@>lJH1) znJ-;hS#?=k^?b|g>JO$bWCBF_QK$4BtI3xZ-MoF_N8SZC0@|B#7QGvp#|MaA_yhjK z8=W~9e28p?;8|oSQ7L$?7iZgnrxyP5on+Qe;#Yab>z?SkTpRg__e5L6@6pbX&|Mpg zchGMI)vJ5MON`qK7R(p_Cm;vm2j1DmXH~L>nkJlg*#hY-b*$Bdg?525bqdf8SV%K@72N4Kbr11H1 zLUz4Ch5%1s$dhNfTeydy;FT zsIs-QrHdO|)#}gc`My?tT4{XtL#y1^5vTT3{S$5S-t^CG>?671rQRs?q z0SU}imhfCxizGkMD`90mkOrpET%JOBbN27w-&fV~Iw8px9>*FG{PuWzX%e0Ep3JP1 zlrHzakP+UKY-zCbRbrlrPb3W@L4w@>l8j3R9QQWbO)JX{H~*49#b!eg}L3raqN zcc{TE$v;vm{GIWuNuqmFr1BU0JJqSrv?7e_KOp%mCEw}qe}2p4!f za7@Ng_k5tg;?dei9u{vu_k0K&ZWO{!?UhmJRk=$gJfD(fm10Bqo8IT~xX)L{N(V+ zmvZagX~;^FMB%}#iEvPuxO?sjA3ymJnlyV`(-*Q49{Ezf{XHP_rEI&mPBxExJSU?U zP`0wzhnE`OqgupuZ#UsS`~C4yO7dZG7nfo`j&@xRP#35b!reo;py)fr0l%4=ck-m- z3&eW}`cUos`KCLB{LOa`3l}6jll;IJGeTHb5hi0F@V{wa@4l0GcSG;Wo)s(Y$C~s7!N#~glg%Ta zJ|L*2%*%CMkzM85v95S=_bJvPPMTD#F_npHIk+FTYNf!#Ru>GQ@bh{3_4k zoN}c=_FTK~pwPfx4CkCORUW4^{ka*lD2MVWcl@{z4%q>3(-6L#nY^X-UB?H(6bBYaJ=(+HZiPU>mwyaU!wl~ z+iI8WRtr)=hUVTnSK2Q!OU68JANq+Fa^2&WG6l<# zJQuw&Rew(&$k@OOIF1<{V%*1LUJEb*4}9iIMC{Tx(Vv(D$S~;hP#F+?z98d%Myc8V z!dscVJxjq`x=ncF%@95dNEGMa~(N_Y!VUm{RtWcPmSJM|@}=df#21$xV?xHy`v z0Gr)ggm7W+;?5}CPZWX{%6+b)#TSouBg#{TU+3pkJsbX&oh($9Y_4u+_;!@n@t3id z{>3{hZagl$`>M0W`-C6mY~*uDyz2SS98U&lkIIQpqr5$VwnWxsBg()t9pab&GCCLW z$S2t?5hs!E5&NB_Dc#I3;-2ik+_p#85H319`*FHlK`@n{AXW?ik_=R!Qj(S|O>TyV zrTTIl-b?82g~CvQxnWD04c<^-5&Z=_NGcJf4uS)}=x;LM2l_s;fafl5K9X9-%Gf3{ zEzi~xkJofQr~g-~gl(j5sBbTaHSBKR4`0`|Az^L%DU2BLf>#9_KxY458FgIIWm4xy zpLrpCH|NLjRS@gE-9z}shi@R z3R=zqOHXktYNO;p+&(K{b9dh^~ zHb>s5QWmp6$B#dmU4E@jJYES96D#(aWtZhY?MWTA5R>$f;ClA6D$UA0o>UOtAFSxJ zDi3eAJM(n2cRsb6*W9X1e<%7mtHT$bn_whI;{B0Whnx<0De(M}Soz0OAQ#b=@FW=R zct3;Dt_fU`OCoO-n3QzVvrpb=)k6-XG zgh$p>`n_MDp?V)$u3)$KTi*BTMtGr+j4Tq-BY1BzhQQZ&eMN%D>HGBaTtpipzleh1 z9cANT_GR0jTCPHb{a#?mkJ<(;Ncz>bu+f2&Pe+jB~Sz1GXG znSCSt=c5l#Ejj_Vx!vAo7xdTQbwc{FGXB$q*B((+TlW{9_sFQRy8bAArfWZh{CY#O z`$}y;s!yR$w$fOfE*YS1u+)6#0Yj1c$3EK|QUWvKBDNf2f7dXqv$?n~|yADTxB|4J+J#yqwt#)>`t+o?( zbnDbo%f7AQ($4Lw;bcd%Zl@Hzo@gB85|J_q$`g|MCbsD3_ExFNQ0+>1%~EG{J-qdy zf35eOUEGTlLy11%J6Dr0ymeFMC;UwQ1|m+;eN&Io2ar)E5fLlMSTOHXJ(uBmyztR= zko~-WA~cXGl$)&&lytAG$9LF5Sv?mjDYqo(7Mo{1C39!my?@5cY7j7MJ!jWXqB^fJ3oc7=R)_Wc77G>sJ^~B5&0YyF@hB1Jg4gB)Kdzx`Z27aH%;Tg<4 zlhvDMCjUiIVd6KXak8JKmTkU~a@0$8PbH!W_z;DF zw>EtrzTpEdKT!g~l&_?ct`c7rM{6}z*`J~B7k5VCe&&G4Xc<*q2H`1<96|qs=y$0E zKUc0XK_1e22yHV?3$DfL+VhGO9HxlQ!;*DQy>3OP_fC6{RiPEwQgkO4ScOOnS7Y$O%X8bf(g9Wy^k6I>7I~ zuoJo;?$FkS`beT& zJp1V{RjT}MKQF#mQMvb8wKclh+=V0USG(1!S_hl`*)A)l5`R%Cv~Q<<3ZLP?y?3^U zo|tUk%>Le%X^bsNe|~q`C)VxkE3DP}>)Ama+uNc0wO?sZGU=7K?f>5S(6-!kBRl** zyIY4{#Qeoj^K~WgQt0{tXV~6HonU-SeFicA{mKp3S7ZDpH5 zfRNTq0?GqLBh`pcf>{(mLXuV{p)?RGMnbJf7+g?fFnm&9jGPcjUr@j>43&mh96*^P zlrfjEU}C`}gb6$MB-}RF`K7sciRUnJzd^<@g)`fy)67PW)u=Sf<|zzVUZo!9g<)&3 z443kJaw9ng#Z3A_p`+B9fr`mky*hQRx=z9@z@WxphEiLEWZ<_~WEnW=h$4r|vx9I| zAYYG?4e&)InL6=|Gn91kXl3bBEWu)p+^Y!@>W89A5;=(e z#K7I6MGK!85E{t<&j+QJep(Wth@i-k5Q_GWa6BblSL8SonZ2Y@4VH#>!w|C@wTOat zR1$UANh>iM%9#JZ>}NKpYxXNz*0Q3#E22r zP>TIv9r!^XjE()YXhiZtLLSRPD0wW9(P!XM+FrRbyzgU#B7_&^4r4SEC*%zf1Q@3x zA%6(dM7{vOfvosV2cOnwD;;}V$|K3h_%K0R-3Y!WF&v52AY?e9^dlxOZ411^pV`FzE23x3irN_~vSnC5-t6LW>=mRMQd{-5%LNK+)#5G&*l8H8a z-9t%^P04mE&-++MRv$vgU|~NR5`X|e|GDStM#|f%wdks6fwqPB!uz)gb$p&pd&(+X1 zGLhRk^-^FN=v%3i<{H&oh`(>JW;KuTW9TLj?~X}51~-g$kB-09PCO5|hRoJTy~C=x zjr>DTj6^%}ZlbOaGy;TfhP(#WuQY^yhpcD3j?fmgEB%GBl|@w`&X`Lu&%nrn-WQE3 zrMXA3=d|8Pa%dg1$BWTNioH+=q>tHQCrKxfwtRe{e##}(4c&m}swG)n61|eQzWw*B z4tB+`8n#2bTJ8W4;TdS-XCBS7hwjX?{zGN#)Y?-2>l3Pfapj^0GeyWGbjj0uooc`S zF-d73kFz;>|F&992S~p@&d22L-7k`Hteq~aq49WKhmQc-?w)(ju&k9)dl?$p9UNcZ#0P!W|G8B@sM~a}wj^op;_@>ny?{3KIi%VR zU5qi1IU0-5Uw{3r<%hy+i`&8wo2xyjA9e;7F!;rh4jr0#5>P_u7Li!=V*v%(ff4k; z1NT?^B;+yuZWAjz%Oi?3-1^i}k*=p4iRkv5c{rIr>)7^IIl#;iqavsSKJ9=Fgmz)<<3GLI3J17OZW#3sA=aC>LaD)PpiL_upncvhv5=hC&kIb39q^48c*~? z7#ZQYgdNI5HkpJjTLppE0kVW7P?2P~b2t~0(M6IX8bsoyiQkI{hR~py5*;cYaybb&3n`jOKGH%+Ai)j^ zbQD>U+z($;SHilB&@T(aQ-YWHPRV*#7b3izb|FD3&@jA1!p%uQ1@s5JO>!awxfiFr;#5$gSp?I-+2v0s;@?|8L+e_FYCl!+j z@R|RG&{B{fDG)iyLP@kcJWJTwloxe>&9lB#?4<~PC+rybASqv=vcmBPalBIH@Y*#) zJZT%xEzD6*mX#S+nY>>K8}wV+UrLpSqyi;C`yF`TflB%~(qW89)Ccrdl&OS80}G(Z zp@(V4{nAQ8y9SDRr%$W?nY21V>ky6$F9SP52sTLsNq&g@CAlAC3UXYFkRI-iTrZAj z7vOZ{@$9Ea=}pR#%w)GDfksAVBTWi@ca-ha2N;t`^hF@4fJ<6YL`d+#Z9_QmP$j?0 zs21Ji4vFF^&!^vw@fn_?@54LWE5!NZhDt2C)vn=C$$sajs#U@l@O%6H(k})}q}sY6 z+^B+!BgUe63NxM{2$(^)D08;P@^OzT+g7?vfPb}^mE`MMf|GlpQ|FLB`kwH%lE4Fj z5qZ01m8wbXz8|JeZ-en-YusZvRa>(=w|aYE)#JTinAClfZG^%iM6VYlD^0Me*%w{k!iA@oUk=N2T0 zBl%;Mu=m~_LieuE3o>V6s9klhBwsVOASaLwDn5;nBS40&PNduq-mlTWw0Pn03W{3r z@OBwI9cG7dkK~^u&y;a7>*KSZc1wj&qfhXTfk}(RctGDlf0r>d0NH>Zq(#*r9DavE zi|3a6SI}T#t8Inpad6p+faxx|JfU|yEuE!+(5vAg#v%A(v7kN0FeQFA5X4R6M!Pt# ze<{2i;7We^B^^>{=8Slk!e8Jh;O$62?Obw32)#8eIPbI&uD(EUR}$gyI!PTFccWac zQ)f+2c=_t9uP7nzbeAi6)+5M7Dp-c0q07;i#bVQbr+>I)wS(4?LD+c@9Ztq>pF<*d zklT#4z>YAlh40|i;s|IR8Q)!x;T(7Y{hc;XokIexlS{9O1@Zjbx1Ud25_+GJgl&jYQ8^F4JJ33XdeV(CK;Z zZc5NfU75cyRse+qk!%#%5qTT^gM`D#80PeGKfgfV0+Rv(MfIfWM6&iR8-#G~IXA2Q zQU(b>Yt{Xt-FUBx3UP?0_@04^0Tvh=0dp8+Y70T_MB7fbC#LP;wManH$kE8(dnz0& za+>*9Dxr3tC3)1Lbz&S&J(jx7_zdLaj?x`6hmU8U4q@}EAq}GE%`=I<=p2!{jfcZA# zzYO~UxT50b6|vm%{xY5bKdQxCuZI=~9c~dBG-Jls;eZZr3X1I$9c$$fJO5g1FTv?7 z4)0G*+!2H$pbY=eII*fi>%_K0uFd&jZWu3^ot+Qr5jywimp1mr^K$)u_3i9%$u+}5 zha=AjTkmsx01D^54?oR%NqL}kQVW{;;b-CO0XKPFx7@p1xOB+f;gc`EPCdo96(tnD z{%%g_bJ>5xj-5^kPbmTJUrFNk3R)2@@K?S>1hbwY`2lAS1v_=0ypg<$TK!MkFOQkO zr0NJ=dAItcmpU*ZjLHheO|bOj6&t|P&qYj*wK5yzRhK*s!Olb?W@+a@H1;GhfN495f~ZY=iO4gotev zQ;5NVg#_-+du2cZ`xOlK!`f`>c*j58HNr7a;{d|-$%z??;vR>Eu-l#mcP{@A3I#ar z7&55~%Bi9Ryg=%S@*8=NK@7#UIJ#eoDh8(2iQqpJ2=MKdgvyQh@%d1|1d)@(sg3)y z{mN6tm9=QFb;=8g zetq8qMQX4*8S;5JCIN~H@x>*KL2+WmG31pzFI|ad@|KHOgi=ViFPg;jm?Sfyg_l#Q zI72=%h{Zz|6?lJ9dB$kUVgN=C>cpbjik2@JSW8QfJ@#1Iq7d~v`rt#ti!A<}dPew7 zvn9s423oMfa6U+R2QVl((eEz1Dun8_1!69(J{!FzOKryk3ye;cgt7mx5Z2cWca1f* zubx&L7Wh^0E{kMoyjy^YiV18lGUW3t zj9-dg42tA%J|s5}gieC2KxSj;EV4N6XBB=S-xW1gxI`CLb-iTopqRy+EA)n{M zsMx-JdzUjfh9JiwWGIFnj`7^N7RPBD!F{9|G8wngRgvXT)cw$TqAu?T3ceUy<%OHN ztNh#7Ngt_Pt!&pn{AfZ>4wOtSAnMHc!Si7xT_AZaMk?{sLwZ1*ODTd+c_Q8qFHZR- zoPE+F=?hD}E#f`+U9>1jXA9vj*?0HaI`PXsh()o}jtZftKBs7b__&TC?6*M(ufG`l z{h;d$G$+)m(n-8t*m2Mg6FO6#u*8oF4ef=nq58`mH%RRNk|;ZVqr-rOzPb@cPK?2d ztaeA4_(0V;g6HZf&%)bbf@E^NV^G;0*jLG9>c1qD=kT z#=Lw*Mm-EdL59ScZd(BF1c$SLzZhZzC>qCAtG2Hc`QN$X_JDLJwcV)i$GMXZ6c3)w zHbT1_iPsxC zXZpD2x>miG7sc-O-+T1z?;4$Yr9b}Ii$c=B8H8(T*cv17cfCgx8M=SJDJ(6Hu;Voy zm`&OQFK)g==&*?ID3DZvQ-Vyx6d#1n@j1CrN_9?2(DFRK}w86ee6P_yJeMc8- zF^R5Nb#Xrb%XNEs?qGGr^YzPbF@;fghiLN6)C3O<9scze`Pu|Smh;5ACBo|?bzf_Bc`cDKJr z6aw^zmt*J7oxSklFZOr;gFfW9p&0##K`KQ)?~eC?F$Hft6x9IUNqCon9|%DRj0FLN z%&iG{h~eoMj8l9Ddab}x*Hrj3;I=!w0*UMXabstvtRb$k6p<(ZJWQFYcUDvDlh%zy z5Kg+cCGGG|Yc-SBXG~%Xrxx;L%Jg2a2ySi0;j&54sxRNs#UAzGKEv%%m^u_n2WRxp4%7}VgWR- zpzBcxl&!XGTnPWIk92N??ja~VW6ufSQFvhBrGJ!9IE5@*w%#3oh;wH)iae{*f%yWK z;5LRd6d4#tYG^ro{;7?cgR6Zc4~AEa}teXqJw)PCe?Xv9!e$lZ0@x2|T9 zHLl}DS#I6>oJqs{`Ra4s<~flfjz^Vo?w&hj6c_&G2hTnCjK^zmyGTZDS6B8^qFOq4 zRKawKZp)W%6yI`JbX{rMtg+Udxo*FVjjmC}$Z;YJaDu?7h9Wu*n?C|Uk!~${@M!8t0 zpV;HzI0j~LiLFGDBVAS5{fpQo`d!G&YVcY-14az)yKrGe#>xP@Y?&(_-MS`kaq-#CU3#8#3l}CozFtgbb>@RcXTz6{w z&hEH2H+W_K#Wy^#S(jV6YK{AFsA!+O`Y{TecCnB$32Y5T{!)cnzuI?TR8fEWCAa0e z(wpyp>RMlVyI15lI`s_de69^ zJi?QK^h8tT4Y6j>N4kgNZsUlNE=SDBbvyAp;KUwyG;;4Kaf|P*Z6Bq2DCrhTD9#cC z=qglp?u)OJx~GJ&N$!VmHoQKtniJ-R_a4uJvJ_!F4Vym#o2|&_lC3XruB14nMStdf z1Ec`5J)G}vty(i;WL0P z?PkxCUj5tk66(+PI0BwPt7A9zh0tFVollCUk7J+cIw{J$*YJxy<#k%bZIA*z4v#RV z^>{w=E|nHX4;(HZ_lf5geG^RY>9}!h-2pt%@xKHL8-b)yT5uypb zM@g#mz-~mzQf`jsz~2r#kRm^EtWgk7lrj$`H{S~i$`a^P5}a|2GVIMweinUp|DW`v zA{W_F>v0X4bCIaOGOo1s*M^h9?ooaO+$J3vf-;Jjz^91wJ zrb6#SN}aVRc7y}@Z3omnUeRC`J+D%zP%&53uJ@^J9=!WEH*5AB;r4tV2}}RXrBj;7 zesH(*5htmPQrsr{|KucIdxM!64(0S-HQRt)!BV{Sa;8SA9GS|h@JMtZY zycGHQo}5nul>G3>G3Xvg=QfDm-Fl64*IyawXwt9p?w7g&hl7dwepDUjo_;Ln*et0F zgo06EZQp69qOP#D6)sneI?n{Y102BtjQJHSLlSv{Q4L2zWJru);P#dP{0A~5^M=n< zQEuOTJ4vg>I39$k>#9IY;-P}JG`P4s6&$!yB@wr*;)~1St&c6O{(`LFRYJc?E9aG%V z_Sr2QPs7$2f$j6Ua$hA_B3a~8LGYf^b9ztwRPFxD`;#j2NostoOvQ(sl=RVIEJzoD zG9N_-Ii2ygC3K2K0fk7uL{B0Zl_pr23CYB>39o-r z`AbyyzAU93-hiE3g$)lFxgbTe&K(OLA1k z-V5JZTtm1$zhM{&gH6NckH8iw@|Bv(Sp~&<_s;tUc>gE1miNBg$&x{ZD$f1iySZ_E z_nOXi=^B3qiu}tuI@jzJXgH9}D_f`zc-_=}?STI)k}5qQ8&6!XjkU(!^eE3 zA5v{_532R#?$GvwHk3&yuEM?2e>5T{@n*L7Z{446Ebr}Kq{wIZ5UdfFVZeER2zv<0 z1yvTINF*d(1;Bj76YmSJG~RDPK>8YY>JbvmyXLe;Sb69Fl%8ZaDHHn)6}_(H^POV& zAr%nD2Ru{p(u*iVBlLQ>-p%LQz#UKDWxP^ZM%P#LvWXO7M0bFvc*ncPd+0sNW%&)! zI! z_tgI08HL@LUcLQXh`HqU|GEP!@>#x*kk?w{%Ff+)rxYr}#ex9nLfV-&TG}~(*wEye z1(^chew`e>psyH$s#K}r_9)$2=@;I0lgk<<8O)-5SZo zk=+Ws;a*uQh!$8*`W4Z({I-^MfSLpzyRcW{m$%8{1DZ*pxU0wQnl+AeO^!Oldsm|< z%F2outGG0`jG>p>4*~G5Klv#66dmT=S;slo?kth`hnymy)=3%vtoNu#76~A7?sGs&4E{p-52^rxligzl-lq&{Kg>)*&ih)%0iqF;A>-3 z%!c#BC-NfvGQ2ixdG+dbl=|jAFW=%UlY`d*zayVJ7vIbC=Fn|u=t(D?;#!~hwQGCE zMlTYE{=;YA*X0{m*15i~g*~}HGcz-NS}w8%0LbU0y(Bk0(X0T53f72Z_XY1C6tyT# z6C)IS2kCzW9)WGC$WL|?!#`CDu``syN=kWPq<%M*3JZll>3EKo@_z7#&XF|X9MMEl zj{%)7mgv|9SuXNB{BP3qEE!W*xZR6g;`wTHUZj0PheE_hG8_VbaB4-D0&XMwF-LLM zLN?f37%^gmpWpBtsbKEh`L0Q0YM+#gyEpVT$T8u5!T(gofK+||Q}@5r=Y6lp|7Bui ztsXG=^QebCUiPG_S@@?sIRwML8sl1?+sU`b3;(&^?-fYiNTtYs;-$B|CqLI=JM@H0 zz3zc)^?h%s-$xo9jt%(a3(?_%uajq8-o+huqWW8%fRuE;oj~}KhOIFI+v$Dfx=c_U zVbMzk2upfKzmXGqM}(w`d|U?}c|w9f#gs!rAx9KFDDEisg~AX|02r%KWF_Uv9H6LY z;XOnxq}@pYFmHHZ!i?ZKff5l#4|(_zQrVBfk!zB386_lz#CRrzqtQ~TsHnSBf%xcq z4(~gBzNTX;gsyNd<HR7YHPUo9@agKP1jGob1Qk{!%ZsmBJsz ze%5-gI6^>*O$QY2BiSdZF*d~$HpMXRu)DWNkuQt4JM(B zLeGhMf}Y`dh9@yX4Ios>b4q{`&vci^P&MB?`tQfF@>VM>N6;_lN{Kbp3)_!9_L$Gn zNv>1sx?f-QL zR^+qv_LIWo;IMGzWt3TPb();or0p1~sxL^zk zYiQnQZNbs;6SSs@zm`*g`*c_&e}fF}ZsZr@VI}KWDY?X-tMrf&1wptH_X%F0AYbO4 z8S+^hMe~MKI9xJ7d=btJYbviwYL5gSrIsR8-dAzw$2AAcD_dD-m|qmHeXW;_zfGO{ zDWbphxAW_G6@NTk8Pr75&plD3y@m2ZSCS!ZM1;>~3|GrXW~5jN{DQKy?f~FDUWM>Z zIC5oJE8#cAN^_L?;C6-`@Ai>fdHwaz8OOjU~ zqZP(+yz^1+BfsIO6>3S~HIJdIAaesg7C8{!rfb)(-pK?$WsV3q>0L3_!>{7G%W-&9 z`c2k1JOQa&i8RMC03!e?0FeVRzQsnyMrdLY;r5xXm|Ysj4-_g?L~^9+*qzkZUoSjA zpLpt@q_qI$0JT6$zbm+!7cl<-q69RBkBTwGDjr(fTB)yJ0kZyb&8^l^qUAkl=QcVpSi13j$DzeZrXq5 zUS7OR;786p^Ng5zRYW|=wfY^2nki)aEA3SqIjfcMy!@u!!9TP0t=*pUiuqO9R_t}_ z*URI6m0KH7M{OFr;8Ew=Sw-8vL7vm(PQ#jjeg(Zzo<%^ z6)k4ALH@rfKwb|f2Fw^k35AxKnQ2n0n3N$V%V~lES_4_N7D`({wEU@WG z?o38j<9cb>HY32;%A3+8Je!KSo4n~wLbS>2H|Yf>u-cRi(m6(haCS$5ekTH41niTo=nbO$DU!jIKFZ&ZjA^FGFq09)j|=xG?>#>U zvTwnEXy)4*ZPm-}VHvuoH2ggyz;b!MmfdqNG#fL@?0+|z-SUaqz#mNbo%cO)u3oJ@ z_qy4$vdVn;p4nlC$CK^E9&WqNY_&o}ZWh|@vu|Njlwh>Ur&WhqlkR4Z-j`t?^eSyL zmj5MQreHK1{zk&KsgSD4LBixL5$(4iUqtS$PwxzS=~lDG=bIhWV1+&X^n)fPm8a*d z1FQ?GJKH-!JNKHyN6~6o-1jC^v+EhfyDK9lTI#36a`iMBPMno1iiggKCB0RtRIJ277%}(nme!k&68#CrzKX+b!`4!RhLRP}gwq5L8 zTVx$9OV`)cI8`17qiwnMx4o)XjrQjcr2lR92tYqG#5#*~i5^C}fq#&q+~nk8GGv*e zr%gsJzs|~o-jr(5H-sh?6yykEiUc)9ni_Hvw25mdqR#WE?b@|783s>2|AHSC*pR z7KkV1I`T61@+#MZwg&pDbgo{8%*ZHgJMUcF7A{(EE0*hlOo$eRovgH7t@Zwc=$^=z zlEU#h_Q|Jr>RQfJEH{c*&)lzdLSo*7&nxz+WWs6siN0cukQ*Kio(6!=mNCKbbVTjXk+-tjLS zfo*DT$)j@(m17Hq#F90|OCYqvQ)x#85m6uRlk|(M((L33n4hn?K_WxB)F$ef4)7qO$YAi242KB0Bo#t$RiIC_^pacgyxq#` z8p=ysyH4~yV}Y(wqlOPZ#Jh94wu=fCb;V*r67dMdvn~z@Pp?wTx$AC@+nw(ZyekfD z>^{|XwCqIh1H2=p1l}l8w#Dry({UEqYF|+21NVaUSD*ty79cX{OH;Cy4RTNq$+lc zR|_6+7zFF6@56&8MykG{YwUPd49p-xD506f_7o*OXW6ZhE=p>%bH&>xUI za|7q#Y1yu|bC(PC1K=&xw5o!zdPVl&>5fMoUU)JD`-lNNYCy4*MdX#of-<&0W~`vZz;BLGB~nCVm9qPh&mua=3o|ATOJtgBh+3Ptv|(mHgsyrDny5dqv6Yz6_3c)OBH zB1FD~d*&1N3pV-rC&W(GP%-LaE5&C&rQ6<9TZAVmQe;=xu)7biS0Z6yygj<=y<8p`(=9+$MyituD7;kz&84g{O{Us*69ou{ScOuH=pyne9s6i!zgXhVJ zR3vf*zCMyBDxS|K;h;KLU2W2oW<2+9tj@%>Buz^$~$zat==cXtMfO!@RL^ahFyG#LbvW*>HIuf}Q z+lKFf&f{4x z_fW|8afLGuaIIRkaviVh=&BWxcx?yko>a%j9&^p=%=3}qadK#07x@Prd*hwKuA#it zk7|9D&yC-t_0_KNX;-@Gv*vBnyG-SgzqKxU;kEbqXCmFtk*9ZXJXhQ6?(>mxTk9H| z(~oc}4O=(@$xTXI*y*O8jwd44_hg_2KDt{FFd#{)4;rky&`7 z+$-euATw^<1LCcS_ka{2rrd)j#>}KVk|nsLDKDj6fBp5|OCFD}q#zFhn=;+(IC)^C zY7=v!h`qPussNDRiw8R%qIfDO<%205i1&QJ+k#^%;9|ea+FW%_#A_jQ)k=RJo|JeP z6Mdn=V^&(;pw)J&XeE!_*Vc|48NDK&4*@suAX$sIXos6^m)XCY-Frv0U0z@C>csnP zfV@DKF8JNvR^v9>dd8f@H5fys0rGqCa>hHfW5G6t40suTbYGanI zu%dS5P1oC1x8H7E<(+nzJn(w9KH1JFU(Ucq+TE@8L$wtyRm{%GJ{KI9g28(nv2MqD z0?B~t*C{;S@U+JppXZc8+DDej0BABEN9T#Ui~6hL!&JO#W`) z(Vo&@w#NvR-c?Z}+5+5jhuMTtX4iE!JGg%8*OeGlc-d)Yb!0KR;u<+O$2cj~JwRT= zB69EdH@l;q*+;F+ZhgS4%3d24o%DsLtMCwi{yE#S)-$(C+T3}w4D$Vru{COyu!+q+1-0yPMI=E-fQC&g?OC2pY~D&h-t3N z&scoQi_gDe@4owi9dX=Y_WkHPY{u-X#2Z~>g9d%*=Ro`R?M?Z~!*E1Dxy~n_4DlYb z>?~QbxE0^2uB}^gi|t$GT=jor+#HIYnEvw59svk(Ev@Bjc>wPpJ{$VKQLdY%9(g2> z){#TATC}kF`&PH5AFQwpYiT7{Kdb21GZguh<>PuOHcj-#@j*MaS6ewbis@oF?w5xYuaXGAnDDO`6?Nv+V`j z)i`-C+q-@bJMY}nJsf|8(-Qhs}{d*nZ4sp{3Md%jW%bnDWki|F9HKJpV8 zRcU-Yp9@dax^-(Gtw`iwqC79dfTz9i!gJ>SWXsoY6waKl{s;K^paE5$ zd?HevJfknTK;HX1`{<@{^T?1y3=kz=s?=KR-fOvN_7MB*vkC@35`YMk8PoNAN4M~L z3S>ceqBq`nLv(+d_3G8j(`)*Iz9#}ajFk9M&uU~yW9i=OkD9|Zw) zNX%0*EkJ*{mk1QKl6IR0bA$M&>ukjECAO=ZZpDkOwThMYv*nph?99t6+HW(<YPG6Wwxb(2Q1%C{)7ucPX@BN6?A`3Or@Gizqkpl? znR89nBCA!siZy9?&^Enhy7TQb0!6mZW%9lXi~c+KS*T|$nU&=2ZZp=bwxw!|A_t|Fyf(ao2L&c;$49fcLzmviQCNvFy^9Yoc#^%zC6ox*??5fN4;!=>b+7gn7 ze59NqC34?zwJPGk#Az-1QyQS%bB-U?SQ>8O-6C;W5PwMdOJeGH;T8ZBM#?D^_%FWrqGyW0D~xNT$wAqO5er--?F#8{diU<_ah&i< z+Mr}7G+BkCy^zzlZ(oxqkWV+l98j)&A1VyfN6Hp({5)Mle5Wm_S;vaapJQvp)S;Ax zxoadP{tDSW4p7YKmDgP3)A?W=K;Rj!Fv>J+{SiQzm8Xq8_0&`TJr?8&&{2d|gho>E zz?4JFF(!f=ylYaLLCg8A2shs?VZaZ*pv(=YiivwkDGj9LM9~rpOk?uQet{SKR$g$gOh>V_kJ^-K*}^*Cd8f^nVtwK85mJ6iS^Db)TQqK+ zSK`;&xr7~~c;ZK@RJTHl|MX$?%6aR(Qf!H&{WNd1f|@*0F#RpEW{xc>TS0Q;NCsn>DwgN;_q{6>Lq5?Jxa3egw2si-r}* z#vgxT0e+p+#;o&TDe_xO_^mH~~5*sj&P+Xd(Lv|qk0ZjW5QNQ(Xc zGq>aiQd?&WmN ztLv}{FS7pcKIIiwl`B^h-fvXM`Y`c6g^d(Z@I1^blvyZz;CcCt!vO0AMl^UjML$~O zBRbfJJsVna8M2>zbEEa`E1oS4TRZ~b_D3@OEYQ+_;iaO9DOidvzR)Ig01mK0^WfWy zLC5leRid50-g>Lm5*@8pW$jyIRrjjyjiYo6 zzJY@o8O!}O=gph%Q#O$PkM*cqw{F7s!8Uc`zIOJx*Vy3=_qEls?~)m4_=og>(rlyn zmzmb%k!AK;-xqD=+V8{>Ewze!&bCq|f3>NDKC)uk4@$ z&$rXhX(pbiyyy2LJ*NL}%MnnNn^*La-Vvt`cv9XWDRQ8BgFjkqBZii-ZjYL2Nsoe1 z!+MJD?ps%E^zyMj-3(4x@R_9g3+XjjlW{mu!CUVfMH(OEMu1Of8~6p@so?@W9-&_aC9dr~%Z>}>YsmpXQ~QVssu$RC3r!2uGT z2o5U%vYBcx__+bU3|^sJM~8vF2LS)z6ObX9x5$mi3+Q8*cgU#y`t^(IVEjo5|Coa~ zj-iWz*0bJ#%g7uU2-dADYQ^k8TWN!Y>#L>IKg`PSTG}3Y>QRZqHSN-t`&pA?&3@B3 z{#&8$J~fPOd%_7v3#qmtpo3^C#XVaZ{#zsP4`5NZ?tntXb{LSyqa9qw>?(|Jv#WrbbWHGz>=9|3& zj0KHcgeW9o09&fvuG*fJ(*Hj z0u~1Is;jOtr91K77=bDEH<|wT_m2R0iZcD-7xKOrxU@YhCU1ixf4Mj@MT=OS+Bt1V zCR%c5v(LYYuM<(Oyp;8DapRTfS=?7PplGckw~i7`8`)kNmF)D5b4@Kgpsd8m2vdYI z5&(B$s+bQjUU>H4HGzR??AWm$|H01yqehMLihUIMN;~3(tZ&qwxdYRM$3IF>6vZfv z$>%5Cm6fj3(AqxP)!w}9Qk$=9LL;TuGGV*Ooy>2pDndd5C)-5DjesHpU^72=3&+Ypv=F%tCa0hCgMqy z2nm5)UeVw5=$uw~)v<06Sp}{lC?F67Xuy}6)vd6E_D^M$S~Yu?&Csq-zx>M9$YY0f z;l?J-ti;eyY=Y*}SHkVZ5^`hLX@n4k?ppiy?fvtGzWHPgfW9+7Fcjk%#Bas{MFIJC zxrV~{V^8zP5r$ari14DF5<;pC>ssl!w&@?6J_2jj6tcJb%ByS-<$0A{Ahgh!Z+bt; z&e&f@q{rWqom6BO@3^}q@UDMN^y=JXt#kHW+QFju`_q@lamBcB(wrEAM6$M`r2y4Aom`(ey9JM;W#Nuv zVtVe<(s#%q8>Gnhmq`EH3L`Lkmf2@g-ciTl?^fi;D)GUEqKeKc%DSHqe027CR#Eu0 zV#QAOSLPYQ$G?P|LVlTAQMAHGzyq&Z72&NhBtcgLfP*N3MvffmJ(*ET#sW&7mM83G z6DD=CJMVeRO78+!VRp)CkyaBXOppQgF8k@LldRZ=XKjOGvT7gjjdi~LB&{J6{W_SH zwbn8=o~8NH!j5eIlil65jpxTB{uJWB1UYju(r^0zwiyB5HQv4$&tn0{fPsSs*@$6_ zWS}e)jiLx`X3Y?d6?v;(!)(&zKYauR^hzmQ;}nLh#d!UL7sydK9Vjh|ubqa6JG=|B z8S6E82pw#vJo^88;66n@uH{j)J%(OJBB zQQN7MaK|DzOP!HbtJX>B_?Wdl{}`*e&*xr#M2=j(yr_8a+2L_KO~#Q1MSkyB%-($1 z?4sM_Bg29WNyGs26XynGS|SkP!J+BQRgM8DK`{>0t5@HO6-)Ef(ZSwMUmA-gK3fX& zxzqE$px8{Saj48a;s*ji65(-{%rPmp#XD4s1ZY3>e7s-S2(1@2)$X#ZB4ti~`B`G4 z_>Efo$Qe=SwP3zzqYU~1TC|c=K^K`&g`z?oE3!@o$v9;qOEPCr>Qj%9C~xK(1|^Jf0pK&3=fRmW><^#dEV2c-O7;YtcbJFBmTYIA zeU`0XS4MRWtBUKHAi1%QRj+W7?YnmwyQu9+a>x}QsLSoGXHG+U1kxk0eMaDKT~V-t z$1;vvmGOkM;!;O)g2|5b?7iPXx*~`9ZT+6QgYOak^AD@bu zXWl{U5O83O2)9KL4k>iNHNuxEW*ZwKnR8JTQbnRhv7(wI7c^?@qeMcRciwr&han^6 zV4S+I<#E>RsVB`IxYhP=akT2`we(D1mhJ(JZi27=;MZ*LjF@Er!J|tz%lJ!UnTD-C z0)a8!l#biBZR-{G2$nGF(Cr$MXi;nvU4;P%dIo-x_6ucTEF61$?5|Dxj&MqZ6h>L* zOAs2M(|CC7Cpzg>b#$TwY_8&TKqJ1q%f8g&^ZJp?NGDsCk zhq4JJJ~WzV1h_V-ayW+w1(dNwsvykJ7MlLS2OszpM!_rJpEyI(6k0i=c+#*%BR~Me zfSzWVzep`8GI^X7=54Nw6p2efzs|vDjeI? zY|sD|(Y;*Wa>vQoknp;zRnO_GSh1b$g&tDkPgHibF%%Ik>C@+|Q|h!5B}(ZUh2%lJ z+D>a-Lf)FM%BZzKN~Fm74I5Sxy)G}sP#c^1#~h_wV}F*mh4NP8bGcQnQp!3%Fii7x z9}apx0}oCV^x!6nRE)dKB@A;w@7}$=*FC~I`vG_zjB1=qbf9!uR!d5QTV$lGD#bz; zFCh(EWdv9Pk2^`MU`Hu$G|sZS{H?&dhbM-2Af-+TDJAoRPaBnWZ_`p`RCT+nEPzEjE*+`yAC!}%AO+{{URKH)<>x9QasBl7CY9; zxDLMfW2^|rJRdW9C(~`FVJnURxCGt7$tutoWM|U-9ewoCem_b=lzDw+A)Gp8nl(D4 zrq!$)ue{`zz8s=Rr$(Y}QbsOVSjKy)V-P^*yzH{eywe!%Q0(J?g10?RSnw4@q|!gp zrmXSsIz$`ci~zq&MEBWex3@#;+-H}Fws(I`p8xw5j`G2iCQY_QOTJaH|G zp5V_@SsrV2`Uo49`MWY;7Wc}3ap+dg+F7d;OWH@DyqxWjP)bFXpOleyu!`Wm&Tabf z0JkwDKOu4UCfU9&)!L@p@c_R;N=%$(FeVVG4S$4Ofq{%M3yOTk7oH49h02u=6Ymn~ zBmIB-j)0b0>-vyX8TnimCxTb|#|LI}ibOiAp<@ba_KJK&L->;b@H{7qSNY(@NReA2 z{;oSiJcv;02#J)t$~HD_I#Gb(3>gRNnHAIW{=@g;oA%cxzGd_m#iYnriXAyyp@@g} zGY^=r$PUa^l-Ssubpxb`ocb19O4UMrh0CwSey=dwRfLbTJOm3Y{>hr7G^ z>g)0D-JKLi(PB)w8#;eJ1)I{a`6IB!#csJYxLW2g=Q`gWsoCB%7O`NNGpeoF%I;ntbiiz{MErpPq$F=r9+_?@Nqs4lqh;{PRa6KP+)JZ;e z?yyrM{l)$ttIAFpJG)*Tu68MELdLeWjjIV}QKk z-4RC|;UsKtN_T#$B%W~nmCn7}KW8sR3zucreU>MiQ}lqVrsCq4st{f0&YgXsPZ^$E zjq26iOud&SPdybmdA*7@?ticwp`wTqIy^2G*YSDUZYx?MS}aR~gfG$s?UvEODS9k! zZsgoaQ;Nn6)jTE$&1n{ORtkGxC|c>H zJU-Ko_NjorrCdsNIK96BBfxu-C!(h(>s3T~FD*Oc#uebiZP-MLbk9@3!^jiatyQs2 zAxxgz__B4K(%yL5C_|CE^_DkXk&Iey*IjqhI&z#&ujFdgXsLpURh<+yPSJmk!kgeP zbQb)Dw(>n};TU`j8~DnaB!!O(+5YYekAM5^cdq+`&Yh*Xc~!f4Dt@@HD^j?m){I;H z2r&l-ec;@ACpb4f)9JcnoD{mgknIm+*Sco=ICo9^coytO)&8xn$NhfvsBJjP|NX9^ z9Wo3?ACw}ms&n8AwuYT@tn*sIr$>Dtl97rim-Oa9e13|%*^yn;Lqiq@B5gp0Eg{I&`>FI9lA*u5pgrf4^fqzH6$Ngrf~zMO)-{F51ZR7jn39$OhwoneUFME^)A%le`-4KJtkS%Dj+6oG%6( zf0Q+8t&@Sm({QB@bc$$9Y!dyg{QvnD^o=%7e@Qw51u1r$^u$fvIdewx6C_r782__# zM^+WBiqubbEhSQRy-l*2M8_@?!!9^6Lfe)ui4+Hi9)9z+bMxm#)HnC4&8hVxawa&_ ztXVUUlgOwtvU$A+vOoal2mG*<`yL+^Ipb7YBFa+)egs<0CNF%a^jRtKjkzKRFyEI9 zR7u;-o43%lYCPYyIen?{`j2ocNk8Ril&AhA=}GCGJKP9}mZo8AjKB_uIe*gw!|1?} z^SLPi!_u>7&*Y~}{XN3ee=sQd@y*>Ug`~UiGUpCznp8QOXSW@0aITuT@=23&HDj@m z$AaI#_Q+%1PhyCwmnrL7YO!MBp*p$;J+r(2A@x(&^?B(fFVv#Q2?B-i-Y+;Pf#%(I zr^cYHn=yHkXYdeyQUOdF=OU=cqMf_h%$bq#oSdU{&D|)n2SY$wk?;Is4f6_aqsZPA z*eZ&AF4*{Z=N^1GUJBH1?nkL+Ty-fO!7W8sxO(;KdBYaR+O%oohK?NJ+!Z%Fw_APZ z7XL|aIRN8Sww!Yx4$0ZaHH(!nuWu{4tcPC~6QQl&ZKY^1Iy+DbW+}4P9AI?UzJkFGwwCvciR5%QTcserkJB7t)`4;mBbJBkT;3wfo3 z3jIa}aYZXQd6fG5;~tgX%{`}g;U0h14UwS!kAS~fkOr)`Z!zoj-7obM<6jJ*9~Z>Qd|rE%F3V>@<Y8vCO!QRbRWT)Hq7yM?b>-^9K2O3Dc^@YJ-tFI74Har zN-OdsD8N`iC&2Gb0p>wal#wRPTMPr=jY=!>8Id4EZYn>LsK|$YtA30dKVDk+7*I5)H_YJp z#o8<{bB}|6i8Va)Sm$2XyUh!jb74JE{&=T?u3j+@e#JtdS12YG#qCtc-gWKT)hUwB z(@&*X^@dFh^r62W#yZ!el5_WUS>+Zkl=f3_%PqHfoRv4S=j*{=i~+H7h|=@9p1odi zWlCKvoLnu%XAa#iVr^Wb+Rptr?kCTWV6257(J2lG2R(i+z>$pWv})BV*RikzypF}~ zus?i?M0rRn@+0HGSZyvpQcy)cc*K_1d*N=NJ?pe|sA--+yS`cHj8>#rByoZUvv$Fw3XZ>dKT2?;#HMVrj7{8COaStSpd-832_Rk5{ zO~s4Il`Q5gaxD8ldEPF&{Bo->P|tqt1y;3|)JBCB-<1cDssW%sF%G#~k{?oqTWqR) zP4~{em)xz=dtyd_@K{3r#Z35ul++&}3~;*wg#OPC4ZiAKvIMNiKztK2e&S#}&V<{(l`$;!S^ue~dlzYK8i%Fm$-`MChL0|3J=n zm7;CPc@}b#;apu1KBJR8$@rR5|KGhN7tQ1!hbL$I~ zZLhH)mnH919_T*p1~@~3ZE%-@Zt{rq>2wNmKZFARs8?D~A-s73nxK`^&XZH0&~fM` zct|QAaEuxz5(fNMSUJ9-UkV3b5RCl!r0csvIi#sUz<5zmjyf%sDF)E}ag(dGKX*s} zN6NTi!-n|~?sLvL$EOO|k}-i@h)o+XXSUh*BUL!=X|v}KGrRP9g_w)PCe~!woNHFD zVs^u=X3dW=>o1b^_>E@2i?nvWH}BB-b8j1lJ><&WgELfMe6oa@p2W9Tl80Ta~n?5Sqrp{(gu{aN);Qa zT+6AJwXU))R9N3nW0mGlEEzdi-m}!)PaW~ zrB1N|q}1tuLMJPG!r@vsN?S&uy*wW#g^un&!`81l&epD4rd;)pi>_a4axCz5S4hV| zx&`=<09-p3;73TgLNQQqm3lp_kK_m^%?N8luUft>yUt)o@e97ce%E~v8{7|2M+?U)>FF){TEx4002M$ zNkl8yFqiJ^JsN&N;K^HH&=pvsE4?dl=c;u7k-rzG>zu^G@)gre}kBgU> zyR&k9$IBO_86ou_0I#-TLxv3zi#zX+FRjPZ*9uSPiKbs+JJ}NP+P<0o?I!-^WIN_$ zm6|&!LTAGf@b3QZkzD9uU-*O{p|%OR`cr|Fp{Wkp?^Dh0)Oz^jt0|l8PzRtj)G(m7 z7x(~wc+*Wc`BbG_V;~g$>(O*`Nwbdav`Mr(s!8I}oZr0S zvQigJ(fb5Q2}W`B@4xlppVdFqtnU*_mm?P8IFZ1YKNZHQP3yDG-hDtK+|Mf879*aC z#kO|WRA5;TWOlr0_dVjt7OmF+r6D~6=@HmIBOn6s zw}76`hj9|ZoC>taJG?;%RZazjcG4Fc9*qA)Agu>sgrw9UbXp5lfo~HlYD$lMdU>s{ zbGskn+>-1VuT(wPJKVY6eNr9Gz5h#@k*%s+WIoP)EY+T;Uyxb3nqp^@$Dv{M#oNRE zpiS>fdZp;QQ(k-@KJ2?5Bg?bWAV>!gJs#dMmS(Kf%9ZcdFJGo--`%-4-%5H%c(8Cy zJT34b3f>g-(X?q(CuLRc^G-h3xtnjzy+2`3+9O{mr>F)(aq+mpJD`TVVM*UqP}pi7 z`J_`4uDHpQ<1USthl+tZ6@K>n@nXQk89X2?k$VR}-0#!mkzd`pyYGuT-~Sl+k@_wv z7maK;n$QB5jhpXquBPUm@cCVZ(@L=QM>}-r5KaFi-p$Rbvak9mm;ws zfX}g?c<0MF<$ji@(gxfc<|#kK9bKI(EcZa3?}RhuNgr_&!b?vKmrnr&Jt?!>?ykMs zNWJ8Ks@E{LO9>Gu)oMA{;+!1UiSR5x|KePU(#kP$z28Ih0%P@$0G>O)Z7X}^Lvsl; z1#d{Nfj2ne(whQX>XDE4kOZ5!OY%-O_r09c(z$0IjqA?;Xnvq`{oaV|#{=?Aq3A<* z%S%mp4WztrQXu;D3(!)$F9W_xr10-$_T=9pCx0^3tU?+;h%# zpH#1w*QK}LvA@wHpS6(G3A|Tu8&7h^yr3WjQZA4D#B(8Ckiya5DY~Pryyt}~$JBG~ zXD$0%6TsIA@?;zEfAPHrkH^@(kh3|nz6bM?hCv^rE?m)Cvhn=q%qn-HcBzTwTb zVMCUiBJ}R}x^o9q{YKvUzq#@@L)%nW*qVC0tWcq>+rO4P_~n7zps;fXi&d>JQhI=v zjNzX~?f`lM;Nc2h!_SdcitFG3M|vJoQQ&z`3O0Df^YFmV20Z*_1n?gEVPE(pw7=)e z8{E~`+z@u{u%CDm5^YKJ8{WO7nJXy0WDdl7;t`5XtKd+ zS>3s(#F~XA0bJHH69@CVGlRG?G5$M5gr)kzHm z^y<~idn?P3DqP!JIDM#3U8cZqcam7{HpZt%TYwQ6zE z%lVCOULN_-4*Di?vt!4OP7W|W#VTp+NX5uIO$4GbPCUZ7M;=H#qG%AkvzMRF5v>Tu z-a}+r%X1XKQ(&2BS({T71$cYpclfWV?Ao>#J9>O%59^FrG9LjjaNr=n6PzQBWh^~b z4T)%!8S_Vu0lB>JX-^s+(pF7QkcGqbV?W7|z!)I2lXfRWWx<;y>ZoE_MA8<*KXtl1 z(%ZF{D9~H-1^kr)ZQXvwoom-F?U5fl*6HubM?g56hOIFI$%l8_@729~LPbuzQ~zR9>AEnhFak+yvSX6 z=2`yT!B`C%6j{W??K$`SOYV0)Q>knm3GWwX4+TUt9Ro>vdG-ktb6pW-5IGtVI4}mq z3hDGmst6d*T=2P8BKph+{_Bc-@YcVpJjMasMd68{!B`^Lk;(?e!z-`6;uUh?blRW{ z#h4Xft10s7Fr%<@Z}$&fM?W$6U@ROta-`3tjY5Rnl?XA>dlBR0+FT@~P(|fX(Dzs% zxpL)d&OQBd?B2-tdGnpyRdcFV1Gf>QQZ~Rup)3Q>2t%KT@^Q#8aW@xx+*)0#r0b_+ z=W3IKsf2=^GzH|g3xRXRE%vf^gZ&( zBc8FvXpFGQX8`&esC)pV!H9(|RpiI^wKcw<*Gfv02jhF%pr7Q8{cLDtzvLeG@IB6r zk=`ULYrVVgzWaPC1?Dt>!4BmQN}k5TGk1t^in#;yc+o8=l9M7z{x~XMXl`z)J>7`m z!*ghMq;<;wDuU-zVWHd%%1-8ye5c)LZCTLg6u`THA0Pz~N<7k>c)(zL@FDJ_Q_o3p z=62q_jTHINV8$RXz&M4XIIN+ha6vJGKpft4IG=p(efsqA3h1z}Ad39ZmQQrpWUK@C zV$%haTYrT}&(?t0M}AR)_JztvJ9l34o@q-?=i!6nGmo(r?YrOJo@SGmHW+0?FXhWu z&@uAS?yjw(!r4o@d+)v1WoAzEMvGrG{U`qF^xG+YV5EFWEPDa32d@h+g0LNU8a^@L zqIkvtOzvtF(l{EB76Ks67DlziJo)|KcJA;!#Mapccg?jo__qJmf58}%*Ylw;47HC~ z+Zk(e%ab=dQSphgKQ`q@q9Q-9>uk$o%wO&WehEd(IytQfS@PXR^y=m5-Iy`IxQ_>pvF^{hT}w6<54@|#S@0VrJ*l4HsS|l)=sUT^NymT!2?q_@qU>QG z_Xh6c5JRdR=yc$*6Z-<^1FeA$#43JY>*?GPRh;{LcIpfJEpY(0vr)YzNS1;jke(M+KhBnA}?b@~1^f=m8%2?)x5C6{39eh?= zR8?O6V_%M=vly39;*xG;=FGK9+v?nu$@CZjGOhK9`26@CtbZ5=c_#3ic@ayu>(x8W zP0=}<3a};nNL0S(-luiHS(|$LzotF>2>6&6K$jII9py2gGtg^foM@`u><*wi;6D6$ zfV>p>;2U%d8VJsW4SYkXA2HU)-ygU8;#1BwuMw`0^VzSD*hsCnA?1>~bT>+weO0@h zHsKq`re`Lv%`@~9`BaIdV{m%pei{DN=TGBu@R~l*7X=xTdRU1@2j*@pF7h4a|0Ja} z&Tq`=pScQ6LC!&eAB)?3C;epr{E6<+bH4YE^jUhY#~&8oQNcOt0(`4xHT5jmT5+s6 z{V3Rr4?q0S7a+llC6P0QoBNQKVdal_==>ISF9H z$+4f`iqcXTHi;EFwprYF6@1mhI5&7$-0oaI7A_PuuPt}Zi}F96f5R1hdNO_n8|7Ar!ig@x)!{`LS>nbev!4riXm*6>`6fkWVtWXM(_Y#kl zSg%4n%ZQ}-{PWL4m%a!sjK@}i3c|lDug%pJ%pab)2>HB!JRT_qhr$HUF+4NCGdFB_ z1TV9d+0l-`vqv8np6wOg759bvuUgN2aM%&vkFprs;nQ=}15Ag1J83nHC=v>7* z$p!R-4wGB7aC>5ml#$&N#pxK^fYW@wq;2C)JG;Lgc+mYSB_Z!33M*GA5&9XvD)Le8;88`bgdjY}Mo)kbF!?Bd5Z;0(AO>Y<5K%oSEnuPp zFxGhdP?RkeQYrFrl&LQAvUFK&>uvx2{1X(A^<4aQ7KqeB>gN9uzd!aD!ZPy(fc_$Q z)l#v}XEKU8cjw(mACcylU*R@NNFE|XD`WAxqB>@_lEL=;iz3Gh@L%D;ad-`G6G1aj zO3raN+!VRl?1+@SxieX66xB@L2e=%oSUO!c&RWGZm+Q`V@Acp4{*2f(qbI}5;gN{~ z3WGFWngxaDo{JQ0j-}bW6X*!|%^HZ3fxOi4luE_u-v>Ah;QYb*g+dQ_UjlXgvJquK zH$Cg0i?jaIIr8C`G0X*ej57zt`xs9?@e~Ir7_YQZe*HrcLe5`k0WtuSKy1GTO6ORG zCtl@5K?DFFVm_$c zg7Y4UI#|%}Uvhd0_|rzUfl!!n4d?{p$oz+AhG(NMXt7eac!w7hJ`@&btT8B2#F=*i zZGiua#cRHo*`>YvY}iMB-3WAsb?=ZpoxA6sV-w>@G#YCd?+D%*nGwKY1|AJsPDB;&DFA#8^_Adj0wgN(q37qG zd#-n6VQlgC$LR@UCTw8amJ;JOgtLjfb*{_xk3dY)#13$YFj;N8a` zf9#a*&f@|`p8*2~_%4Vj4RkN`S&+}^)2Fzf$A1-V3ja0e{grNSDaJzpBP@J#;hM;V z45aUSUI0TXc%2tK^F$tKjDOQ3&0)q_m1cOtpS~b5g!RWxi11RxPG6rCw>D8-O z_?i5(uc+$oQVRYyCHZmoemz=TM~O(8^wh0#A9+(!qu!P4*FX0$_Po$j9=&2DrO4EZ zle|sX%kjhIF4y|ph^t=MA3h=cPd%$NAL7C&_nsHvDP2yh$m8O^5&-5P;8*yBSxrn; zk#Jhh&wcjR3xqRE{XD!=pOz)(tpCI}7z8{4u+$?I11R)KtAWA?? zaJr@D?!zz5Gg~L)NbI z+emYITFwQyCAOVxvrA>?MvTn+3a?2L zv0|?O!1wcRx4n*TWko*576e@72aYQ8;WePi@DCVfp?e`h0mlLqd3YPbzW^xm@H&KM z2jeP={KRx=%mH|vEd{OgZrnK8GsOzjlu(OOKNMrelkMb2LMgEdn+pit4|I+wyBqAH z>}ev=dBGnd+rvIp`20;$0!hDHM)%Y5pm-mFUax*H&(ZkEg2X-%c1MoTCX|#8$vxIZ zhPz$=Pq>|vz67N*kq#&<_TGE%XzCHxClqQZSW!fi(hCK4)25Bxh!Ml1^R$D;tj`NM z#z3NH{;S1q87FWOS`6O|e*)he_zDzsDBPgW7(h@aqWnQgkI@lDFk_6Ip?ux`H}4E( z2J|HW{5O4}LWK>j`|S_d3mQ-P7@}tgg~heCo$$^yo?MtP|$C z)0;09pSH#={*&}P%(MvL&_J5{@{72#ZleLsIj@XE~ z&VN;rkAna-J1Fu|euCTZ#NZ>m2k!~M0gUuT$cCH)eE^5yMWEZrn?OMn`K0*5AcHXg zd?39Ia}0dAuHz@JrudTph-9O`k2oK&6bAsS_SO85O~3=Vi*i0M;C`8x!7(7OwyBN{ z{#c5{T_fJVp$*YcC>nzzU!=g*E16@&MX4GSL>W$t`{bOK2TSa`B(j^i0G*D->oPk% z9Cr>s7zZL6kI`DuVm}$AXXI*NIkQH%`0ndrTJo3mR{XAeUK!Z`_BSSL&J{_<6fc9fd1os2vrN~DXWj%nm0nfP} zILKUqA0kRS8IT#co_L0_V{#uo;Xp;L-j=f;FZ5^rm*b@m&8wsN^VyJ`HhjY{cF8$% zTsTc4Vh(xrjh=Z@P6XmNPhF zEOP@s`F!hltR8>+h6O}_~JKOj7>tCZ$sa}RGw$(FjZ8UVXKdB;rGda;;%~^3K9Vl zJWPwWDU{T-fE(`!U~I&6`T|MxuLZ}CBgf?NY<9+lwrI#;Tcd)Hj1zq`j+vR6G%@8C z_V1tb{!75KQmmE&RczoWKp`r5ad~{DkgbFOlUI*FM&V|8Df(i5ikk3kI8WYP*1mmv z-(M(1q}fBv~Y zpLxOgyl37Qza<#?0;b@C6tyO1(m#t7TJ~e+G_$9=+q7q1_645BEczlsVk&KcFTVVU z{rTv9s^Ivs&CSMH@JK?pWvQa!5B++Wty*J$GAC3FZkF(n=i?su1b?6h0Qdy(Tx{!# z7qdA_m-v13$+IfT!C#-b!yKg_-opX=?`M0c<*V8TX{&KUYg;q&Q(I8AvcCq;3QYfL zoT{5Pw6&QFZTXvh%xc$+j^E^QKbm!W*s@-J((KExZKaCcg?T9DlAj;GlmEy+#!if? ze^(MDJULP9xE*tiLU$CGYuVyBlQF|63`ze1M>(Hy zpkMBVc@T=@O&_c4t4R6p^E5BrMq8$;DJ3QvdFf>VxFc9V?gGcNjUm~Grp*p^kT z;>U5L#%Ky_q^=*<)7iTB^&e`js9(<}PL9wPuJK<1a0gxkS{v3qo=wVlUl3THR-VpD znd#px??wteUx-lN_a=pCbSU6mWbih5@B8`MtUV3k?4IPtZo$eRyU+{--Bkx!1aP{eSMxzOKWW^0uyW~2n zRq0u)SGS}1i~sY_JZsiWd+T+x%Z~ZOu5P)`?rG=jjaOA*ah<9G31k4bhaP&!kDZhn zzObacYYiT-oeJH`0B%xvh%Z^@<>z%aV8DCEd{-ohU+d(Y;h%-M484`I-egGf>!H%=c)a4?89UYjirUJV z!#Gc=Tf96YBa;e`?%~_WIOq$P?l1o2*@2lhQ^R!8iL6Hv9vT{PR5NE~_E}_a_GHe^ z^>lyV{g+zN-Iv>_ub?9l`f+fhX_ono*r`?POer4xd&_Se{%yyVKE%KiXaesZ07s;F z^qW!?`2w-bcW9{$v%V;((js}@n|6Sd&7PJ^@f@Xt{y@w>@E#oF9k9+bXL#?5`0)jd z;e!<^Yw+)9pWVtPxH(14L^Mqq6c$+OJjve!dtzDKSy1LlU0qAa! zufPw0dBGaNT;SPclrTjh*&TP>;pJKQT;^?<3xRj#nK>5L7w#WE1X#2F7u%qs&Ev+g z4n+3PnZ3w1$}e#4+=!ewW5!I|X_t+VQdN# zg9jAchQ27>pWmQE@Z8|EA0zSQjJ*s^9*3fx#e89Gk&75>@Q?HO&L_X2X)=!ab%8a! zOP4Ml-{9{l^bPJogTXaqEzbMv&)L@GOw;)@J?)VbP!va7T)5D_9d7pZSJFWU)~;P* z*W7NRt1JBc5*uq(s?V|EA2L_w+OSVo*^&FLvFVx1?b^;8?8gt5+oTC*VLgFoIr+3K z+xKu4iM?}_)jiOx`XRII#e2;rjQ_*aVdf$04EGu4NLYuE7oZOS&%*r&IU&droX=e3 z-GG0LKfwFx+O@06iN^Da;3^R0i|JIn5V$Z6irwobP? zdw#$yz0-A`|7qCdPdnihvwnSk*8EuN`}#NjYj)PP_UQBd?B#v~t;@qN+p*_eZ*%8I zbXeQ^d9Lm9m<{{-hpm2@?|=N&F2D6*>(R5n^?0?vb-e2dyZjdE03>6k;om(18UOCv z|9kEpg2=*yu!{mH0L%+aZ2*NwdPac7LFsl3rWb`i3X51kk)+Tv&tO4llK})7;vAGS zC{%)=O#d5o-Fau9E@j6kTOfvMgP5SuCdy!`TKlh+YnToH!d8fRVLyu?j0}tx#2(=J z0QwD#)cl*SGJC0q77;NX?Ju+y&6}Cs)XB1T-_@24`@}Z9-_xdR5dkY-yziHoa;ke|;9nz~Fdgz!zWIAJZgoceqsNuJncmj1i#?Odl{$N}>&e zrQFe?wY*|^zYhg8Osc}({rh1jW33QAlQ))U4#Kn1ALGY8au3{Zcz&;pXm_41m^|Lr z{P2@y=@{3gO*kI`2jv0#{!5^|@rI!ZCAX~f{?QmGm~eUQL?0FAHYiUJ43(0^P=+fa zCE5nTTOOhQ9U`>AU?c)K2wua01g0Y}D&QsO@Qyf6+whJ8!^Sc216W?8s<^5ZHtV;D z!X_vkISwwvNFuPn6tWMz#Ms0!m?EA-Qk6|MF*8yI^31ehZlH8pcS1{>+o-9ujJMk| z36}tP!1&N^++Py<`@L+l>xfA@^#WUV)$OL72mTr816&Eu7z7@ki*3E;VR$y~o971S zc;=bHGv3F?1Kzin?&@kg_kP__MI5E=wmmA@|C%?nKh&OkWZo}i{{B4P79V?pxoZ2^ z;y%yWl3JSg0)GwlIlrBVWgXclPS9W;GA{om09R2AqeR0H1@PWbs>pLF z`lt#w_4vm71b^kR>6JqAEQ+>4$WVZ-MmBS3-9s&*}D!fDT*dqAQ_aL zGb&kSpl<$_^>e+aQm+_;{ zgTL;YI_$|7dm@PPm38xcTh@}FNw%!yZ{7px1`J>l`H+*FSFc`?i4!LZa;6K797HMz z(pH!Qob@VKz%S?Fu-BZKjG@41J&R}4WJ%@n zPD}#eK6wx1b&}2h97pL)pvRJ=#6+#&O|mJ9&bRJeAoKFG<6$*Q8#jd$M%i z8SuX)`>%j~y0*O{i+;u=+`%j8E7wd|=ecv1?n1t{`vadd8fr_C>@uG79_|C)8_?my z=cVaeBHdculCh)r<2k6aSQA{lN1lKE`WZ}a-Imu&-vZBGGS5pH95?PA88G3LbQ^nD z(&iW^@sp2|lCP(dv17jzq#Hp!XQggKs751xmz1w|k%qn3NP#N7Brs_yT=}+al4Q68J`B?d+61xmyxxU1vW2|_pqjb(W&{Il+)x}j@KmWeAGp#Z##)H zoRcJU;84c0Pk0mcLORpg#<61sO3e5d;efGZmaTi+`U(31`JW&5HQt{sd&x%}L->x_ zPe`^7%eqNCpTsikBjg3v&GVv7nk2C|Z8FD0`}cOVzEbg>*tq@;IP)>CMLR2>42dNL z3Y~)-J|?rrU6&j$-I6qEZ^Ci%;=I1ZSXJ1{AJo)L!w%R6r=EFj*?&i(AMz)a`o+cts(3#Eg&z8UBA5L13 zPi@|`^%1r$ZAea3QGX?vz)757A-D#M;TryN9^*FKk9@~ILMI-_T26!^az&7m&GZXS zC{SkS$s0|2kK`o2SRD z6}Ra;PIMZW|}|&cJ~K1u58M z!h{J%=Oy3qTv<#ns)o_v=Gi7-H_V}7L`#DLLnL4!9AIN_^=N7c?dBI>A_SK~ko^2|l}yiKAE_tmwk-)PqO-mTOYG+365!W*dsNU8UHxB zL89GGc~6;Rw*~8@O-}0h>2b+XPNY@)tGJE@6uNrlG-Q@F*3l(!>EgfU`fNLn1^*m@ z`{sRE(O0c;&s6k;{d==~2^rq+6PfUJ7pYkC6}baGsn@2DY45NeW&HF7a`t@W?B^~6 zM#~9I82C_4d|vj)Im_hQbxV)%S-`O~0VevJ)_GIL5AH1A^ll@W(x;MxM~=()GZr~Y z`8S`~7C^^+B!mW|m1sgZ^t;dNnVs*x zkJL7=`A%yS@>#);+`ScipVuC{9n5Z6pgLj{hKOhyxNEmp$)KOep$@zb;?G(tket5D z*n2NtLb?#dbhSf_8_F^y-R39z8%l&?_T4@s;@{~qsa8b{dkFNj<;aJ^V{*nb+!l^c zlh2UpL!g`(KIH;LHbE&+E|?Y)F|3XYPC_9!;p#9RO?WiJCm&jl{GS(se_|s>dymiC zf{|qMy+YYDq3ck94BxQ-GR*{>y4HCe5igi5vuEtCT_fXji{ZJ`=XS?Z1|5U4hlPNG z__p%^^hLxSL%!+ok<2S(B@qk^gRkxD@cZr^+U zmLYA2l3IuSi)a!P+6!gVq=*9g)#N~Bh$+(q*u?NsrV@d|Z13{;W?B&#yvRko)ubt5 zNISQgBOivJN7;~aBHsly_T$6pDJhF7T zyX@?_*cTTGNq_cO+|pg(5o|?KY8|FxfaB8eBJ~ZXVPRf%Zf8P@4Cb{aaV(}T1!uHN zKk83>S$!krR=l`UDM`T|mo85yYA9T*&QX&WpM8zG4|D002c5+CxN$wwh2VWqW;ux|YnWQZCd#wxLBIK& zv~4*iF=dsLsDHpA>D(3W?PEvpYk@?8CdC;~;{EO1uKIb8;P+=&TJH@k=hM#q1=)`= zWb`n1`O{FF^QXJ2n8pgm+YKA^)qF9La;>BL{P1k?zQQ7|XX9ZfhjqeZew?~C^=IlG znA|ieTD!sqheO%yXL>H1FqvfhCmg$c5mN(ljR+ER!83IrkoVzEt%J!QGj1>)7}sW? zKEyOUB+5#TC-!)3c0S<0lP9p?>jtZm15l5+fGtyrkqvsbMXJC;kga&s0ll!c1az05 ze%fHiN=MH@S zWM2z3>C%`dAKe?gi`@S0-6=b%pS_tMDG|#n+^TMa`m+^uJy%;AN1&n(>}|D zwzG7t)>^AM1m`0p@S~p|um!B?(g&>M|LJtjxN>F~`Rxt*o?+=&#MXpBW<>awJxj_q z;S42F6m}R>XzfJAI75hu7GjDS8*s8fHivil8f}CX-Hb)d)q^U|RG@;jBb1 z69K`nUGn*W0Rv3fKT&Q@ls0Gjy%BG|o)yZxLH!`-zClFTXaZklA9!ERY^VZ!cF97% zc-P0!aTuW{q?70mrVb*~jG@XzD)6_V-hhT)05a?+@FPuXCuPZkxWTa^xpA$cfMDB#@NL7_a;*1+D8&PRHd=lW311Og{fI{@`+RcQ-j{|z{4A4%iCr=hB zR$3rPM3&+j%kkSLAexBMmux^OGWEy}AO;$LU>~)~A(~*CrfW+Jbo)4=JdY=8* z{vx`BktWD7D^Oldh%M9XFj9y7V53&}0F>E8rx0}?7GcuXL}d|KN5oKgiOt#;?2#rb z*ei^ap22Ng1t1ha+(;4GcL3O-IN0`@qgybdCS{7eGGjKz3W3Z85edaHi0K!Il6TUc zUsm8JP|s;nS-X+m#8C2N);G{da`vKNu(N*K{~57%Y6p&4NI82qzu|;7Xej4CIFAe} z*+wbKUx-2e5HkMDFVKJTyNeQ`*?Ex2E5#B0Qpvslo9~c%Ck|kr#oYTA|B7)D{jU_t zK4k<4vOxq=h7q+)**{RB`NT1( zai*V3m@p+Gt3*bid$ol4ty~cD974TiJ=S7TF|g@sh~M4U@N7#(-hRhE67qLQ>R!la zJpMMe3+y63U$|Ov$ z=uI5w+I%Xq;Rw{2=a5M)utiv!JkA2dL`Xj2HQ3uquoJ9S@nFh{zEUfJdmjdL( zr9Z&uR!Q>8OW^U&y&0Wj?Q_aQvhU7~FrN!q$Dn4*k>5qqXEK>!&CV21TdFndE76{r zV-*VeU#r&Ja{1IJk}?m>(jFd%LjAGr50UvZEww(>f=}5&rnn(;olzIeRzP`y#b%98 z$yBSh4au>U+f4Uor%Vg2DJZ8{A9WjB?uS;M$B15MlpG_m84<#5ru!kWzcAV*G(Deu zvl8R4lb6iNKK{|X>JFXa^Ul^gf8j-u)ahV?Er9-x@#Fp0a3lPQF&(DYM<|!A!d>)> z0VbV|9qAP<+HL%<3whki_>=xQ@wwFPiipciJ}wx6T^v(P+G58!d~UWS00)k})+S{x zpNGUDVKq$28t6N1>+O@i{rX7RS4T;oPtFU|Q*A~+n(_^7hi8#)_$ab0H$vaXusjv# z*nQEe>B;_|Dn*c;6OPCDZQgfMvr;M9bKoCo_-TJBSNmi6ZSzi;`Vc%J(BJ!y$ml8a z#9%u^As2W86#!Zl`fCdm!=8JG|+NVFt zB*tngXML4m17gA3T&j6rwNS#oOGSDw(FH{FaFHe=q_~I@-{BP^l5y?(IL4Z@ERG(?H;*?iIuQ>eqJ{^CX~dz3o`2+!L zZ>(-rST#;M)o4aXvaVtDrMQZrSKo{iU$635EWkxS?W~gzJK|O>Nmr!Yt^U=2vt%KeDbv|vl)$nkaDeGzrNvfwjp_$C^qsl9G!~vJ0U)o6OqqC ztdEE@zL)SK@W&ZUS{##h`~d zc5y#HNY&z6e9v{!h3M<4(pV5;^2?V%j3fh(5|%^ydpGzx30C-8ZGO7`v417W38a2- zSTWI6jGD5?Zhpgg=Q>q)>{N{nSW|;mkn>*sboxy2YEsn&3*F^`HdVnre$v6ck6W2A z-nD9H_Q8SYdF)aBiXuclbs)-Xekfy+dO_hhF{p4ZIF3BD26YKXn`X?I(Y1)JugA6# z`SvlQ*NB3H^Y5`iwnV)^T2Y^PG~A5JWC_DG>){!f_qtv zzQ~2HOXa}O0mNF1`l>%nz|e5O6V>W{kG_8MnK-N*!mu(QAjjHoaKXS&d=-6S_i=0{ zUsHBd?h--C$On$wT%erMC77U9@;MjoB%;|Du^yt!iNd#u5hrl!o2Ws19}&dfi2NxN zvFLdlx0tibM%6cYhu394=5yY_Ga0=jj4^NHfC0K<D8Hy@u9_&h zklNBlYvD zQ4iufd=dHzx~(DdbyU-lfcyG>jr+kCQns%{Gk~&n*I(8i1Q}=!sEb?vuzv4Alt)hd z_BN5Za5Eg7F1}_PE?@qO{<`+Q{=LhtJ$&D*SHVP$=e}l0XFY9*eCpb^J_1L*StOf? ze98_+domh`V<{v3xcE4?Ln0?4pJgcL7>ULA;*1ESp2BErZ^DFvi6mzfE{XRBaG_bC zoAxau#_eO?=koWyz0jRws|FnQbreYXjjI0~v5v7X{4~wttK&f+>?1gj{eXQ3kBV4Gla!9=atSK!#jtPUB{R@Sv^{tYIx?Q#+Mrk~0?LJ*VQigZLC)$l%- zLY>Z^P?gWXXBs~S{TY3wa_Nm2LyPP4Nmgq1%w4rekrHNMdGGJgvYsUJNIghCS44gzev?)I&k=piZ#DH+MU-Z zU8{|@?J>k$j|ltlBJ!OTEnT%yE5F~)Ao>eeX{wWFEPHUN3UMJOkO&oM7W^hY~-zHKE}&H zQgJ3e73mE=i9+ZqSzO(%6GAg{V-Qh{l~baiZJ= zqRY+!Z=fXGwjp^i?2eeIE4LJ zlTL^r-u0ItUw6cUB#=5&y0ii!^9_;O5c5Q^5#h%^xMs~6*|(>tEZaU@diCsJ@^r%y zX^_Q4=CNIzbaBG>k~n)&uB>Odn0D_IDgO$JL~|AkzRmLWs$k5SiU)WNi2W3?I(%UkVV5Gjhaj4@5arHe3_;(q=>}j`NB$P6 z0^WZLiO4D&RYtkMhz81D>Qh|goxDthCgnNNX!Zh$zM6u%43UyHaqS*1PDoUp&F}WH z$LZTfX4>~u7Q@m}h}Vt~;mq&)Mop2zKqjZp=!p_zn=tAO>E6&@*4apTVb%^HZ&F4e zB;SmCnCLU|f{{0DPv(`SynrLZx61SZgC6 z`X8b*Qz4>Y4OAU;g9o7nbFtLXFNkVche(^#Krg=}k~HWU9;DvK>0IX1HtW{lrWg%D z*+6tMWiU~mj2>e9b4;iFratY9*cZt6tivWQ=uEy23k~{qZIL<-ablkzRo~R5_+jMY zJ>(L94$l=99mAk-9g#H&pNnVoHI8GOH^!EjabrLhL^ph?f}G$**GZ9A%L#%^Wb$~Z zATOdXRCm`-{^cU)-b9|~hxbK9{+Kai3|hQ+@!~;ic}0k!QKKOd`vT9g z^&5V3Edxdg`m`ZY5oHx4jaZKF*-5mc?%a(ogFcC7f;UT-v5rzcQnhx{UJTLmW&(xV z5yNgA>quOn@iXLd%UOGDa-R2~+p*)EmM;A-;rX(gs)(>Zc|wq991*J+zIH<8-3fJf zZv~NDxuHU2hWvjUDm)@Qz|yjG5!Su026>s(x|16>t!XJZRt?YF_s6j?ZQ69`BN6BA z!ca?|hw3sLrb9M#u>|q$TA%K3j&ZgQ!SR)LKKYPxmTL-9=5n19{-$ohu{R{5?P*68 zvJ4}$sB1IY-xaYL(#hCQ-lI;#MWDH^1oigDSObdD0vrn{b9uiZ5njE-gBxbWGAs+& z#Ld$zfBP2J*l8hB8fIpv-j+(6`z4X&P+u3rt-8jxHva#e>i_^i07*naR8oEzozf&>NRS}VMEadOcMaoT3baF#Q19EW z%l@Vu$Ap^w(|l9zQ(v@+<|WsS7}ryzKxOn3{Ehx@pM2XkyL^a+ZO>m>C+k0dO$uc$ zEnm%jMZO&Tk6BZT<8J26R_Fh?Gh_?;65Flahk^yOBi?W9`*|F`;lP&$pY+FCIWaNT z#+L;X2br-oBKMa6rED^LY=6URpMN`97OmPS3s$U`U+0c=Ra3oDCnK1K^lA$`AB+`A zs_=Rd;pZk~c)LC$Wc>7nG87BjZdr`M-$7%h%$FJSSDHQLN*0zn)uAN&>B(;abo56; zXgLh4QTut=h^mfn z%pDvGVOPKzI3lxNE9)~au_?xB)atcW>o%~@iu5;8J48_;Ow`P7GoLB*ps!!Q-c={k z5Sf{HgnOD9O+KRsAy+aO0g3Q}p3&o=*AG5lX~6B8wN*6O2)?Oz@ z@+XtN<<6_x?|j!hp9mf2J}54sqC|bw z9qPWMDe$geszmFDR$;_2coj_ASWbI8a9%NNGl??pl}-AhQVx*-$bi4Y0|{?9{&9EPm{-)2ro1+;6~?E z`+kAk;xUlZAN^&`IycVyJ`WD6;JEuN&6G_GB5?cr0dNF}ausaUp zK%$g@Hmr9_aNXgSqRQszU}L80Ieq$~=8J^6h8kx3}CSFH_gtvSo|O#q2EW zYn%PTDf3x|`}nbm*YHN<+s7WpH=lv`L_2}e1b2YM3~QXbo;_YpGhVw7ZORixCyf z0spiT+uPaZ$mjv?6-C9EK}U)KfDs{(Gkm;RrWlLOPi&gJoiTJFFv1BZZqnzB%++Q1|jZ84Y$zn z2-J5GRTi6=nxA6>iT68W8iHj%Qk^hiyvLe7En2j4>ETxCi2a{AUA0gm)n!XUKJRHm z=gDwm%kQCDL&gZAy)=}Lg4 z3&E7_{22nwr~PE~iwx#IfU=$yH0tP{fdpY6ppIWT!*bZtg7ICJAOs-VUDSa%4f z;@|<)CAfaZL5&_QgN_(-2lsVL+qUhd8B(>={fJT^F_MDOo~u@QMnX_m=?Ga~C>ho- zYS<>scWl-6c>dpa=%^N`&`?VNwf_1$A8D5XqauByJO19UNPA<@@ z65#KBhrLStw?ChJ5Bj5j0y8i8=x-zH?f}9%>M9FIP2MxQM5Yj75guY$Z$yxsw0O0ss%J65E{XVa2Ftmr3RpC9|P@Cut2aP;n_h1 z8qusogmC5@&H{rTAu^SyP9oxosDhDeW`9>>C40`!!`Wz%pXM5TU%mSRmh!wvvxZ?` z_SX#pIH}06!AQ`Uz*U}YjzQl1W}9L$V%M<;+91rM-{)x4Dwu-znr45XiXZ=zy?K+! zHiRRF>&CtN1yADn{5({;hZ*hkfS!eijvYrbzv)PR`LQS5!anzT^y76uioDZI4jipg3#LNOK(<@fOefE)5inkneKx`>c5Aio9KtdiXw@qg;=nw_5Nm`FOKyb ziWDts^4G%gX8H)xR?M4<6b^zEFy=HOxriu%5@m9kA~aqQ{%-OHX9V;pHlY;@7bCCu zCs-@s5~2o%BS9nXg*p0dV#0Oi;qTBB&j+~4cbKtng6JK}j{gJl=1sOg+c-Sri-&#f z3r}54U)~cUrE)!>+B$@MM*pE!9$MUHxQTTiKLUgeP`gay&2x#u!^Dtu?)Zx={OLK# zR&cmr!p7w3Y|x;A)TvX)$WY2`kA8Y2KyK|iCUJ@uvMORE$-M(eIt$2|O-!O27pQr! z$S8A|<;oJhVH>PXfj-x~DI&{yA>t*8 zeFf`#?>@mGBY=qlYM04cO2hr`u1D!e`7$UlG%Hn+HYUF1JSw$iAp9~l*Ay7A0}J5!|!A1@Z!aDSqFUlhqD1}o>!2jLI6$> zENX4?PqSS!0__K9gNdkwv1|~u>(;F^$iL?RUxhhuYRnBijdDCZgv+6yTFderMi<); zHE$EddEK`7)VI1H>)C)VNR($RbU6}kV{PdHIdaKa&~X#FOVU#|Qt#3yPG9DT}7Xkgmg{BNx3jNKmF?lEWZg z4_ zidk1q%19vc&q?LV@0lnGtLEVUkDU-11aqa*G54`;P(8+cCepZ>wGRQj60i#h=B(~A zr%oaYBek2~-AA6jEpPcs-lk0z9`f!NJjd5K;H->>|Ro*|tkB3)X@ z$F*Z2dfI&!^$8-`YeAL7(jX@9_YugZmrJ_Ka0^vS49MPxMU>-Hi@5DoBj42S4Y29cDm!_g!EZa}kmFHX5Ji=YkQ4Xvz&00SmC$HYD}zYSrFz zMZ399j=)B_idf?WJUzNE`d2x3KK=+)@x&MPma)|LxL#U#$h%+g9AEq%T3yTtFn;`a z^Iq+HL0T!3gP#71up&mvRfYNAK;+E7p36T`%2tBj-mj(m>U6cdjA4HMXbX8ylM5~q z`E@P$5$1(2w@`};&{1F}cI+Q0TyJsZ%9S!})glM@Y+ACZVYN#d8K zN4KBk(>7nq-CG6Zop+x#{mp#`zPH$BjO?*_n^6))VQbp70{X>~y@(Xt2J;sEfPHww zhF>Llid*txt~D5A%0ez65Br*a@?wx!qE4AMZF>2r@oJeoqo}+L)8GVT{TJOu*3S`{ zvH>or?=1btzRr{Ooi$5(*|KE3oH~78-fGfCHf-GmIT;AO;ThSr_mHecUi#>4EYQ8c z`_i;dRk+(cZT-QcrplU)+vVcrE0PF0;g{W8NuKP_n{y`5S|Z0zoi+8<{-_tAYS@kH z;=y0AYwuwx^-devFn^S++w`aWwdb%ohyQLvXtindjyccXc@GTJW6)UHzWab&!umKb zWJ)Jr^=vKAXGBPe7q$4{Eop*#U5oqbGvs?jij0=|6Ta{&<^TC4wZJ3w+#o-nQ97cs z!R!#jsI2p`sw-Vuk*v_3+Q2%UF_qd!@Y~Dtk`?Q?6dKJ3(7e2f&eS)mh%|(TUHyHL ze|A92h&U@upFZ8BVCdDWmsx2rUpJqsTUB5dupwEV>0NwrfAj(^&)W))(c-F0yeE%JoE?ZeD69)`ZhD=tE9| z;{RO#-lF|_!I2K{=|u4Lx8Uof7}(Q5yX%O4mL7v@GB_raz>+|U024pXI-mq_(HVw| zX3CVwgjF*H6i843^4=(2>^BUFX5ZmHrr-i1-#GJgLoq&%MW((^`+~&a{ho&<)%inA z(m~7g&f#zdR&y&%T+D*D_1-&Ji1Z{Z=9Ih(KSgm1a3O@fd!oZYw!*%>tEZx$4WfDh z6#se+eT#CQKlIPALt>Pk06yl9}Mqw;QCMC*XEchK>r##NHt?dH` zkj@8_0i|L2yo>K3C0cIYKm&r``}M~?W^$j$iLAr>aSUZS=K1OWt_3)JBO>2??1v9T z|M_J)LdgdsyIDXwDNqXPPy?)+3^ASg`9P!wJY^;?=*(f-L*xZFr{>F-PY@Yt^qLA4 zDhTx-8nkqpav{AnYt{%SR_Q3KQ}=CIv0@RN@>k&ys%`)ccj0V5cNQV%*Wd`dYGqbC zh5lTy5QY}W0TR}mmv_*I+vLC!FWcmrekc=hM02wN_44RFPh=Kvu7~* zvoVI`$(PyO@V;Fz846mWk?Gcs?iMN1$5KD&ETMJiOn0=eH~ zatwOM?N}?3^0L1m%HN#FiKkR)*UP0CZRPIS95QU^bopXna%tZw4<=TBlHM)v$l^)B zx{SXssndk6+j2srMvZE+c=0?raNv@pPT5ET4ks}>1a+6HZ{L^7Z^e~C;MM1I0t41Y z;YV2`rHfB9sdW4FxnmX#zI5rl%$_~lfH(K;jU|V77n3`I+mPKj5I*QUkQ7x?Gx6$)xUE}dTi}ttIq&>@k8?vkHuuKSV)ay!zu_=((_ARCkpS`{&N3i3$$+_^6x2u zz9eg5ATy6V5$i;Oa8ULj@TGhX-mmikob{`bI5Pyrow;`he*suUK3MbMgKtLy6%5OP zNcRLd7DN|d6vcW#%kJc)M#22r6YXGMN8*(ZYpN36n~fy7!eVM-NJ} zXt4o__y!tcDNi^O?+tT#e!Ey{AhgO?)Z0jbx!e&5J)&L8^mOXnMPCXbK)4qb3Pl25H z!?3&q6l#*wiEn;Clg;qa!i7r>f04KB^;xiZr^)lrT>lo`jPVP+HxYT3;S_Ct`luX5A@n{;IBKk9YgFIL z!|!n-e(XPh34%JX&apiiV-{sHiH+QC06ayonp-z?H!`jMvK8ROZv; z%vi#RMCvqj@Kdj$&cTRKI)@fat|@V@rh@VH8TPL?PK4FVVn|O68?m5f1wx&P6B9g- zZo{r)JMuZ{FnNpRs3%?^f-0H+{XT>iNC3IIe0tP5@@+Ieo%rOJ*g+FTq22m9tdI43 z#fI`r?|AZlyLgC1h>M{cdGVpgpFR;?>a?<)_!Nh$mWvGO@{D{v?F=T7(?|=9D_0;I z8C=R}kG!wA=U`#`V+{w49pJU1MT?kqG%{t%6zo>)ae@b~OD8!OXBBes-jsANHi9bt zNwD(VF&$&tg5j7TnC3oA^z=@M{|->0gM1+9hj9E9g*sBeDn}>RS_~7<;hub``R>a6 zTMyI%oYc4TnL8`8^_06e+X<_82^i6n;HIu2RqB<9U;Q67^p7u{wjhhhLx zB?tJfUIS<8h;6T3Ei$w0Z@Y}S2?lDI+JJQGF89H(4ouB`ffavI``qjhmGxE)fBn^mEQpV z3m-o{`WB$vMS9;*^YVM&WzLtNTSI06#2$=@e@dDVW5W_GIat#=OjnE3-GZPod7~bd zDT9bS(+4sbzZcF1N*}T@=U+hM7Y6S(g=yA5uC(aW1#7uj7h;Bk30Rk^cI|4?s8K7~ zvu8W>l6Huq=_fz`JPOf)N2GcE#&Y<*I{-;$k*;04%G3#|cBMI5KWdW-Yi*@ zjF)2K)WKg&CvU}GK>DW7~3 zvu3~dzq9~8@#7>q{uu>IWPi@AnarVDZ2ww3>SDf#SUk4^cz#P^FIRGzCYe?sbEFS4mu8-KvQ`oAH1`Z!LtM4ot=eMeHy}YC~IPM zu^PPPSmX&@ggJ9&kxZGa{)c;#Gl0Dj9(3iJT>Nu~3>iB{t{^``)z3ba*u{&QzD%bP zQJ&;sE^@|2%baOn=zQg(bI3C(+u(d{I0;&0bhXg`HLF?ZdfO7?eejyoXM$fxiX8h# zq(AykBRogaBs?0NFbO7q{wXp4IU4+!e@}#3;2ET(e6@U_3~U_}h9X!3EaXl3UWN#S z@;v(+D|JR#!9K5n)w+&_C>jA)0^2g1&31ebg+coqj0&dF@kIfLVE|W)CLeYlgT)D9 zZGh-RVuS~c28P)at;B^=JqVLi0wj;LLjSPo>^W>fv86R{6Zt*;^CFwq+Ixb3lP_ug zy!W>06ZbIT_ED9pvU<M;6lUgY_;ahsQ?zKaceD6^N4^EfW@*zQ^I7q`k~JGpXdi=};m8+FD1H0(HDCZP z21gVh`v&DLbs9SD8LE!l`9`m?Q#sNpOUFK=S(xtT!nG4}?ap=})h?lbS&JyFWr1&(9z6ohQIr2~IKl4Fapg3gij3EzFgZo_DiO=z!ycMfiGl_)> zps?r=beHvO;>p!x@#T#gR!SX4@KLv}RSymmpz%pmL3VC~quw}j?wNf~=MphK!>5_u z<{#7z;hFa^K2@*&mSsD*5BuCYdGdhVy0Znmt>_0F3xd;i3=iM5#iT)bIC$Q)j$^oy zN#OruL`1DCA%89_Aq^VrGgX{{_nkmV>LLW96)Kb)X)wQ) zb!(5KU&WN+BU(wvo^MJCq-4eVfM(I$6!CwQOXs6WpGMGSpjQ~d&d!KQxcf|mcHtnj zktOnCj`LEt(IlBT?k*Oz{T-78TclHm2J%|zBQkIP0a-XTF`UJ>Wc+-U@)d3yyEFv` zjt+>}YT2?S7C>(f$8Q#?Q7;n~EUxW(rk+LUA`DCuNDHRF;`ZA0Ak6cnTwHz=c<%0Rv=he|BffC1u(q&>4|IsXj@b` zjvP4xzuTVxM?Q#kk9Fvt`#c{CZ8$+SAnV4M)4#{BtoO49k5Idf(hskD@dh5#I*Q-5gd zhmdYzf;CMY+QsOU?=u+j!Kp+V`*6nMT!x6!s3CD8gK0>joC-r=_UMR_suwJjoDwa$ zH9H&S*YQ^v=@z&N1$-!+cbi}wV<9P|RLEe$#hDA7=*eKHeB`5(L4A?GpuR}cHh}AV zWjW?)&3F^Fvb=dPnbZ@|g~~{5-VFwHXOW6O!CI{(IT`)p%!9)7Sr440CXSK$5VB{J z>*x>d7tEL662wJzlB5z)wUT59VlW7maa^y2yyLt^E z%%CUUgo2JCz|0N3QY7SCK?XbN2eEYnVzf-zobZFwZBDV9O!n>DhmhVGW&)Vu_QCoG zQ=a{OLgMGm?Y;mfr38I}ea9x|X6D$zwON=y0g)yl68Q?}Uctlczkd%1PfKPW+e+&3%0rGl|pcH-2 zK4%w*Y2>Z_>og{W7*5Vqfz&UUI)@Ha=A3295iF)>^dABTD66YiuWlv?auu8*i&jI& zxpf(+=|bq+7bJZK7-Sjjn*HBTN(&^1^ZPoS&<{%9PJE`+iH-CoVbOM^(Yu_#up`K9vAyLJ+1+~2DyPiw-P;F0<(kjFM zQ^sMgHa!BW%DeaZxBj~p;QK0H(erv{ejU1oO|kKQo3{x*%+vA7Vw@OqQW@wtKTSaD z4X6%@putC}5Y6kA-`RDly zlX19yswD0S2Ilh5TM|Lu$0uO9xSA$q8bLpFqSBGi2rI5_V%wEgEs^_Aa}=h!&vg}5Zwg_?cckA-#Sfs4qnHjrc8yp=g$VRzK`6!ydOY=moN!-QKrq9g!L@` zm8?0U$+3Ss$ww{D$n9J4UpQ@25OFer5sCz3QYUKK^h4SGS0S1C zLt^RN+v53`q<4-xA`t4D`@)4xMg$bwMp znxF@bN+*6;Z5LiAKI=L8?>YHm_>YK0x@UZcalk8_nCRN(gRm~+KmM4vK-gUQ5Fdbx zDn<2&gYeTxGy-hmOf8YSRJ^(9<*Zq=Wa7k$1{u$7D%yrdKf}iY81%KsKsZ5XLfXHa-$(skyS|$Un9+V9p@({=a|kNNR6QL# zc9cVh4w*e1{I&v(9p%K4yIot6A7N>ro#Os9+ZrvS{6ha<6}tE}3LcvgAk1mZkaHr8 znHQY=M}ybdhdeHo3)=O{S;%jY3r=}hk8MAJ*Atp|NW_#PWlIC@vsz@=Lc}k^GVb3) z*5`a#ZqUm*ZZb5lgRojI`>Y`j?yXy=PBI<~c3ubS=M){1Al@TUK#h?fzaJLAqtl)a zqlHMJL-Zbr4k7j}M&4XRymMfs3b0hNxSjZ1U1{#mh#V-1nBFSz3}--kpS5u65Gk%HDSyPW?!5-ku7O7MN@1wWA_$uZ`%>r7XIr0BF0(9LQNEN>kXvlSR-dhu_2M->EQJK>qjG5n?Y0%hb zg3&L(!qSK!6H9xYPX+CLR?Jq%)>pN+BVAhmxG`z8%%4?2ypoauD7 zt-<)T($iVb+$1eO1|oku8V~Z=dGCh`pPV(*S&jp16U|qwk&kogYx}^A^3d(RR_v; ztY5-(e|~!WTfmo&z%&Jveh`@tOst=>kB-84KsSa(OsR7g&XZ@KjVE2ch$n+b$Aw;C zrPQGwaOO1f)t`aKCWx+H!5a7HG3+M`l*yAP8MXhfoz`N{b{Xe4ouEsA4s|;Bd7Nth zxwFoaoFup>Q>RYFx+=f8Yz%^ke6<-JtK(ooyp-2n2c5s)KvdU+GmCWooHc=9{j&bU zJdnv>!ofAljnH=<_isnO1wxbA6_ob*D6JQhLbPeOSEx96jqW6{&d#I zbwHktgLgYN_&ax&^R>-uMF&5QUk0_d2-bMOgg+yscwf~qLGV%@Mi+|wzQJwgl7EMG z5NXf`yq&-TNvr@4pk_Pw6?pGMzrT&=IB#s#kt0XCY)JOc-o1Mp+3h|f@>{0OYUb*s{@>2d? zk|yJRWOW@R{XUE#MPLIose25vIU4vlx+G18$)a4A+~oqh3DF;SZM!d%hR2rZm%o>o z(i-5M{fIm{E5k;-D{I!ykT$J9l7$OqO2x8Y1N${u8aFMEXn=DtU$2;SI-Jb<{rBIE zeafs4Cr_T2mGeu=)ZU3*b`90|1|>xHZ3Pw%s`?vMpIp~Sof_q(W6OF{C~pqQpZi5A z1H}8{NrR;XqwyayaiXA5z8sP*3+(nNrZIy$NX^P6rC^@yQZR3Jd8=YcSvYAB0-57S z@s<45J(3oHBKAlK4@>2_|bZMS<;oks6ny{2{Q)KRR2uB}?NQlN+xizq1u*5Fs+zGW*owyBQ9eT9d%??Cw&s*|Vq zEDhsAF-z>?Axt7DX5AIeeV^r{WGA0v&KzADGqoN&aXd<@{C}-v-MV#($tc4+aJoNG zGn_nm((oZd4HXkzik!w;tXMGxYEq9JIii>VQ!FN=a2WdLkHA3HrAt+lCs$3AU3J1V z)k~MccTd-^sc!vKwdtp-$&#oduZl`c)jWk&8#PrOGF)}#I@N;#s{b5QMV|)hUJDc` zppz$0HrL?&Wy_XLv1qjGH&D|q-iC6gh%zw8u;8sC)X{9~ecbovZK_pk;F@t&6Ql1| z{Xq4^3G2A8|JSanE?T0RK8I=?^yRjwi`PYeA|ZmocOUju*Tddt>BE-X2x)r<u&LJ)}@wf$_vi*KyrywJ=uUz7_Z5MTkD|+VhBhl3zpOW#|4! zbbFy)cJScAid1@v2~(xa^*PpuR>2c`3=UX`?Yj!6ymFg_h(v`mUzaUg1~$E@a4;z* zU|ljBC^p4J>_dNI-WMhr9{P2j<_qwhQisK44Ag+7dgaO$^SD$cYnNADxFGUR&pyKX z$vYei?m#aIPyb&%VS@hl+i$va=T4&+P)9&oC!^!DzFuAKYmI{L`=Xq$TvYYPiPpZ; zr&S9kRGmB9U8d1{s@tKeghY2CetWc5eW#q_UaeBR|F6IP+9k7*c1l0^-~-qn2TTE$ zn?DPtL)YN7-nylF<+A5~u&cIisQTH57%FbKk5Mhzv)8CcuAO)9-cmS{T)+Jr5pMwi zn~a@QyLN3wo^Zp5&RXpEZ13YRe+;~IV86A8YT-U?U-Ej7JQ}1jnu0v9Sv}Qy)iC;c z4ZlB4#c=+t>csI@ouU1w2^*3LM|EKDZui-|{?}iq=8LCFUL#GLqWby^;JYCH?bc4U z2y~%4;5%kx{U)5|d2{w7DTGZ!h!}=-m zEwEKC2vz^kaRjYz8N18(TsWWGu(G2Me z8D6z(`l6?5_E@U9;;X(8=Y}Se!}_dzuQ8+5f`6uxe(-(^tx&d$zM2*Nw)S*M4n%m0Ns>8oi9rU&J8Tggz zR5(L6ZgP2tsOZpHx_b3$Bk*k_*W-d1lyuUM3P6JH8Th3&0(uni@#8v1(Nq~#->T`h zD1wUd8jBV!G7}s?{+qVJY_YiqA2mIcU9%=kRD{z%l)C?4Dy5N%v{2^#A!0Xur#_-Xv~lCcO6LlltUT_MXsyhe1BZBG7~2U|%T=|k zOXmccj}xa&o2F-IIn#QembQ4A>Zq}*pL9}vE{AHoxT>*ZTL%1*e~dw2qeczw)2ENA zjXaHYCUnGz5ym-$6g#F}fFjX%-+fmzXU+`8ZKeVRr&;kVf6SV#+PlAM(mV?7O7#_Z z8`v-TT&T+@ablteuEzhNgQy z3`u9jbYzT$xDAOlon^z?hR;Yhz;JXL>4OFhQbetVb*gooyd=-TgSAMvf#(d-I`2Oa z`%`;b@OF(i(f1@3od0coT0U#nt~C?VKt&m+5c!%;8Z-IKy3b(pARopnIUs0_ zHCC^|aahHRmcrxXWd!#^e~1>{nv}B3JHGvnd`DwMaud1Y)qa1J*+8oYa|}hY>i_gK z%3DtCMg<|<+>BjFh|n91X)s6VVa{EqyvS}5$} z+)rPdw_`Hw8m$tx6Q44UPWUT7|7^)O%D7NI8!%C}8anmXt=n|}{zFP0<0Jql1L*u? zy`?g%HmT;m6RJLcZiNH(;58jKY$&b=2WE2B=~JvSx8Wcy_B_=3mF{!6#q*s0MBpB@ zN)gqX<)Fqa+HLd?f@C7_2 z>+RMaPR^d_8;)WDP<@y9n7gFFto97S1|(tOIO#vo9;j4J4 z`wkyItVN0xF^+C3KSWBh&(JBIKYxB5J$kf3*#!gy7{he_{P`i*M?NCFZSW9S2_-B( zEK?1WSko=1zK=7hSb3mpsDQB^@;fI7PM=ZTe*mcbLuNlGz}mKLYbF=$>NpX{wxFYo ze2rX*N`wR!BsD0(YOj^l8mZIj0wV7jX(NDMw1qXbegh^DpuvSigm{cVA50I+pXYqq z5mpt9;}H6y-;p0uLxz7pQgLXRGG&a6iZ0J<#_0ES%4FXLfnDnkh`KVEmudfz0)b=i z4gWXK37W_9c~XSXW!-wi3shP4_zAb8mOLGrBcE5DI88BoffP(t6sV-l>+}&p$ z^a9~H-|xr|M^#x16a{)RdfjFv8@^9cBajnGy66zLY&vSo{j zoVLebf}g0HY}f$3(FbwDr$T=47KY@|i0|-Kyx)IMg;vUajPKtjnw5RKA&9juf>z&! zF38W8F#Vv~+C(0lG#)s~5boo~jq7?9W?aASxZec8T%jM3Ur8K4m~jDVb__U; zI!C2Sm2~&+Jvw8mRmT3`y2bB6;rG}0GR{nJWQu-EYgN9d1#(P*6W;>PO`0^>L>Tg% z9f%NRBnl(g=}WRBcFFsUykrK5&YipA_`3ise6GJNRV|NxH)e!=Mb*QHFb=d;%?cjp zgl@~0enh^zb^Kc)wE+Aaeu|0~2&sV|_I`%0648ZcaD6DKs8AEV5}A*OBkf^7z<*Rf zjkIy&#u;=M@};?)`9v1~iC^{p*G%;&&+ z)Ne<_aDhXi78XS*?GLc1oNpNp1Q#?EwD7yRuYo=*oYCwz$JW-1*Uh3zQz&^P^# z{0DDhqUHbk>n}4Q#fS>Z0y>61`Q(#GRgOHDCcP6CJ1k^qjBsxE>eb7ov=E73t5z*@ zEX<3L_Xug;0!#Frdf-WDgR$VGEKmUuAMhq2W#`TtNYN?uMWW>*LdZ{UP!;w$>tR?W zfg_0RfCX@M-nj9qP}Fq(0$40H^bQO#EPn(o4;J$5`ADAw3yKzzFQS%d(*1mdNB~&; zMB&$MWFhcFIwz1*4Ud(^2L83Gco69r@vHsgTRj?qC`NrmtZHA17ou4l@#tQE-tV z@&Rp{wKwsac8b1QB~`nAMg*r- zYUx6tOrZ`OI^aI555#=YES{6ccaVpqNs|way}<~D`t=*=YdNoLp|lXS`QbdR0~KTj zRFLDILji-Nh7GY0_jRj6{2#KeLsg1nR6gJjI8kjo?*BOgCvHWcmErVq($RlVM;v6; z9DU!9$agkOB(^ti-fSkZsgHE)*3HN&PN-8iW|RjbFpdOx>KdJzLgjtM{cfpF4gt2x zb}aHXXj&FX1&7{u?sCrC<1p@PC}$a(hF|o7BOiQ3M|`hNm`s{!;my2EKHa+q4*bM0 zW8viAzWo;Z!bRv-s--Xi#fS~^Ac^HdQ^Bbw)F^*L6D7)`>C>k-HYCR`I_(K^Ab^Mf zA4V>+&qpONjQswRpbt!Nw~618Z(iF2{rmOTUv>5B)kaoUDA(FJuG2=lpv551Y#Bon z4p{&rOtvF`U_bXeb5=s${=6IHSEb;`Cyqt`ftg4-W)trrFJyKfoZ~dXRxHPaSQ@Iz zXH8M+^s81tCTCF1jq(d&>XDer5Np3_sZyo1Q>RWwf8nz=c*i=<|Et%m(KONaYjWAA zg)<+~Nn>Dh9ENPiwa1N{2@qQ?#X3JG`i$vasmqc7ndX(?j5$;TjMN%Vm7RHqsKU(`3_5NS$LDrT1|DU85 zfR5#-sAz#l`O-O1a#j(~;rd{4%13!ikKMItq)nJG!F69m7PGw)CQPXF=FKyXaiSY3 zgqb&+NPVX0U@lu1(O_lHZXgc+GonVt{NQxrPn~5nH!4eE=8MLJgd&VrdkqM7t2Brh zbz$=h(SeU@u<$$bgT0;z@1P@p@7}%Uyj#$+->zBHyj!jV5g8&cP&r|UAeDXc2iKKg zAF_#kiO7BXy7vBXeKR%9QfOW6I$DlOI@OcF!bp`?FSYBUclW|M838(W{5T8~cxypN zjvv)L=`$+UCe?{R+h1pDpCn0wt^+NJIq-M>1xF>6J!+645ubI!6xDQTt#hAChczAM z`%Y65LLGibeh3W{f!%cE+aa%O)~rVE>{JND{Y`6>3H|l)5_E2~sIQtC?DgG1-xq~n z#LOf0>TEf5lA-LUA9^By>@xx8(FR^5X?5Gc*tz7Z-Q`L4@jqX#k9oN z{RYjxDA4(_^d8VY%i-w!8N7WE(IyBx2})gso6eFK*O_UhbMvmp{{8zO3U4XkrLX(G z?hxEl0^AcO4MHQoBR{m(3E#0%qecM{x!)9K6r7#1foq*SX~ePOL5OR-aN?Qz2*)fe zg8LxVMfzO7BR|qj=Q@$L2+{ZUWIP>2%mt4%61DBe-LxRY&!5{|#lzg7F2XwPlseZi z9)MB8{MadVm=0z8jzd~3`x*Uto|RIE_1XIFZ@efQ=reIrmO^Ot^gFiLDykN3{~>{OKrk5(BX-ykJFYIQK_% zo2qVJs0_W@LG^|6-i~bH{VZQ>IVoA^k;9h0MC3cqVK&!A3p}s(7gX((asd+=R>UhO zs0bdUy=;@yRjP;0nA#eR9THCSu|tH2H+J(V@Ki= zOdnI}6*Un^1F{|FV85Q1kc#JhlhJ{x zW|>Bch^tdAeq$byWtH*D43ZeRQn30#V}RP_g*_`|n+s zpz%qkJrNZ(;rL|O6BjyjE*8p}TOM;EDS0;YF3^y8xsps zFS8C>SR80=^_sdzgrKu&n9u=BKB0lZNekQP3jYP7uB6|Q|KM#&NB#jirwc=i!D6nP zU&yX8@qXjO!1(2tUmoZJG+2nd=fsyyT+1P2#*E1EI?ZJe+s7jH&0P5N79j=CSAYfq z7Qz0-Ph9Xl5I_1-Zor62-~&UU#G65%($+rkvYA-RnFCIDlx6BE`}|VSn8u8Sl@4ni z`Simipa``Uw6$!ooa{Qj8D`}i5A)>U1-^r`&UP3CKl&fdW};z|=mqnK;Q1eLzz9R#`y;c( z$i&cyz=v!J5YUH71?o-YzmCliIg-<@GH`O}wUh|z6AK8(i43McT)%$3K_RpLKmPc` zL@7iz0w=V4^mWYd$oJJM5!>f<JbA=4qzvF?kQEsgs4 zVnjNHhd2>BatIvavE7j*JdgT&_qM7T<-Yds9&)DCWth#Eo1_2$KmbWZK~%hYA%=z4 zuUQn)EN`fGMn9W0X|d76jDJKbYQ~sXHCtRxT*1uDyhpR7{RHWU^68v8bIe+b$&)A7 zx^?Sng9Z(B>eQ)NoVFS8lh2v87I}=QeCHBW%kg}SJUDqO?5AX~ZIdSc)H-3el)nV{ z)lU!D0?{Av{3tse#-OZRxzbf1!doR(s#F5Rxoh8(yn(?+a_7!1SWHLq@5Z5};=U%9I#tm z;^wXhRqI(eOJ>|`Ws%Q5m2F)*%JmE9MR32ec!|gmxGo#F6e(E>e4Sq;cRGC1isZ>@ z?R)c0k^1%JOtrVA_UV76kOWG_mkY|@fBhx8YMDsWCMZ{2BqRE&H{A~u*$NrbsFO%e z^f&Z%S%+&jZY8qucgtPSwzWv|WZq}`{!JIdl`A5D{wdO~kHr2Rbvyc>?~|VHz2nD^ z7o=wrtVd#an|v5qqMUmB?V565w#bcyg(N}3Q$~Kna5Qq;SG~_XBa$sU#3x>_O);=< zHD1wji13A5M2_OMZ8V9Bsy!(__--7@vL=Oo7H(UNWrWc)W@3p$`kxw0b3z_%gM z-Mb=v`ioR757~h4k;CzjaXd?tU-K6c>4oDZOL!jh{|d1MV7v*C^n&O|Y1Ilc;{gb1 z&;$mcaBK&{%hZI0*~~WexW|=XLP6YteWoB9{!^l|1*juX zA4Zx0!Q_g-Y4JeS0|;PrOf2>-36q?a&1*z{{dFBazZyL|q{_)#{J@!S%EkE*Q<>qQ zErSOeot=7ntXOg7kKf`*x-2mzdCF%n9D8akNgz63EiLlwbMA^0JS&pnd8h^(?!%sf z3-pAcDtF)MLmOO>&Y{Xc&%UcA`wHS$;+*$wnGvf7@1(24%oc)u4uV5%8_ZjHx1Xa8HAOaH|aW1MkZAbKT{-G&kcF$0{t` zE&#w8UjuCfq-iz!9_@yQMZD+0`wy%3C$C=mF=#_lAK?e<-9eT(gh>P+i84DwhKzFe z?mc0jApry^NO1{w#OVmtMmbjS6_{;#LNxsf2;lu88IiCti^5r0&~t6y$-c`9{Od6FVW{J!1T)qH_P$+(zszW zGv1UaQC#NDA1JBvw2?-=ew3y?ddV|M-o{*ssSrZP4<{YTW>RIDlO5?K=t?}PM78>0DU4FR#WNcJ1L>h6MgI?{DElT zwLn7_DNh{*$mH5sJp~A)5T>x5&*rM}kFD0Z9|IcVBX*aw$f;AOHV8OICwRA+tDgUG z!;i=Z;2Vi5vuDq4(m64e4fE353q<*P&)nyHch1y0=GC18%&ceyJr6z_h=nhA{INyT zBMk?6o9~~w^Lfqi5~F&U50H!alrCM`EF4ReoO1EBT=@{s*bqr8r>U-3W##K8!k#ga z$Pa5^Jt6S0uj_k1Td*>`uKfu*cn817VEqfqyQGM+VZK5S;`MnBW6*hT3xN9U&;yHC zKWp`u7qY3ohiBLVx1J|`ld=P_q7L)n?Cfk-Sabj&qk_`&3^$*s+DQAG## zBkyJgAnkzI3Ce^LzN*RpDUw-hFa(|9?6Z0WP|DPKRKG^VM<~QFU$!B6d%%DJ9{oO) z)2wlW3r)ZKf%V=eO||-f_en&#<^_bb@avw?Qtxt(-+n|s(t{xPFA>IE;Ea6E)G*|6 z^01MOj`rev_ul7?$Y*itH+;`IbLKP%M@xc*Pt60Tl#AkswI!@A=o#%ii7|w+D!D-_`x* zc6X+yXQrpRy1KgRsrPm7dAg$3M4}A)(+N0EbjttFgv>eR zlv4sZ()f?{)liWKW1FRW^OTf`49kPW4p{;g0L$*@@3rUU}L1 zn&*{)SG+gd`FrHZk>RMLjtW45Tz1)I4#}DO%(eS#gaQnA*(9Np6?^0>skWk|k2vB8 zkHChv(HW6}P`d7sX9_>E6z8resx}g@_wFa&E)zD| zxMmpp{wLD6Z&i+$8llzc7dcV`$PA2aO`0_EafzCVL?Opfixw@s{m~(yY13xNj(tp{@V&mv|8X6XOCPtF@|l_DyB7T0j&+LUnIe68emO$tM2u}-3ja6By>!8q^3c5y|`fsMpM#NU%8a=+%y^X z`;y=?O(L`!yu|l$Ov2few91s6#JzijrD{^x-7}qM(!gbSSwzCy2XA6LLGvR#2JouD zLtV*v+!J4ua;<_ca?iMi4I5fcPEO|2b$uK0y4)kQOnlwdW@ARl3%-rn(TAE`6}054 zXDOwn==^B$Vzc>LUjB2o*-NVDRk_r>F;-swa-$gfq}+Yv8j+8uJYKDM?%~1hggeHU zU&%wWnOWn*<;5%)o(#l_G2VUf$B{=Kna4XR!zsnPR-*+ZTHQlMlPB+MM0Lcd2PIT? zo~I0ajn^0+aPX=OLtajy=%$cx-^V-ST`8%Q--#x+?iEiNqHQvguJ`rT7u(nq-?lFE z=h^3%US=ibO|eM*YWno)riqMSN0@%@F_y88l$}!GjIt9aPLy-;MyADp#8KQInx1O* z;!E<1A11e;WoDaiDG&DQiYRGlR!!yhmB-S~JIY;5ZWHCoh^KW9E^N5`WFRFOvOVPq z$aOMOhVvHT4e^=WD@4e=Z5lQ(`+I@eVtFGkklWhlazXmyJGlYADYt65seSROSxw#B zg%_Fay{lX@(6Ba|77{&mwo=VLT0aNANF%%tW?O2G3$5e(+L3zH9MEPT=L;BcEs| z_~`xj-?u&Y+|y*V^z%6n&mS2r-J{5NX7~rs3mVL{c%_J`Asztn_kta@Vm(zJF<-ie zFP^bJU3&CQ)P`0=Sg1Qc#Byl zxfPXDzepq6L=!Z_GaDJwvSrKcWVWKoY>dW|u07;x_laCYHMX2`LR#(mNguhei`m!X z&BhMT?OK|*bdlbJ&Y=ZM*E3{1ciAl10Dorm6e6VHd10rz>{JdNLk6RFAluPLzWL@G z_kzRAQxm&n-@t=Sh7J?FhM%8bLuw*!f-AGh^61ipQM^6Zi)!)8di3aFGN>x}NIJ%P zM6?^a)**)+QmDJ4J(Y;m&mqD~4i$wuzqoMrEr4uBpN6yuYI5>%If8saW}~OT^SlE* z){)KdFTXj4yhoN3jVA+-;jI}x+hwS9z5KM(PRsX(@ao5N8C_=9+(}kWe+&OEC7Hdz zqdCqx>nziP!AgBrHF0lj=>1D2H>-B;oNxW{z|R_I=I^zaRnwTnT%v;XjEWV@*;(yM zOAjk4eX2zAzT-K3N+nX8NM%n9Whx^Nd8sW6{tPyF;7iu|l9Rl+ZpS{5SnYeA*~8D9 zuCcNf-KJfxu6gDqQV-_-WaGzAP~=u=@2|*>+Bxzl9U+fi1_1xry1W(o9)@)DxhQ}a1ifIV3o>F)JCl&al zi_JP*I^8Bs`a{uVJK07XCjz*)s3pGHOjFW7#Yb04?~xjP&V`9O;{P#Y-uJJ_5TfI+ zyY4#EVwFc-GS1QN4?OTd{`z~YXbnGi+e7!dk)|F)rMBpviy9&O&_|HB$PdA^NS-A0 z5j^cv?I!RtvXxKxmrwK(^af-<#{hIdi@(qv(a9m+k(@D%C^+6@CgPg#_M?wJ>XF#! zBSc*wkFh@xkxhMa@X9DtQ|p9BQHM9(B%_*}S~TD9OwZ2gW_F8$vi90n@=#MO2>H2( zWOXF2HDt)!cFHMx`+ZfYxS|uNz$3SsO;DfPcq{cKso}Njnr*+gnVj&|kCxi-*I%^q zcCpncbG%)9`Cm3_%;#37)Cue5OupfCfv>5BRU9&W+5jzRT1% z&0csZaco2UKXv+Vntp4rOQVMMYWo6y=p>iR%<8XkW5;qJ)>&K@h8n!x(4_36{c zSAB^pV6_vhdMQ>xikBxAp%AO^?b@~T-;~2^h)9G;ZG~BeH%uf}N>efN*{=c3J^N$( zXma9hh1aqML;o%XFIJKNr&hzm*RYOgJ9H0k^&d@+H0?n%9nXO@>TdZdDFFQ(L9_je*8(B%-CVy zl4U|YMVXY8mj&08;vK79^UuX{efZ{UdAq+F!hH|RZK#8Q$Bz(3crEd`+=S>CC2GnI z=>P!|>X;G(g?k3c?cgoBlYAG#pK>b`!0dc^|9|-Q$S^?pKAwL3@$kOd;nQ*B!b9S7 z8GgcYTpDnr!1F=4uXz6dBu}%m_GlEE>KY$4Jz3uN>U&2EjCb3e6W1*znb%M*OJ}Q( zJv>DBDfhU-5dDd^dhN|b-BofD_13K`_lc82=>LE+D*chC#-fz$7Wu0Qfk%tL*D}mI z9wZ)F90Mm+#%AYhg`6tE)GSZPjrR^-oe=V8;J|@_c3~XSgj%mr?@@$Y<9Dv);@Y3? zk~Z4bAw!0Ez6rcgzfpwL5{-R--FS;9TTic_HtE^3r{^+}q10tadYL@Gr)mtm;Nk>- zHW6`A-B*^@ZOJ<$s?b-hyvt%Em-*{_oGEz|DH7u#EYzh zPsTO$F1$1GbQO$akRjM*HEo2<$V6J$@U|vL5o6u@K=1*1l8O?^2p`(FZ}0LNnJu`S zK-)uFj0)r>fVc7BjQMl~%is|p=pyKu@FEGv>nN&^_mzs7{GfDDA_ybVXVN|LIri3D zZ-vsO%Y?GlF;p$lSNvSk@x{3|{Ej{!2^o*->vo;9$tFsld#KXv%@9r zm&$v2Uh*V7=&x3n&rw}llp3oXMXkf;)#c`#4{3J(1`<@a?Hj)?hW<&(!KF+nCd3<@1^T?m9`69Y9G7{cKPe$*6x_9sH z{Dq#4UO{d!B24&Ba!QDP(Z7FxPfm$G5+hGI2G3l5_0__tK9`?PnLP3-M>ID)OjKZ% z(kF?>+lIPz8+syK=C;T{-sN5LZqGIlcJd_gk$7qJ+lio0b&1uc@1r$3K^@IXn^;|di>gV#pZ=#6&lVhP{t)o}KSIi-iVOq3uk8n@}*gz$K zkbQFa($pp~w~>RQ>lVv>*9HBBguev!8LD{sM2~m5HlartocPgpUvj{X)|Vq!!BPSWIi91^(stnDO!`-*FPCXLR8U zG{*Ws2)&r)9w-bZ5=?&OeHa+L_D3mGr< zJf5&tla^4kP6+#)6hg-?Aq;;rW7RwZ8xt8OB21{_#w3Zsl>4l%?R9N($OuQ%0tzr?c)!9jbmIrl zj>3hZv!@Jq@>F)iUgyr89r}s>0PjN>@`1SF{YJu&pQ@CxpUE&27T)(pnoKBO!zaRH zG=bh)lkqB5tAvj~R*c`eq6M0r3gTyZ-vMFSu`R>m%?}6*H&$OLS3by@EjdYlMBnA7 z8RWPS25GxTTR&|#Yr9F?^5(5VIP07cjyW+b-)ZmUd3w<~Db5% z_Xi9Z;5^Qa(3Tk4Fbv1`T%#LY3n%kjMa_`U7|%Q4y`gj948w+Qi9rVW4Gol@68Vb- zCq=8eY-SM)UZp&GGW^dcat^`>81-|0a}DZ5Uri-`v%m{~RIi?Z{lp-GV*~q6KmBws zjtr#^$|LU8|G?cP0lOdn|z~^v2e1hSgPp+XTEg!q@ zx%ZwhWpW5j4-VnVOE@Dp!Gfc?o17_6&^k5c(GS1hA6m z2hnaK4|&(Au?axD5BdXelghK^GMYtM_!=lAMVNRw4Eg94sjyF(4EYpRbcLVG7{XXh zJ*`@`avtEGkhKNTwO7iC=TKlV3o4md=xWYF$Cuf<(Kn)jH6L5aP9HqCxoU=Pt@Yq2tPh>;2_PD+DV5`jH@&ce40*r z#bKiQ>DzDk6e0a^^7n>p$iMWOzA}t=4$lvNCp_`eTfRN{^4nR>iQjnVqcDGggjpe} z$yt|&CTCqy$g@ItWAsPikW()RN3^^+tNWYz$Lw(6$sNPNr*sN^A9||L*IU~sh;NH& z4O?JEV9XlUvX)OL{6_}BTuD(SfN~|nUCWoux;iP)9>z$b5WdSW;~`#}AUMnj;p@P^ zKoVpg{wT%DLwX5cl2OB97-S%ldJ+6NwKDCA;egx8j|ep*Y?x~j9wy=Mp=X*Xdp#1& zeyRor+ez82WGFWhDN0H7a|m_QAnWH5_Rh5lzl5YT+VWDR?e~TaY)0ENZ1Fo!*)Jb{ zsF=o|Y_ebumg{=s-yUg8Cw*gch7Yoz|8t4iQAe0?EB$;zJgJXsTy@n|CIgNgd+f0u zwnf;oCORe~nnM7U&^-`Y_O-U{%WiIMw%gwB5zGZiZV0O*#FH?6!s#^V8qcSRSF%kf zO`7D-&vViykUX#a`Wl!$RF(FYA;O=RPl)%#Iou;5t+XR`LEJxWL+GjoJKskr9{V^3 zaSS5l6*w8L9qaZ3Mc^N8BJ52MThv6Kzklk8{mFTxLS=hJ$!L4boNgD_ z-_-WsVu3X%v(U~x`6O$8@IiKcvliB6n;q;KUEyhMUzLzLR=K`ySH7y%D_7o*tyJH( zQhfN}Cx_boLmswX3WGfFtB-8hkxgu&`e;YBd5+HOeEe~?_=UkXwR3x$+4w-SEw}Q} zX&rLtES@JqRxDEg|4H|&S({CGSIY+rXw@xTgV^!72^W* z*I&r&IaaOq?Y7;%BW+{rZ?8U6U*W`Bx)SkzI1jldW0ao{KSMyOLBIa`yPzkQSid_K zTdRZrvUi3D`(a{2E+W?<&esIUzsG(ElnMlY0}lcG6!32Kb8_tVi#yqSwB2^rN00!$#(ii{3mT%8!kyc+Zmp!gr@4$}3?~kiM7i)S_b>x2 z2)&QVg37b!UbJ6MYN?FA+nDu!$d){#c-;wO?MLx61e_0q%!V)LOD50ie5o>v^|2Yl zo)GlaUfzdkQ}~rWO?yR|9pO)SevSe46YKPfi@-nRr;PWmSHN%Z336AHR}V`EW&{F? z4=5F# zGH%=y=|ydP-z;G1M97mI$x7;@55TMR7v3Mb#*#PRvSb5;?*rWvkUH=U5GL?) zq8}`?7oMMPCmvM7UVI^;ry{$kA0jE|t+y&s=dye4rDvAd!G|1W=x6j>lC)3z<>TaK zfft1T8RP2KU1D>}>}4N**~MBkYi}o<(A3Xq*l-6cUFt_`d(oE~kq)xo%G68pCjC$A z&-Ub?S@!i8OKk3fdA4n%xz4VUH_e`_X^p0P7 zd7_^`Yt|qBOjq_Wd+qD_cJrf3I{V;c`}WI~a(u>&IriwFY4+fNVEuakVm-T=oz-H7 z9lGsuJGj9l>)QEk>)!oppF?iBWo^OTv{54QQ?0}Kx7ke{cCZ?Doh`B()b~vAAoZ=z zmd&iPJt&!di0g2)(V>SPYG=0UYyGd?*yX8zZ#U5Q{H4sRpt(I+wy<&ZzT zFWQ>-0)L{i;_=6yumwwQu76YIR1Ndq95%KJJ9~JtE@tK!QX6hyj7~Osq?i|DSPjo3U+blf!6Mv2khuW?zKL* zjkm`iovC|Hw9UYQgT0A(e)I_-w}4WNeAlt#1!}AB?5HD8upEovgSKt>C&5H}$>{ zxF|X612Hj`2b4Y1r^Zss#F$`UwJD5F0wGfODtqOP{iP=dD{1?Hq0}fv^}kD_`{Fb zGA$NC@g4EWxzrQi5&I%gv*B7SV}igS%X2{K&rw>(rDa;VNmH!4jKn4WoNG1im0@CWZL3sesSNr1*zy7Q z+5G+XwsH*`+Pnqxt%9DbB*rjZE7SAG_Tzo=?6J-K28zHx_?ksQ6nc5MdA=1eQgbAW zd9S>WNGSP~L*b_#m{7+_bu2?0lKX*4Ao5P0_wi7!PuddRj_)%5#vq6x2EK!)PW#s8 z&TDUf+OGEb7n|D0A0H;e%g!#tG*?KzGs;GpgY3nobLTA;ZQ|D@?8h%k+R2?tSetgs ztbBz8@1(xhcn^`EqU>gJBF{Cdc9PV$y4v2JHQnwTaF1;zqh=~0ALQlZ6Cm2{n~4)_ zaO*a9mH4cw+U#W&eoy1|h#`;I_M6qP%`}EAlkAu_YLx9%eG{uVQ3lwbrrBn7x`!>%_`rz7B#H@ed{*wcl=hXsL1WAP;`OJWvn6}(=C{Q$o-JyNq4gW_kbJC>zPe1CBt zpOla9IF{jAa4NvKno4mYM;`ULFm{m#_uqfNPtG})dO4r53t51UhoOLdEPP<7koUH| z^2#f2kmLIC9x~k{_YjZsJw99Phw)f^7RtnDjBP}j^txj`k=Hq|s1Vq_Y%Hc?oTmNd zrRn+~yv)0XXcPDr0~@+Dx`Vum^E3nRoO})c{qKKG5rj!TOD#y9u`NR=ZNsH_^ypmK zj%~H4Ux$7LVYpx+m+~xBj*@(1@rSVshV*AB`1-&ie7M|(l*;P^frdiX-}?uv{bE~cU_{fa=DB~%Oqcxs+~=S zvywW_+H5(SI6-*&b(ZRPq9322fQ3_<3tzg%65D257M&A)m1h8hztvfC&^T$S?J7|| zb!tLJ3trAX|E#oK*QJEbm|E8Ed1IOGv5a)OM4kRXMc`js&C8&6axNfG8gdqW7h}A< zh5Z=+;00tDvK$?=UcGw0B@3+hLe3M6q|8Y%WM?AYBl3dwkHq+ZA^({bx~U=r?YmD- zvoh80^&-px{`liJJE-xtw!@(%ZODUWt6r;F6DEw(OgZM&AR4?ljv1`g_F zW54_@-l7d1`m9y3o~ET%al#iiuk;WC`t)pB(0EngIdxt#|)tZ@%+C+ekLF+q!qMhFjOpwu-FE{Wbq@ zYkTR9)*wd?e?L!8^4Y3R?sU~18dJ*Hm7UJ8-FIrZs-nfmHlP+rjI8U)4dZ=)k{O8v zKnVXh8IAk@%})jcR%21Hgu&)Y@X(<{-Js7v5(RqdJ!aaMdK{sPR~?fNCcdon#>qr1 z$I5av+Q-ELlsX0gCM6imnPe=~{b}xD-L*X}FE6~5N&JF04#a)4L3n;Z)C1ua5(%Xd z%E`&`PXU*4&a|{DJ?Eqo;#8}0-c&z;?Z@VS(1UcuYpY1pqZ|+i=$F$uo zWst!;4&Z{g@JR|uCGl7x0zps>?mdCWC$s;Sip3k)rX9$rTizKYp?= zmM7UC6rY*zL{>oQ$7rM2PO)w;SOoq>-bT@3v5LtctN9pa;Cc8o5@pkQG#-ne7(|$$ zbnV*J4It@;Bg#<^%0{Zei0f}BZ(lr+@Q#aKGoPva)!L*(*k$qpuK36kW~Vo^omM0r zjeMZP$#)s~ASy}mI^26)n84Ej?*Ato}^8|5OOFKB}DKP_UPEW^_gLtn6&%ap{g+f`P7n?3DG zjb(6RLm8LLVFX*QS^vI!TIH)QGdrxY)jU)NH}Src7I0Y@!8;B)-DX8{)Xg~F;|6)+ z541`T$VhSWiB@}sEQ(_QMzBaRk-GA6_^v4DdFD9Q#j+dvC%l8cfXqa$z;hUvi85h- zDsQ77q_$Ij&(64pK62AdH#v{<&QpnggpA;tc=|)gRr)};Zr$vH3ob}{Gjb1X5aT(r z5|8&NhvFETYP{kZAdI+Be8*gm4H7h#f5v*E>|!VPivcQnn8FX}BN%W5JK}N{qi^(X z<{XYOM#N}J_92_`+~j^RAkf#*r-&M4F$+UJ^1DMZg@{G10ObOw3i}>~& z&7!&X*%xP9)w(}OPnqHd`_w**0Ux=CVT%Q1yg;W;ohDxXOq2hnu5*tVG1BfC@RIm> zw%QVTEW`Z7-!wLrNcO*4wQ6dPfzhd)`n2+)&y;a?UVVE+BKhO@x3f>*l99JdS!>@Z z@#IGwSz|>LY~|&Do>If!9cgx2%d*KigfulT6ZsgOYy7wB^Yx_X^~*65gDzgYUov`l zMTHyu2hK{ocjOY!&LSrZiM-!b{R6({H!`;%A}W@}0QyPl`{z9BL5?!VN+rfb=5vqB zDTV04u)MZavD0nVoHtc$lFK)|&iCDSe><;pRlDvSvvV)lT>5RImIDvm!Zv@%lwfm9 zyY5UG_d0K6muvFLT11p%yX}^kUu|4HF<;w#k4pB&rgER{2hRkWplpJpGuc!ZtMwxX_CQHw}Q zwz>UPYAdPAj~r^XH`&)_m%ZKIeQ%DBOOHMFn0U9k`tNMlF=&q{o1c%5-HwkyZuc*;DEc~VSV$ zwcd|(R#AL^k!RQ!=TOm>QnTh}cEnL;ZM&DYw=^7|crtuc!{>@zE1rWR5ck3y5~nd_ zbi7B((C2sDk%jDrzSzO@v+vH$`)W=;M*87h4wkdo_qwOnTUnEnx3V4Od&dF=&)BeGeQTln{^f_d)~urv zNVny_bx>5P(&k#ERkGfTr5{NpyZ5DPwugK`N|j=6nV4UeD_hG3^wpSoPi=A3<^%j4BEl)h$ z+MjV^mNl)q*jX1}Z#6foZjbisVZ!fUbzvR-WybIJ!;jM>TQ%1^bl(EY7Z=#TT0jHI zze*Bl$wX;tIz~0e+?JsKSMMv+#Ys8@)|)2F$-^XLkyk^I!7pggcAQKOO1bw$M#+L{ zU#LR^K#-@eA0bJdJS&1GE{<;-i)%ufC)sU0#-|oLf(A{;G^Fh$KEo~AG;D<3l(17q ztJLCa{X00yQgV{`_dSJ`E=5)NZOg*~C6t+cN1rfH_wt3dW>q%|y9r-i17|XEQ|b-D z3mWhp>kF(;DMro@noxV2@O)B!lQ^fT=dSDTMJ?H_yfqz1TndFZCA1lx`l{b=xBYfuYvsBaeUb3L zukR&*_RB-q^JpcZu9m<9x0)gBvVRDjE)r0!z-m7pCvZ|FYZ7kgKSA;o$qH}ppSX6O zI(g3pZL7e@mm=@@vB(n$83T5=3>rZYX}J=MgKIA%d7fK{JHT8f4}>NGUXMI<9cvqT zmX491p6oW(!KWrWj!_GLbB&x z457ldiM%X&cWXkL2(HQLYwuk6wIH76cmV_!ZM$~uk~#<2`0%2PLas+d-2z!g9tXy( z{0NME+8mOR+p)&AIND`4z*scbC$g44LH-Cx3$LE{K~WXX zArj4(-;tI!GPUma*OrHMXPjqeiZ2{XS7hU8$ z#F(Tg5$8R47u^?rLq{Oj_u;#RKw?Y?oM`45TCi|FM5mJBH+=S~QtCXqEXWw-xw>Q^ z^!8yK*~>jS@2F9ud=AcY3>rK%G^jpW z{_h9*I7EN`w~2WG_ghp*5uUD3$F@bDk!+USNm^tIg9Z)qN9CE}Pc1&>`{?A6P(+X) zXB^g|iQ74lZ>jo+oV{FU%&#IvAvw>a%WQZFdCD9$KN_ql;ahJ8@nL=?GViB9%+>I; zKv?PI*h21deRKvH?_Hmujo@wabZOzik28m4J}GAh*WZ|jF=tjZnqP>1irl77=H)yC zW6zi|--Jr#j!>fV3qz}>Gs5wb&j)SADa%*bQ7)hQ)d*`<`%Kff)I{?ta9d zY2f3pgflx|8=9TpJ={9r(M-3pPWP!_6w}&hfpz-U(k?bx(j-p0^eisSNGQ0z5`wpN z>()L1pd6v#$UDskB?bg}U%EjMVU1#Tkrej)DBY0H;6~y(+96d5L*S#Zt%~F^oGU4z z)=9(9+HTgi<5sl;lc0ZsxGxgNaL>F)3@{5cc)P?W0pHI1X;M=$gu5RMe~q6IKGkFd zrJM;!HVO=r5$a|__u6Z(dHXU6mpAD@@i>L5v#1&J73Szh3WY{`!ZblWxe_4{pMX(P z9+F}B@ZoN_VDi9(IzLJ^(y9#ku?##G4UU{2H#sPW4%&Xu7U~_Y zELrcxQ?mXPEQKqV7;^gd?d#`ZP{bI;WJ{jPem#`OVfh#Vf7cA>XDL`uDnajLWo(m4w#B2G2^-4I@W|#Y!l8t?v8b5+%blEmqAbSt`uc?*%-|L5Im|dyZyJ%8c}w zX7N8vN+hUFpRugG!dm}UlnnWTh4O_c~Aio)ml89QmzR6{<$Igbe@vac|Pe9rCJvu8%W#_-K`FkY^0LZ={^ zUK}eh0-&R%69!uhm{XMS7AFVz8UueplTKkL`@~tEe?Fd(VK2oL( z&I;wi0sFNIqeuOz?^Q$PQdetyl)kcpSX1rUMaFoohdgvo2p`H0O@i8JxQXTBCx-uX zP7Ps)k|DHek{H8yrgVC8SO|A&y(T~Prl=Y6krgbeA_rMeXKsex0Ux6$BVW)_FhVnj zT$Qnta;b)V7VRM@&9@tcyfL}D0V_ zU9R7#xL<#jdl6=wd?$v#F17cI5GMVQt9bIqO*ecMYE|x|1%%f^b^9&sQ-5)|rDyJX zC_HZ-a&ff)06+jqL_t*E9KXkL<30&5z4&GL=!4~wyV4C-5DP|`XiGV>@f`IxdPa$! z|I+u3f;{h&{U_5o>uO(7GvqUe#ITI)QS_Q8iAOHttOXx4pU3%$xibqy=#}|Vsv(~; z)FF>~Uq~&CA)j-xA0RiQtd5`P3iL(#-P$H(x}wU}9+h<6Z9=t*mxNbdl`~83*`Z&S z@rd>yK`-sb;s;K2IEkWzp)aAIu&{?7hg`t%GqI>!A~Y;NBW!8Es{ec#cCYt-=zqKP zw>R@X5yt!n?+xL|ZKUrVtfaLQ@|MwX;qrJ_4Q1KVH|qCOCgUWv@{A4HkpIp2$>IBn zKZXxJ`8u?{Fb$ zbvoF*t%O}1NeYAG^#WM~Cim(Pp{bd|+g7KpOy>ZT04xSLaD=Fe(H$>ULd!!JNu(v^ z%1@Os#WuTQpEf>p;Lsu@(eMoJl~Vk4gfhrh<7BAVLNMkT-%hXKYOxS zt?cHD!5_~n%qQ=N&^1ETcT@QDLxTs~u8O%VHS8&~UIUap^B2XKH8Xo^kS8=G2rChY zpZ!&0xHK>j;L;K@M<|*m;km-#v#+tZWPU9m1;L>$$km{Urt={oky3OVq5+7T>#x7w zL)f)I<@@uiD~2Hg*#YsJegmWl;p^Fw1}2C1;S)ke(C6qQe<&%@ecJbN)s5|g+RLoe zfd>h*;4ri6E;T#8iI-P)7pd?%w<6q^n@CUu20wj{aAZvwy?~Ta55L#Kkzb4FpDO-q zx!dk$jgC>qn8dxr+O(kH)C?>{<&f~DhDE|XS^k&VBK5>YibG#6U2cJ54ofRcv-C16 zvx!1at+f3ZmfHC0o7)zro^CDgzuT&8xs^RXyA@Yp zk(w;LB`OxbRl5Pkw1I#Ss3k?3zSUO5aP$AAyy{SFkCbCU03;WhYVd{Kmg zk5BN94BHuX1mK1u>`h_%Ea$CnX-{mU+H;(RpEa5q%TA`9qMC)G#pvW^UYp=?k~IW*^3-v5Wc0q1N9Vjs};q) z|5HzdhoZeAO;W;6HW`Dwe)MSC5&4V$1N;LpQA?Ihw5rvn=(M@EAl#^gkYxptv6ENB zkax}PvBrWwzxYJ@n$)4*uW0N#5U7gW=lt}e;B&f3e|tkHYt0jAg1Ji+&0p{%@*3Sb z>KZb>ySzr9Kzm=)Jx|3Ku$BZk|esYb4VFi#Y0P_zJ8-*vQvah z-^P}g>nGW^*r6rQKfi;<>a86L^)F2|K?>Pv=L9qd_ov4a98~T*{cN1sfS!V5swxU;imSn$++{OUhR57i+ z7C=9ivy11ALS`e|(2ub_FlR*Hz1&?4!YE4PwZfKsVgtiH1mM{1xJ`L z`*?lWlCX8ivB+fu{hm1q_XBJj`V{gTI8WLo>Nn^jj29<&9$_0-uOu0Aj@2l?xt-hj z6V;cPdvk%0Kaxr23iVm_$4wdtol@{;`yG<|9)AAGY}jDIYK4ORA@6m_N zw$|`+(y595zkOQ2&$^M;(}LSK%t_waKD+N=*C?Uv=np; zp6lKr&snE7r{p@P_{Rp;0_$ScCDS$3OmN{^-GG=`7X%~+tGKK{vm%yCc)LuNw_*DJ z)G~Z$^$hPAJ|nT}%09d{BJmr~i~I;Lq3Fpk#l%C~SOuqTpVB6MIc%?uuy*QSTZ9KQ z*Qh6t{~w-tHiR1$S5s$3c z*SuWo!z_8M0UaWx(mh1*aKM`rc%Am`+xs=(I~jZ3Yh*il0EQobQoUDd>y~%xa%C8I z_z7V_ht45fscYZROWQ4qM3MW$uqWl=ta}^r7IFP@Tlyyat#)j*+isz3$&#UkuJNs8 ziL`>iv%IHhp42u0S^XFgPk8pMEg~cr&m=t3@CwaCxJ(|?JcRQ*nsFYRl1CarEx@m&x-pj~PWT}iy zK7PaRc=_Y;zqW|y!&{H*;F+F{Za`liIdWvyw}2-i@N zB7cgSM?USubK#8$zoF-*67pQejeI@vQ_E6Mx;~Q5@9+a2`K#g`^ab8I`UkL6_3G90 z-^~>zsxJj@pGv;L_e6%}2dR^K-+X_4_*>qe;631R@*{W|4^HJu@Ue_&VV;F(GdWCo z6c$k`lQlO%&jEsks5JB|B?0#S%J-;q^PI;XdyHhZTr@Kf@DVeA3*r5-8td*1q4^OZ zT-tGEK{aPC=!SR%&;I-G31PoFA)I-b4BE| z7F9fA2)u(bWR{V#*zL8ix zyO~fWD~V_NBM*YN7m<9BrYhmKn?l&Fa^e%-N~aSK9T95UA7S5J?$!B=T>s%&@P1Bh zqxAFE#qXl#kssTPc|K8m%prNtk>GRYbm%MD=p*U;pNZcKg4RLDjP?-pYM=<=bG+Gs z5=55s9eJ6F)E&dsT|?;6ZPjur^<2iL7^%xRF=x)-(h(BSWV_4L{m9)_=M|}EB=k5f zPbyr#=VYXZ<Y9P_izx?WuHNf()zr&Tc zg?B!b5G;VQ@yMSr`RDNbYwv^?hQFKKo_%#xIN+oX;jrcxh38*?C;XiO0%-2M`R>Jk za=WYY+y&4a2Kdh}BHr*DiE;ru)vQj?mk>OSz~VM`?m z=ByIHq@Ke{E=iMQ6m@S-JcjVh)1=;pRNUB(UNF~gvt@Sb%P-5rW}K3Ft^SH&>UHPI zds0rK)^Xt?+xqe=wcI<&tbIqbi{(aCU(3E3man<5!g%+^Xazj^G>E$wI392csWyeS zdvX^d0(c*+`ja%QnAWTX@CwQl)dH{L#hVS`b(Bt-_&vQ$`fvIYUK=Fx!&_I%pL??5 z)r)s2UUhiYUw+Lsc9@cKZTf^<3Lew))n#%gsG1|UgFVcYxYOSLK(0YgB&y$139s(E z#bh+M&p-d%6EI5g@`x7d!+Vc}cn}FQIaV(xM;Qido88buY7@FsUTPp7r7yZ`QfWkM z3C&T|4$);U^%QwnGkX+`rtuOX~iL8p(L*?U?>t$lRFFEd5ye?@TwL-iL?=!vi}H$y><| zm%Gp-!^l9F;AIuc+9O|ObLcA~8Iiot;yp@|GLqO52|&_QA{u0v^Tem{Hi^D8srMx3 zc#XXUD`wsmjKVl4{J+y%A^%Dh&XErhyJ!X1T80 z_7FeqbDUJ_Ym_K+TLFjY-De^Ka(CHv>zlK)iGGT0u&=-c7WZ9J(^jeRtSJf!=2-vRuJQEzelV!-*^8{f`_) zPe8sC@mjTNc_rjE`|ov%7&%fN@?*`u`yz23{D;26cp%3e_qr$QfM@{iKoY+ZA_lPM z5H&?)4*VMJH_R816+y`OvuAB*!(Xg#)l1%MrIznwy)Uk5f8X%8ZNJMX%gL#46{{?? ztFGJ5HrX^o2hnYy_8-&Mta%&tXZ2;>PLk-e8bD*CY#+jg_cl`7cb2R5>Hryp-yZBfJb zuZ@2Va+I)KTPiIPpWS-TQ1NvMJMpLkohMR{^Sw&tiq7xC(@#HSCG`?ZW2Y#l4Z8)_ z)yhlyb-@0@17vM(;HnihVpV!o9{D^kc$s+I;|V8jT)D}^v*V_9z7F(KTmzS!+Q za(6pRZWafGu!Y<#a|N%d@6#bsA{2wY9B14e#K z{+s87Pd*h7s7+InM;1nA;{mRTw(~a6K>ww$5>bPng!evPr818B zCYU|{%yW;cxuYn0N^=rb{c%W%Q9(YEc9dFxpMd*k{(IbCdwIA2v{TAer zj|VTFkm#I|w?}0&KB>&efdd`WA8%qJz{t5kWG^}^*M=W6(U$@kFI!@lP<`VDj;Wrh zOx#Bu)H_movyA@kbxi#-=z9bK`uC6_LmZD8yk+uLp=031k9_8ti0b|7>o0|s-ZX4s zvqC*v5^`*@5}@8KU8R~wQ+@csFX7_W2`}ictD$9u#}ds+cg1v&JF z{s_G{8Vh)h9OVGhA3IV4sUk(2*bR_{nr z^~hhn)>yr>3i8OORzdE09*R`H<~#E|B4g3PWfXV*M>eMulKC-BtLjJ|UD8H){okgS z$o(7MhQGK*YOadZQZd+uB)~+yG*$*mC!e| z|Bm~HDFJWC@ZhkQVzG7psXkInYoi6$`J2-P5mLpJT?=Gm$fqV0b`1U`-xXgZx5`pd zrat+!8)t6S{yTg0%vu;H?~qJX<1{fn`hVOu^~U3R$6tLYz+C-zd4yWGOC?#YGD~d-dv-E5x0}4HjydxDfunHmTT z*od%k$>+nE_wpK<(w~~TFx<+!G|02w^_Rnx&=JGEA_-i#N!62-2g7+9rx^GaKE`k) zzfAG@=AlyMdXnWe^*iA(k&~07h1d7eFPrB#Fef8qWIeoL2s>BHb2#G;)Gv&}J5~;1 z_stT?bQdpPSR|o!GB&_Jv@;t+K9@$vAo*@w)G1*#Ls{zp7mym|a(rc9FhAXOrr*eB#5_qDmG{m4++h6ws*cIba+?vhLM5uJ+{ zFY-AgCIpZGGm+M^1T(kt2+jfUHqXVpE%JH#d;)k)lK!qMDmLV=c}r(w$mc370O9N> zFL{6e@BkZf5?CD|cF;#y)Xa~55Ko`9e+av7nn>)NUpe-($WQ&inyre^tr-j0fE>cf z20ldBz}W{F%6hV~u;7Z`4s<1?{DcmPh69_Dz{!!IqZSW#^K0V#le*Yky5x>wk8NKF zyJ~v4ZJ7iNS|<3Mc%LlNjbCX4_JuMHQ-z`p)sTN-_uk=vrX6IwZ|?^DgHG<`Nnx+P zZSBrQ(i<~BL;iq4&pNEnh5x-H{S^P5$&mlbh_T_olRAbL9j;EE!-7DQv#xMs{$9tm z3v34o{^z8#WlQ)MNqwZ4*02Tg#+$BTh1s4?NKi4Y-4-Bht!>-3Ca(&Ur<-Yl>=yur z13V36!ey6TmQ0imtPb)U-iF|78GxK0 z*W{)M8)xj*q`?!=W~{4%_~#MH*_{;=zmK*H&P(1$#`0-9k?}xK3>-MnWj4=6h%hiF zeHFgUGgVX=JFpM*W8}MxPbLp%4{Mf}oWsIVPcc+lTH|g&KV>xW&zO^ww}58AEW>)4|&CWiU^E=yfN>Bup`lS?Y+kHeZVerPelPix$`aq@Ja zu1K&71RAhZKncRnO7AGhxe7L5zyODy1C~N~?%rRkSKq{;(^8XB#tQ$`)ZyZ@%|3rs zD1IdcAty+RuBwi<16GYB#f(2Br>4)OK063V*Gi?iez4g=2PdW;MG)mLHr0Cf$=EET zw;g%pkxFuWjD7KGRV8q~#O6+~ny6t?jwrh1#<<)jO3E??e&`pFR1Q z*~535-TzD}+qynUp#`NQG{|&%?rF1|&ow(vJa~=DL-c`1AAM8_dMCTy!9I8oJ_nW! z2sq%;&^I!{a8bUPHtZH)9Oiu^=agT~a?akwr0X{ojD zInP?Pt|AylO%YT27xw|F8`ys?G8;WqkXjp=jni{NnaU=P6utlbuD{g!Jn)2#{_r#D ztjn#&CL3ATj%V05_3Qkj54&+y&D}E)@H{WP`JVmqt6ok9k|eb18&$PR%==f+afk0` zPrm%NP5<@xxXTmbzN|#JH}n}~rcy7GqkAjNl`XaSVs zXdq;Q0Lk6QjY74Woo3tX_W*6n9=Kbx0Rg_9)6wjW5oS}T3AD1E@R1u!f~!>RTH1ug z)j|7C(|`P^ zMYyC8IObsAfyX;mS>2T|(Q)$`q~$r{Ws3h5trmc{<+<#5hw;h4s>Kj4PYU1FwQES|#t9`xAh7BoCM-;dQSb^PFriTZ3ncNeI*yf?_KUR=et*vzTUsy8RPGZ_ z`jCXt!|gvX37ijhm81h_B`0G(*BDpZ({b<*Xpak=*GqhwD5MbbK9yj93a5L z1}0!t!0@y%rzsM%9JXTGAXSgscf6D^dIll-b+ws5}$@ z(L&MXW;fkxzi1J)Foawt2LR8(gaj4%jGw04KDXU%yZrAHdq%v?WQ9IQt`m$0@^E%T zDEs8$Tx`TIOoOkdWig5fCdze^c#B}ZB4b&c6`X@(zskeY`7)L%>?b*N6anC;$!jeu zBR;xIl=InMkG`nr7{7Onk?1qz{9#TYYi4^|%F) zWo+;+GIZmUPtNLY2Q+W)nDr4CpM@U`rtnhKIaXECq)C%)<{x8iVd?AblhJeS1}Ost zu@w177%Py&T&rEXc8+t-;xLP>(Wu0tlaePozmn78{PWLuX9NuP5O~%sGLx%k)TmL8 zDNVm=-MY068}_)DS+-O@KH4H}ECbMZsZUqjZ}$3k!ZFu`1JwjaobKJb`@$`T)o$Io z`L*MD@$*foI89GV81du2;?H&40?g-{H*cZLYGY+)f7B{2?_eK{so@yn+zE^H&BfQu z$Czf~>!oR6l5W+zf9OrKgPWV}w6EFI{gtNb^~B*ud&?mIw%OH#q`IDcz5Qt|EvNq1 zlAm%!$v`9CFl%+ZS+Dk52-sh$bNJmI8!{BN7oIb_v5nadhnt<>b!7>77>5aXH_i`{ z+3+>a4H!uIE!Z75@UtLXOhvN=uoa*qL?V|Uc|;h$(MMR+6pU}ab3PUuqY+>1WDoU` zp<9)mf0$X9W6XZl^lZtJg{B1UlJ6yTty)QW8?Tw^lW|4Ssn)h_TVG7=*|VoFqM|2p zZ_I1qUmVPk(?VWwrvmz6-MTrtW<^^t_gJee3(p6yx3`50YWqUK?Ag=o=AmP(;;v0? z7iV zxDlULeWYIx-_l!H@JRmNujte&{gD3#-~N>$x7m~TUY|>!*s|uPcH+@;_DiGgm$bF# z9=h3{f4En%5kIYMHt3&HPK#+hZUGq)3&hAzzkR~2#gxenXahpG)A9=nxq!v#v9}ApIo5Hc9#SP;|l=3q`=7{3Qq}`pqoG`6^^Gd?0Yb+xrL- zNBmiOV?p64#!>gnwpg3yzTv(t>xB8=d>4LDXnb>pS5{Ep1iusBW*ataSfOrXbqn8f z&prQmpU(Q;RM4c(PR%?jqr)5k`@-^@KqKhta+*-oL`OVl)DEaCVITnzU zgr3VNv%1w}b)Jl*!glVSd>;A~kR{{BjdLt%8A+2cJA}Bu_g=v;Bw1Z}6@}0di=lN^ z(Lh-ok|8BujC}N4j-!774LMKHP-1`rx5g?1{1W=AqN*HH2e+O!GJKmUC4WbpFk5aaMZi1x{oe-zAH z0?v&w2j~y@9hkR7KB{W!%fK6M5w>r5UbwW=;;@~X;ls2pH)F=UfNuBfv(E|QB!O`v zkLYmjx##*b^X&4D4Z!-$nX^P~n!KevU$jV946T!=RSLHwTWFosT7gAFHp@&ODq7#L zO=wed?ZT+l>}VUWKAK{VQ_e_GM@W2$ahAcNF^avhR*GT6e)f` zaGMZ5{RHTr)DpSBf1;^sL*3&Q9TTuUxsNJ+)Cz2To(YIQa#fHQK#4>h{!Pve$@~C} zPwRq;p>@{0m9vG`iC2Q}OLtD*M>P~Lxt8!Ynp%k=TFmSgr{E~S*ZJ%FL=~j2RvG+bN;QulE=lg zHd^4{dV$5)&8`Jj$B<7FpY+KyN;`O*@|5&Jtg4im3FF603;!sDM~8;+^Rz-qaPgiG zdQ4KXC9P7sLX~a#SdK{m2_Usv?UN$*W7Ndh#eIOM44%0>039z~-ahfvf9$i^kiX_l zTUbLrR|IpAcOEzJ@iF9M2#VOAOir^QjP~GvrR^wl>A%8U*E$x(o zlHH~icdY!#(|lq`Q5dZk1CN{EOfs^~*^pj8zXcWL{f0zYSrLh&f0!ITZzN5>q-NAL zYiV|Uc?fThO7K6)o!RIMQ-m%1@Zb>IToA(Mn$?smpWyvn_X&T!JI2d^(Jya5zXujz zF}yNP!P^C4iDq@b1r#baSj?l8V(Dp2VIC~DJ(I8Wy0rU)>k8uPeDfd7hrcrU+Xw;Y3CFlx_X(OB=fpzR$cU&e3(5A@L(5B@PY%@~rXD;py|H+uZ>$2(t< zABy|HAhci=hHuWH4=5UhuYN86qJIMi4h$Hr;MbR4ddc;rZvaacJE3DzT=ZJyG)6ep_ZwP9)EM2AL>^5JPaGWJePqLjByO57@O!PEC8^N z{9W=S^=t7D-HP#OJP))ADmLV=qH(f3v^s`-WMh=q0Z1)gmrmgRyqvP0>N>hJMBqDw2p4@e$mSOBi7Ax{G zndJP%7hm+};5iwim^YwjA-nIo>#kgVC$+A%^}X1TzveAjSVKNnjES2gevlRYF0lvT-tGRIC2l(8t@~J1r%vrK=KW7{^);oP2!F}vY;97pA%E?(X101l>eW`~oYeEz<#+Y9 zVp_u%AR?%kieL-KC?cG+F1bR?3C$v`u(xoEfozy7JhlUc^*M2q>cTxZ-E1p`o0Z58 zjssW(h_FOLzp^FZaKNW4EFE#g5gwv1?|%bN7phmUo)CU??;IMlfZds0_-7av0VD6j2~Wxka8L6y-$GUEQMd{ zR`4)l@C$+Ype`VG?2h})wr^+x^A-e^LV>s2MgXwa2uyICwcUAptA5pgh&wiW;u*nE zy<-C9G{rY2V$bnQ{`g(9K6fbQSbbotEv!t<8g{6#I`?R_rwtbN;ifD2860MLQur+s zk`HVTeOd}<5_>WId5V8;*ew7)F&LiUC_^&Zc$lq{TRB7raANSKyckVJkkxuv@Q@*R zJ}WAz@nGv5!QqS+n5e?dJ9QAR3u5iC#tHrxZwfae@ja)GpxT7{ux!5auiRyeMvk^y zx?FBkhreKz4&2|%)v8r134k}~P$PCxPLIp zWo+`i5abGodP;g-#lP487T|rdA&=1+DhOJsAo^WA^0TnuBfOZRB^&}0K7sGF*pn*^ zKEL|F?gqYu^XNaE*H9{l(p@D8m#UvwwvI3Z}> zJ*=#q-sva1;<{j0-d4{}?JRX?$0{b{mX}!)p0n-)-nOgneagzzX=tZk_=q(-W2x@X z5BonQXEY^@^s$VbRAJNzfu& zVuNf(sZDL(UtbFj?NUKp?kQ-oIl|IE*7K4S_TIoIU$SJe)y=7IB}&z?%i5UTASAy? zo7I#GtuWP11^1CkVb?s5s-WX>#O(ChDN%Wo4JW);yln&8`Y}bO0LyrON)Ustu$L&YY2lfZJA1!+M zE%2T5kfpx}iuJtn&a>NkA7%}9e#k0sG{>5?INGkg=348~qo+e-aT4PediU_*Bkb7Y z&ayv#>Sm|zx4rdL*ItqG!pdl>S*dbCPg#8Y-)MozqlLNl>YP)U`isl1UoB8PO08e- zW3Al{IGiZ*@`&+CK&<$*(@t}oOA-n)7+?^(_@E7NyC_(UCB=E~WC-*`F<&J25p$zp;n@tcVGi7E?F?;2C z8`a`8n{!rcWp~pgosfBea8iZ=Bn-H`m4rU~qEpeCZ|DB!DyyMMQIy5p zKS`^j%*N=-7{x*?ljqf4peW3<6qjB1Er9Wb$usXi61h!Ye)(l<+qSLaWh3k0@xtl{ z)ED_W@>#sbsy>nLOq>f#7+0C_W6Y0Z1bobMpp%dnfc+Q>o_+RN!}%cMG8gt*#pVCq z7J#4Fc%O{JrR6A4MtMdGqBc4Qodg3uJON=KM0UgHkzWg{hvTtqCf-&$2D{=+v$jo4 z$-)z10-S^K$sG^)kwVB_u<7Z0@%TXbPRggrG(`3tg~exZ-tc;k(pUm@PilBIuW-%Xxxq5pt;tX_p*Z0h&t zS>L=PL^q2M51hlCk=#Md1IS7An8651piN&)WE)ed7y1mSBb1!jj^sbCVX(bK=Hrg7AS6k4Z8(2 zs1?(C+ya^q6dEHxJ`Ul$nqVfw2c^g>ly$s^^%6#`0mt!NHObC8jEuVFk&o+S00UMY zL-BG2eo9$VSlQwN%SqXCm=oYBv_c)gF9Zi)p85aB-krcpdQ^o1FG2zYWO3smqKOJB z@E)KboA5FO4ZC4qg@jEY5dkIakRV$CA%KE}APE>C2!RkIt1t-fu_y=%>O+=cRTPL| z$O@$1`Jc(@`KG7)cHcYq-nsXt&+pg$b$?5JRi{p!txlcFCA;#+!HZ?LmStMXrtI?~ z&4Z<9;rPlWYjW3ykudXpE4d+@#6332S;?b|XD-3ON>b|-^5nd<{1F}c$enMwE;_i+ zeeRRzq{Nw)FW)kEDMrHB%=8FoEsXB|idVcM$A$C{q5S9TLaER6Iu{Su{#HdUIV#7y zXMy|BtYwta=GebNe*f6?v!8h4iT#`3{AQMe#v^)Yl&jI03kPhblR|fuBXQRIR&srj zT4yC#+x?m4rq-#a(PbEuqqJdYJEDV6n$ z9vdoVIw(u$!x+gl53#Bw`L%qX(o}8VzCHir(c89d%QnRXU5?>d?^@|~a&AMwoas3> zL|w-!vE0-;!^frb2#4N?XXDf8-TnyD;-Kx=)H&0e4WFC!yYe|7b<|PG&u86V*Xa-Q z0J$Q!xcz{nZ$sDN4CrBmcQl2j@qRhU-}9dL?3TKL?&2A3oJaSWr#|EN7@vzA`Qunw z-hcf!o?6E_xFxgC3EB+;o%uN~?g=MQf5tPO(MyKYlhO8Z#~rsUxs7IGbzaK-h;rXU zmyPO0x`p2Fa*JI#j{o*!k@@d}i!+!1JQ$F!f!=Yq{r8XBdHsYJd_U5SoZWxsN`KnVc>9-v&UQUF z?H5yS#}|LlA9k z$F4Ajr2Kj?(_sfl1r?6{Oq;_l z^pVm`y1%kpr5~0mNN#<5PMmt`KZNdbwMZfL3;mz}`Jd8XGH2D6ecK|n&azQj?vDwuYK*^a%Il0QBQvD+2!uDFpI`GZWue| zjGaW=@*zh$hs=#WtSdT?6)7p39{SLS=Kc_zOPr&t4GTy9-eYuc9Qow`vBw@elIa|K zoPt2UVu1$uc0_{CH7V*jJUOD z$M?PNb+0_n32LHeUa*gZU<6K@Nsjy~=RZTe{iEmf{=cr=`>hY^{k@SwoWo}p$TuD- z%_h>dc9=xq2sH+VfM?6uZ%jmrtenuo{{3w5=h&IVvzoa!kAe)?hxo4C`;qc*w2}0e zzq}*$5q$l@4}NgkqImmq+BR=n7LNRRF?H#_FX(pxtAT+_HyN#8>nW@@(p;`Wu(ytU z!b+qO<{nGgcWbbn*=?lBcxD983nJ@+_HqLiZJHMtCT5(c0prOG`y``Tqzgn@&!f!Q4EI~}g zO^YaB=nD--PTAaCG;-&s!ndo%d;YRQV5zaqxM18D{SJ>-o77~RvB>#zL`+PKuO{Gt zHKE|ygAO_<9bOy*^G25LS?kGX7LNR#c%fKxh>RP1ld-n@*}ZY(h~{AMz~| zv7Gx1Yy6LMbRMuFG^51i>vE!mlHJX;-Y+RR~#UX3eJ_co;#I8oqv4t`O6?jvVR zUZD5o%E~Hp($RYsj{KdNfm?Jv&m_$dm*}A)^3kII9M;OaAc8}p1808T5Yg%PzW2Rz z1rnaA4jeC$j%l=sqRGyA0WIO797^3l=Rl3L zQ*-g2g(H7guhTE-*(R2j1Ler~%*$WW`*klDDs?O{8K;S9WwM>{eKw*E%7?rze_jAL4d=jxYRge83cGHW=0D*vHJGz;rD-6rD(g=;w zXYl@c!OGjE05254RrEVN+OStWonu4d;p|r%JeN*{#`%0?Euh1gB)0lj;M;1`_QH|B zR8KCh6$XM{7qA)_D1ix%mtoNS|Bll--9P7jn zjn8d*zgGOe`ZXey_(yxc(vS4MU#zDMn%MP;^FQ{>z5m2@d%s~s%-!(jv3@s>2mMO# z2mEyZcHAp9{w4U#9oVUZY?1r5#E4jARpSoJZP$=5Bl2+h!UkmH8J*w11&!_9Ja%O$0mQXWGjHXPf-=|8K!OI=?$ z@_RmxW>7UMoernMCJhw7W5>&&O6`v&Uqdg-Gi?2Y|beL zjTHkN!8O5PiEq*DJV!=^2{ZDh%CPD{swuoAHnYo>RfimMNIE`CK8z}~!XFDq{!YX( zvP5Mu4(zQXf2ntI7}aDBJzyR{KV&<)<9wMF;X5o7&-OfHJ96PBZHuBV9l_XQ z5YI!?bq}3L8lEA|#@-h_^4?|yGMZN3v(U(oyi{b29kh+zFQ&NwqC35srKA1~hz-S%63`}@Dv-~Eo>U-I1E zk3RB0gHPWlouekHN+vQ9@3ZQ?PGeaXN*&}VCez%lJQA~GvC%@Y`MB~ zf(?IVJ8s{;J@t{D^uF_Hv}TfEHcjueFX&=|(S#itA@$FW9bZTr(zr5?r9GRMuH9!cN{XFf;Eai>*gQSc z2T36$!-14jf(}-Twik~4>ea<@DGUUSE?_k(CR-WlE5N-qyk}3002M$NklBsi|r?2Y$ z6Mx^kwdhga*TRv=DNc!D966#9bctS0I_adj$OWxYTqvQI9;0bxh-Q;_vBo*YozcMA zqkOc>!2^fRx#oO*{8yGTIGU6LOcpR=L_?L*h#pr9F71wd&Vz%(fyeR7c@i5=^^;FN zc}cn+=YebK$Y&hj+2}_k(Y#=MqAj#O&xD)tTG44DO>3#K$RFv;7~p{OO4>G2%0;{Q z_pNSqtBeSe)4$FSkNCNXKobP`0$k(YWB^|7USo3T6rH!NlkQtM@_QPHCQK?lf+$+F zfPRa=6z=rNIL}^7N51zKjpB=y2C(Wg?I?{0UBM*P_^QKc&v4Sy!=4-~y71rP*(MT9 zBEUtBee_;D8(*i3NNpurdPvWHHY(KG8)fqTl)qagE-cFYuouzb51zIX`|7tK*`Rm;8J)=z%O2Q5l;iW;zA^ zjc@52Wt&LV?`VWPnFrLNQmI*WvSY`NnUA406RqwS;Bw_F|5U$BJEUKs9oMhc&g$1{ zU+WLMpY&~C&DB!I%z>AESU;dWIzA7-LwB`c;m8j&E`p~_0G54oo$FjDd3VwFIIhR(eU>BtUt;mb3D58Sw-4|A ze;>4SFOj1jva3`g;KQ*nFI3RbgLXRkjSuI&OK=+cxW+Ypy6@QWrCkp$@r&+S_Mg?K zlfc*;jz6?^^wEzF8TRacqZ{6=U+#cw_RH`8YyE0Ja*zJtBOjHM|8yfOT#d6@!Hp)J zqqmIHwQK5bY~J&p_e|TItqQkfo9KKxiOE6F!sTkgrNNO8j~8AT#IjCs_IH-v^YPsC z&hJZoF1lzhnEV>GF=%uFdx?Sl_wxBm?c?EeZXw`9yYDR&gm%zD2enWHS}@}lvzocv zeKsgi>@6a5TPU@8kNYG4S_|hzi^#1O24S;PdN9(&XXL`n-=V;-3w|Tww1pF< z#ZucAQIT`KGYr-Czz06Cg<{#lAfEXQJcV-AB2uD7Ue3Hf1YPXlew7wRR|}_P3&&UP z7H>!S*i^1Xv|x+n_gN=9xrf8Dg_9?DmX8SP7Rz@N-{A~uVelv3V`+Pf8S56Qby^ta zEhZUS2;>LOMqJ@&&V)nlseDJ|}ZuAwjFgIM`8ar?O+1XG0@cS3Fm!I|4 z98drAdcWMRd*A!+_Rtlsc*Pd^TC<(TAzBKDO^XQp7Rx+aq<+}#{z-qdE24{9MC!DN z+Rj_Tz-Z_@CO4Y#9FDRUk#$LjF`?HYbxu3th$He{kw&B$gLuU2U;p|RMpxoLoD7L$ z^@vnfEu5ywCn7aN@{bq3@P%1UI0q7^vEpY^^%my>1L!&o$K)CKEPjm-hmzaE;gU3u zPdgWeUhZWko$7PSYIwVUV}j;HyQHck=F-JZ-TzMGNO*3*)*) znxGcZu_mOL9h0=O}j@%$4`IHARaZk8F#<6A^zCa;dj)1>j3 z%t(1h#-Z)1FW#aa%8$u~7J&;bHUmvPgsv2h;>3M8j8Y!DcLCEe5RUK`4*5nFqG@^u zUf@4k)z|thR`H}BLPmz;CC|}m$!0Wh$|hfRy9&XoV;6#HTp zkO{FeCEI4KtHV{Vc7C+~6YV?a9nh|I{oA$YzVr=Izbhy2J?P+{YtMYdb=w!d^zC-7 zD_^f&{;E59^JT8|@9n$;?;3pJv+cXzJ*Vw=`M+ux{NSv1&JX{wU3S0!YCqYo(ynve zXGFO-Yq4rE^_Q6JZS?GjUT%^9KJ}NfYi8B^(sn&2@mfrhCvD)x=mX$Ku@WO`mpSm3X{X}HPkriBQ=h{#Uj6D1~t5Sl?d^`N^u-?O#DZohx_`(ORlhuU|(anJVNcV4j_9%JPE z^IH3vus_{D4xx?(o!z?8iM7Gl1;O^)*pQI-@sORiG5z2Tulq_n z|D0>J%eBV`cRjcr(5~3d|K69{U%dGd(e7iD{>TsIveP5oS>nDh1g zA$;N!&L4T?ku3twT1+;y2vo~{VEe)+`LuxfG4Qx!U)uir-1FOOUi9SoA6ns^AN~7( zYDYiiMeYB-{gv$sm%rQ|rReM5I`WC_`#%T*oB-^Ex4q_h?I(ZiY7?$5PHkokEFAeO z=sf~IX6I88U?>pooNI?1a!8A4`*z}qC#DfVQDNj!#yGwyUJ((H&I=6Je-3BP6bg;| z07nr)w_c8Xj&4Q*g}V&+dC)?6BYYyYP6}uauxa2O90Km8h{Bon5#W)ZF5l1K02~X9 zD>xviD7^0F2&EKouEi{Vi`4@yRuhcs?pcmh_@lUSK5%SsLU|`a#<*L+bPN#mu?bEp zu=6t2hm(M#C!#1Choy1A2^vvsEpqlJ&e1r~Kbiu&X z|N3OT9Qoy-LL21(n5Q4f88pPm;zXbItTuAW!-Y1(0RxP4A1)bY+E3OM&o&0oKYZZj zJ|?OniZC6dctDK_bv7x$_{TT!Y&-?N$wdx{$aOnU(=L_wz&!^B=LMYNT^yNYsy=4$ zGL*^Ih+<6VH5t#r=Q;xrjUOER7@z0Ba6VEcB|h~p8LvN=qZ{l^XK>PJi?M}2&I2ak z&>bF3$AFim9Ejwc$y)M(42bB?wr$(C9Mfc1J?mI{82$h+Cd2S>*G%xiH~t~`z?k4L z26#95r!UBnNF9)JQt$@3AgBQT7cdzE@J+|Vukbmvz(I|V(CO&lXjQ-CKa%PaV`VN@T{b?GgJKW&e-f7}PkPsdmQPVjoa`4Z6FKE6;-L9Ja z!F>n4^IwDZKh+Ms%`XJMJs{fOV*LG7yXgC;C9Mh?_+CG$UG{RJqhD}-ySQB@@ON=L z`sm+Hr>(w0`*a#IlFZcp1x&^OnMcpYAINgN0dFzEdi?Rn=L91@Le`R(WTFp#>>jks znNJ_rH|QSz(Fq#hq^6TkbL5ZLDpch57s2w+cx7vcKeDw4J+!rJ#ys!-J593j+xPgd z4JJU*k~+@=m%Z$MseifmV;}uuJNC&Jw)g+pkF*=d+`~&wZ|&D^7VjUB5PS%jARmlt zlNa<6W8L`23u>IPML8?|7a+!FH_23i3v?M1geGk9dqEq8JA4B_hd;px#xj~_KhU@5 zbs*1!gROWET`r=(6Zh~+e(D2s8T<6*1gd_~cld>gSUNeI9bcrE>OVaDGcN4K}ne>R-!as2jwwkUt+U3m8S=Uyu& zE}zz3aMVw<_x@#T7li}07RPUYv$ao0T+M-3x<>o{_wEw9z$5HVZrcQA$pECT~Ced$Yc z30?^LT*_xjpJjfbl;zUya6)8$N*e=(!jL6fY9$Ap)EmxO&SaC#gAYD9Qxv#2441su zvPsK>3qny@(;WGsDCV+q%YNkwpBG|QI8!Zz0+gvgLMTjqRQ|$B0U{@F2;{uihIcWZ zG6jk9mII;C<#I94`-Bin9M}IalCxfxF^A!to9TogTeUO|QkjGRUQU%a^u78I9m_Ku zih182DF7_l3r9|u16w|JG#^TF?)M;d2#AP@ye1`$eBz-{C!L2$Y! zMyYky05hRD=4M0aAsm>?dV}S)VT31LN;9(*NZkZap)6(YapM?{!fB9nDFuTuyd1DJ z7(Ev)hl4m%l+^z)Dw6gs`}BUBMp~*I%Gw^wte5lNx_2w3)T56XtAaXyASZS1KIOdpRlF#E&;XKLIU*S~B^awGr)t?!gDFgkjufr(J|Mg{j zSQ5V$fcJ%gnM-Vq(|I8rm!r+zq+UQT)4)=9>2%OsI0Qy?6$V5uWp{qo=3L`tha;jt z(cYP#85K0{ z!&#SU7RXexoE#5_d~Wb=qgMCGwQ4ig>MyBvEVV}K^0)%&yX51JNzY6V;v78%Zwtqf zzX@xdTBrD)F|{0!@&FBK!>sf=r<`(1(wer0lRd|)_Mjq))vX-?EW#IHWUe4Vpjs4p}@GRXU{zi`D|L%8>G$zcWT?#>bUOf1#`VV9t~}(r(CS zET26Y5>DFGF_kyuujnfruBlgy%ZgDYCj1~niZ0cEDPHKE5qX?6Crya-J|HHVlQv^= zY_9!&hSk77$Vz%XT1Mk=O#b*!Pog(UffkeEsUybZVB%p|&PspdYg;X~4t&z-&}OWJ z$`o{DEIy0h#zbS%Al+L2d4TWgQz>5D!`?*0F^Q5NdON@i!ikqWEKkH&IHGgUpZY(3 z3{^SO$poF8()%56-aB{U5%=stzvFjK{x5B;^fu@l{m+7b`+DyuzM_Zj`iZoE_uKEX z{n|hC`2Mkv*kpS0)5fG!eQ2&ypBc;aH0S7K=x#YckBUj^d|nxJb-IV&KH+3e+D6~@ zB{CN1ip$mKr`0JOs3W_7+C7`?d^nVQOfDs#m1>JlC+!#=Je>NOwg}$chcA(x;owjI z0NKc1H!kRj`V^n36pr{A8Vg7C2raWx>x^!k^9TA1HkxT~)I;Cz*KX2pdgCMelOOxT zeoSQNm5Qh6)bYmG>XB-!_xs$j$34A2HrzLd-u(ae%kFnz%CJ*U{qz3e$XfHh_w3x4 zf~zCc>%h^@O5tyG5o73+pZrXZsOseNQVyX*x*C0a2zWg@Wao|pxkD~h>MA@M&yIkb z5pCNaNq1k}%76gW0yo37<3n zBAm_ki)fB9l@VE%aEmM#Niz*X@MV-uFz;Me6#^zB&)hE}7JoMALsW zzGlQdCmO_W%ff+smFt@4L$Kz|t@>4Tn+P`NLy^gAo)b+H&a5n7BX-@3<9 z^h4Ft46=v{Q4%6YfGB$rC+cA-wD$s$CqVlxQL}QubMDhF5mox5?hz4QU?y7hTL`p_ zy3#M9#JE121R~bL$&|EPG=qNhqcTJs z0sW6IMAe~DbS82GSZ?cH^o&NUFVT3FDe@9Mh-ec1A$mudp!!jtdWSMBXBS268LMp2 zHZYDveYywz1JSLbNdQ{(TXdAD2Owgq#WXfxK#j+i9Qjb zCCXPHi6BPoIJ_PMG4_m@baAJJSX{!6&7$}iK_FCqC(LHIyG)40Xnd{qWD$e z-@V2YKqqJuJ?nS(6g{9z|IvkhK^w&n^*j1TKX|<7y$263x+@;)fAyz+w=`YksIes? z3K(H}|82j#ohf7jv3dmW8a^>dH^Qs{^#1ZWX1v<5m2kzB2D_jaEd0`8Dp=S}dqC3e{ zD@y1dcntaxxn?zzl_H|G@G*TLC6aV?5kN3nF$En~XyDm&7d&bbZR;yM8_hWCb9@p0 zmF*qQ!8brN&g0$1!_YKvul__E`Vo-xfUW`bvFFJl{Jd!1H8kdVv}a7x#nemGSxj)c zCF!|%9$G}>^cC$BHH>!}bLd_<+8j=V5sjf4@7HeScprTTlw8m@^eOVNz&+@$06s)? ziU7q^@Oa|@KhjUe0UWBMcNLD%vo^zB$(f>mV_)5hAJn_H!cnBA2u^qsNsG4O1%7BVNQ|g=IS1G5Q8b1Y^k4C>_rL#rAt!qK-@oy-_NQ+;yPf#H zi`!)n_*~L$=^UT@`>(dQyt#*N`SqZuo%-(AzP3}xRqyYA|Dtxmh37>1|CaT-=%W9M zW9S2ayHg&2{_~$}|LmB)OzN+C|7JW|8AaE|uSANo>$R5+ zqmS?nPD=l?Cs!YeOsA8+6N-iO;0kGr7#_9H*je)T371pQrj32lX~ z@am7YGlP{s=Vf1Q&wRo6+cD4lMtj+-f3h92?Up&NU-!B{ZwLO!C)=UF87sao{&e_# z&I!5ELLTk3v*@by7INxFH@bd1``h12x+&VFkCYxojuf5a8R)0vNFB8if3SiD;L-R< z@qOperR)Xt5q;)LUWe z47q3>(IZv9x_}Tkc?^epMyH8z2!WpGg3)JWiT8@;4&jh>bUu{*ya$efHhQ;DC~8@k zYIiJY&$44VZ$?NOOwq&?$B9pMbEhmw`;DjuM1>W|L6Z&=qFYiLaw zK$Mnp@EB3yF|pD^IqqT9CH~Q}vFH7vIFD#sB!(!#DyQ(N&e{i;HMTmKcQ4es#l4FRhZkw0vU zRXn0R!$3~@#4|*~0ez?6BA0dk9zIvUMT>hL-tZ4Hds0Nc6R0#C2R~Vd|pkI@+VGB!QySp8mfShxsBR<1k{#VRTmD4Xu%S-b(L z3#j+wCvv8z6 z+Kk2>z28`JKiU?tx)lNbt;WVD(4!UGktS`_)JSdD!?Bh;d318{LqvWA*QBoJS$YVZ zPKwC4Dj6-IFMR;F#lP5cK;OF#|N6wS_~6^#a#6qIjeGxJSNndy{sBMizxv~`G5J+5 zj1@9H_57RN>{k7A+=bZE1jAXv?PhZ>* z-tWTxzW4Ts06r(`{;}ME7Oh0kPxin1sS7AMPM<>8Rv_S$7#u0qn8ZzY`?AYt8s{ajeR(*F z&%48UopsHIZm}=+M@&#BK8;~KI0B4DtrVe8|1P~@bm5X85uA`wzY05P~ZsiToB#2&#?w=aR2FXSQA&)F%X1mMcmn1b#*$i53b0lMz`W1R;D}b=vH|LqSLy6wL;wR-TBeK=VTgK|V9T zFFc~#F!HjTn5fz#`ouk={D--Mhcs4s5Ua1zMu9#CMaOk?uI{(OKn`P@6N+#TWj=F0 zhcTLwOzuT9pq|M;@fFHd-Yb&C^P$*hG!D8zPoi*kM07$p?Gr!7it%N9iUvae#vQu0 zatGAd@w?tv#~N!zYx*LV4QC{f=ffb*=s07-J48~5i1ki+eyx%abs|z<-9**eY*hP0 zxyteFIpz4&*n~5z3@78rY&KJC@Leo(F$Im)CCv|Vpj%#SySp7h(P^43ZQJ5>f&{6TvaoVo2gRaSYk@}+ij1f`6KsorMC{8ke zI3Cr9o&rbOj|Ws8>s{_IT$Jpu`d9nm9B&~Xl@msAM&ub2+Ak_p^qscIiB0dZl8k=j zn(=JEB@uDthdQZ;_trSlmhrlY5Z#J^w;AX9OtdCl51v5vh2QX9G~oX+4szSHm54*ho)d@G{P&y8}f8L~v*{jQ$Ml>9?-BzOM70F91*1{nw0*He|mq>t#;w*K=d~#`Cj@}@$owEo~n1% zLln6cC+cHthZ85qi)X`moO*|GC5qN6O|q11WE!Mkj6`nsB<_$ zRcTAX_E>qQ|H)N(@#V9}3x+(~Z}e1rZyExOg_x*nbZmS4497-2qaTZ3)w%j#wq@}# z*Q-y8j~{l21KRZ?sPo^yzJH5=;r6W%yZaw-xwx-|y>z`;750Gk#eaQU`_$J?Z=ZS9 zkG6*&b-VUIZ+Ol2qd#$AlZX5=m$^#&UpH*+51x0K_UXU7T)Xj2;vHA}k)W3wwQV8i z)jOQxX?I#xsxEjSx~7kucG_u4Z^j5Zg%>s@UBI|4`>)zoZK?WKTj9IFH8{pstoT8@ zo{LGOe1~U5YgfdyeDB6B-NdRka*B+!w~y6=o~4hd8`?GwYy8w$t9t3vx>ohs3P*N} zmGXF$)nSrnGt_xjzj|)7!Mp$FW3g{cWZ1aVZQ2{pcyIfUZ~a%h&cWAe_qfxxxtnsu z1Fz5y+jg`3{KG$gzMcM8+uQ4-tW)3mo_5?HJfz+BR>2qp-uuD7ZSVTP$J$dK{lIpO zIrH$3SK@6Ejeq&zGY`Dy9mX#${%;`+?DC3jp+>EBQ!G)69Gs~%VSeTGr3jo7PKE*s z21Z*#qRvk`QXrIR6Ew`%vb`Y;mAm2j)%r~l!Ppt0mf=#k3FA`yr@e;&;Lx&^3X{k9 z30y{!Wxt$?G25LAm+~3fB_IhZ!U0Hav0Q)?MmvRpAR#m(Iw%cy#ttW@<#vo|_YyoD z4>5b3_gYTOanDI>S($!ih%i7HTnYX*$?Q$}JA_U*#u$Fj4b2jOv2vNdJmQke8Y$7F6%;=)*9~TZT z^u*wj&H(*#q~QUa1l1OX06IdKD^X~?LwzZFCQ=TGjkFm%6g19gik5NZeH3I)BTCvq zv8kOUs~ohJWlE#M7*c-*hBj$Kr8cRyZsntXFxi3*Oi~)#crv`9;h~cN&xRv>Z5H77 zCQ0-Y-Zu{Vrs!e(+G_k~>_%?dOd~@1<^YsFh4C~CIE9P_Mk>QJ@_^ zv*BAgY~idN=hKX;rQYp%OLiG%j1?RAabOse3>xDSk3j#xks-vf&$)@N@pMMNNfPDh zTVqW6x+9M~GV8ol9k$XnV>@z$r;#YIKq>}(#&E-X@Fw6s=kStw_z~GhE^?j-EEtEi zq-(qyUE6@ogtGQYnIcU}=?>%dssF|#S~dZ|frvKXgIzdaU-Gsf$%T zw#rf4O>E#3Xi>@*IvoAY2Mz%m*QfZwEYKJDB>FZ9Z!G9@Wzlo)9JDeId_3;EN;ot) zHPEXur)>3`(RXgx-x`_6ec-1Dnvg{7$ z;1bM(qpIuhXaWIUlBJx*^lUUsho@(om?+(j3`PH(`1BU_^t^O`aHYM{r6|k9vmgX| z+B8^8UNh~TYki(>rthT85Uf!SWpa@G)n8A?Y`M(HS%>Nf41a@jm45ZE|$c=T;N z3L1zNY^m>*K4QG<3ln4HjPZzv!#NtJH>opzAdrR=xavBs4qNTKR7Fw_;TLQs&T0JF zL`K<=#y;9UID(__%vpd>z&pKwF0-D%PDGFTksP9v2o4Z%P?G}F>O*#Of}?HnpO1ko z$2akRscq;YbSyR;nkuM(855f5X}N&!Kli!MO@}o2!p5%{orI$ANvp1ZTba2MIccvXe69??Se>maa-QN1@=PrA!-|%|Z zZfAezzuV`(^!4`TuYV&q&xO-3eEI9`DaXI6Nyl@CLvJxcvv9G?hJ2p~-gM^sf;V2+ z?sex~I_^BrE$-Q*7zia`0n5NZFt%LsB{hT8Ai<<_d2Qqg%ca?2{Pqy$xs26P;As#_ zK&Chd206MV6!2W;6wap6xe$VDy4mgMMe)ND)=*Y*8Cf{Fa-$a;=q&{y1ajlvP~Nld zVMye1+87S`KbTz}Z8jOgC5s9{p36u>0n2w;!nIuRj8rYd_k_U8WnE#o@0OmyJ)vmj zM}0zh7(M6O`2SECXI3W^?$NUUnKy5O8!VNxDQpEvE)0Hw(RSOA|E~G9j>i47(+6_Y%O&+vc!UwWem>gT7Was91HW3S@e0bX)zd!JS52PF`x-c&4 zcQ~c;x6~uyV9aOn2W>)Y=uFy`fsoG@Ef47ht%M;vDkcopq(k>er9h`y z4umn@ZMsT#s`tc%;D{%vPo1x0I8}4Z8cU@k)wS`XjTV>U$8hBxTL~fxGG&@{45epF zX@=&djk3ulJv%1TF)bwdQIq#i&=(bx3S|Blog(MdBuA9>#My0HPr-GbGb^paHUeseY>WhqF63a@5b^pvn|aQbfjNLfta)NawYwZ0V~*o?UW3R%?xT zwnAdkbfim=>&pf0lNx78lQ9XE{3aZ8nPz8rt=i-`Y3vQ}Rp(i{zy8~5sdebsQo@v; zO&`I7q7aCeX+wr7 zRVLNJ*rC^=EA)XbhCH!;hl6qScuY=ZdXR8TCeBu3N5lkEkD!(jZ5vl)CYq0+hEZz4 zqFFqhEK;9w+O9g*y>!W0IvBY;Ys`-tya|5beGwI&n`0Mk;&<;B2 zptL8aHLFtV)OB*7O@uav`Ujby%(VvnWK&-Ki|xE&AHY1a zaJ=pt^}n|K#(f_Xscw$$C!F-Akoo6DYN2!clb`p>On>uxPv2?(ed9mB-T&otUmAV> z>9b$#KOD2A|Lq&!>LqE-1g>o{+<4- zw|_`}Y_5Bodp$aThm(FLn(qC`r}vxR<#&4I*PnUszPur5Y5}W(fqmJDo9*40G6p5b zFb9MW=W#?4q!NXBM#M?xBa`o!5;_eyG#Ss7xB?1SLIOz6MUKHzuwIUQ?=yB|)yr-UL3B!)p9P!;6myOmj$Z~AIz!75 zU6y$SBRxXqoQ)-vsSu&FNHaC7=!w@EHskv{crTD!5{(Xx_!_I6ofK&f3Pu$Ef|uY) zb&ou~vlOhYK3f?wM$_c1h{fy4=cFrVxSdLD{B|eR=O;jj@Q^EM*B=QbCfN{25P?lWQL#I4C zJ~{TI;D9A}{2yNTK0H367IWf3KXK$mlvGY`l|hZCbA&7fTg{PgVu~Cqe(i|IqEnNQ z5fPU>+j)+Xr65+Ubo+e_L0)$`xrc`HdO7mdgPy=~Ih5ge8Ar=3K*M+-Js_f0vm8z) zPS{w=o_S^qC*%S;W5h-T|E!`XUYBQ={H!tP$Oz{sHhJoQ(dtlVF;*jbHv3II^+80u zb&mcj%a~kha$zev^2yP0+J;|x3MV?!;{9|M{Lq-d1C29sgo9)jza3UGA~JIVw)z-N(6MHfp*^)P6n+T@_LzzY&Tax1 z59H+3UOIWK_((dUZx3~^VO^H`tv=eyfmwCMpXn8JdXps1Ptr$>Ju<`o4`hb@XvQZ6 zjK!s3t2y$?+=wdg5!E~5+wf!Dn+T#ez!ki)r}W`8Fd2!*3@2JSpanR^2Dqcg*3*%% z4fMyM6A^6`uN_rt!Vk|HlW3K^=PbnsVueyZ9}(|ez#RJy-FSy_!yaD=c%MMEqH9MJ zz?{Q^Y1D)48Ok5`cqg4nA08AAY5E@<5}&EETvOkrV5>Ru^$j}-J(o^`Pn(D~j@dNm z8qbL6`lV2lj(<7!3-BS6<;o`83)ah#?|t-PbsF+I4)DscUv-*v+!1yNoS<0~62>ik zWP9jvvHC9M2fYpOo1i1_;e1~Sm_%ZO7d<-Cot-zyho*<^sQd7Cfk7s;&^8?sudhiq z_X)6AN*__*t>(z*jQ@@MJf?HJ;~PV`)!~oqzxCiJ=BYn=pP6o))kg7}$`#yTL0(s0=^D>SC0fz^<HVB4qE!j4V)z(3LCs*92ADe|n^B?O(|{qyFrW-^?5q?RQ4}W1muLymA3z%z8KR?o z7$O7{#mt6(U-`;c(vYVlt24$-N#OVt=`~9M^Ny|N$k!%N^fx^2ys~rSprs6px^LQ1 znL}7lN51#!YmNX>Y81lYpXtC9(K^dHWL%>uM)Fc%gGP!z<$fLoZ(3QLvlJ?HP4T1L z0fr#@jU~N#WYmbZb&m}y@g8GOebKc#FfweQ&6uiHG1K1b{8n=0S38IFT)*p@$U^uU zr_Z`RJWjf2(z*3?+HJUW#VB@?++g2LbFpINFbdvXL2l_ABqP^sj2%~u-^0t~IAHMb9_^0~8 z_{R^H>i@d8%BcU2lg_QDBVQdj07Si+P`2qEp3UKHBRS)CDbRK_wG_|O#u_swUX6p5 z09@Npvgn#K&ZGe#Gp%ev+m2Slplj`+M`%a!Z1-C^!Rg6CyFCnjG`|#hcAhA?rOMcd z*NXmz$Eqiq*1t>fth(3pL+~HY&=z@qQ8+$>u$KIs8?qR`5&dZ*mtKih$PH!b|K)ggNSN+kus-&cj5Ow+At01G#qDiZBd~s1@FM8Iic`u{8;+|9F#u7!DfQQ z7&s&xRq%xNJ@2F5+Gf1bv)L1~@aDO#7LgBcLz=GN&I2@sCydkW&a1n=r(GXEzn+f# zsvW*dPcRXSXA6Qci9=2=Mca6tXXy#!?WnRHBP~gmiH8b0SSjGgCWrB3!3-k70ls3Q z4xQ6S=pP)h+F{b0?dhHx|L9y$gmGeH)_HXQt>(ywH+?q#aUK}!rEBjzGyS{D7{6nj zCf3uDuP*ozzIEb>Cnj%2+w3nBr)Xjts5d^ZZ}D4?=%VI_ zaF-*V(C_r1$LFbcz5k>AS+PlNeV+FGSM|uN-%maL-Tl_FaqXQRbWDHE8_ya(KG*N% zY<7G9qmS#ih-m!J@7O7$=X$|Dx+&;<0jq(5ebj%8*UpIn4Am0K^#+0lv$sNkff2Np z(a4NT3i>obv{XF_F-EG$AjX9#QcLjm1_(td8yGc9IV>oL1n@K=q&*a~S%yW`b*nn^ zt9|QnTyIBywMidu4+n`zNOUa{Q{)uvGe4D5M-=6b9XnFr)W^zE-n4$4RX@*}OrTfet>}D0=;LS`@16wOyBwaqRUP@0aI;qD_Jt!~Tl6(v zC`ub$qi;GlM>rZ;32>;h_oSv}Lmm`S!z)SiH+;8o!Y<{oTx!zPyXivH?!gDp_Po4c zD?0LrcwLX*>+Q&|HtAz}uoZQskBC~Q_b-kB?qT|?LHp`4XRaV7@YqLr(eIDw5B$Anjm}N_@y_>ur2oIq z?^;PR>7J#|O>*S_^@skh|J|qlWw*!9%hWuNipc-x?{HIbzK0=7v_`er_pGm$e3tqq2wpMhf``q@8ivl zsLmF~Zf>R+k^ZrP-B0E%E1_!-qGy{|#wwDDG+Xa?pACt%V-le0rFgby!hp#(hJ$HR z5sP!11OsGyI5%^1LiC9C=pZ(*wlO=o9EN7L##D9dLWgabJ@#nsMfWlVea(tN)96-`_m8*CpK z8~@FM&jx*+7n^Q}LwvNsEm}d7`Uw74+6SJaTSpKbRqEpSo;s>;LE&K1vvtq-QJFSo#qiwu<5@_!% zo~_O?A)T8st`x76-n}@tz8KJVcwwx%&Q0yn4L%(a>n&EEv`8F8&Xrq8hXf%*pNJe8K>Hi5rLl@&qk0- zVgQ{LEvBKjeX^jP|vh61BCmP@u{k3F`< z(#cfd(e}2O0C4{}aEhLO`spo}Gv+1Ali!g~w?)dPr0e_L?|v;J<#G&+Kff>kGpsmF zja%b!0h=2GkpiJ{0GTi~35$m_Chl^VyEKmeNFkE68j*6zw>e%Sny5v3v5_-$hyg|j z-pp{0Jew_2m8DT~#1Tidi2hHf5hs*Mf{g^60md=8^pvMOWn}Pgq&hC@GCu}5!0&K} zJG6+NYyu1-*KT9%o_Xe(Ntc{M5fRrSeO~gj(nliwQqt@AoAB&Nhm$hEHBO?~$hw_z z#u+&|fN#fYmNeFDl3=`yef2+5ljKBz31o)&0_MX&IYd$y4aeL!-uT9LQ5>hic`<4E zeM4*WnVh|I6~}5F#T0A>arZz!i<6umnS+pwvMOh}b1mZ;Q?iOjATBKNQ zk@_Sjy2hX1m;Ynq*CucXZGRvpp%<{ZF@QG-kU@{JXIkTkCm%TXBVALYU!&95YbYnQ z&^Bi|Ta%qR4)l>&rQXnqvQ37vH6x{4jvIOmo*1ccrcMTom$_d5$u71*q@T)hxnA#G z@AsVb+84Il+~QZ-`7sgq-E+=uKmW7WZ0~*J3852Ap8#BqI-Y;Qh3(w)c1`~M;?Ms~ zyW#b&v)eiEx!oZ*ZI?S>|G0MT)p+fqjLm|9P;3{lfiVyY_&!OkGYut{AIdXtL)f74 z-9BP z07*naRJlm4v-jPxuTtwwtGToYHrNX1&>r+DS3R0Wo8j=;ZNpRLp$Ypvgpt3;v*Yw_ zFNZKlrd4BI&xg^Un=5K}IC}Hli_|)M-v#?Bwa$3W^{-sg;lSB#1G=I~^ono$kG|#R z9tX?g?J-i%Ogq~6YpIPV$ID&o|LTHg%YiGm^&+*--eY`UrPi5Lb7@WN5u$&KHy3S& zA)Kk8>c7-!((4r%7jhs=*W=#0Z`#oYah};I@UVwHEcXX8UM-DZq}G|QXUJW2BP|Yk zz$55~L#nZI9t>yVsB8R@cBf^=R zdD0iDb@m?H`zp20w3?F>_U(&RBD>KiJ}YHfOuFZJDKF_CLy)$NO+3!;$LZRC`%REz z8wKR`x3Mw31Z>6BI^($h;Scw%KKS8}f4bk};ZGf})~5O&w7h`5#6X7eL{8`9_OhJC z<7Z7Wl||Eu$`|2e_WJg>zkNp8S$-Cd(Oh~dI!8q5z6LYtqEchSmt3Z18J(zWONke- zG7N}h5K$9K&B_W`<)_f12;0dM{jYv31GJ?oCk(zjG7?^rJ}+qTWQoSz@kC5zxwweN;02LpZuJIvQP9`kg9cUmT6+ z*t{-Rd*RjL7|N7B`=Tzpy)$HB zRakBrwP&@$0;XdCo`54hh90E2I5*OBd^J+)eJsZ1&qrF9%LNUAe+{}iJMe6U6WS6r zPp0F2Xm6=h16jace0c{MjJB-=^)9+L9pltfPfeY~xo~o)o-HMyv`)aP*LS?*9jSMS z!q?8yvyEN4JK7cjYUQhY$tuy&`x@Ywz9hQZI5y^_kCLKg0V~4*T~oRutL`=e=ws>n}GqonVkyBG(b{`9BQcEqFcZTgI8XSA)& zQrO`A-enB$Yp~*#jvbS($w!P`HbvPG`?`Lc@%>iw!yo-_BY@Oncs9Ml?^-qT%&=pu zFhK)WfwLdcu`y8ak&k?&#Y9i0?$s`~C%SgDI*{MQiduHF3;|NBxqn~V80ybvU_)9B z17Z)0)J@nLTNUIU&jr*$557#2Cel4F&;aibBQ!xyL>3kq&##Zvv}w=9lndm{>mSJV!WT$5~I= zQU>E(j!;Gi$G__vsqOI3pxX$_;YOf^mDYjs#gJs6ZWKV*6emu4h5RC(jjr`2-N>Zc0+z-Ax+p!;Z*rTQ#-s7EFUKU! zn-nYMxc67RhqI59Ub-B0K%eSUbd6^5 zwxUgXH9Ei9&2E+{#q5)Uw()tk1ilRq%6&oX5kSA8m(`2P~^c8xPdyNGSPC5u@{j;C_?4*0?Owco)Z5(T( zGNiU-Lz;-i$2S_FYdmNHE5`sF#){Dq?^}6EtM?>2#Z%de9NhS`z!)?rWfWaoidFuR z;@O_@+hnSVEOd`HoX5M-w*Pp$F`~`dF3sgevms4#FZ7Ysqo+wF;ddv!@QITyEzVua zFpyJaK@dB`R4!$W-%QQrNZE*r$TS=xDFTO6h!86vlzb>!j$jh`xhC%+LAQ|<&uWJw zN8LtPDKMISvX`2tM52%Q(n+2dM?^l)+G8imMMD5+K6C+#YEMHfJ^wq zl68sPt6|wKdCPiVG(p9oy;%UwnnYy?4|%rwGazR1Z1-?9F~&uNZbV@4m~hzV5G(8= zq;PgMHmGVwHgD8Eo`h8V8hvtt4rv?DuK&|`c8v?|G6p{{|~(J!XawYM1) zoSZdrKYV`qwON}d7PP%OctzXv&LKUlPRVOmipd9)5XNeO`uoh%NAPyG1zomye3h|L zj)HmE5ewKm3=D$>_pYS%dAj5enKGo!dGrxAG-*q2nUq!5Mgw&c@Uege24-O(c==98 z;H(=L*Qa7&;mDtgnvHuwlo^GaBYCq%gcCxPO2!67ZKKU7&)fSHOe+QmE>3-dc>ycK z0Of>2CgKe)H&P_?a$3ZJ%P~+<6w7&bBi*YF3@OT`Ne4#%K7o1U{04O77q0MX1|<+d zvsvkylb$nxqaV-S%=#DELk8j36?t9#wJyg^?#M43i3%>7z#}#*NY_w~ddBf)1+qr~ zg)xfPEMQLz;Kx23DCNu-jgB8U(nDNB+wS9Rlg^-`@ySE7a5L~f?VwWubWJDOtRTIP zzA^jvta^g_9c<7@ZCe2prhi| zn-QcICX4Xv%^WN!0F@jyHp$QhEHE&RfrTS~93#vBzeugKe4OpGCkXmK`?EjG+^>ZF z!3Q7QUi6|DWi-t`tJDf!Op&w%p7MgpTM94D&SnHVwcBBy!DN^ElTJD*4Zh9TmVI4k z`SmQN@l;l8fYvfnRJfS$DGN z6|ZgmJ2ge+9Ov?48pW1j=^WSWERNoU$I3ZI* z`Yr7YTv}*#l zf(^;9U{Y3k8Z?2=ZzixGB73WX0;N8)57lM^Iw5_;goFte`^>Q+7O=p;0t2gyfz8F? zR=4e&t~5(%85eJQ)0=W*Gm84@r=Ok~Lmx_|<+#WxK56WY_y43ZyD#YgkFnb4FaPo{V^7Xk z=7-}>TZXhf-j0nnM)xHSy<5&po40M>zCC%xS!bP?Du*ESkm!@CVoQnTqaTz|T&f{ZtJ^EzYJK)?z3YvcZ``@3F zuBV)GO7iO=U-4VL^-F=a4*7bWzqB6Zm$&yA9*4HcaC?W~Z9}}l**G7E%OSq^B@WTE zI?_k}=#T!Wndsrjoy6;g{jZJVe0*QFgVRpXv@sEFeRCj_*BrqinP+SNH z&ZM;f?V^mRtId=OC`}@i30UnWWC4fmZDLa~29tcsmX3K|1X;D8W2F?dD(?$l_(D!( zhz?x~P+#@8+qy{xeN$j5>U-Yvo)oUNRN2n)@-JF4#t`(|ZuD?ZVJ=_}T^FS{DV$NR~5FS^$a+M>q#E zK*w6YehGOdYxzByB-SU>V%rROUkTI6< zl^PfNMq8?n)cw`3esxaDRQYSwp7knM-@rwIcHwtuLLX{-(YEny9N<$@$pJctNJw;D zX#a~Ol_i%%DzK{5rckQ>125;(BgBH1HXxb_)~ zcxAPN%zxq&pE%NCyvK&;97t;g>Z=X-3|#^30`I0PYNN4Q=g1=)M~du}E($H5dg`ee zaa+0|oYS+0x(9rih^e+_ft&bCpTp0P=fK^EKm6hBQ@SR6=x-nUJ-{=*3}@&W|Fu!9 z-`Ba$by64Pn9$#z0mg?Y!=fd8{Hu&nVYNC<;T>U<7N1#vr$d<604&d?hYj%Q3 zdAtt27>`5!6yKwdR{zsk=w0x!R-kTp0@{Y_vWf5+&U!qX3SHzoLWJHF8-W;^*X_|7g{O65$6Y zDqu{rrG|h{=~ui0pDw_^;St@}Gx!Cbjjp9yGAZjiT$b+vJ>d~#cY$}{f1LiS4d|iT zfFAft3dkC^7@8V1hSPAZKEp9DPC={sRuB9!(9YV0;4lPn#3N2dP z9fEt2-~o!ehCpD`@9zGxJ3HUcAFy*~l9^|c%zf@X_vX3hp7-l;^Pq|(+CBmLTEc^; z%s*wNKP4tT*px6h%l5$;k zrH^0CIJU_cW(-hjR7Hj!6bQ5W(hk5#9U{5MNXJ=feP63xko`fQrZK8311wXpa&k~l)!_zq@l;n@(rr_>}IPf?76h_1SYYo5g0zUF9xDO(ENwTa!Aw#=uCHSGG$@Lr1xe0Af z@~U8V9h0$+e|jbc>JuWNTuqPT7B=UO z`iEB$P>B!5-ILP+57z-5=oJNU3|~67w6LLyb#h?wBKk`CvOi*W|1K(S$Aen4r5!gg zJW>CjN4B__k;UCW_KjDicZD;vCy-fippKaL@lmU@-WXc{4*h7 z7MnbEGEQVa8V|U_c2A>q7AKV7G!rJA;&w1e37)`RDO|0il0z&VI(lg|<&z@3Byp;F z$)C;kNM(pJGWbz56yP0BF=B8*JO6D~?>ZLDhX5fGi-Fh3HGElzHwXq#Oe&1%wQ`X*`6|H%lz^W%M*<)s`Oj z`1}D#Z6?Sb8%f^3Yk&%M)1@{`wyT=QKBkq+9E{|&rH=mzId!ZS2J)B2sk^H=O&vp7 zVDF{zj6_nhR2SU|JR%i?fJ7Hs=qP8nv|Oj0H+v`133^S{#<0nJu>X-Wl?tyxL{_N* zFynpy6jVcyQA=;Q+@tPySwID9Au~B=UyCnfR!-w!vtZ%&9lkx&=7#f&BWLFsfsCsN zyu_M-yZ(U8S|icab}~LyX$JbSA-z9uS`!2cI$*Zs{0UEk>Mva+sor;Z`*D}!(As85RP^ZsD)dFZLr(ZtA zzH-Oj5d*a(o%^^_b(}D6M2^|TycAX}UhRAIdKFy}^$O4&U;Aya7$$^-BEH}`5UWDC z0-_yb{jU8*Nsi2p0E3tEMr=4_& zdjIUPJI6gPlE#0;gDjo4nt@z05gF-bL+NiPplCW#;Q8BS!s|80cFXDFKVT$`TGESA z_AD{}wS0NUMaGrt=bc)GNuf2a2__r8xxy4IW5z+>H7uyA;3c%Pm-YgU^lo7)$HjkW9FQ z_4oBYVauOyafNlpv9)B>X+N|sbn^6xsNsL2!O5D`auy|Hx}EPYT8mXHawk(^Hz1sd zxH?n?x+vEtTan@~sktR|SW7t*e(wJ6TIleFIj@ac(T78kt?o}zipLuss;Rv+YUk2!>VUg>2Ci?I~6j*B_&vI3+vTY!&kfG~cjJ)Vr?52X8DH zP1LtPgL2O=bmc}2ESI%N3xoemvWH#ey|qq#p^~S(5d(huhLYmz6Njw<-u^rS!fR^H za&gTxMN1QBj4sMzTzPEtVz3{Jh}lObo%YUq0@&y~L~z%PSF^xpgTFfALNPCDf#h^P z%d{uNJ#I71kJ~1$Qtr#D*>WiHP3c<5RdQrs`_Ibk2#X+sC`dIE;7gVM6~kwa!%fTb0huZ_f`Q_`R`&p zn(@M8Qtt*lWP>bU2Ea#H=A_!`Qjw`(XepdhGjQUS*hh?&2?}ef)lMaQia{}ZOwRRF zeU$DPmu$La87VM~GyAes9K)KFfwlmRnZpQgd?n$F!5HuP+Tv@EvDD5|qdAc<5B@e# zZWE6V+iu}+TP6TVj!2Zp$fUFR>iZcli^v>`p4Z&l^$l$fac-z$VzA(p=HJWFyHLAC z1#(nst!W&%6`%Ct*Olvp+m_Un_T?|XN6np5CN94D9MXa9#oNdU)d>;90JWWbZ{^8H z%PD4^P1OsXlXfGYv3;52WBKBEl1FXoM9M~y*~tR|r0=X33Q1MT7K)1}wI?as>G+sy zK-LVIz_aD1It>3_0ziW|<}#VWsn(c;ENwhX>LYfSS?oCD>pTZv)|UQ4qGBNi(+*dw zf`IWGC!p$H;aiMRqguPRp{G0{{jMud9&D8eTTfQ!`x^#bnmICaZCmLD*D}RuSC&E; zCvfB=IM=?q(N#uMQAojl0OOPu$G&5@`PT)>6*{{6dc^vFNeVB(tc_`}i)HAfi>TZ% z-5XhXN($@Sj9nA*e6~=mJ?$XL5>IF^X@^ zCjj#}88Mzna2`XhTZ&C9v)#+TCy4p1L%`o_p5*!;zFYZ#i~0gR5w-T%i4adD6+$q` zhhI;b4w$(IdYzU}{5lnvrPG|~hv{9IFh?ZvKk}}5#pm9gZUTn-&0-B0`%*2O$R8F4 zOts;tRE0!q*YsfokjcMP=$k{?saEst)&!1YF4OZZlruoNz8e#Dn*R}cS7#frBW4Xa z&J8$Uqzyojw2=o`%{3P>AVcC}8&Z|b<#1knq*?iZ6%C#U2N85g5M_GZp(*|F;?n6PPfRPRNZHw^8%)(jJ|fH*j9uAZl}zk_o<$b%2aPdEVrw< zhkN*Wgz)>s&Yf|ShySYP^=_SYTX;6v@Mdy0eSP}%$OQ5@m@hRjv^sm3OU`NVon(re zl#}qeNj_DSBGC`augz>}evbKUOgo>IxXqhl1c>1yQcnmq-kWPE_S_^lt!%QA*m5i~ zV)4KCG+_KpU?q$)L6({=*ng^S4i6kAF?$hclhKVo{?{1((-6IN_F;K?CMQl=f1&aD zv3Jc=smI|admjv)xck#no}+@B{%-Xku^oFNh6|A4*lejDVJBlha>PpsLIqR9y3?Oh zrHnav;@h&Ox*Jz0n26JA4Tl~5pumhHmr5BX7GNP!dA7?zd`ul>AV^nNtJj<^{Mz*u zOJv6AsVYBN$v{c{%%0@`%d(0S)s)6 zYo+uNWSDEFWGr{%rWpL|fZqh@wZ-Pyn(+5(R5n4sd7P<6fRfbkk7Vb{;~r;F-j3}e z+dG%95DS5Y8b;gozC77&2npPVwoUZ$SZ_`h=~^E`l@B3gMhwDwLg;r@c|n~QxczPw zjpq^gQk9tTJrOUvLDr;MWcc%8mBp_T(LzrHhu<;!awQ}w-@~oB->ZfOW!}ws6Iyqu zZ2BIdER)SN%wk)dqd3MrwI!R9;=@_8JxG~C-Kt4MK$sbTCKgw z7X5v^?DC@vP_wdRt7sjTZzuLH>kg)N|M^Z?Amd(x-3i#eyv^OjHRC`;@1jG5fs!Vj zF^J!Yh?(+_>dhuA_*a2^RewnHhMZ!+jW=#wkI%Q-__0{qW{cM#_DXR*t9Q&dM#>+# zR=ZPAFy_Q%5@arT&kUY4Vj+@N2+Xlg2I^lFZ0boaCOMwie9AisOWPcjSL{JBeCKW% zeYuJVvi}%V-ktr&4sl~NpRf{czN`OKOF}d*R!-dNQKaqSM7fUCQE^Unajdy@vj4}s z>A6$syGe3XFZ-Ll6_BPhonb9Cnbu_)fL`|r>lMH+h2$55>lb?a&Eoo`tOat)@Ef4C z-E^mjQSme_Q+6yybXhgTLR*>a?U^&GHXU<3Uo6Sm`{)hRWcUu{@!9iYIJ2WUp?s;3 z22D>xJW+a>XCaN)k!f)}hP0GPK9lTN%UXP9C;h;PHCx;8XKY9>X`%JHzC4ugfwY6f zLaYn(dsS-Wy`K3Y?OyRh%v^z&WLHB^diGPrtHsVtvp3SH&kdmpct^WVAe_6G%?3{^ zvp4aYe^~!^uwLiC{P=6_PZKiaNLiu3z~ME2ACsZx9H(}y`PoQXXzD1|p6@rl2Q`@! z!qnCBArVa2nAG*1=T5ofRE2vVwpWYz-T7!u$28=uU$343mD+)fy~<3@rm(hgI}c`& zr|w7%|93LsgD{$0rUl|gr<34N6(_{IWvYnCz*w_1o;ZD_2qy40Tah3prDP`#>vZlE zmR#OUX8Vbciy^7d+^&>q<>$CtY@?wVmBf$C<0}ua~YJwOR z=Y^qLXhdv8jm`qMb(K5cw`aj3`8;9qWedj<-s&tvzeYqf-cX1?BE(dR#G$SC6yD?3 zf$aCNkbO8&%$q1Cc2LLJ&~TJGEYJaQK7R&UJ&{mV^bd=>6D_=?+ZI7HGNUs`a@X`0 zc|M-t=Rol{K=_%8&I31W+h)p=h3ksXi|+imd@Ikw#*Yr2)T#U8^HnWRwJ1fuCco=# zRibar3D(WT3Kzb!>}Wo-`NFjiDXumfv5*7x`hfc0VG) zd*Z9OucRup0Ik{G+^p7quIacNpheZ#$F^pUemKY~gzC#RJW;(<%~7p&nX-^#YfH9H z#(vaTyb!1t3qOs-(F&0MrAU7^T-1J1@lWT>&I^54B{id@Kzu*_oH;SLX2JI;gzj8kDT7dO$0d;D(-b-yGLK;vUJV4~ zns+J~N*(F1i79G0hdFf@SAF3e(5=r3tewHV7z|SkzhHiM;XjO^F}e zdSgq=(K?-1o315p3pke0^kF^Js#4INqb$ zo3ub(@%J2sq%%&-oBE*E1ae3=Nt!A}AH{Q<`TU^XlAEds9-b;e6VWe328mqnbc|9^PM0d35poorV`dfZ691zwXnqb?3Y*Fcd|jP`|z;*wItA zIndZH$X8v1I)a0-EsNP>2I@{d73BFGYJySn<+`8M9|ia6ZsC^&Ot-x!IonwZOY58xKu6CFr4}XX%Uk%W z=h?}U`9lxfaQq<)UbcFl3}^Ie>N!ckgIqc<+dJ{IXRJJA#orDZ;J3aWnCHTZ&k;s7 zKll^C6}2~+`XW;-8kR`|seTg#($!AF$$v>-F@DTajmg&43KHeQ9AP~)3`)VM z>+T@M;%3+U%!P@;uwBRzh*j$!&raEvN-F~O*_2s}?zviN#1J6`;3xA_JS`8ARJQ08 zlburttj5|a5tk6+eI!|j4QG0Wx!q84_S&R+r=&{gX|2&kcz%f~q*Y{Q znPRL9N=*`&RxfxGqMYl~)u3L1DI?!w4(2@HXSRqo+0W^G(P_WJ!H1c_dOYZEOklV= zQ~FtbO||d$p1n;*YcETdp?<=qRA)*FQ!7@)sZQXQ7*a1VsVrGvx*=j=PpC_>I*p5k zGyOA!X16b2{Cavj=^55DacM}cjP2CY1|7YAYc1K%dHr4s0~dsV7bcxMheg$r$I$iE zueL&2zR5Ety^uYtOobK_V)AuW1lO&JAMx$!Z*=5#UlR8$mv9X08#_t5FPP^3k9-=ZKiA?_2Bbq>WWj%9|B3<%=^?z zhdU;ClS=I~`9#Lbo&pC6E>}%`#ZV=)&oR^Y33k#BZ?U`Z)T-a)hmmS}!8URD5P%N2 zCF+WCH(vhS|3E2Gqzmrg+R=Van0hMYS@p`3H~57W3jqre1$BFzZ8aHXM^@rlC!RhB z-_rAxL3t~#`4|=N-e({p`mXyzdauS{tsrN$|Xz5DE?BaUs%Iub-8{YGY3twJtzUu$dE zstEaic$?y6u+>6c*ODV&+;eLDw&{Iucali5-8pZUd2i~i-RUst^&T)EZEO*bhTC*Y_g9r^ ztDeb#(H{kf;(txFRg9`>V6C)L!AWFbP#lq^=zRrEqYMHCF)IeYHXt)}KW@Du-L64c z{#q(}U4at{U2Eh;K6<*)4FX~0e-^gzCx7+yvnoz|E>0p}S4rVqwem>5c*Ct!d!lW0 zDD-(fjuQ162G1Q=>S<3TPpP{Xxo)nNT_n4pXz{{(9`}>AuDb&R6d-|GQZ1rt86++R zwRU@*&ER!XTP!Ew)55Q4u>mAvP7K}#)$Xx;^Vr06Hp3(M%8~gf1L{4dbaR_y9E0T-gZHwkk5yRu8mV;x_ zB$ND}E#x;Yu@1k*r7v?Kh2@*JpZj8^l-h4P7VPRZk6by3EcpB3!B&hD0WR1xr z_d7S(f&!D#&ki!HLdXWZ#^K9y8iy0f&Ks#Yr~W}B`%DfrSM?f{ zXv1#GS;IRCBZ?HM)-)UWwG6azPaiFj3O^i*_tT{!*%mm@YJrQ$2oMxTCB{ilF9|AC zV?-PMOnj6IgvTR_ZI!tWxRWDzTA=c0`=I+~{35Q!5=+=)83ztH95)oxT`wq1-4HS4 zk6V9p+ih#P5!Gw%$1uIIKS1v3FR&>Nak8n6m?r~H(yZ|@s{au+`#R zzHur#h3 z1DoW4-%gKcz6AWFAH$($7>hYJ5ntOh-M?{N0{Mg)%sz){1I38D`J#3dgE<6M+u7bG z*NNZq6Lm5@VjU6u6dN_;dZ;itHn#&&p9luA8+_N%Yvn*G=nEKaw4QNX zS1jiGwBr+i)k8t>=a@(OL*9_aqKABnkDE-a_yYk4?)=1f0Me>Qb#Mg^~D)R?FL9g4jl9 zBC!CQFXgLTk>D1XZDJa|bz(qF)|3Bg+lq3v-)7IK{{iu!YC^KX7d1M|VK$hk<6o~O zT7qg3-b%aWm_p|v>6SJvEBlMooL(lkk4SNt&ZLjzq>NCFkKJ_xxETbR)USe%P zErvt>0#&7)c=u#uz5uq=(-Eq)_bsN^Meq|}e!kQp!y*Gg!H+VF#Q|mhoe_5oEnxs? zrFj6TBI+5_H~ZB=T$-Bp+y&YDvI=(c=^#QASYIZTD9gk~klbu?4q!Xk-*n7+Of}DD ztXN^$X<$OXOBGdUvS8n=u~q66jSRtiTPM@4=Z@QDbz*lgVC25oj>_ckDYR{|%Cimu zsk(G>hiyjRxQYXF*x(ZA3UN&u{SKtP-#5#C9(>~eGNZ~D@K~~=#5E!|41L`%p!^s5N1W7E^`K|eSW~k)BN#bVB6snP-W}89^2aJ0 zrc5Wx8?b=u1qJ|)_Why2cHFhx-_s3KEqQ<0hvo1y+=n~l1MRW%@if#NF{1=QPP;6> zy7u3p9lU2y*#EfVO2l#dU?pK#kY^{4ei;<+A%@!Fo-B7}QexQL4z} z#S49$^V*@&t5y#N%D3a~g{`=6QhzL*>vAB~7}14V`7FS8!0GYpJ>ZnKZ%K)@x}Q;f zd`5?{bq_5tqiSuZie#?*1|Z8xxnE*tY`y4t$(Vj7%mUM+mMpZzTyXT)0L!iRV6B4uQJdKpLaGCtMW zqGMj>OcAhs<9yaRrs=YuWXUvBd7-bnr=xluorNX^$i#$iod1CUp@*sm@1!HPV6`Y} zrId&Cz4iS0vj~wJT3<5bh@vZNA=1g#eRPfRv%^~svrc`KZBDWD!s&qB55XbUFhBX7 z$)3=hsMVj~Q!zY+FUA*>lEe36IX4GRY{Zzym7X(vGjlh{s>Usj0AvY#+w8=z=dX}o zI^1Zk5qa|S7!d{^b7>`&YMzr&5C`9pwFs{pETsY5Lx-6b+EAz3CX%fObJ^l1=WZ3> zbB@Cwx?ei7b*=)~q#sjB$hB7-44z}$4m~lqR2mLkhtMfiS-%Y^9xJUlt_&X! zLSeMWM8zAr_eLHUbsn5ZxojShJ@tZ_33Z&#cc2u9L06C(k7#Ih&X#rM@Cc;JV+))( zy5e-!sXcc74LlB+o^0b^y$wx`-o$jGfpxYGU8|s$g*-o0o_Q=(s(`c2ylNlJibA5D z_a~3e^S6bb3`6Mq^G^>$$G30#+9oP}{0*KS-;%`d9LvIvyfwR6-w|QTt|Yl6jFL0{N{Q%g51;=Z$b`2~_LAtIRj4*K->9c)qL;6rz*t~E&@_d)c%f;;1oviud+f!)=ITDX8q(Y>8j>fr9GYX`jR z`eA6?>`&`$NlVsK#N0bzxfu8c)#2B;P9-Rjc^SiH>vwpKLRF0iWe+G^Z8ygMcFX;5 z%|Zp}ZKngxaqd1f)HLs3uGLhy`*Yh6Ft%cjPM>{}ef>V3$r0Q$zWl~Pp(VFt7iiFp z{(1B6%zNE!#s9>HgH&@)M}9^yg)#XoeLCznZhsi$%5MMr3>7>Uqyn603cnHD^M7dl zZ(I8BUe@qkI^!``k<=0l72Y?)0CeTYJf~Y>VcJk1DXm_)4a$X~Gq77SI`mo>b{;~d9 zJd*1F9zWGY?5SU4ZO658q>n14YwG(;LiI1B?n29U&D}}=69a82j%zq=y?Q_wM%;4oxr#r&Mp5pd@}Gy@^DLk6_n9hQ6jM-BXU69-Y)a)}*$SC<(w z|EtITchCL5-)D#ad4y1a-~RvIYyYn+E$irD(Q%YNYHKX$KebEOT&}aZ;nfx2|HSY9 z>oc7dk`t6SEmr0oP5+U9{qr%4|35s~|9^OZ|Hte(N}h55-zOQH` zV<&%}9x4#CA$fQFaDTk!(ed^YwH__B;$*6@h17ti48ltAKx2c4dYj)-yiBU!i;Yju zKKcjLI#AL#GZ-3E1=N4PuJ$YST}cELUtE10-%SLboB7WcE1-6RKukQM*V#=}hjy~A zg+9$xLPEb*Yx1_%)nMt>_QQy_99yN;c=mQ25HPtP9yUR%xsk>Yfd0=MtDvX}6N&qm8u08Ge< z@UR>dEQg^2{Fe{VacSJ~><)&$fL@1JeG%=)x9#x8jkw`Cw9L!DCkPua%xzpwLcyNi zy7S0q-0y>emL&YkRVn!4Uuqnp&iu9x{`I{UouhjJy#o@mf+qwyjSlZXmUaw@py3)4 zV;X{uYr$}R$Y1@ijFpR`9@LRn2fUj|2nacs2ylDfy*`!Ne&LLc*}%gjTH&ol4R;3x zOsJicA^mn&Z`8iIg2{FB9K(@Er5{PowNFmNuDsjHKM|I9AD@}X(w<(!llHse4)D*@ zmIpWaZ8ukl_;O<`;N(^nvZ)&8)qbAUa}6H9W)GlQzFL@T_e7wTUVUg?#R<{*g38?C zg`4$1HJ*&@w$wOXg-5ylVQsp@vT8~;S~w2aS{rUZ7!F%SEw3`Puk*EAA;O#xVVbVj z(+a5Ro_@402d)}$p(-)>kaIVfv)N{Tf@3Z$dw&|wB#(ZvYeBo%gFLw33*7IF&Zn0P z(H9kLa?iP4vh#)$nM-DRuYX8ZUST{>>o0`VhInt#uS%jZ<##*zJ-{&CzoXiEF=6e3=x7zx+qZAo zZ>`ut+RtS=#BR=Savp9nD)RQn(ZZ~-Qq#lFJ^z|k>p$)d6?+Gn=c&&Y@?P3tlxRgu zDPPfl@p^C75|f?F)zv@N1hc~cyKEdG-!vjiv2fNs644iCQ=eP({fVV-n1MI#=U zW!d2M0xf%ZkiJ_QN12?V{&kcDEV_QQ1GU(pnK2qKw}uJ$*kLs2clGzsDd6@*N#R1N z=UJuC=(pOYpX67`au(RI*_4&rm1|OM$XRmu;>uNhqzWTyN41zl%(1@s$Ljszs@9@1 z=?+2Dk6R{0C*D-$^8HnVwvW|urCZiMdx`~pv5nxdcfSm2Jb05$;s$4~nrACqzPfAi z^pjnV|JBLewn6{`?PT}q{#USn#rfd(=%QxM==^<)S&}pi&%6MxEcbT{-wqL>hS*pcxvzj(Wj$h2T*@`3!vd0~heMIg*6=&5C*4OkMB@0zjB67 z6NQvh5D!jwP$!_HYjVbjqr$`8xmf*|(Op`ZhUt0Dg3b411%LUL$usJ|m^(*rM+^Op zM~8|A#JU3Yn}&23jO$TmV|%HP-BesKqR0tZ^uu+SbOKviX!V(pe*GcdcvAvnGSR%( z6YbHa)_^}!&LCH2VyEJsO+|JT)LF+`^6rOMSP&gsF8u>qacMX0VM*LC{M%YGUWC{R z!o;k4b59$2cS@Oq=%vlIXuYbd%o>kU2@+9UpdCbr5WB9>yz0D@3BD8|-U_n=pM)?0 zdzxY_f7guSgC)QnJMkF$)));Uz!};x=36p?hSQ5_Z6@rmvE&I`<orH`g(lZyX>pk3qid7>q^&66a+BT;1`3=Qs5OEIPF zavG9=oq4e@ycC7Kd$jK3{|MKbUH=S;KhTfCb7-5fg69on!$7wy9uup^DRF`kJ0`XY zYr0QT$54neg4l02Sf0e-W9X4h(oa!!&)vxu<}F{z4pZ0 zmCv44=8YreXD&%dK&PsKqX$YDEg}>-8kI#4iNwQAF}Z%bbuuVXMRYf9)_S=u;``Au znB5;=R_6HG`ws{zE7nX<&v}@^n$$kTU|uc8pZoI{##QAedvXOA)W(81G8hQr?qn#i z28GV4iF9~+ybr(sTgt@f?`1m9W#|{UT0lAW^L1(|g)x7YoEp8)RN23rW#coSXBd#t zvJECxk8$?r8}DTboyv4x&;~*3$KzF4y{FdU53f{jxHdB9vZW>z?qkgSO@auwYCwo2o{+T#Xh*;wVy ze@`SX>>2N)awYz92bb5z3VC-Cy~DE#vh&@=pYEheWY;o;6U{Sw3Q^>uN5kpUIhz3k z8$OeD;9Ef0AWIJTLJT}PZ^KH$}i1 z<&#IL$5}ClQrFKM-NvZ$ZP32quExwW*;h^Bde|pIXw6Z^SmXk}vouhS^>d z(*Nc|G`x?(Dmds7aPk>G)epGTPZd`>-nC#aPc>_p7V0xPNU3_VnwYD$#H9^?;fiCo zF0%Of=rSC*v-p*DH>;YC2z)~Y<19S@_*=B(8!+2)Qfu`auxl>@qZ51>d~6j4DO+Gk zcKxh=L$&r6uGh)1a&GE3=jn;c+H{f1>jSG(9R7moaX7z$#+NyP^PLi zkskROL4Q%lD(oyd4&lbCDv7F}BH!b)-tlK|x>;8Vp#JC`KBk@=_aHO3C56e>J1=kg zY$YwvM_J`@9}c0PHO)bL^vi)ku=Vfs=elkshpP{$Rc*iF4>e2&AwJ(EoEZ$S8!~a2 zOnXz5tK~h)&uG9c+u!78>dwt9{XMZ%@_K$&g2iq@{3>r_B)fme&w0tqQtNoyn&;;V z^+U%KOds-@^BL1CT~(dqPdlx_s<2P>%+&MsG2bMfO5U(hx4FgbrpbM4ex{F<;b93rhWNy7NdSF{5zQ4=TVKApETkb&fL>DNGU# z9y8R{2z)4OuH7q(I*-%_uj5`l3LK28swt>`{ViXemP(ozp%ZM+M;xG6@yq+IOQbAX zZGTl>7FIAcb5H{Q8EznQAG?Z(Eh{S>uRkvtGJBT6yX!n)xLl+@V+Vg@r}=X%;>$58 zx~_zwg|h5otd!ZMfDm}SW-7U3XnYB6EdN^Ss2fxy#7lr>@b{8DZTknD%=MdbfKHad zsjggw`m4G$!f0o!nS-J^XF3dWe1wmwRy{M;8^u#cOn`ITQF9-@0TEhe~0KN?T|4rzf#4x?t=6XbgSBP-}4ZuG-ROLzPykI!+3zqYXF1anm2Oaf!-A=tKhZ3coZ{j+wKflbr z&KfG)i~$S@|Zb7<5=rr88;nSMA%p zvULFr_k}Zj{F)L&+wXRXl^AVGfk>95U!TN^L=V5O-nOj{M=_o=Vm?O#qzeP0@s9`F zuXH@p1HQR?N-KAY){J{7$dnJ|025VQhmHhT=N8LfDC{1~MioBaV@)?xChsh6>oJzi zRXS*HpGOr=WeAumgCf-JrA@99NuoB5>r3;K$}J??>c6NSRNZ{28DQpZ`mj-3z7C_+ z(MtD2YJZ5OcY>+4cIvlqT=ZnZZgQDGG+7a$n`OcJ>HS>3Thb9Io%F$#k|EJ+WH%#y zvZ=B_m9=xkvUbT9YiFiE$#5F|^#%=nuuk+k!#e$`-eu~L*i1e+cYBSXX(MN3LzZ4e zb>72`bpP=~%_+`9l|Cra6t9E$xU=4m^~+xEWjm~?nvT*T zsiC)dN=-r0@SDYR?POZ`bt116By=p163i|GYHy#av)z=You~uhL#n9~=ZBa1Y*wCu zv>)|md|$VQfqJ#q>`$q4=E=Ur9MIg@1njaYY)FgKr`wIQ-rDdIidIX{py^uX(Y?Ow z{Eht7RPScbx2PUeQ(!pFLmh1LIXNQK8~hnI;aG;u#=lMY=Ad{1UE*73EC3%hJs}!1 z7UP4`Dtk(^ZLzxNoP^OQfQ6FV&y9EZBNd`wJKRaKEC4Bq+h_ZC*>);$#Ur(;Y?sgd z3Xh_9@L=(qj%PjRF@50Ik#gb;w@41i4$VjG0EQGi@*%cT~2Whf*BgbH{hVLFe`M%EB?#W_T;Ni(PF5|h{NN| z&1W`2Ocryd1xETy7VQ_Yj8z2QEsj&pX!M`2Q&I zyoPmw?hp3F%)~XoUG-HQ3-FG4I^PY*JatD=HDQ0Z1VRx{wjT_?c|2Dyd)Brb@vImu z>hq)0rut9;gpW6^A)b8v+gOjorL@E0_V@Ru4ZE8bpI)LQLn#w7 zGYgxB0SFyWM>@Djt6~vh^zZb$P#0#`z7;J3rL-wD&WFC5AHmH})Q{hdi~pT@Gl!A<0%krp&9 z`8#>uu5^*ngMtuNmnPFnn;KV44~4cL(Pt_b`b@e%_U-r|{jsglhv?nj4a(BlR1Wa0 zoX`tX!=U3SCz+rcB3HJ}z(c6aVUP0g@8z3P#x?;1Dc)p!kEJl<}1qt3$qjUh7bVCU%u~o(Q z5+tETPU*B|M0GV^rlOwuqc;OlLwosAVHoC3@7h2!i;kGzs7pS)!05++S{fNzX=&5% zY*P?*<=pCH8klTiTb~3Zb^P8(=LZ>v<}?c%&{|4(T~)Vp)W%uhj{2Z>@+lWC95&ty6Gi4%`9(2OG`SnNX{dz zG9DuIF-6ahkwTg1uP3zNV?i-K`#6CD=yxNBQZd8~r6%=klfp6F4c{7CSBfv{f6FWR zge|<;Z!=qiHD8zN;9cpUo1FMHL)Qh@V6Y?|-@Up!w|qdK#~O@zQNtkmGwLbET9~Is z{phb7VzTrZ-E4iZD|UA8>}jU8Lur_uj81)>@+wxE9S2@Jyd_GxIhXe{olmw14zp%D z=~{|(zV!K$+c?8GDZPdK>5$1wjG8>DGpFrvyQD>Y?wX|TG0dwNV6w*9ZqE2%OH~!1 zM36OMz@-$Qg`PY&j-2+x4_a8mA~#m-Ta~<9ouw%jH{sO$%1QX&hZLR73_Q=2`!$(- zC(QdACSK!tH@DHP8=6kZ8w)MtZu9E!0MF;Y+C{0wQ#8@}#F0_V--J}ixovdm(*eR} zOitc?tN0_;NsQV$xISY#E8c+@rGPPJACFlJH!&h<4t2-8~vQG zr&a0?R;qJ*=~t2ARep?hV3&cEtz^vs^-=GE#TlE;Jjjiio)4Qm82JApWcyZi#MZ(K zI5ZJa1p}62IyoKOZUnFQD@!ibKH7w`JSbIMp1;!eeJ8(81A)_2%dM(RWQdNbHVFj} zx9ZD)g;rFYlVt1tlyc_zsY=0-QBRdS27^kbHEZ*uz~6SECM`v*AAxLx+0|;=mVnh{ z?B+0?q+g61{YIh+cSJBQ1<((dGkdesr&uLrIzFY;=j9qpJua`foWg$}0zno3a$I*nlAy!)_-(INV;fvmvx(pcOYQHtiLmZ1X~C z+8MkpY^Mpn@8`V#F78s@mI1tu%|KsP*dZFh6CFC&I_CT;Ig+=XR@N%FATdwvZDNUl?S)6(H{{YxPC%>yb zx`L1T#AYBqn-0?Fb&;{t@kl!6BkZ7~=j<&Tz}Mh6+=5CMBSDaVxBs~p59ue{ieE6U z@sk%g8vj%_(t{%UgO|&&h{|?+@*0ag>FeO(t%%GS!@1#?k>|qe@T@sdom_S-7P!;C zm8`?MNY-oqNcee)8A)fp2_%EWpojR9!!P z=(PjhE8!=Ua-Rd*jQsH2jcvfHSXp3Z9%DL-}oo>g1#D=j%f-|2}&zKI0jim?t2YKWNVfa{N*dRmG`}|GM z*uF?w=C#HU3B^c&$DArAIJmTY|imi-{}A!?LPX(j?-cC&A#FFI*H7Ajveht zoM-oz&y4l1fw|2e+k}jR9m2!1ZTZFjeRswgXCyD_y10`a@)>>`Gh0Fj?0_uNX2o-b z#p=6xudau6^iMq2+R1s>SAWG>2#?8=n2UXaO^WQgg&8V_)L(eaT(;zyx3*W?s;lpu zCq4nj<`{^wT^1Q5*>dfaB%WO_;VFS5fkY1Q*&F~P#ta-3k(KQv^6Pr9wPd~kLGn=jkjRwSmM|$2+zSxNGZ2E; z=5t=64;Tbk04TvMegSvJDya$B3%I7_I{^Xt1ag2)y!WiA3Q3(JzvhgN3!GX43SA2X zvN^E>Apa%f3@vvz7RfUfvEDo*lR{l*Wn;#p*!?X=xADk(DYRg0bMpL^$m z==eOoT>fuKB3}YiAVco}d(V)-HQ(%&B%R=iJ*~NA0|f}iJSAfnC;{c<8Gyu7b1LAK zJQ0MobHANLemw`j$RpnA7uj1z0txd?Z>NBs?I&+-B40v;4Q4mJ0^8=jB|PJY*k}nw zwugNqGn>r5 z@j>i-R66B+)dCKi>3d1HO|+s!K3`{CbP?e@xh6kkS#rpH@S~N;m*nypyVa6;6nILw zup+zSAD~Caw7R~${&+SvP~YQ3mmRz2ly{@kEc_e#9O|DF0maFJ;p1cC5Y$Wjb$E@ zF=JtG@SlxheyO z?Xqd)nQx>=^oMVTL&>#82|8YSEkVOSNg}qomW{6HKlq3*lDtQfQ0CKE=sX-s*4ZN@ z(PJ$1cS?Leoq#>?m+dIq#urHv;I~A4Yk#(r$amBXSvK$V-7_Rlw&Dw0hQDxOOA2Ag z5&e^_)gMRj@SmkG1>Ih&X?nQ@Da0OR^e=@ZtqzVTU%gd|C8 zd@u!hCl72fIoGbE-1rr~-C`CUgkR_yeKlUX#r~Tw{s-U9;dEZ|p)354uIr;hA#;pB zc*Pd689syO;9-jnWMNA1fxg0d=8?~)w|K@^Y2T5fYJo>&Pb=;jhir zbdIaddL@762>)9mBj%8h>5w0ZTbkDrS4)~O5xhdc4-_%Z8^!6RQ z>X|UNd+7+=sHhBpGS#=anJ9=kmfcd$Hq)4 zKxuAc4nUb(!NQ^B7PA0uxy{d(v;f$%BQB=*ulnx*IJxCIz|E%P2^Kvoz;SMC3NV)2 z->27w$;ho#vCxrQ-NNYRwnTr2qt7jO(|c?cx6ReI+Hh{Ot%L1#;p}p|dju$XtVMvu z+-4fVLT=%Uq(R;nj;p;bx9JBk%B^hys*<+>FmsM<%`$dl3Fnhrj{_jj?l;zOBDw7~ zg4*1&<|vME;InINzYiyzTbm)83o`?e?%AYaw`f@pWB}!h|I05{23dI zPepXaaSo1#VH5qWA7q?Qih#K;&EqfdDFWA6ZGpoN$;#}4=8bVhAeQ5b064dooBK#e zVzW18Cre5Nao<1t?W+Vgk-V<+!qIuda?ete6B$n19hn7-jpB(?IW2|l}} z2&(fas|YOe$Qe4o)<$rgKlEz6k>E|)rpJ*;$gRoRj0Mm<63UPDMsh2+1#3G3kn|Ig zAZ;JDviEo$37;HuB(!sDGT+2+(S7J8t~! zApN|19BWYex}kw3f8b{%RPx?fRGD3gm&=Gsdwge$wk_M_HVP2(c%Zrm z-^d=>cI1t*u~p_i5;}PlKwVp}WGfax(!cQCQ4LpL?GZwyo)VM_BOb zQK^{i=x-z@@(6_Kwe8=I)`_IerlWe=YrHphQWoI7r^ z#lh^Oqb>BC>^myXwUJQY#5hVH;dK(-LUfcJjD&XT9iJmE^cfz}ee#N*QzEbQq>hAv z8}Z6qn=9ji<4SI(_s{zq&*>H0g7>i?owkdQ+{%|lQZM}w9xo%$&_3Hsm-$e7#BQ4R zmdHL^N{(S+_eQcX|Bhtk%$B*wak6k;6ll!s)y8DqfKZ zaTu&c&+!EQ7gLg5a)KYR(3x>H+g><_4wD7*XKvR;#)n{E{T9#SKl=e&z(@Mg5-h=< z(b3{VeNT3M$A`1`>@|JSHh%zb~v1((_0R=X2SEt?-C;@n4_m>2?WrCf{Np zF_hdzOJst6nR`BuZ74h<7gB_Gu%{#E#GSElm&ZAYV_IK;=TRJxvc|r9CcH21!e`jX ze6X8%&{8ZICdQ{nWQ&ZS8pofCDIKpyrel#fZ}C|hbDI~>L-2^_$bs;`$h~|MxsSzw z)K{OgVTj$vSI>#Xj%>^EIfzYxH}siY%N;o85cbhm{a`28ZMU;C{lCtEJ;Z^nqy9bA z*}c*gh69z+k7}0$#hfazDUr}p0g1Y={f+^O)yXu%Q5BSDpT#P3CJPxv;JP)0?Y--G zUt{uG!NOM00c<#0jsYN_lD48kAPua93cw+t1x$^xl4o_FK$+76=mg{(!Xl@MryRQ= zOb}u&BvCmzz>ibn^jd(x+4xuU;<@E$e7=l0O8^vaidU@zbuTdJ{8)1U**W$eJ2wv1JB6L{nQzAFOyWk)ynG^U3IM^5G ziPIB6Zb~J?#n+mn`h0qQ{q6fo@Khp{Y?to%&e@Y^opn|Mv}rQSd;^pc6ap@CQ%O7h z6|9*vpiQztBBg+T@wA>>eOkqb9ThPl8d^2p3P>zB$CgIgps5+pi8gK zJv#_^NA=J`o3&_67Ps(8a3bmCj7#z%IGZlmv~3&?@7NMLBe6mkC1nx$tGV|#+jUNy zsmXpyH4CKGXGD%l%dx2o5&yCv7g<$dvHUeK;jNHSqc0yO6*3;HC;$TYi6w+gm5(OB`p*`z#}YhbynT*jllhc{HYV*zwt7B&r~4AV_#*ITJNRDLRUb>% zrhVJ(-_@>HW1+*wsQAL-G#kNwm~WrgxaQex{f!Fv#EI~sd6HPB%N7VFeA%xlcHe3Y z`o$NpUlM=X#7~PG^AfLZd-_!W+Rvx&jSapfua)qCH;^QBOOopn8RXu0=>VG@I}kVg z{tUUHd-_cu;S@3?Y$s9SOHP+P zM}LcF#fP>Z#tb7^h!7)@Kk{g9U@U(hZjw{KU>rJvhin+E%Ffi{L)(Y;ec2#=UPi7X zGvr#^7UygJrq9qHb4-pU@R5Zl`VhNAvY$R98y4jJJ9zM5>Z5s&-H3UPxocX|E;$ji zk_l&+^WhddVRTqPa+mLFsbsL7H*@3j`mVjceb08%y_#3wweb~fRf&0igFY9zMXUoxy6Ttf#T@*! zI0@D!&*ambmHgE8hx=MQgAv%v?U4Q!KexKxe8U>>2rMPvK{ks|b-%(XwutOU)p=qt z{)69Tn~LCa3z+O3oWX{P6WQHXj$DtI_y?PMuAB&8S-uKZ6sD8mLio`006dS-ObV5N1EG2&sI~KEvR*u>>`}@v; zW1RzsBD!OJlq((|N6Baae!!-cV#Z2x5^w^x%W!!#0KxzR4f6<45-3XmNrrP$+TjGW z%aOI9VO|@n`V5!{umJjbNr35d7;ZtJYult{d!1`kJ^;_E9{?txTw+fWsDcys2&(WA zZ#gT@NrD@X-Lr@|BfOKCQgt99At5f%Vf0%E6x(dGLd~h~AZe9Z;u~NAVDOeK05YCm z4suyPck*3T8B{={4bEJ`*aD2iqJ%kFt;HApM$>@OXMi$ijaTMQm4;x$c#V(KmJr(s znQuY7=c--=QUv46D!R?DpcNl$zLq`Pcm;V9kAgsB7ZeIAS^~Z#+JR@fY|d2__#1F3 zB9{OophDNlKcE7b)44??F$jDCZgvIWpEk%s+rInp)HCQW`4of*dOX`)EVCoz3Yc|` zdsIH+Y3(ZTYOIn2f{Y4qO1FSh6&2)1kbU65fqbTZN#LvQVk0bwsK_uD<99zBiS&Qf zWIW`AEwOL_{HyL@cj&!w0hcOWil6!eP|uqewp{=9o4qpMWwY@|f|OkI5r;$isd9<_ zOT-9T^-JzZ?%{XXB1v^)G;esvhMT`OXi!l{ z*7V(bL`DRpW%sJx_Eqvh<+va2Ixhkix{0p>lS)+8^=vMCC_&1XNUYKy_QZnFGNNDR z8{n6WcE4)8B6Cg#*tFO}oc5K?F1hCK4~Cs)=h=HzkJ`jP`fknz9jfQZhPLpJoniYH z`TctSPG9j>kY>)!5#MbL=7w#=Q{&Z#mP*$wrc8;glkhG1H+H_1d>A|XV4e<_Bugay z%sDxcyrCZ!tjz5qBG>w`U7IbqCyQ*QaY*VYkf>nKbIdEhN|yOy{+LZ5PwaU4G}qEQ zfjCU!bJct17Ecxx7nl##bOKQPWDg}i$*J$k#%Le0F&4ncB}~B2m_K8dTwX?OO<@fE z3z*xB|fJ8ZT~i2^Qq8-uCu}X0^8XVKTodNNBGw>*l@cLTDjAP?_mOVf;}{^urVCC zh~O;q0VnfK_-yR%Gas#Az)R2YEQv=vwuoh(_{V87t9@oW-)F``0lBpZSPTEIjiW`< zhMaopscDm2Jfdwy4|Gql1G^=TqPuv>28l1UAyKA}#de6_ZQ|8Glet5ox5&WXd zZM?5NcEdF=m3yXSvCbTnP2hLgZ@g#gt9WF3-**0{{}Sl1|Ga0=t_kkI)JJyU6|gbLpq}g?&)rKd&&uee?q^VzbSU_V@*O zMC{OFBiGYm?UP5j7yf~a(gpTp8JQz`gXo}fl5>5)U;QVya5I@GpWWgS<5w8O-t(d4 z+V}2(am3>M5Id)>(pj%;B-_`ibKnxkfl!i8hrt17(}e+?{Ww!3sq&1sFphbiVF0Hw zgecEJ3s8{fj)no;bmn|LGK^fFzv`Yy2;@105n$$-odGB}ok13kFV7T=j>Ka7@!a>})bgy!0K1#c_X}g5eG1?_yVv-_z~=df0fuIuw{HSaW8!l}A&~{X)i~*!)XQ9{E5sc?~gApj# zM|qyBX9Vz_JtII|o`E^LDBeVJYIYW3fQUTPkK9EtpXUqLwE;%+Tu<%MUEli`6>fFO zrq=-CdG=xe^!(1b`w`UTnW+KFHtDo^VLR}fo&_LG{fQ*Z?5xEI+LL$AWSmlfp_xAW zAv*o^JTegAJkMjqYdTMN@yD6lMUhBIS@${Fjf78rL2ci2!Ac zq*XPu@ip3t2QB{>I=P6WcfEPm2QdrVJThBoH>-7T`I*bB1a0WWxpVhi3=ap3PV3TY&lLr5pYZAfEF>Z^>9o zkyuapjp~(|&azW%k8wvJlsX;>&-S+LBOg%mTsGU^Y-7ozo5&mPFzc;S%TW9*8q%V?loQ zxv}YIB$H+~n;!AGMf%~)*H)&<1)Cj--3{$U(jm{x)*cyw86qg3`R!`6ef6xUhRm~@ z>2w69X^-{Q-0+Dl=}!dY$v^%8FUe6Px@KqpMip9)i;bC*dDMURXdfmq{}J%#8O&ss z{bsZI1N@0Z=IlJ+NMz+_Fjo{GWb-g-B+Rm%2$<8>v){4sl6npU;X^DA%W8N{h;4GJ!#wU+Y@9H|6Afu;EYH>&dx!^ zWZ7%IX9vpnxt`5*zOcTUU;T)L;6fZ%&xqtp+Bai!b~BlFKV9N4%NE!5a4VT+Bgr1Q zWMj)`78Z;|Q{6IqjbvHMv$-*LvaOGixXx?X5PaarBDtFWoNV*$h<)}vpG5*FKcj1W z6ThwBk<3cHV@o2rn*PgYvCzHAmu3Si{IB#bcFAO`#%rwnZc!xolE+c8yAU_9HO9zB zph$wHuH(%-dm(;xy|^`!fO*gKKRAvZAwO&)+X8d5-^(bHed)hrad3lOFgAMRb9#;7 z7Fdbw)H7fUHnS!EhfQRk^~d$~>g?}DSj2Cn;3uE8sNdw64EhZrB>ohC&=)o{DwsF% zNIVOt8IOL^0s0R=!V8h8P5#CrXgiGA`&iIU9??1XSNsUu(_eO2AIKq`Vy>e4KJO>L z@PyCIZ|RZeYKxxXDcRO1v59;9mJYkQs86%b?eYyfa=e$o6Fi&QyY_8#s=mD6Cu#4Igo^R5v~nEO~{X}{X=9$(lqyxa<7w>QF4IMcO0f7rtwHscfQVch%x8P`6W#9pvFWGfa+7V7%6pZ)K>!GW0PPP^p5 ziMzc25_x+#$z0L2dLG6&w_aNnRuxfIuU0VwfaI#CqcNP#8(?TIzrr}>@h_^PRIpgN z45OK6rdi>fR$>G=&Fa=Lj&qN)nLfk{XE@QUN}PT-{W}7MT)DO7$;xf}Y?TNql*5qD zZZm$BEmqmXD9=7`-x!0c=`g0Id4}!%VYus~4X^sCO2akC zYO+;t711gJjK6IUzn!s$$Ep_s1m$(M8XG^d?aT^xIGy~v{?m>XXVnF&qx9dLs}8W* zja0FE8sxGMKn5St~LIBk~Qp@vO z^1PBspGWYRwnF8U3b_ara%=27y{LBVL~-l`xk2=@swz|(9gOO-mW;=^R4b|0P(@)5 zRHp{G%1c#;+CJ=cN&%L$3STvZ3LZOLR1eXy0Dmdhs-jf^1t84b8gzzido?EWLWbO1 zIvc<{D>_wDR0Ry4vo8Vuvm(xUz3U+JV63WQ*n|LoS;41TMinJl!$9pRFDiw~M$Eg%XJkYF@!VL- z4*8Dlqt|4#$lTg#VOI?ObInwy^)Wzn&U@)d-OncKYmx8kng~R)0+QWbMk;RVw;SB+ zcN6ehWu6LYy4Vu_sm5VzBXO5ie=6hIqw=e&*vJ;yY)SjJpxdsik}U$~*#9P2r}Rve!%tmh|hEl=_mPTbJj)V8n5l%U>nGRDk_!A z>=F5)b7a3{8ShnR)8{GS75hZC$xQ@QIk$8*g4g8ZJo$~JV%mvFPE4De{jF{PkU1tR z^kEr!7Wq`Y1z+(+MUFjC8D~C`@v7FM-z^z;T~nX4?Verzsm~+e9u6EhP=BU=@X4x1 z*%zU z#d7Y4t;JZ53xP%4cV6I7a*Ft8ewOXkZ~d{uhTKGoBC!ac>KUDhA6iRXo-rhS4B*%TG-i2RTN<6sM>6v^SV z@Ax&Huew$nVjMDO2Zor%v0AXyGU5~YXt;{as6HE;d1k8$JCHdTmHe1jHu}`qT~XiH zbI6)Xdp4jYbIb;`*PGvxeYO)n>BORbM-nh~mft{l2!q+7LXHZfw$EiV^_i_EpZ-=Q zZI>CDF{ggJVG#!6dyUoo^xE!7Sb;BR-`N`#?PS;Z#0rIJj7=Z??K$p8_)Lz(p6;bP zbdOHs6CI$tQ(Todukb(p@mv^$ePP336MYj0!xU^bc|c@@?=qG}@t!u}5&n#wMUHA}(5H_ws?wfBFv(#3IVfmwTpo-LW_2kN8(ILEl>WGlyiO zsjp9)Ku7k(6WqO0U=N^FB20rDvP zygnG4=OOl5tTWGU(;GHlJ_CLxb9Rd12RlXQ$%pIMHU5X)po`|xoZ%tdK{tv|p2tVS zSA3EAJ@xk-8pc~a$s+)%j~aSsA>&ox~aNqItta`0hVT!RnzbH z;@>JI!su_P+S-f#+>d>-a;!QcoKsc>Zf6Vu?6Tr00{hwO^mgvs$u%lc$hE4Htw@l{`XO&0*>`j$Si=JecLAOMeIG%?ec&Se;hO0hN>dI9s=@@~M3) zI~qYx?pSI+W|7Q7002M$Nklu_v2S&0itLyp4t%%=LIU5O^wO1{x=p@^bP+Z!rSe!_?_PSpP zuOo4n)!%$)r`2&lm8R-r6|0f_*>ZP;C)0&kXvp1;ZI$=xdbPPFI|U=@I@hm6k~4Rq z>3<}yHs8EQKT*xko-Ep-y+^yfFS=!ixE%(OtQ_MwpKZm1cBppm4-K4@h64GNV zLgh}gSg;ynkuP_}#zJ=PhEZLO>=;pATXtXnZf|hlm`$u7!GSGbUO$2z*>8_hL8U6VR+{JaUuBhZ z&#aQyYUsS{_S$Dwx+B?~6=NucELS>nXaMdNMg0>=+6wVY@by*dx zTivtM?^Tqlcv5K=5N2*OkqpfWX4TtmrPthx_t1wbXjI*(Zc@?JX>}Y>iOpuHUQ$82 z9U?!jHz(^P{yP*$dyXBhGkLy{8JT)9N_jd|ftM1)S>e z?Nqa=LRDR-LT=qv%PKlm%+sf;#GZ~`rLHro{l0|?&HX}n?YA{ls;bUC8pQXid@K^H zz;mi&opG#cbw84`@$K+a!Rp6(RdsJg_@MgSxXIm-AQh)}fQcigWLJ%9S{1bG#zxa; z@8)mS{3@bVMIKKni0Z87gje&f*ZH`xVa zPC9iCT+%pjoB>;xxugwz72_3Ha+HgV2M}z#kS+J?c2d(RocFxxHN}H@*BX~Zt}Sre z0m0Swyte8&{q@jRLWwpqv0ZR(9`N@_B^GP$^>GOcY!C_sIAOfHn@umrZPK^U(;*qar3UVja6{8l$X^&yjI)u+G;Ml#J?po5}vjK z*HHmmF@@jfHy2(X$LPgb7h5%RXdlYfSLGIF^S{hTm~Z`pSEgIIxABN=Us7__-Y}K1 zdDpmpdR?`_wwMPz-A?jY`-|GDHv8+LAG2q(VUg|HJT``%Bu5Kv_6nH`k2nHl5so(3 zz9$#^5sT_BVo&?HhJDNr`Ob2rq}KSM^)R?w(1%Eb;u({*b9r> zi!khzPkcVRxE;Say?3X7lU@G0e2U{)$T=HF&gqx=);HtWPL5%xeJQzW@1G}Q^R9Ex zqHE2=QjFI;P}}p`X)amGTSsw;%N34Fh93$4ypoRpUnBSgkB}3xvmKt1wZn;fR@vX) z*6ukFbG(fJfA`NhmRsnF{9|BtIYXD-gBM+t@F*T<~ygdRyi3>4%L~F zyK(YXQD6AN7iMthtU2c(a@N2GN5arbUIP;h^mYIU!|WdSGw2c`z@c;9B--NWi=#es zN6I-L^?@Fx4&blzPwikJpXA1we5y}<2e5GZDg@6t=bV&fGR7}R{5XeDV7eQ!BgJ`{ zWLlM)YIE}FpFa2<1hPs#1zg(!r1Zr<RYlC zKXRA$m~4|P=kl`6?6}H6XPY}e(k=m?lM~mvSB3a)h`c%bn@x4@ID0CY=Qj(;u+Ifw zrFRPx(oH8MPgFvB)sB1Up@65(F+SRX1>Wrm+_>UIelrb6{VkbwzB+m0?&ODRQbBFk zi=CG~FMCIR*lc!wr$h$)CWp4|Ec2UGFbBLqhkVa(=$p^U_9D_(=Z>pnJQx-D&aRIi zF3bhX_%Y7ZQ@=@KtbXGG9g@L~EtV~<*NxxyzxEOb%-^zkA_L@=J+xyheiS(893J7< z{f3(gYM7V3tF|NzpYVhyq&?l~c;R?B+q2nhHkGYqxAnX52s!ucvgOO3r{DCBKET&RbW zT{0)ugkN?eCz9*Vh4;G%ehYxTCXeJ>yL5|O>fd%_NO=%g%Jtf!x5nrs1z6rV>;|=S z1K|(+;3XaxdNsr~`Bnd~bKt0QAatN7@^?7{TkkjAhXk+c5HgIv`%(yoC8h>D8XN3uE~zY8|0V^i9!ohWWje9vgQ%6HvLhddDqSRjGpO-gpeQ6 zECP~j0|oE|1CAHce<00|P?7gTpsDWI`06{`sQnX&1Bn8DVA8gBKjs5~0d+@%06@W# zu}Kzm+BpZB@|P>=U)r2ELi`RAWM_u<+Qbnk@9X45-A1g8oU z@dIqLACPj)hDC(4;s_RUO-|Y0(#b{7WuI;PmL&26T#oypo1WpA06)fh;J|?yKNhvK zuFvsb5@OMh(5>sa$6C9#GE0ywve_0^$qvGEi=l#5Hig~uLxJq~JYqk0V*ASGvRwjN zKag4E2Lt_3qW~U8@neQwRUP}$II_Qt=rBLySRZZp0Xqv}79H zKacqNd*1V&iDBk_zwEQJ+i?C^D?3NF#hreP zmM%E%kzOn2)Q*@E){>L)!?D!l;~zg^c;9<3J$&H(#}B{xyc32;|ImfQjcz<2gUvd+ z!#8-vU&2`YNvF<%&VluEAdy!X9Lsf`_9zE99LW@kV^ihd^{#il;pCG~9`19W`(&?e zk9FQA30NwSM^AzopC@F1R1tqL#B`b)R~TgNU|f5 z-k#$+eUdXd%>jTzK8wuFBOm$5`g37|-9i)@E^w_nNOE3qB5;>@BHO@G5pV}QslZz$ z;e%?{JKW(8Gw^t%WZU@J1GeBf&v{NJi}CcR({}o>2P^U)`p}1F1!V;k`0IR7#~I+W zAoW$RdQ}E<^LPvpOE!{kHk%yK5pws+SH5y~%hX=`!e@ea3q*86(ur@7l#%=q^w13p zysZpdR3i6+`g!fn9=d}!79XDY#3#-w;k3W%XDsU$S(a?GSaH;8A6Mi{7D_0RL$W0Z zjvqc9;s@+@Y=iaG&l#RE@C1@2e!Xy4>w*|Hq z$RumdJ@?$%{qB>{7hG1dYF^)V@|kfMuSI=hK=WkVXA%f({B&IHbI0+x&~wEChZ0p6 zU3A>=bzg8`xYP;94OhSUFx=`+pBip|(#M9o9Q;U({e(<}@`3Q{`>u5g9V8?N`nCk!`u;7(FdG7eBzFGN(`nyhn_vVbVqNDAFhMD;J}^~+7TP`raCt1UGI8V+9!G+}7D=bm+E5?(kY?I>kU9~|b*j@h$k0{Q0)0^Iucm%$- z04u>RxmiS?$ROOZO5!)pIOB}L;+kh5eV+DvmCtP3!fy#%=g5oQ^{3O$IAC|5d9<)u z@t*~4SOPAIAJolcy@k$2M6Tsj_|b|(T?>mSbo4ozCm%i|zic--hqdXM-BA`;6#yt6 zuzRm<`@n$%iAP|PRT4dv)3FQSK@WQ1aD(f8!|=%aUu%fNjE2v-{&B+{?{(quut&Ww z`1RRXc~#Fhet9PH{fI|AB5~0nf3T`2^mdLl4upK{fh5EJ=4vu93{g+y@8Nl5{8dR# z17ptLDy|AK!3J>e$Fn#FU`Qncu;9mMRJ98RT4$$StGa$55ebNaCJE3=>;qfReC9JV znQ3b|608Dy05%XLsjlKd;!2RQjNB{Wb)P_cQBZAc61jj~TbZg#!{7Sl8vpcF0MBW< z$GF!?mB^Ri_1vDw-#ND>^2u&h+*eCv(R|)FD!&TIOJ0&|$qmJ)ox| z<7F><*=$jbKB)E-umFwZTEfSI5t#=_EpQZ|oIZOMe;Ye{L4Q<4SL_)e`U4qi}?nC5P zMY11>q${XwcG*oyb+YdWHc9)fNYx#HEy$t3vMhpkmvJaq4z3Rx#}=}^1j1s zKK3WW^~cXHAhd0G|E!xmcX;dF9z0y>D#LKv>Fx( zgRR*_aSwUAi8icu&kZRWt+v2eEE4{C$;H5-?7>3 zIy>*jKs_afsl_bAd8r@&Cip8VQ|)@ z*4ykwzicT7fPcX&X9M_fEWnehGtL76A`*S3(zZht%>We8BOxit$T4~4kOaP}0c$>N+Oj6;<9Y$8wm3QmKVC{+g-E$ZSlR&{wpoPo{l2xH0!0Nz( z0~u_XQ;BXz`>=Te<+pS7URQHl=a$2%2(MV?` zMg<%yJpe$#I@x{W8{atFEkLhS%vnHigaj~lI7Ej99LB5E8?q@G zFR{U(~G&(fB$w)gTkd=?awiL=pSy$TUYUwaG;Hl1E2; z2#Dzd?4VcyNrccX@=CVIn11X-<6piP*;ktr37Yrpi= z`*}o`wa@odVBg9%9z6A_PtE5`!rF~u{QTWnar6+K=chjK{%Z}t{Pb%KZ~W5}hil$q z9PWPd$A{a0>BolyH@YyAOv`bM=k`SYyxBSY&-hzE^vY(NTfSIQ1kRJ#MC1()mqcWz zB_7#4_mW38yLQf+YwbwTD+qu&ip(3ibml#|CEIprkx%+#PQ8++3odwn*#3)$t6b@e zhtp2`+2OaI`}*NipSZ_x?OT0QBxw{h++aBVqLYUU-gmR%&;Q~VqyGNgk>da0@TDi+ zVYtuzt{Xf2o;8#ADQ2$zOkX{lJ;np~+~A^159bcc@ywII{$GZ-ed=bzo8NHR;dftk zUhw3E;o^WQFZz{h3~%}O%MQ0W>661vZ+>Cu;b(@cT=mn@{&LywiTvrT?EG&FiGI7m zZaj9_yt0pu7Ab#CUSVtYR7}TilY4O=eD1YkNZ0y~zQEC~-Q&|0F^CD_d5L+ljo5m! z?Rq+6!JnNy7zs$&o)7Rh9b>O+7nOG48$>QV*DhT}2);vXe~X#(!#V%aVF^{&lI=F` zG)70BSa_hj>!O~>Uma)3u!1nM!uG$#cjhnUqg)AD^#%&*m#&dVRI1RM<&h zEFQoO@CaQkIot}5=!5)>HjNpzdZ}#~q}}nD7p?F=eeH?-6*BY^&{W9G`V8$QfPaQ~ z_y>PoLKw5xhABC3<(R_~Tu6ksMp`f+SxzUM2`A|zn3Wg;-UQE*qred-#NlyBoQ^6= zfw0wO4oLNj@BIj__mz;es%>={$md{G;3L6@mEm%legI4`gn-($#-VQ< zspsqebjJa}rCLrRO2QN%bPqC4&Z^~s=bv-VIa#sKsUpCv)86F(Fs%{?01?yz=VYPC z_hen-#hjB7Aj=uA=9ujGoNSO20SLga3J2h~sHBRREDEG0ipZSB0y0(Pcpv&j9{{k& zKK8LG&niF#?FbO6fLx*z5TrARECPz9Gi1@2^iN-=APm@{hsHpk0l6Btwv5}qBA`)4 zpK4+ z#^Z1sz9Fp z=pUVHEAL$^aNz*9KuN!=Bm{i-@|VASwxf!?8f$B_`5SWWnFkIW$nV&F*LB*P93V>; zpg#JM8x5~`*$0LXe&R79TZa;zdd!BBM>0bmEc~c+WU~dYY$6$ELnY|hZ3!8+S=*}W z$rc%fEyyBy7Bs^WMGt=PgLC(wwk!xM44_{s@7#wx&oMy$CcE&6ej#$k4hwFpudXMD zw!<4ok#Vr+DnZFVnI*g0L}Z&Dwz6$2za&G+Gv5S{NI1|DI|q#ECI=oDiy9{kU-Lbm z9PWMp3*tHd8$QQQg?f5_JyIMn$FKmb%r=t?^ISyM>Ky#?zZRs#c_;_6GC=(mY1qWQEd04}V8*hRLBj~6G} z)yFQk7?ZtKfWr4mE|O~t0PLU`l3cROFe`Z>=N7rNAvsAmV0E$$?{WCv`m1a&>RLH#bfl5Pz}RFap0^SeuO{w`{s=$(q6!@+L1rCdm=} ztPTH4NBC=c1Iv;L_SpSi?WC>K476(j$Szv)Mb=cK>jU|(7?SK-B%&kQqhqy8hAfg( z1zUE|ATfY~0Q%bcA+5-Tm5LC7`;aoci?o{`b-4fH_hrBp?vX7RYXUCD}vP1ipZHRa3gA zet6D%2^@(`!2sZ-Dp?}mj{qTZ1@Hqjz&cq)WL{;mc1A08f@*W_`Vfu>sTdF6$5He@~*LQ~%Hpg>sE=h!NbJpjx@44rky`TN;=UKyV4bO98;xEsQxFv&bi*x<^ z!*d_qnOPmR<+icnh(lxb-n+-7Lk`NN`2*S*BS1IOt(@9Q(sbM9u+oWi7T(9ZMI3=H zaZt+X#;2CQ3(8jj(o%NcbHuxQfvUc-jSoIUoQv9*-^vk$M>!>AkmD@iPjBNx_u~As zCwQI{V3i7;YS}v7kI0sU92-S<3y98}H?Iw3Y72E8=Jtbo{&46y?ucz8uVjRs8PKLT z0{8{*eCE^F#$5|O95=;(W+(4mp+Se%)(4zSJX*mVx?6C&h%;@TIh^#S;5I(7Efk`M zIo2FoiGY#;ScA?LP;x)=g$ETKXrI3Jx%m@#Tz5(&AmRf^P+h zirgRW!S@3H`sX>iiQul2UDtUP@Q1(XZohq^_<`ID@~SF@Pu}##L*vAcJ}G8wwIWvM ze)tJ(+N0af;Qt3^1O&3_B6hs0B)fOUcU6r^&pNM2!l_GeP4TvCtk9BdA`=L%!O!?Z zpr&Z&UG|M9Kk2!#`ySJi*H*ed!XI!xeJU|#B_Awp1xOK_Ku*~XybYTO+~U!~M$X0CLv_(Guis1EKPfBr zCr`FVH2z(av=z+%cUeMN86x&8169Z1*l`2@rz?u&X?O8Fdi$G`kE zx)Y8qY;G$ad;@29{Z*f{?WMB?D&5a@pFO423hSkacf1z-lK! zO*~&zKBScZuEE>39fN<0*qm;lvp$Du_``5Dn`FDKfe%@uv+2E>C&ht+@9cfy&2CQx zykQBtmLKUrbT)skh-~0%ZQ>zYKH(j<8qxoJFZ>E86sC19JRx?1xAB#vEj>zh*nIld zb>u`+0iJd}e-7U()^Tqu4psKU?s%KM=;9ImAV=(!RkBtDkk#so?_soF@=W{+t83j; z^39g9p2v3s8jQeT1Rk0rFbL#7fb&M7Q{J3G4(Mo!VGv{yU@QVKfG$AXK5&93w)?Pb z{F9&jWDA}IU>FAX1%^0}+TavZ5; z!I%R7Rh`c`0aya@0#=r4YTJ1nW}u2;be{rho>js?z|=j;aaS$vUX=mYpCX1fs4C8e|_fTH?WWsPbA zfJOVW(isp~2gt~RN(Rm_{>D!N<$lc5GDV*OQmWj5BThh<2k@D;$tCC70Zd6q3BGiL zG#m`qx~KEWoV}A(+iBl-Dk?ZOC3`g%o>lPOd4QI49V!5A`BCyy=X=#YP$=L;cht5L zz5@!$iJ+9)(I%gJYRci1UtbqfF8oPs@x5H3b78JJxIOn-+;{g_x$mRmt~b9mmhHKF zteCldEZKg?SUqKOR_kXiT=s+8yhDQBK_K7gt|59*Kpsz+>1sfpej6GZYPY<>KNS$7`z3-npn~vSqBF^bAP)T}0YE28 za&-fd6-c6g-2<<(D*}yd1SeY+wn{j%s4rb-K|kqz_b4K_s+8QbmjwDbKV%r+leHq_ zMu$tnb=#}&2d^7G0(hFuXD{IZPUmO|kKxy)OLmLh+aJ}mkMe{zU?NdUXO}~ZCnSmR zJbs#=i6RFbPj3nIsHCKWt@e{p6;u?=@!9*{_rA7W?a-%%2k3JNGCJ5HsRUEmD$u#5 zv)KY$L?Mp6b3H4*CSP+iL8UFv!=~VWxTXlMfNunkj1|%c)u!xAZy?C^cv~<*0E>*4 zoC+ivce2NZ(I+t6f@>~|S@uPURmS6I0YTW5 zEud>*13@6cL^zjTl?Z@c=rnE7ldd=Sf=RD?-RoL>f=2{Zop*2X!nQFvUKqFjY)*XX zvn%4**WHymaz?!K#23efFFrrs``&NFrN6i$7T;4GZws}O2LT=OBq#&>kPULBNXCjR zeZZ?-jG>>ldUH+bayl1Iuhm*Lb}z4ghI##L+L?Vau%$2v?(dR4^0(i9Wqa(q@6!1F zXWgFt9+$_Ovz9K+ecB(HiHN(##hG8S1!(?u#)NUP%TUCr^SUh!{uhWWo-((ir3w(b zzK9*Cf8cERzyWW<1%izdLxPKRC|iL?@Gw4Squ~;Moa7J;<1=!@R}*A}VM>nNQy;WL zF8G7|Hn>;t)b?gDZt2r1$YKBSE_)$(DOhjCx4tNp5pajaB_6uGO2oB?gv2(Xv<&e+3}R6jVO8g8< zz{>DHAGB~e-jU$NKZ5mSKr+ipYkhJ*e5jxSc1C2jco=q}>tUISA(1P3o3B#x)9o8u z0}sJF>{j6+MWK?>WL-bpL;nUe7=ghEJhVn&5XgUk=8IAXI)E<$I2C6=?`Vkg2ViuG zBWfQ)OLrNC0u~$>0Tc=u!0D267#z+9!@?m!lsMzW5HSV}2cTuYLP1X;&H3{Zs7nF> zPy$X82Ebee;p<-27XVDQn9%{006+kYK?DGia~UGzB0KIqgRGxrynF^=suYqi@XVZG z2G6tVtDum|4uK&K41=c<&;Ncsow3v(z?4JAa92O8--Fln8vy|r;2dBu2dan7_h<;P z=mK!_i01$k^IJTiEe-;JB*4R2#3K&#=m280hxa)s03HWiTfjK}R^jj$xvwpr6JWAz z7jFaVDmqlIxu?KB=b#+idKUL_Pd}WCzwk2ou?>kf0Z9C)4ex=qBA-hu*zL&w>R~+@yI3$12=rud<8IQUq0qD=JO`*yq z`n&8JDsx*xCQ~xTjO&m)*OnMPIt#RlhgaR}QLq1+Z0z z(cz^t*EJ@9zoSdDGl|1t?R8Q(h;%7_#oLH(?-CuWicTPsjNk!@0D(yQ+R7Bw@)BM2 zoysJpJ3N~>}>~Bt=_x7#srG3wg2k|m}%KqSG4v|-cKaE9IHsNRe*S8{aVcQbP z1n1J(Y?5FACxv|Lhd#OwSrGuh=bUa1i?NrGmiVB*TOO?&3|`lJ1XL=rv*yd3T2VJz zVpG>R&5L4bTpn9Y+bUPteWca3+9=)Tf7{=vRO8^*=iNEvzzeM41;J3~;8O(y^zvz^ zoz`LnL36w#z{4q}2RWb;T%2IoK{AT{>F3M}$a-duGTR}*!})h#*n$o&ojsI}xH0iw zTV$_}p0%X3Li3AU00-?J%x%(u1}l6tDM?->0@I&#bYv@!uNwB+Xx9OrPU@^b0>GHK}@u*}D?1^{r1YIV0PT$e9 z^x(VR_2D?~mEVfnZ~XI^JSmg*D^7?{eEO_d_?rXr{ztUu;p=O!xlXfdNq-RDh6nJi zzOWSnq-=@g8N6IF0cTgzwgO*W-X<4h7GLT=+jL+)LuTC8-nZXBC#Q_eOxq@KMGp8j zd7Q6yql(jvU06+TmjB`BU@@ z{U|8Sml+M=Lr0h3c7gHI%{52bv}&3?ukVVto#W6J-w)5xm3SN`wnBwY7Br*_ZEGeO zi{G6uKrUFSieDg-j->zjbzLgnW)qy_Jv<`Fs$ck2AhvkR`|>}u183`Jwc~%X!KWq9 z`c0-?N0(P|n(b8_d}Ov!|J~CM(&B3v2A+aTw8u6KXv0Q;{t>vA)Q64DnUzb%cQgbq zmM(MtR$EQaB+fsk{&`B;dc}bE#zzzi%t{}!;wHt{bsxN?J^X?{=uNSTc^UhFvn6@q zVE!8Ys({8dunIgONG~>nf5-uQa&Mw`&0VyOBuupfgTTJ94u7)sArDf(vpoB`rWlfr z$7}k-FJupFOGWnFt9%tj417l82%{^$p)X*j!u`gIofOdbTvnX8r(_5F#CIkaB|B?+ zJ@`8qfx!rDsw2>r&&^5NR695p`bBa30X9KI0elLQgQpU=fB=PD4r zC}m0)Q0@ja86}77D1P_t9@_VwQz1}Oq+N;}z~cM>PmBf7!jWMN1Sc6dAg6+&0FKX) zc9HutAeCHjV#KkyUJ+y=Yo4nTRMnPw$1mj1a{x%3k-D!ys|r08 zMr42!j5o-vz^eCx4DR10a)ECpnK)MZ#3|x*yWaD-S6j)QPRD+kFuCFj{~ohfERR>* zbYmQoyd9VRJU(^ZwejUGro=7B939jD>3wnc^Pd%W?ze9&-#U{C<5IueBct7WcmMYs zo=<#FFh=hqJ2aUMBS!OU^tD6m_cG_vZx z#?<{>uYW3}$kP0*+_n^0keS{#K11n%>)-nFB^yAF9(2m!MMh=T-HqP?G!sy^y^@t` z0u%zBbT=Nu$82p8p7)t~tue18(SG~w8b814?YW@m)|}fvZiA=JsdN4Bz_X=8wcFL( z<`iG!wIVi^V@wC(RgNZJ!6$gh!RF&@0et#aa8iPSZtmU-|CSR>rX_XZ8vVkX0#2?q z9(1f=5PKlFM0Ny1-M`yE*LqJ5Bq;=ACDritQ1U0tBhZC!1&HW!m_*=K-`rE*B?tAF zjvx<$VO{yD@fhjV`TAlUVM?}hb0$@|#!+CKPLb4<1j5I3WLL*}PY>2-Ug;m_8dEw* zTkJ9ZD}Jt5<4hM7zjgWA|9B7nD4p#(I+HGjM+JF~Jo2dc*groiuKVe;4GiwsQ(+I#++YL7vfrLV(2>6OJc9Cc9v&lGbfCZ~-X%+2 zdDlmMRuIIV!2VB5oxg4J>TvY)?8he(j>H`;du& zomM6O*}8o;?U2pQmFPo3X!zl+Z+&Y!#)8%KO0Rx4M)(0Amp);m=^T6k*V2XX9ly@} zJFocKtM^^KUA$f6kI(Q)%_%uB&$W%9w&_#4R3H=|(U&kd-shXajF#vI&!rtUrsiq1*N>(1B&8HpDU7n(0_LW>VMExt ztDo>lFTe94VMe+Q2AH_|g|XGt{~Ie-Z5_AXHX->Tc`I|C6DH#8HCS3Z{!cV=58vUv zHARK^z)}1N|I%M@lL~gpVZ0AZ;30Y!?~yP156|FD{DMEVQ*FUm4t9sWBq#6)+Is7) zQZFx#^L}_`ob~OYxcGZdk9{5y@#x>%K4o@sdvCn1&_OZ@&+wD=M{x}Kvf`ZH)+dQH zezj-OU;n!vZ<8T07`lK=>N~t8xNp^rF()f!8`}s80dS_^E<&j5!&qXTGmZ_3wqfDF*a@CcBPmH;W$ z5;Pk)k1=z;Egd)mu5nNIV`OBc1^ElGar}*qb^sVgL!UV`j0o_= zNuQOVig6Tx>SsWFraz1XL*sp~k?@{@a}JPd{24BW&SxAV<7WIBTjy&_yS;4M$N81$B!3*TjbGeo*={Mfi2hJh>z$@;F zXU#1@1T1-G{dS(}VmxZz$*>@*{;Hza7TM58-*KSn3QmCv4*V_P<9$EEQ^pD}4#(RQ zmamAJXMaETe)m7c(F?DMXKZ_5%zV-F<10gZ#oJb|in;kCwr8(c690R}<#Fkizlw=D zA6w--jW+O!|2Y@taV!P$@wGrOfZgS5!2$X~uuvr#9>X8>6p$?_WGgVdLa*W@{3ID` zu7P4i7y8UKk~Kwmn_Re-&Z86QA3TMp@wcQAUZDp$19a&9(L>rYSNa8byI%kOPv;5h zBlbc6B#*5+!Ebc1d#NntMB!bZk$)f`uWCoXil;q`bBr7NME`SU1nITeOWLOo^s9JV zU%TWSpE=kV`hv``FZj{e(Ak2m^b0xVtkVP9ygy{j*|GxJ6YNzBcEGe#ajQ2gm_pw-qJOiRYd>uXP45yKK$2 zBE}cr;}d+z!8S+t$G+kR{3g)jIRr}RM#(XWDm;ld$eQPZKj>dNoAc^30RYMTIf<_X zl=RD3Nz~HIaE9k0)ATvL@446r&o3~K|E&xeE`Ug{vV+CfU7KWujr&UmvL|!1nwFk% zPh%~hs~-YHWD{?DW^LRb>_%p^@4B%T$j8T4_jP%jzGJ`ft?I`bH#)-@*!n;clRY<= zwowqw7yOi1p{q(~xK=W&yE4`s*%z74p`*R0yYUBJcCZt4w)rAQcwn^Te0)uZ;?Z4q z-92u(dHa}s-0FDVAHx#6W#Z>4t-QEDJA;qtSJ%2HnV@(1zXC<%4bPKxayFF7B(maM z{UyWh=QHDix3wwYGhE-DYn%jx_ec$FPCZUU5aoa$c*ar%hgXMWjLexdKnU(~+U zgM1v=7U5&O!8gOdbfGrzwM5VS#M#9|bT__oJ~CYbA={e7wL;>odJdZ<9;+ zGQaFST+GMt49-`j?6=eE83nuXIDJq5yN^DTOS%)E!6TASlBojq+ATTn_TN3(3O2>} z-s8(I6&`_S$ccl0?jEi)X2zZ^;R6^WpVRHVZFSr2{_mQx7|4gUt(wDQg|+E#0b>Dc zdQ-5NttHzPP&S{63FsqL@BAeg)QSl64nrco82&KVrMvJpK353x!yo=27TvaQT>Z1% z;(PzSI?njdUE{R5+s1dlvrWvu;eTTOg0tFr9~U#@t6$n7uKeY+SorHH$wQM9ACHeM z@`t(oW=EIIDP65!WD8%IYx04Y#4p?%Mv_z@Tb>Kn#)stDxWFOo5bQxOI}e^UHv8;z zKwNgo-tj+Qc~~^JzBLx#H7$O9-I=j`+*xtx6Cd8@(p|{BuT|<`41>4A9AtRm@))|S?ZOR18_#De=`P(K_Q!h;#1oB53u)%k0 zM_>@hUpo}*{ZDJbGI()c&9&amjr|J+?o_a;HlY*^9RNZx0%pEr;3+dKv0-d zBH$!2z!5iY&PR+0faIC_k@FZqebL{3=hbJ%5V!=qJSSktI5U0%9DbD2a{yQCB960b z760JQc?)`luq{EvSHmQ+yzOn439Nzc+R@Y$Y_e~f|g z(#G_3Zl?ZvVeIm*{K2LF`LAe>cwyZBsy~m#DND<@+qUh~P4_r|`b@rz7l7v(RZDa7 zjO9qAUmR`MS;8$TSMoE`b-(lPhLQjK+&3MARJ8Z`sNQgp>19D6grD#=-o&f5m4Ih8 zMgpIBK(LJtmRQ7d#>4z-tE$l}&>%oWPJCBH&)CX?j#QZo(09qbs=A2&B0IL;0oX@F z^cR`o*l36IfVc4)`4Rw-B*P1wV*Svzb2%P9Q!UJyz;DJ$(3Uff&p8aXf#4kLyKQ+a zlc!5L=5z(UJ(PB$_{1ySK+c9E{h&t#EJr%e_3SOD&+kqMZ0T3Yu%*Rh&vTEK=qX#V zJm{3clANe@cjF#gINXUU6Y*t@qwz6j#>@P$slMX?n|n4(z!#s9an79J2}jdvAOR%T z!4BpUmhs-_#g}+OFc8MDO@Ux3o+zT%@SFpWbHY`%-=8gH1lQSQ!5X?!P)J|tX*!#J z#&?`e`rY^J4?S;=$+*G<&a=Mhzh~z3>yz_57ai+*c85;DyJQ(IBjfZhGKP+kbT+wC zB}>o4H-d6>hh!dEqyualN59f59C?+9l8Cjngzw0v6`T?lo_!?peFdh>xk~i0LdK8| z^^Aq}yxLO4oY_u*{)Ju5Cpn;h&Ar5`fF!=dOL%vF1}pId-bFBq@p2w=9s5bA!Ic6r z_`gf$pWa1yg$&S(igHFnDN>1v|2zBpwmkjz7Vqx1+pfvi4`0jM_{MVysNhe0PglYp zbRc;Zr1i=k*?I&%F*fX$XZMVJ1XZNo<4v}K52AvToiCkjd_9-<+HjCvy2Lm(um@Q-n!yUB!mxF;J4AB{$5lT+AGKeWTY7z^Zi%mX}P%<&zaP2L4P z*(W?nkND1S%-{j~89&35c%fEw`^^oyiA>NR^qo03|1da`k^NpW}1MHvJ)ciVBPi9-=4lH-ce5 z^q~*6Jnq?G5xxZ?f3Oz5FCR`D`d+xZJ+bGHe$pQZ|Mny8ApJH^{0MqOf6XO5z{c_0 zCCBUj{o1O}%oAB9Bjka6j0KWdfjQ_KWPJIE?5la5m4#5gqhG`V;1@nQT~3FUZC7|h z|J&jThJ{(o13QUl#7poeG9SjzwfwTTzV#h>kBl3H`P?q@7dT={JTZTY`}661U6eXI zSKaOU2XWg)C*^O0f4?d5SJ2lMeP;U-(-118?I8{j`;yEda>|S>#8MF+QXO9DIYl9{<=^$Ks1W7JD6f zSN!2ox5c~O{ermh=1Y@z$F+V6-X=fvv@tanMD~8^%|Zr_Znu zA`@g5)`nlYe45=z{-2QYGd?c*(U$SWk8cxqTo-ZtNfCeaC(+_J^HKL0uAhU?H}4Th z{#c`6H}7HC@TX73FrfP}0;wSLcO_RgX^@%(m`!Hun*>`;It)!Jz9tPvE~a}vBY2@2YCvx=)pP_VW~?lX7p-1dDs+)ZXn zn*?u722tM{q$zS#EI6VHP1Nw@aB>n1K+z}8ucbK>P;G)_WA^mO;*OWW9Hfn z#x@zaU)%q50@{10fp3O}hMEL`O@g;30c(@Syh(%Ex&-ujr1eUnD`KI7FLqiQz+Tss#T@M^L;W9>YRg@5q11OI;d z)1PiKsL{@IZZFczo;|xs$F50G(q!*8&4pF#d69ov=<@pn2VZ6AyWKFUV;t_PQFg1aVC!BuJUytd{DE~HsfULn zyj(gPZ|BO7CRczonTTo9QE0MCtV!V7q(j$aP`t?mYui*hk*&_o0DF@ly2;>kV_eK3 z-HXSOHqBo;ckTQ7gQpT8w{MMYu10Ax;CLVYt2y$TftiNRzCXlfB=G(%TTpzR$;nn` zyKSc9)ap$4Buib=9$S@(g|?p=G-$_$?2>Ex96wdR=}qI20n_$Kho;rp?3u&Z8dEkA zr9;+a^;DBVohGZ3y0;$je|(uv-&&b-f6u7>bU;SDw)-W$zex~&T^CRLejS9jyE;3Q zc1=2qO(tWTtaNO=H*ail1~c2a)nq!`Yv+t^L-a0;Vt$Jcy{3cOWMHX1#~(64r>oH3Gr-Z%Q;x3g>3v_{(Zw08Y;jPxotpP_PFu`Xx(lAl zz)#B$&hZTJm+u|=n+|`gbA6vdlqRcITf5+%nNV(?{`9A}Jmq`3oBqYy4tRvl&OlL< zLAVz4(GzSW3;>g`kFZEOyiF!I8hQgpVe?=^&r0?(A>NLs`#Q4Xw6#s{SI?IL;`UnC z)HC|uQDfxQz1d^>jm;QK)a7lu*?4=#3|_bTgC2KI2J>3{k-@ztgOx1~$>2lF%jSjN zF1?h2#U_I-?J&{(S!A(zhf;V*pcfV24}upYgDe_>%*?3Z+OwmH&4j?PS*!JcMty2W$kmpuABgU>C7a({9K z$HQYIjg{{*Fx}1#|Ht`biMn{im}Q{5wTBd+y_pKfYnZQ5HV6y4bnq55MDK zx(r{NGvvBCbLKQzz2Cm~N4t0gksr7_1IQ!d5x$u@?B!$c`+a84_>gc<@nZ2@;gL*` zwmw$1K`+9q0E#}d`>VKW@ zwX4VBO_YKBR^PO5#>k(-BVOSx*qP2{ACEou*j68Bu~BPFVF|K;U(FdC>l~D;GS>Pr zupiP6elMTVXIVhm+ExG4|5=>V>ai|P%?SS5c`{%7@BhfeL<>@1U6Xq2+U5u6E^NN@ zKi8*SzBcFXsywc4&i($vW|vfb_Egw!T+Wwf?lb>6b?TIi(R?be zyQ)1FESTT&SQam|d^>&mw0y?noB0c_Y!+N|b?W9{rwm?{c;v9QUvTt0-}x`CoX(%W zpw<6mrFaYfdv0UofJfMYTz%5wHZdsJge(~Ya%CL(-*mf}QJ4RUFR$+KbbZEVX2Pt= zWX0P1XX2^JL`>U;Ydq(FedWgHF;kjmj~t&T?9nvud(Z97x4v;x;_)>;5C4dL9?)O} zMjCnv2wXAe~}6xO9LJA=FMxXqf|&GsAwy@RKv=4rjyt%@0PK( zj7c?(>KYkVm1nZimb|O9=trt3WJ6Wcq(W~qyDGW*k*XL~(yBcD$dK%@iaXiWG@5Nj zTor)|4*gISAls{o(-O6>o%Z$k>7|#&q8qM{Uz|KQw)^={;_$rD4!LA*->hs~l|Ie1 zm8;_?nOQy}pY!5XD`T(x{)XHdWpZY1x1PFVOxW*{G3^D6VbWuWY@s_}I8+DeuLXKgirswv~H z3POdEEVk-b6#~Y}9GW|a{jjYHFkZ&S7^y0ep;l3(dP8TNZg zN{IvxZFP)l9^-{%=c|$pk6Q|B?o=LDl>oj|X`^~xC4%?8lmMn(1)?eiZ{mjp9Bq|i z@44PKOG)v2 zRn@P|rJ9d;?f;7tCr^pRfA*4?y;qKJe((A5D4taD;<;4_se;O&a{IjaRMlzyu%0R` zd`xycn|r8a%^+7>O`^JwjOdr~8!Kcy9fa)V zTdLw!pjlC1yAJwOm9GjmRjY_@wZs{}+UiOrnX#z(^&S1F8juWoX7i7?kZ~Z_Yz`hb zZtiD!wAEWyrMPb|Sz28>TlEncz<2edcg|OFrJwW)yQZR=EO|yYQuVZFBsXNr>H#vU zD$ft~sh-tW->1{ojt_fk>AU$-@n~+{)4h!&9Wj>3T$au@=Jc4#ud-dLH|Zr+k;Vk( zfJNvs`obKU|04Po2BG6Jh`&~D>U*#BuB~I<_{KNIwO8C0Pdg&F#2a@`R?VH>J+1v; z|L`;&Ts%d`x;Oib$MHHHOTJX+!8&w2Ia8Ug^3=7ea`7DAW%sQ_!4E3v$(ec94x;A%m&kiM~T#?LwCh`f?LdW0OXOP-4i%u76?f*H?}dDz9h**xF7uUF4Uj;l}I{yvod z@A5W$>^+@pUW}~@U7yk8#uYEYuXxC~sA8u#o$EZ?dSqa^t%RgQ`jJ&hRsq1|^sQBz zc%dJWyIEObYX0yuzBbqH$ByDteZZG9ciJM}@TzU%N8jEdX20RCc*Y<6D(7@=tDjw? z@*h_5zdmH(wUtvV2;fw6Ti7^*SgkzKmt-r0y{&w>FQNs3XQ4fE|Y&tRpIl_dK3>}Ma5TdVvq zuK49;an+T-P8%esN5lHYI*?-ZiOj&x+-fJ|0V!E@|&|+Sf0O z^Ugj#_Sk1iJo`C^#Idh=Zpy})El+v|_cSi(j=$PJ zwx5#w>+d){uD$WUVqx>L$Q@7fIZ~f3{z820oqNXT-n~yOTfHPEu9_B4|NmyD?{!t% zJ>!uz0PVP7ReVQp!uOs-rM&TUbcrp%OU3}f`)sB6c-t%NWCal3vn3l$0YivOv77Ey zSep%{TlgY;3OoxBYUA`=6>;>@RxU1V=VjaNZ;L;F$DQ$nCudAx+;y?r?%T&rH{OuE ze?Ys+##|0)Fam=S_}!1dAdtTSV=R!)DHGJ8h&f&iei>$9gOX*)0Vhs{qnCVV?=(&d z#a-8T&*M}B`U1^@?ga?C=lGuywZuyx5g20#5kSl^T82hh1JeR9K+Ww5EVj%a!~BEo zX2xqC{kVAQbxY%MH(Z$e8Z62yo46?da?y`G<}c#wzqmZUcK&&B%gX#wx%`az5c;*i zYs)-#$pGU{%NNF@E?O8zTy#NvFc!uC%g_He?|o_pZQhxNgR}MDxvdTZ0(jc@(H057 zpkO@50GI{xIRpA##4rJB1=cwEz>?q^Y6 zc!bYh^|IWK;@?h+pQn`l^YYv>7)B-g6?#$>Z#E7VtMGUcl6t zAi*I-Um%XOaWz)O|LqrJm zQ3VA7_<3oc`hjbKCI_90w>acQ?(06l|J=EATmInWa$K`wsFiEaXsqxN8Q`G0rihH= z>*8$z3&{`qfE>^@oIOsl;0`^2j0wV*$UVpo5`?fV65A?4M`v^F5l0OP;-lhoLF)Rh z{bCILA=85Ij!K5IpS?PpgX>&l+0TBNE6%or6I)FG_Y%1g?DYNQyFM4Ed@{G<+hxu6 zB)#X-L*~jsuj7A*d*eB_+7^3W>16VVM>*!UOHf?EG3UV2>1FrHEdCRqBwzjb+Gpg! zeaQr@z>d@VFp%w7$OU$P_taALwJein_c_PrwZb-@-F^v68%=75~~U zgAOqM+8s(AWFCs23!gZL92p1r(pGf(g9^*JuJ9Zjf&^>f!?8$$g%U@C8OBnu0*-?( zkXP8iJiwNC9)9d4`hm{CQvw_Pa7O7P!Ern$QB*jmw>@@&4WL)5FXr1knSVSDXJ2*I zweiby-4xgh0Ya_W0}l^vr$YFs6l z5cx4KFpzDz$S|3uTa2N56(4J($hgu|WI}>%EE3&k%*>bhkhr0vj2AK<<{xH-$&6`@ zYmJ9<=@E7m)`Smw34i+B_-h|uvy1(BOM7sm--5l8 zxW8o88oqbZq-P5f+r^Q`2}3)>{?j2Th1 z$@hDv&vsVM`PNxC+!7e*M13IRQNBBY#}18h@XiHuuw}ZPCgaJqTma*La|K zo8H0mXU;o0aq%PbS)LM)Jn%^=k9V}^-FE9uF){u!_S`-B@Ws0&e||B(|Et7UaZ~d5 zn#8II$>R7xEMA>Bc=gT6(7%Zzk9tA8`S>@)InP_;QyU+AgNN}0z3(|BF!;`j4f$^P zi*3L+`iQ#EsjqMq!e{h~?Q13a>-petbHl!so+;j@CyX^2pl{#`x`j>o!CBMdAKtoi z{M`vlvX6@D)*KQdDHREfR=52s{b8&JG#G)w2>k9xU?6E5Fvgq<4r&DoI0`^<5rypN z8n61U_m%T(uUXk=;EIv!5(P_PQ^NByAme>M0Kllpa&vG66B$pz4$iC3IYj_E!-1p~ z-j+wg$k^(pg)!;73*(x6FEn*p9+&4KoPS~lTXXGJd^MflFP*od4d62-jG{`20xfxJ z8`yu$eh-Un<{Tdfu54oekDn6z|KNY)r8zd=_|LDz2fy|0xNuQcC+9P8YynVUU3-Y( z5ZpBmRts>9Yg~a!L4UzX)hVh=jD?`73Ovuq!Let#x#5rlUNsl(4LW}~@dBLHzRH)) zo$w4EQ=upjgI548yj5hrEBH{K^}ZT&*8$g@O}`;gz@d9CK!qoP6vuD?K(&?%YJo=Q z;OPnw;v>$E`K-#cx`(y_5kMQS0y}`7R}KpvBcomc7zF4!UqGe%-2N9JBsuO2uZsIWXVamN0d2FuV7v_URrvOSL>60Jt53;#R%jbMNtSFX8#Q>BMkC$%JRD zdDb4gGAA7bU|t{bt>lAoz_W;B&n}Q1fls=a{SctXL--rdRrMI2$}L6O03&|&oaBH# z6qupU?cHBGm3`!ZX-gHBKpJO6AV+0=1*A9~0&T9Xpk?p#)_Z*_xil{8nyp^QvrT~a`!=;YgmGf!LOA>^Bo;vJe*Hw3m&m`?3Ai+ItHdNRvc&j z7HsbJPdi9Ep1B-!V^T7-=8WI|+fVQO_E`_@PgKvsc@m+B4l}3SXE#pk!XvK5hwLU> zFB#rTrAN%M=Y-*E%Bl(e))dt+NNDO z17pGYco=V+e;5|_U@H_Q;7ds)1tyAB1RuNP9zLV9>2$i&${a-ub-x?@qqoE8852PRx}A)AIgSpzNJV33|tKIJ#uMJd-{k{T^;yyVv=D zwCD9+_fU9mwS{0E{XviMA&pHDJppULgd>sjtZFr%Fo}8SCA>{eDsk_eetO7wv&sBX zSQ~HCUv&26m*-0DhCTpOyQTe;`hL_nR~E`^eT-cy5U$ z$!O1OOe8VNPQW|H3g!`HrjI?dL>J6sWs21+aL(-6v)dID@ZxZMNWatfHJ0YDm;Za` zVz{WukU(aDbqP~ z=ClU`CqUjM%P%<|6uydIN_;q?$bs^8(cyW*r}CJQ$NTe8^Kw}pSLRWqnt&sFXga9? zC8wf@lfr3bBs?qfJ+Qv*UVFyGbZT$SYMfhte^#u%dVZYoy4T0{7yc;zZPD^LC(nIH z_R}~rtey?PLX0M7!~JBV8Cq4{2%r_TH(s8zz!NZ5Hwu8^Q|&{U1aP8I8=v`mEP($!3uyIcu{dD z*l$jT8+SlUrP}%sUIE?^xm1kuIP32^cN5;5XNcuociD>@a+H1g#=|dqpA{-`Be4GQ7sbOrbjA> zSD*KL737o@;EV&|y@WsLYrJI36Zh{8Ky|MXV07GHGKU-|WZqTs%uWYXfC-@Q&M|qz zujIJ``Ne;N@B(IZxNGT6y5BPh;^P^5L7+-93jYE8?&-Pky$UtknczFs{K!}egwoqx zay>_a<4i7GqY7DqRwc5aX;lh!uOkD3Z1r5675rcC^=ES;dX1xN-fJ}l`^ot$oo#$8 z;8(Ig(ill7nPYf{{_B!?HpiUbuYG>!xbVExZL8Nf>oo`6^XYSZv_3@N7N6ohwuByI zGbCY4ziFETN}f676_E5fe74tKdnBLwec|70$H{rNQK+`*N7o28a(pFR3)i_Xo$Zhu zqqFr32@I=tE-d2tjlK3uhrn}4aMgEgnDH&=yZ!Q>KQLwWosCeqP-BX(9reC@-B|sf zzJlY}d~<~04mzvG&v+W+p|s1RA$(2mNSM?d*LCKd?o_od&~84=^>E{EOB~0@l&b|} zw>;&(!67o~Kx7J*cF@^uQ}vC$lK`djJget+4%sH-bU7Zi(nHm|m8~V8KF2R`mx2{| zLBb2UH(Td=D+|a%*&omQ$M@Kj_T)Z)7UXA_rp#p3Lc5v_Ps5DHu$Mf8Re^=qVK4Hb zZ|;SL8{^)##>#uXi9!)8l9Bl~egg4DbT+@Je53lj-z&Rq>mstk*QvypbMcIXfrN{o zvjCmSW7Kcl%@aQQZJHWWPaY%%@Dv^jUj{s-(CPe1&QIQ)q8I~v;u z9@6&zoO6C2*DpOai_l&b<5!;;*IoRJ_{j0s$MGMTvQ|g%LE#y4Lf$2?DnY7HLxBVS zE4{6+>}UCq^og;TjHL%)AsD8r^Xu8XIuEWy+JvF#jN=(Ze(Pw4* zyf^Oj4ZK)-&ga9CL?vva_^ATub*?d2cwoF0{h2R#c(`$=H`(y@A#zlB8IGct=ggUt zt1WhGlT6d6-X~MxuPMpTw?h?2k${4a;U2mic}}?4_~Px{ z3x6$+F`ibNIY(c;;#s=D93c1tzw$M;OK+Pec#eG$J7SOYm5(X`fM(2?5RZHOnw<%} z_k6>RvF`^o7=ghEJTN0L@qxL`*t?62J*C+VW-{Oat1KzSNikD|BT)fc=K#DwL%#qU zf`6(Vdx_$vYz036hjR9SaYoZ}C`9=>I6(bqMlQEHB$f3W@=GT6!UXo8O=Gk4_C;~w zXFl5oZ0b6JMHLIGBL&ld0SlF(D1z6F&Kg z_~hKVambYm;;DS?8&X^Su4#aVHKSwuERM(EhS7RoaW;r7ejPR3f42&^;71-hM zk%8ezJB}j!sRFkEZ+)&k!4N?ijwrsy)2;=^W~WoFvICiS=i|G6gg=TeB-JE`$f!Un z8L5DZYXK<%L!WV|@Q1)5&_uojh`K>6{n0mI$hrFAGrTA0D46IToCFmU z;N<)wdodR%#D@Y%+RdK_imfbqoMktLG=pd^4kx$jsfNg_HFNJfCQz=myO@Td2-3$YSqI5Ms^_s-#<3RvT7-*w4- zByr47C7)c2e+8$=6jEu!Q5P)lNAzd~>Yb-zlgx00Y(Y}LRpDCq6i8t&1PSmZ=LcVM zcHAF;7wqgM`W}EUQiaAAsbD38bb`uyHVV%O2+-LjbH&@_&0fEV?jXbc0ujcf-&nie zVO0Rx>|JtA&h@E+PR782@Oy1}ypEC9c*zPARhMixd{9nnR~FjF^UtbPlj5w?o*7GS*)|S-x@|y~#WAm#oi+ zPnQI_jWfPC|K`Csn`0HawG9VdN5*=ST-DYV({{^!lOGl+9l z!K4B{62B@qwMiD>0hj_wI?Yeq?Kw~-=qeEJGvC4LWS(C_|FiFKFWo>6tvaD|3qyG} z2ir%VBhTi#E&C*=+Y|2jGq>|bGF;$yZsL0@2?UwCL>H^5_1yYNA5}2RI7+VLZF5_F z>Rvw<|EJ%~d)X=DPX75+bb~omAfjkvI5Jkn6V8DRtPr%qf*vh$p0O3Q!&~^L0;2wh z5hUypUZ9Wf)!Uh*%`I@YjF;!}s;r~GCGL!mW)S~Bvyb~`^5LoNT+(+EtoPK)v~9s5 zzZ_k!7$YG2#le>uJy{s@F8L7T7}xR_2f(9jlT#V z;{kRb9^r3E+rQ>i)ItVXKBdh%vJn#8!bv)oAps9+71JDf+ zXsd`*!|Ck?XBk5Vo0HTFT((Xp!4I0#>y*jF97Z`$f7*)0GBJdq<{aKh4MvDG_29Pyl| z#V>wyb35+NrGFmPz{I;LuCVkPiV`0I+1I+s0V= zAMfBhfWP?5v*A+#OU@yE#ewdE)!ye9eBdnLXGAw~+Q>yedB6k4+x#K-c5wb&ix=>G zzaYNzTw6hW*W*n=ogzS55SNo*Ki2%rfal~^o=9on(Al!Mg9@k5?G)M z1)<6*VIw#P9B_Qh5h$CbkH*q{$Obtx4n8lUX9P2mM1_7E3&9I=Br)Z=B_GNuu4}b} zul3nhJgR0Z*zB4)X@AY9Yn?+Td!MV?8Vj%Rfc;Y?=ek7yd2aJ6fTAMT>u|(rtNC>f zeZnEfSKUMmzA>NX_Sw(9DUP^0|IecHrkU6#Tg`pZy}_XRWDURRSLs3D_@CVA1A6LH zpOVS-AI5)t>5Fkj>NoO>=PIf19CKfUhuExMtipc$?caPRuKK}V@y*Xqjt?BaRqU7x z|DN-b{K3%|9G-T4hkVZc+u*9cdM;J>f->Y!;(%@}S)qfAU?0KW?q|Nk@AR~w5gTSq zU4Pth$F-{|t;~_c?G5BRM__ZCgWYrm9o0+t+IW*IeCp74SAUtSE;gt(*68f*V(OCripd%7 zOsk&y{n~abgpxf;2Z2_&z#I$2R6wQL>Au2a5|{K@$&)?_TqzX7`^BHG!xIAI5(Bo7 zD2zjg(~a;CEF-8}NmBAhZs}2N%}>0%bMo;>bREAVWky@GGg%9Z2P@RHZn+P^Am& z^d@a2HO(LarimhF4$;&r^giVN_!RKj8CQ7hM|5$DI*VcRM>SU2tREar<3q z<93b%9{zXngYWGevz}%9#5G&Z;c*8$0{3=_zOI5HI-3sQkIc%X2VRs|wt|72_Tqo~ zh>c}?d@o7idPE+`sPD{^gd}}Nodkh!x6hn9*WEh zU!6Z+tBUG7<6U#+wfNEZ-S|kCuj^WK;ixuzP6p^)mHYV4ym?PH=`Q+_&(*JR!1ekn zNkNXgn9AH+nJ!S@CHM2J#)zK?&kLNpH+d4@&_{_375Dn;JLBkCy>~ua(mOVI5LR)X zLZ50^EJPB*DnzT{Ju4gOb9$J4fdSbMD^uWg_eA zL#mR)NT*__PtA=tWwpg=`7p<2py*2(Yyd(F#2ZV_2PZ+lhSJyp zMP0|vRu6!KJ_3QB$H6G7gpf>Ogp3;p(75!H^EnoPhOu=o+3|Vv=C#Jo_X0wyq$F_s z{s3^t*r{aQT*$bX+nS#ZeQx|E=vI|0fKHcyC5{PD4Ipy9@fpX16RIjxa8=bAaD_+l zmSAVsk#UVV^u1&aprm2~&uG)!;~mchumNBKyg;X5f&`O(szlXJKLXeQEBBDdlFTD7 z2*?qfEWXtre5-m6FvRB)2k**lT6X^7c`@TJ{~{Lu!~5fXcia*uq+^UHjXU`fRM3Bw z_W0YlaD42W*h}u?8hxW1kbu6RfTTt_M1rsY9FU05RaSABT>qfcX!;BnHTa>U0h{N35!9himfz z`8?+*mC3qqHH@xV_l5VKLB@Lnk@tRk|Np})f=qNFdsy?XCHewC(4EGgJtYI?SilG` zaNZ@d1U=|h{iFYF2ZBeJEgc_MTs}1}yCk<8Ir4@KcK)=*HUd6$HatRK<1;$jeIz#V zF}{X_=xBjS$qV+OY1s4$vEZ7ian6}D;wNWKjaU5LZ{lGOzaj0#jJW)Y`SIGnCXbi5 z?RgfuRW&S~T{@q9k=sg&D!dSI(g%bO@x8!~Ysd$=ojP@T%G(dyVgWjzQ_Y@qEAHC{ z?)l>yI-zv7fUgQiI@@Q)oPATZC$LX%kQ+&e&4tWA-D#dThMh8p#!&JE2B4pM+m#5V zXU#Ld#)tGK9@%;4T~fy#5NCY(Inmtxu(*Bt^JDpnE8C!<6<^(el6LhSuL|f}VFH(w z9Wei7M!T>KOblDYL+&{{1Lyc~IGycT^iRSW=7phZ<*a_dA_8sYqv(&o8vV|0Jd<9( zM<)-*PZLx2%z>f_*SSZn#9~{>crTF&wuD|VhQnh>wo&u5r zndGm0NT1_re1{j|5Hh1^qaS%L&!-I}s7j`c0UrYmrT@xTg|!7u1*YK>_uO2F{CnQ6 zKHQLJH@@bnRta_k+2#-)nVTzx$dmcOhwL&xkq-$Mniug5L2u{Kn|M;;Pm#9FG5v@a zv9vXPha++WC((tlFxe^Df?Ht+dR1Q>R@Smf^rPpq zB7j{e(qFiWzvq8_qhsL($u)h3o!oa$##zLd*dl$#v(9B>TnFdiS?%y!wCld`o4FJd zks#-zzoOVA(U}G7mx+Mk8i3R!@LCTtP zEs)1>3GR>w21S4nm|&y?G63$a&c7(O${_xoZ+d&|zVo(m-0G%vd@1EFc@N-N=4D$F zikVTNxEUjW&%IUuQSO4{jHoIzz{_5OJ|Bsk$3PsLivEM?V88X$)8d2K?>i=L9T%jd z{_tGx%;<4sJPW5)@ZGZu^!7S0m8<~pv~Bzu97c)r%lS4o0%YBwLvJ6Q<30?$cIKpE zV@L(RI9r@|nQ6dNKxlKM;<=6W?BA^}{{WNu7svq)wX5<8&ljkwcDt{|_Z(5+ ziUY3thuo^F!$X$x<5%tAZGe%yd4B!&Y*R9cmL6^_AKEkaxNVDeJOC}<;eAdHFv%G& zPz;RrBhPJ&Tniw2KI4Xu@ip*jO!X5e6rctAHaFVXe9h5SktV_96(1RY2cm~+FI+$v z-*O`8s9vBiuwi+$lVG!PP#L8?ecl|&JZwy&D`Ck1u?3$N27Nro|RJN4(%gliDgYykNTzGNO9Sb}HuGJ>VZY z8(vYp&B3NGRlVICuo{jWP!y0PyX=O0;cfaG?~?<`sd^q`jF&wpxx)K+a;vRo#-2OAJuW!^>b5w*dE{TB zZX{w)1aip=z2Nz*8e}hF5&SLqOTIbdn;Vth*jUd^mq;wy@z6Tk+A9->-_goLuTOwy@Gp!`|I%4>Az8s&@H@H1 zONC`5`C$?A;+kF@+#LsfG(LD#q6bb8&?i5xV{asT$%p&ELe9Z&u*K|dV}1TVJNX)4 z;(rA*s${JUM0mUGT<@j&MJAl%UdBKGS+JC?War=|?Fp`GlbzVysFzJp!K z$$LBnGs7c%NcW{XtqP&9$duw1eXt6NPUS67a0%thrh`S9@RF??inN-$feKu z#a_EQzuNJtZ{*8!kPV4mmF09cj7`R26h0{)-yCUUV{N+9Y96}7{J^1f3;SuF3Xk|7 z|M7FmrgrT&JqeFE2kzv1;)kM|bGnVbqL-Zu4`~xlcTaN<+mK;+7JiUO(_SyOueR$I z|F{oc6z9Qft`$^wU;k?ZzrrK%tz802*L(ghX>TZP2%ofkMY5;jUaSaj3+5xX2;cLi zjhWSd?4kLx5`ZkYPmP^1f&q>F{46w5WWlDmk0Pc44Mt!v0uRgxwCFSy$9 zcNygf0PYM9qrymVQe}H>c|fs_NNEVBCy1K)^ykE~Jpa1aA8QT#h?o2>zw|7EJd6>x zW2h+pFJ*pVt7=H z+9rUp>PJA93^Rv@lcXYuvD7~Y$4>PLFe=atH25DFwmbjA*!oo` z#G;SBDHc8Du(&GuOeG#5C-|e{S|DEH%4a~CDvW;4A2|^Gu@wov6)>MIDF3EoGS9$!Ptm@0Bn41RR(a+dF6CUxZ;b48Ugg(z$3?kvqBFdde=5Kg7yOD zo|m&s7u%DTL(@wfZvAXHpKVZ5%B-cx3`RceckqP zXYRDJ%i}JH^L}=0EL-{GyxWR4IKYvWln^}EzCaazQ{~zlnD9N`9jCaR;#q1)i?MvwTRnfbHrfyk<2Y-A>=zIu>@;Cfg<+Ll3ZjcJ>>y?FOcad zkndFx{v9g%vnO1P=cGf$!A4|U07)gN>JN@_FFA)Xv1Al^&qxX4GwQQ5@F39B1+3jR zI6a&-6+j5!5_|#%I1h{}XGoPT5^M#~7{>u^*a!$NnU2jSr*x{UW zW5!o<)21%ZPn{A=pKwsD+;RI@zC#|{Y#mE?-YJ^#nGoxqcRz28kAa}#YnS60puU3m zK9k4--cco(EJftd7TtQtL2=vpUzG`no3qM8@`^6&ZG4QU=@(?1k6q8s^Vi{S8`Eh?L&>aL418Dud4Ej z1i|XZ@_a^baz0f4No4dRHqCO~B1w*N#0B(KUH5ZJ>U?rwWfb{xFOCJhFHrBEu4OY3 z8REQ4hz)4NMnKYqEiJvaRlFg-{JBZ-*n@K4)(pb04^h4U`u>@*)84D%9q(V5vNL=` z?7JXIH=$p8*K7U1u6}U(XU&?`>dxOk;*L1%!n@-9A5M?=zj24ycIBD5!}$kealF0d z^Wt?fZAFx&^Ymyx5@;77M;fd=5M(d^r8zuYZHj`i}s8A<%&YB#?@5!Hj;D$L$IC{Fyqni6j5~ zrufsBjmtU8AB=dANpi_HdBqoGg1mP19~~~?|R*T$1QESzmcpd_Z? z9J=uQ-0t+49pcbuFN@@-R1n{1Rsj^&E+0~i!^#%C z+Dpb`XlUp@x>QhJn|RU+5!l#orLlFj#SnX-fPpOWA>j@r_M|YgZG0G7>vNi9fAHH_Qt)(ptTJg0U7)PU)2=Ht_x=B^X}{F1jakR?Sm0N`FY%S z>VHN<$){m>Fi92}n5-r5jFvqS(fjkrR71Qwk0bNoq^b(8AWeRBA7V6sevW|(HUS1( zu5flaz=#vg7!3!&oWodhYLGUKtE!JVbLO;30Br+_k|@68P&0A^+VByu9I*nOS_3TX zA6Y@7`+bL;zX{1xyT0#ZG4Ychjd=baX*8R;hwoS9p1LQ0F5<>JB5up7x$)OUGbNq( zeI6I9pLIyweb8g#&i(d@r8&>z5}b@yUhs`7GF8N!Chs``R&n$rfkhQjfEx!E4|b`^ zK#kzLl{aL@xTwAt&@U3WR9z254M+I8zUQcr2hO}b%FfJnG>T7CUB>b6U6{JcmLS9Hvr#lP>Qm@NJi-C?T+^mCvHi^RVqx>DxFztOVD7zr z*>kTw;-pWU+^+hd-+M`W_{+*a7)P>SFh|=DXtVI0+ToNHtYqc^?{6~mpq~6Z9F(}Vzc)7w8x(L zJv1v=6t&=MTfkZIg`C4i2nv^8?!6CtSiB8m)7yMVIEb&V;J|ylt$p`%&VV*-1k6VT zn5!i`ZMDxxK7XCNDZEacl)tTTmz4yOJoo+d37?Vio;4Nu3JBojexx8$>;!N2Ta9gO z6dO8+FKS%)ANUzAM)W=V<~!#p8gM`7sJw^Gt-dU~=zK*4R=G+5@Cn3Ud@q*6AN3>j z0~(CLU<4kx5f}vWAGonz?>hkq05U*pNtIeX?`RpOnul`zw&isBjci8WosQaW9}G zXb(tP%3c+nd3kGaWSWPDhP)k?jH4yg0!hGb0bcL@z!)cp6D`9p$jrGL(8d`7pcg=v zw2|cpdVztOpcvr-#6>(dF=i3i{e1-7WHZ>vnYC_KQgu9o-lWJ~z`t!7R9SQr zCf*Bn?w7p%nQY*Y?e~r4uX|-I`?DA4GUNem=m-cbS0I{hnKf%xTh-MMaBt|n9*FBJ zi0@u1f^4Z%ypDeXe9Lbooc&Oi0FCW*I2oMcB0mylxw@cI@uPi7yF?ZwU)M#p6d_OD zWFRMBFrQPQ;-5|t5K=`wpbZ}Zdd^(aQEWLUaOn-Z#7zrxyM`t9zP>l`y{@}ud@-*4 zRqma?&(fHb!Ig32nr!#J3C(r2v99kWcgSJsR_E9M9MTHn`y7T4{JiznOzvg?fAZu> zxy|06wF%lAZrD0*S@`5kfWD($`u>b(9Ns#`Wv5^?JS|~VfrV~`sP-q#_*y1O-w>bs z=Y8TSPrD=Uw?^Olu1I_MUjWl~BKVk``J7yN_1;QMV}IOn$33K~4(mBL#aH86foLl# z9FmgoYA@w9#I^au$$$T{o#M?Ozd0W9$Tb!Gz2`kx@8RSM;^TKX1aB8fFu}9*I2nN} z6c*6sN9KOuBhe}OCCpvLGR_t7fzL-GI)l7f6$q>2ZKQAH#`v?3wsx=r!fLLP)sfmA ze7Eiqs1<4g$?%{85*4_GAGh3cb^PtWEQ&)9yFI2%9=#4<_nkNH8T6k(xWoVW0|u}i zWD%@|Y&(L-R3EEqUgJZi4|nKLyyvUe=XPu>+CZm3zpYd8pJ2QHi|{OcEGat@v5D>r z%ka~Sx9M;gpKXDI_@lOgp<4#D;Ui$q%n@5I2_rUwuN5h6in?R`_%%u2L?Ow)3Jsfh z)2numU!5~4CU4Wk!=AK9TzBnVvHv3`#Qu-Gs|}dL(ui)PpJ8YLexEDIQuHDzhqsIc zxqz+dSzAFB9w7sjoYEc}0UuXP#sAv1TD!Jt6|7gVBiYI))vj?h?%q56FF`>6E4nlf z0~(CLU<4kx5f}vWAGonz?>kYF48N?YAG|{A3gSCw%X2g6x5I96=hF`Lc9S606RK}& zNtXRG1!52bvD56MWBdh|#9w~%EAby0tOTr7Gg$s>*)M|yGyz5eM+_4~0-SQVR2&KX zBl{%_;&3vw&A{~|Ai#DE3?1Xwt)%sxK!Bjp>|DME&dXyc54xe<`&SV&F*3dVeW zY5JSq7P0+Kaq~Z&5O+Od|Gv$vNW@KKt;Pln(9W4D4@t;g4g= z*Zw!AzvkGOzRgfngbqj(N~0`HbT;#1_AY$GDj zsd~s>%L4i;CO90H?%Ep>;a@?a3gWBWv4VwzA<5)kDlzdR2W=$YuI)?kwCdB^GQfT8 z`a3s|L-u=g-133<#Nr&UZBvE@f&3hl4J10->I_S+En%lO%4y!frXQ5cRrHWmL7$I( z>|R~@k6?JTw+c_ssd!EpMLsUhk)b3t_d(z#gCOv&RpvSF@X7!@H2OIa>cmzfAnhJ;%Pi$ z)het}!A`yQ8)t&=w%Jp#;)iPKe95YpyyRuEYR2Ek=ko{EU;D)@sERInXvQ^ zQPYfzMYm0i@13bn3=iXMlBiMg@$>EDT|%T~pN8Pj5U@=`LxeVXS4;|VK81ds&Y@hcv~`>GWL3V=?aiYy4M zt4>qNBjAX~1a3GWf~Uy!0{EPlYD<7vkccBgH@FsWcFB0+RZfUi4iZwv+da3Pkw5OZ ze^$QT@|(E++o#3ip}pGYaSmW72mqL^OV4!g_dEMPt4h{MnFz^f`8rQ~AWu+{`}ViL zJ%)yc9@15__)`ELzxg3siHUAPNClJtjA~0x6-OB87o4ZFovVUaBHGpo0{7$`e{wwN z>~64UihthNnWS@ zTPJOT&`jWiU9`$Ukou~trpAxYo)Uj})E${X8C^9e)%^bBcaHH{iT~^u-jVin_|;D9 z9HX8S@Rdq2iBthYftac~vvgb{6_2Xobgm!|eWxmzPR2v@EZ&hU5}ZHp^YpD%4? zqHFKyT5>>V@0~xkSS!;i8Q`}y1Waw$CQ!wh*H>5skCQ7~3JhrdM?e7255HT<20!+r zn{S#NC;ZjUaqWT$@z4K$eeAm1n#%Hi=RO#p;UjugA{B-ZSR@C6i+F|1`XR_!8O(=8 zU|6`ovp*qq^|AT=Nc8&Txofj6vV-ujpg!E=9{888$M;=w9y!Fj0;Kv#_ME4PK_E(y zUwk)wZbg@dX#07f+nERh;$tC&$zNXmM8apOaP3=e6eva5@LJF5ZT_;fnGh zjbU#Q9sb3yd~1?Y^B$VlFGGZP)haxne4QTyFfDa_u4u{e)U7Nao zEpEK4$keU3PKvL5al81y8@7uJPM?zgRTEE`wK#F@8m#p2M=gyfJ?*Y|@-yy;$uqti zJMR1A^heK*&wt^=_es7=EYq(JxCD`Fc8dOmt>JBa2MfS5&c&bb2>o6@q-)`B)%`Gw zHt;RqkL^>?pzw?y$E&aqoQ+S(1G$h$`|H2{>-Mk`f?O0Hag8<mGgs5 zjERb$IT@H>e2N$jfkr^xITvLx^bd0Tn!D3r-2JIf$HLY3Iu!y!_HPs9lx>zhR=3BOpU%~$ zV7tR=E&Jfw@RLoRVZXVcx1u!2MMwV)JvptA?G@khY?)7e#3_?+k776%`C zSL&Y81>>oid1q`BKR9hteCWS#Oug1WU^?2K>knO8`qZn$J$@mBr4wNct4UO9ax`tJ zAjsJz@(O3*VU92U6bz-a@m9pYU*pla8iD%dWYf{Go@A62J$xK}^25$_ zKfNxMJBMG-6 zG9nPfCqncq89C#OGg|!&o1j_k-{Jo($geKQq8h#k9BsVFhkH3B$`s7l8(eUnERsXp zpO80tUUewmCWr72eXh^&jcZGehwsJUoAnt1_E4}*5DqO)UVhJ8c8z@xSP`%IKWh?@ z>(lN7bq$%6oDviltSs_e_=bK*ur$4m2kH0P=Eiq)`Js*-!DdwTF-gZ6u;o9`G z`2|laEP#U)6!0xwk3CVbU$D7;bWjHeIykUmIj~X(@+lJ_QiWhkCC({gY;Bn$==<+R ztKXAV2Du0L^c}a0E(suJCny0V7zxUKMG^zTaM%-^F;YW~Z&0c?OH`SO6<70tI5IYuknwEzclg^Wwr?sd_5`qY@U?RL!p z>4K8p$c=GA=VpK?+nBa?26#UFzUcbCcSY~#o{v7iy(8)`yCmvA`?JAgu=C)JX>7eD$ zfj;$f!)sAQXS2~B5PH>@`o}RJo1MYHr3>PBuJ+RJ6faMhp2>UD2a$}VT*_0%e^i%}kH_k2nTDB|ma5upjdRaiU1cn57`uFdb!T8U|_*vh{Yvu#v zW;Rs`+Pb=~SqXZ0g&#^#Q~=+c5j>;!%_CSuP!q2B&96trS?j<5Cuy12TF6i+I5z-pRVpD>5kU zn)EHaDyUBWR85j`D>ZDZVv7V7m2feg37^ozR!n&xk{G!?8kxBGl9WmEXx<3&z~kDZ zlgT(duDag#fUb`p5>X{VYbzhyLV5VRz^A_I(>L=WyMm?q+d<2h10MK#%P$AS-)`<2 zCw-zh0N&OWjR)BxAH|2HPgkUD>jS+Cj|dt|lwq$@a3M z-o56=-iJ<&V^5x$+Xqg|w#naut&4-)d+)tf@Vww>{bJ*7u}6NagoQ_ZZ!VBG31^8Z zByepoR zh^4=sD`o;W!RH;+!GR7Ayg3|LsRQ|pwP3AaZp%P^dEka)JS40r>^Fza%m1py02M`F z_lG}a5Pzrm$?tv}_ht1B5Tx?a1JW!#q^MT}srq3g02u)mMoU%~fM;A74hG8dL%|@G zYXUxNbmh$vJ)9XSPB{mf z0|DGMq$9#P=O81_HlxWIaUHw_=72z-UB81?JO_Xl1i%;v<1Dx$=piTqlnlr~<4;ls zrtG@YLi^V*vmPg)vHebC?j=8YlZ~TsueZdXFaCOLe(&9JXAmK`GEYr7ogxw)~$TNLxm*#(gqA_Eh&+GKc!2P~)_~A$7zWL4D>utNk zdh>%oE zQf#pvu&=h&lWdW&fj!w_t1WB;xgvCsqJR;JYsofW&HR$wS4_aR(6fpT;B3dxn}{9o z;Cq+>9^peeo{m4~+~eXO_vh-SO=hNF+_&-}&5zPv!6k4CKN23XLQrvyc3^Kfo9vt8 zFc6}f`LT2X-xM#&v_vsp6&0eU&y2nIYfQalOrx^7E@oVf z36eZiG(`{6N$@orZF{7a@ucd6rTEh$w;DV+S1jhpFBHHh3*?p`D^3NousumgsbUW1uY5`t$Lzg`4H?wk!kmD4#6UlO;(O5I=kzxyDHf= zuh|Vco($9FNMVjdD?C#Ar(JqmUsr@Ks5;W|r-K6>99Vz@%}8{CuU5W)iej$qd2u9t z$B?#mOzrV2^JmIk1(|>|L$F^~aBc912jZt={~n)v`te-0)$AC$M}PbLOE|y! z)vs2D3Ls>F7zf4$urG=qIJCNgQ7K88y|>#wy8QfSaalU%cg&bx84iZ$oO8~p+5nU| z*Mg!9p{z2aBXG}vAx4s8#i_CkSY?}}f{GytAV7~Z(vkp2#uG7)jC-v-wLHG#|K-O4 zj-h}e{&OIQWJQ>F0n=S`IG5P=(D5)CxSCA@W>(XJ+LOZB$=hcLX{lngZ$on z^Ual0ASgO?=+J6Ki%KJM%^@e-mQo71>Wg>5CUe1jt0nVoY_{1yzqFA4fwk6-3zDB5 zwBk8nECdfZrhN4%gL#AZa4>YvF&YC zq;U-BSP5EHL=w2{E;)9e99~tMD(N^19By-fEl@e6!bkFngUl)69Ba?KPz}U67nr59 z*>VZkvPugt=>hWwzw}eGx`W;v4j4mvOMpcXgpANlrMi8_3_-nKsn=gj`#Ysd>X4uI z$iw2Ef37ZWxo)-i{k6SfP8P%WU#}^)+_!Ih;6oos9eQ+idaaC-7jlQl2)UA|Czr); zu^35qW2gt1XCjmgWnj^h>^{z0BD(5GkoEXDC`f~K^yJ@`p#91+V z{Qsn$exj0V_fN(-!}PXm+fP=2NkPL4FPs}MOzjmn{cwwD>ifT`v#ajT|HJN)eRA!^ z2D&Hr(?KhS10G2D!sxo#V8dCJ%_ZOPGdxLmvBPvGS)sF0392+SG*siZynCuxN!6yH ziax;C@Ui!T1L#f|0?t1F{PU|ssv;PHE4qA>*9uzN>+9DNb9GKELa%#Bw0Yv1unqeJ zdrP{)eZbzHi_9+|uM%F>uYbQ-1qbtNUPVHh_*bFI)=-C!^$Df~xF8PM3SZ*{%7~ zr67%LlYQHk_}oFumjhV*>clSbvoH6F>%Y?{j{SIJ4BqJB^!snl@t;-sOU6-R1s;JJ z$#x;QfL^P`5#_ffc`xQ!f2vn254MN#;afVg^no0+9ktu$(AVUVtijCW$Z9I9J;<5= zz4*lBTO7!J@e9eQ`9OxX4O6pO@CZ9*zI#T4L~fCFyis_jAH|-PdpCz1SFYKR_6>IL zz$1l29q%0+Sn(WKDFgX}(K6$JB0Bu=!z;sG*eCcv;UNJ54&|Fo1r#t86!NkR$_Q!? z%b+5l#Sz_X{SD%Qu`k50XU~kuvzzxrbpMnuUes2{EHA#ePn8KJ2+N27Ln_f2%38&* z&v+v14DiSt&lx`DpBT(nss`XR} z$tdF)$KIj~3IrnHYMX7gsep<= zb}j8#{nI^~y0sq=sy%0EKLbko#JS+?bj#$?_yk&;eCWiOmJUL%?_3@AXPg}MO}X#? z2_J~DCx0X^yx@YEl@2yJRsq6srl%0VBmu=~u~bntwyIF8XaKT8oGJlU;HsRzzb)xcHH!V{%XxxT-y6;>pb@Ki@7c`;X7l9d1| z=-7mo{cU;dzx)4m1|1==j9+gA6KF#)Pa=j4z-Fq)kah+4=p}lynLI~iQtF;Al}#rn zi=s}QBq8hKci-z3|M|7X*nX$U8PJ)VHo+DTo`taR^AI?yg7Nxf9&>8lH>|<=q(k-1 zd?RyShS#tG6p_KGXckH;GyiGGtm6qgP=Gx5syF*$ymE!|LI z8FEct%_(Hw*q&;5uEx^luYY}cJon(cV$Q4IjhQhdk7!;6;8;ZWNbiIR~9gz_-pg5%1W8afE`mD?c-z_g9 zk1&9(Yv@k;)jeAcphCIGtLy8R`AA0!+WL*m3zRBu`RpP(d1syv(<8}MI@;WDU8H?M zU`Ya7TRGP10QR8RgzCVWKk&5&?!xl0e{Fwj4(s@s957abZ2TH{0I!#prcUXcfI4EE z?VJ5WV`bd%-#DsZCoAwsEtymF(Tcz$bf)d|Y+0jE5~^@A+s+Rt^HBfvi(VBNRXuP1 z(arR%z+*WErqO>}hVUT;HQ7HaYHEqjc1`#UX%8NO)7UYIYW-sONTwao$g(>Sq_{Cs1%G*nmD6c>DFRL+ySxczti2xP@=Z93XG>x`dVI0Fg;sO5>^H3h5h6gWtu^Fwc)V>ZthccfVT| zDp(PqUt`DSylEo059g~HyJ!dYF|W)Uc!dAjK^+|E;J};5ft50lKP0n`0Ac}^KDS1c zR&5}xwPRM)cPi!uBrM0Xtkpijf*{L+R5}&_?EU$X&%$W&Y)#_~lnRB9ee7e)EYMoh z`~n{tV^yX0X9GSt%K|ZsvjD6hIsjiB=W=o}GXC#vYnwEvYvgB!u9%Ge%Ce21l$VF;MoRZP~|`$94Q4)wUl%El`Zt z5-rOj=t-72jD-MuRrs|8U~_0bwC~#@e)pG{*Cid4tG<+oyP$}~{V+2Bm8kWkUgF%j5RrH^VI z3jqPL%!wEwWO-|LS$S;ZY}lf*&~zW z>sNZu+@i}`qo$@#82}f2Y%WvZY3C{NlZU2epIOs-Ro(#!z+M}y- zve6Za4CrvWn5{6U*bDp?K!Q8W6+RA|BDmxlr68mB8s?$kRR=Aa18|)&==B_c37>VSWNp5 zKQb}Sde5%8di%7P6_;mMn)L&FVmltOl@99QKnDljd=9L%9xp>o38@~W7zJhvQHaH$ z|0_846euT`!d6W{QChkrK%uWoLliBg4V1Wl1ZcVMo(ZP!%xgZA-))@^=_Sb{0VuyM z?e(e)EXE)FRyoWtxNiXi#-V_#hK7d4S{jZk^X9D|UmSX5oOFid!)n#lH_R0l##&Vh zg9hN?t!4DUsDOW2Mk#p#B-nO`oYXLJTN_*P-OwI(0D#|%MCmn#s?YE05kKYzOQ@++X`O~rf_S;6&en-R$7k?p6 z&j5q|lTpqIa0I{!f|)nA2H_;wFP)qMnyydo-7{xOK+5m<;(L6M)a1wuW*8T`!FD_L z=a^67xt7W! zj<$dg8TNlk07?j&YXYoR*WsJ$SHE-aIV%FFg8k;BfKW#ezvXDO{=czij|E0l?{diK z*`=-UG}fF$x`mFS%Z$6g2)k@9q3-ctvBjWa@r|F3&OmGPUd*lGkyM{C`uQI5rT<(r zy7!+KmtQw3v7Tor%&T6l-_^q33Iw?)IE%ap<_Nl|W^>OHLJA7VynYD!s(N(;@4OAjvs!tcWl1>-1zKguFn0WZ9TDe6>NaP%w2NG$(EE7=zsFbLt>{PAB+FK z%|$YZg=CV$C( zetJHBTKFzIzNzH^ET~w+9@_RmR^@G6jn9(O{rA_$WoPz_tq!;=uD$LPIbJVTO-MYk z$pV0EH4@lV(OkCB5ae6lB$%lPfc(&Z>`Kv}bgv?n)`Ix@rQcp;AK}{ui5c3XKPJv0 zze5rmlV9gc)VU`9;{Cv_t*q>iadG_ zRq-LowtFVC@C7_AV9IWoV-1OI_>_D|xQ7o3XG=0D)GPCAQGNY){+*wKcM6;M=46_` zVymsCC4p_@$R58m<*{sLZY4J_yf7waP2DxI$a`W+oRP(S@2O;qE+W^h;gKcj!>n1I z<2zp)6x;056z_iD#D#+RWX?*E^1L(!kL(p9ug4s7%=|!mTi4Y`b3uWRGhQ# zG{$F6{ASb**f-vG&F^dwlVd!AiiVm=gDCKx&X4_8Sp~x5m@6u6=%lx{s#yIkW^C$EZ9p9fA!0f zWEFNm>X6rh_s(e#tZH{vCYgCjB7qNk0~fg^uRyGElaKmo8{94u{DX~^+V zHDDPYGFLd&s@NrAS|e?k8^B$yYy;4)Yiyir8zxl@Wr=Uyi!ViNln(&Raa|tdy1>5G z8~6f@4b3W4-y`xOhz^L>>LL~RQxfb?`_+$P;Pp2~?~8vBgWs}4tbO47W89Zci~hj9v&1JPpsT6~|L7P&I1W5M3CiIO09c$a3B$5QPjPxU^yZ|on%gUb z_!~7u-T&PZO`ktII%n|h-+?$;_+rcit1W#-g6aUQASCC@Y8;;>ic2t^Tnl#MH`!Jx zPL>hA8Y|U25-e?zF_3sEl`@W_$4X@m$4~;s3J+DCD@teEdzLKgADhLoFY~J03rC;6 zT@>LhnX4tbfn1YQpH*HV!Ak*EGVN7MjuU8B$xj#2BjySmwf1iK#en#q|LPYz?>{Tf{PMUe zh~L_Ai~7#J+Dlf@P=H=?%BnqcmArV7Mfi==&)&dQ<~7-BYML5X{&rM6`FM}`!!3Q| z6YtwGcHe()T=c!?s!PKU0>*R({U8`{(n%-fyqyt4_V1g49uINu9{pD96~n*3Rvi0* zan(4GUCBDKjo*Sq<~ocbm@#;8+K2vY#8YFs#})@p&4kE={C&CRs29b`H|=*iiLHZe zVMe%vj7$2_*#ba4mgFML^r{O#+jWKRL4_W*3sF<*j8rjpdddoo>o8bK?T5DBl?7{ zhKb4p?HvcZlL^EI!~SHOj4g_$WuX4T&kl;aepMG6?=UZhey%Y#-DYO2xBiSOi0^z` zpS=BDs@?7DP4+w_Gylu}bbYNF|JIvdjNjc*9|PmQ=+=E~y#0_hW3~QMqbYZ^q9^f3 z(2)&W6p>f2T4DqE?&fMkLqlb^{7$aTXWx_4T7vBa>^&F5wc!zcfm?>B4=NeJW|Zxr zirm+>@$d8*c4J%dhn?fMBS{syicX-X#XgLu7>=YkqEp0C$Tc6b$hY6^bdANcU3T!oW%;P07W!sp0{CKao&H#yh(@UTp5#dc*&FE z?cGbqZyg-y;J_Q>!0Qp#H`dOZc6MvaH9craAdswv(nb`de<*t2QN6b99BTR_WFVbcvJgb+x7&4h`DF~qu|S{mB}&M2*|JE$6ku?kpe5ODi;O7;rBvcO4)4h}uxCjh;GsRh zsL-52Yel!~UW`t)$f^9e4BpK#vVu5M0z|df=a_O3S~?Bo(oHExe$S(aRz`^05gXj;dbI7oB zZ5t&B2Nc%Iw$GzSJr_-T?j4)__XcIs?z>Bu<>l!Qj_xQ*86R?q3&N^T@IZcXMN$NoTGD6Mq0b-qQ9dj1r(8FJsgH=^|pkWe(PtEQODqG-a_i#rr37- zX|efM(__!K^@+=d4QzITGZ=u@%oQj{9{KM4)TzRKMQ0bhkSvVre>O0FFsyex|L~yr z(5GKcCwo>E_)+LUw)In>jt&uQ*m1|5;*?L0j{&I*es)QHG>-2X??3ha+;(DGrL$@i z#l~n=C3cMb(ie2Ace3iCu8KtzVORlFwndTv7fgr8**(YN75$^=g>LYhBrJmCOC@qk z9>IfM{U*;JMQIp#~@pv?RV&u z*!nHq;*i5$$pmI|Qn$sam0m58#1gzOZENe#_YRL&;@arlbF0{Ei@W11Cv}d$95*vQ zdge>XtGN|F+~?8|Sr<5VKV(ya&K5+-r3Cdi2N(WagMRZd*eVqoq5*VV*mZ7#5o_{EWUqkWMF$-Y`1;0Zf~#6#rf^& zr_wLYEdgy^)l%-=Kfl;L@Rb!9>R&A>z#vykL)xM{Tg@!8}W0D3Ef1#jU7I|&4aO8m4ZTD9z-HyNf zDLzmKb#S1A18*J&R_Z{$KozG{1-m6iNL7O^5s+#r71)9@%aUZ20Vqa@18chlK}}1n zDMD32zPJ2Te>lvx5OACz5#XxoQNW)f1myJ9HZOooOXaTbKu0lN3;|#OP;gW^fE*S{ z1HmbkU8*erZbm_y&M7a(%x@I2&)P1>xE96kSjUv#$~z$BRn7qb2ypX<*<5#I#-dTi*4V zGtYPeaw^}*iLuac;G*=$`2xnAY~v$~Zh5}GX~%KeU0Q?d9{v@{eUT{+;P9+6A>)Gg zb+Yj_W-5hL#+r93E;!s09srn^F(RXaL(VN*lC&n<gjLF@ zK;q~LJULc7#=@A8vjQY*jC(eE{%^Y!$faJ8)3(tP~jOcUR(a|^g*J)y7Y?6RiV1mpQ=gz&6 zRaLDc5(FCuJkYj2xsLheKD_YARu&SB#>iY4IdbGe^MJ!=f5xd9P`)&I{n7V*BwqaM zT~U{P*RHnQm+P-8WUi{bBtOQ`|Kyea17U^c|k|h z?SQUismd;7JZj~}cX$aDYnLpL8RN{EF{Zv(RmM^0ocq02W{rb3y_21yD;-zbHBRNa zWj+|kBA-RSyT0?wJkX}!9IM(|U(IPrH}i?i7TsCSag1wdr<`Ao^}Uz=m+xxN*GK0& zS9P1fDLY9&&=Z9mSI+aUPZB4RR4Vg*7N9U5oEH7pruk)SD+xyTD%fv7Up&@Mxp#eA zm53ZlP;;EgDm`V-X*?2;x5C5t!X_#^;RQh&tJ+F3(p#QUp}cmZn<%0G{(uX(_8w+@Zncg{Vuw~_>>@X z#mH6U58Z6pKTOTm(Y;olkS};yvWiX??39c(|7|;Gb($cj6>4x^(S39+9HOeWBtu%t zHkmXIJ$m$vZ~yd(l(}vhy!&((dmL6J$jAeH11}mUbD`*3YZmz} zden9GQ+voUzAIzw8qT4|9B1{6-zENS=~UYGoi-d(62j$Lek=E@e`Ow%_kNk^Xpg#O zBBg&Onap<>LLjR2srDYV0jHP){1O;ia+sci(dif0)feYm?PHaM`+`d({q$Ww@dmY* zM63>23I9mi8w32o4>}trkR0N(!YS;cRSZ^GDv+Y5$vt_e&lP;oGq8cNhF##Cwul_y zdzY?r<1;6(72EA;mD1&@>u-yZi4_IMCCu1N2~K=3vhAImIG+tM7X=Do7xT@k6nz+S zz@!{Yvg_51&y6D;?_E2s>+xng&TjqcSHH|#cr}iG&t{3SM#WEl&^xaB?=|B;POt^p z>xm?M(-zq&GG68Z9uyfX*Y%FC00YBs3h3x(ay=v~ z)2%utL%!cI3o(o@T_TuI&hZ@?x1z@i@8Cc3>4n4}=qTs8R@t7EjPsM`&6^wF`QK6T z<&Uow=YC+#`2Me-&Q%}H`ljF!V`MCg92hU-S7gm~%IEUiI)gLmKcsJBQ#RmrJx=an zD)wHR{4{Nqw&5xNo6AM6{nk?dYlr;Q^1$bE{erz6V;;kL=IXjTo*k#2QXfzMb-Ng_ zI$YK4KWF7zbm?q`WS44n5Sz>ImrNwnFgkvH@T22nueZINHg9g~q7fCgQ@Du)GUf%Ni#D_P-XO+b%!hi9-;(1+6iSgQa6 zY&dU7keNZ}crajs7WPDCm;~J^Y>HcupR*!(*%kpAz#Ih$>`>U8K3hZxPz%5a`l+ZB z%n*ojY+2qe>A$8n5~`w_%M zk|c~a<0`SD-?IFu+?Sv|fUJ6&;dH#^rS9Ljx;DT8V51VS6X>fEMFV z&dG)E3h*kc3nVM>2XORTIS=p11Mp)WkyGDsdeMk<($J*r`=q?Lmk0EZyG}VdUOHe% zJexdszwU{i;K=D`;kCZoCzQ;Ye;fu5F}{*{!GCj}Gq_)#Usm?$gSL?Qq_3Pp&iIVv z$$#bd(`HSKCq8mU)|1A3`L{)o1lOuU=C-lrNU5me99wlFIYQojF8~Q7bK)Fp?C42j zDiBI%3mhXl-u&Q%2rT1kYh*l2l95jGGLKaL3X*Dr?vk7$bNb>KPC9a~K$X7H@m9K& zs$E_Q)DqcT7JPreY{i;7&jrfNX*jxFO5lqzOUE#8qu-cd9D2^R6;L)fBU*t{x+9iumTR ztO`7Q_4v-W#^t>=+lMS&hzq_nDdnUoZO^PqXV%qqonNh8{PZ_%fI zUc5Zz;W+W&wc?~>=ENN%I>q6+#Ue5nsy=4FAA9W4*k=1z;@dah5xWn`eeu88H%|GF zM=K12hp?mo9=SEYd^amI5>GslI%}5~W6Hn{^I>y0X8vPBVwL+VnSb)h=74~{;fH{? z_f?75Xg07Ur^p@ort{d}vcdwE!#lc-{L%+}0rP@BCp+Yr-l4nM&9;ahQ>Y``^!VfO zY3E8Gu@Mr3g3Yc=C&MoEiFcTg?e|Vsn-h*F*X9L11}_L~nX~Q*!Ig+EbAN0zUG4tJ zy|(Eu_eY-00aWa|#1WhYyW$mWRBQs>>^s+WKDqL{KESc~f=9hmFZN8#(jLuB90rRa zderstRNvSRe9(XQ#!hHk-}R3_<~wu3eX&*e#3#XP$HMb;Iep|<|HI{Y>butTP<#FT zSO1NFK~4mfVG>)j@(uAta>ke^ zq~zVol?fwSiz@5(>Bmk@VGH{Z3%a>Ja+83Ja<+l z6J(X#!BF~G^f(#xS=-*p56nY;^wD{OkbCUWT$D9n-Ji#A|M_f;ed)nUFTVWpgq-Wm zz8ZUg$d-GAImiz=(?{23^ZZ7htm1*4BtzVfAf(Uu?L0DR4!VE1$9eiz<_h`Nf0(Uo z7vq0zJH|XFv#^J`g|ugkfAgFF%X@6fYfOsA|2d_?GzFJe2d*N2$hMscU@-m$8~}UJ zLj{kB4XD01-ed#@;0LP0rw8yIKP5qok%9z#ZH=4{bJG7sX6bR~!};c!;w!QWpBUHt zDWSpS_>WWX&5H9WiG5G0`XlLJPFhuDuFyjTGm~T2(r5AovlsueVCLSvpNdPr|70Zx z^cOh*$7K_>k^l)~uO1*PG)b1z(RDGdlIbtCdY5dq|Q1 z6+e|6Y8yU7FN}FHb^h(~(X+?q{Wtr$f4nP;Ku#1ZsgJ+?9oC;y*$6Qe_6}(uj+{47 zq0Zk^cTcYhXD3d~hrh?x+3!axUXf${rVXlZSSZJ3K@2>g%-~R5f(y1-5EP>1ISREzN$Ue}ET>9?4eYt$Ve685KYyo9=gfF(!CbRtM-Savmp0AAuppmf`Tf;3NXRe3$-y z?AE6~M&>!P!nNc)#?*3Bh6c$#yRP4gAu0y5@ZC6QA6Nv+7#koKKRMI-ToM$HEkR|# z3=e?U5=brgUE8mf`7=3Xxa}8gB?;pU1aTaIky5GP9)0E*79w|EEeQYvas+lbwJiyl zmmt7SC_)k7130>1%DYgyI^_R0HfM&eQe(~;$tz4Ce?PIfs4jozr4kcwczW60r zN0%UagdCD5pHZzY^1ttmG3VDF&8i58yp{;?dm(c|0RbK9colWt>1ja`azwt37rU|B zZhPhyG;`zQU+f(j7p>+UryZGV^cd3Li!a_N$9MJWe}O~tSY(v$EkzRM&Fz1vj|)%U zFE-vZo#P$r-b+5|_{9JDBvreSnT4AUe zGv>wU`*x1Au1P%CKVpZyH;5hgnh|^KXa3Btj?tl74B0$4X2$>gcu+j}*YR=XSJ#hk zoR!b@8Sr!-xn?y_tg<1iW&W+Z&Ia*`FHeu7P8=I|{^sC3F00&9k2E&Ek`8jSLyosF zhHJTRI%{0w+_`Z{g&oI?X^bCy|HrY-R>$Njp4|3l+ifabY5eJqXr zg2<@v*a&zDjxRP=;K$2#%ooR&xmR?nL>4MR*;@a>_-ngdzt&ciq_XoQ2^vzb!!jz3 zk?W8x^9N2rg(rTa7tB+#S)cQ~JsOkudU@&+j1tOzGPJQQCx)PaVWW*dZ_U`?VL*7yS zM(#}6c`+#NyJOQh;@Bzk=b`iUpWj%h%n3e#-^>Fz0Z+YLSHBcUh$Wa)_`?tNo9jD| z4}gjfT=-9}k@3S@$C{6Ps8R?FQxFH_BZ{v992j|5%uH2}SYv-*h zgpYh`fpdwWk?C{5p>zlARq%-WHOAx}|HMXG>U788jra;Y0}q#-7yMSpxndEox% zMQ8r?9m9^e#}c>kPQK`0w%%{W&)sI5t+UUwQx@rU3F0m}PtBj{)f^%J0|smq)21iC z^1;yEyIYlF1;UWLx2UkPYtpH(556JyEHT#9)HxFgRwVFuvzV;!8u78iyTy?oIxKD2 zgsLBY<1ZnyYmU<=n{U2FwbJ|f=SM}CcxOJt;_{dr*TnVLonOhn`NdAtQC8`cI7-z} z$Da-kbZ}s~aiHsRYk37UOt}dB3ETrPNI;tsLnVXDXfG?Gi#n&A?;d5mZT|vzF=_>%$Wp7))jtXu>2G;4s*Yb) z1dMwLoXN%mH2^B7sW`!al;1fi?z>&ezE;+$m4onEpaI{tGi1n+%0XLXo7t9Q1f&Gc z7;8X5H6tU;S(MesBm88%?SrbiNr0qm5z|VSR{F2VjhCRZaRbT(*?};i3*ab(|0VHK zzH9B>+>@ZPT+%9$#TlR0+G+Wnz8Dt?H6RUv)#?a-n=;MmSytE5c5$3Jl;j0CQ^8z7 z9eGg|!RammS?4Vd0kbN41n0Hm^Y9Gf(=+%75Su@~L*&zZSEa>~#@n7#keeq$-O|e-s$V&h%9aUEzff= z`p@~|SXkkqDhVG72>=&|wtTnHJ3eNRJ|4(Qw3{>NbN8PkUVJP)woK6W%_Lt2QU5k! zR6H@G*%s|JaGh9Zjg9iSXLG5_U(#St$@dpiLFe!5r}O-qpH~&zoFsOoAss67kUbO3 zvpm^rSOyPDWveP!fjG%6!4lis(dl@%DiYmi{5WkKRsjS~l&V?tyy!;v4g=ufqHMkZ zh9U@CeYK^_=vMNfEmdUNl~mvW!Y%@?erIPpcb*r=esFws{d3R#@7F4xn@2m-n;H14Vnvu@y%$c3%@4dXo-jm~}f0`D(`&dTajI}_DEFP<<^!*RNzdas#_}!JR zX6HHl`cE%NGVilbCW@{fox!p$@$g^!#O*iriSM7YTI~8Ks{!GK=2uhhecPqWf|#W# zs}0_=)ASho!JFdGPu&o+CLW*nF{9#LUozibkkAvTme^JtLO<9pO+N(eB{~$4kbTJzD~65vsz~mc{K9pLWPFCp6a?S} z`7UI9=+V}KoaGqr+Vork7!t-Qc(wMJ`JYp+%HH$~YP0!AEbu|U*x2GvlWW)W&Q`EL z##ORG5VSU!zCc5Z@eldco@!>eRZ^bMB~aUZ-AsRu8yo*~UR_L^xkg~?tvHSAxTcjCGmz@y)TNch|ZCCwDaFn)@CmfkJMf(r$an=Z=YOo*c4lB(~NIxfA^U#bg%qG{s(zu zGfGm}F~7L(k(l<%QE~HConuDk_EUtScjhF%_4Cm&a1AS-I>j%4J|M0>uTQL&i+0xC ztSL6h2TE_77-Y9SC#SAx-fEK_QaC5MZBCKTBCqs|KGfB9i+7x`S?qh%&hh;(uNi;( zzrk_bCti(x_IssDV9>?*1Bbxb;x_s_d-mK+xZM*+9C=SXaQ&I_%*0*e;tS8tx$~Bc z>nvDs>7F{Mg99BLSiT%ssRQ|x3dgJ{LYYI$vJht<*br!297D0VY;Mltt~Y74Ty*>d(g5QGPfS8wzFoRwUut1TQv1yOyB|oEIR`BKZ+adwE(vEvs zTmm*YajIJFCvNGatpW5)5EY+PZK)to4Jt5HmS9>Hf!C`d8DnFJKghUqrpzC63n(Zc z*XL4|)gCX5kFmEshD6n}s)#j4fDmwKzV*v~H%^`r$7kQ4IrQLodj=(IL1S$n^+~df z{BT6f(e}vP=A5Yhb>EgPdI6&5yYsavk>}lOaY-M6ew9dqUe5KMdqQ*zr(H0^JkoC! zMC4tC$%qjnDj62!nR@)8(dU#0a@#s$Fs?8uQZ zZ@f{AdGhVit?{_TD-X2Ux5mbhnG2Ds?^L8a;|?&K(Ag+sShT_frm_rNB`D4 z`mZ*7e!DNdSQmHQULSi7nUXkRR<^UCj-NL#_nqx@cUGwVHP){0S!>5a*=NHu; zo2{q;9uh#&M@a|v!5lOn6p6Hj3(Vcd#u$_ zx-jmgoHsK&B}SWD1$-q}CFs52e7Zm~7QrMw7c5tOnSV+jyyF?W*W)!EQI2W({`a(p z^DF|afrzhEC^M6r+e0*}eie-f}uq58LMl?~cUY>K3D~J}%@ho(>zBQ!$np?K^ zfSdeZ@Q$Pmd55LFm-{FUNglJ+`o^~?@>hOu`EH)*x0Oi6hjdS5!TD&*EfaU0H!yy3 zVei;}m+7(NPE+&S1@&unV2eL=KUrkYB&v;rdn#o9I%aW6g+4u^AVjd!iUi}T?{pRW zbJUT?#GminKGx_yGM=9K(HJ-Rl^n~jB|j1qt%5`kl97T(@YvWRzZE<}zJ2D$ERGH) z&x-2cRM=rzkg--!NN(xL)#?t4x>=u$!P|W^w%mG7j_qM>UWOdAKjttT)U|7`xZsR6 zV(Yigi7#A`ShfW@UXln8%xUw-%lGc7@Lq5yIYJH-Xre#S{1HiT*$H%roM1-`*#mAv7Sa`BI08F=#?Qp9w>+1&dGIP*SkPifJO1t9z`qO!s%XWqq<@(nEkQ?AFHlH~C;(Kd zVKf263K|N`wim2kg3DEh0ydPNrRTshht+(M$wMGKSw#E=J z5quC>Qzc7*0tu?25x{K=2w+#+z)^8<7y$dU0mqyM#)(mKj0$K#r3CLe-70xi$g6N@ z&xis$Dq~c4$gVqnQ2|eVajy(Fut)I=Mlp20*Js90;$czFK&Lc1{T|M}4Q<8nj<+ww zKG$-;Dxm;A_s@B13%s^$fDv=NC8Neu;)mm`kDO+eaK2YEHwJQX zKz7UP|118Fr+A=JN&rSBjvzCB08#>Dj5uC%$jDM#&NF_Qe}cvWse+LLo}5pCHSHk* zI{XuK+}pK)a?$TdE`N3&2C_ja70bTOI-)9??p+dja30-61~`K% zceJmfMx`}bZHvquGR;|4@n~Boj>DqJaqgcD#VY|>a_8EG1VI;CC6=-pf6eOqb8~z? zGBiK`BjU54iulphkxDb-h_qk3XD}u!pfef~-O^sJl?e)SUVDGf)h%0Ouz2f~!OrRY zr4mRlJ%bN>?UDPW?H_aUczT51aX)MZUF4oP%XGHB>N7c2WhD6QGpA3IjlFSsW9P1UY#J|z4W8pqcgzUmi7xa z_q%&*ZGP5Xlf1Aabe;Lix8q9}tmW8AlU|O2YmSPElLo~ff73g5+G9pOucSH9S=(02 z&+rlZricqq@v0PZ_#UoSJ-#G9BwK>-Fd^U2nAO$Q=a!3~%7UA7GWk#+TW&KY_CIo5 z+;Z!;GG6dRwS}D6g<=h3Z*1N7szC084@qv}0x<|N4XYxJJq*t8fWgT;Y)7ZJMxNn= zr&gM1m;AuDz7tnr!x2Bs@5aG6(ie+EWSfkVv4*s>pBeVic;^0nWAiPKh%bC~=S;q~ zt#9ZtSd_o;(o17gW)6%Szu7nTIcjR!;)MhG`U8*9X%ZcZPwBa*o_ad(>)pwN{*{g& zKk1S9+&8+%+YXwPxOiG@w#D>Vcks-d56yO{u5Mmzw8@OvA(K~o51AZ?9rH@O@3dFq zu;Ux6pug*6O@3T<{b&CyBhjbhG%eZ$$=X3@B z65V<{l}YB^D$E7D(--*MK^+`uivy_xzS!1p9p5h=2UhApzFP#ERj2|GwFJ}y{L3gc^bPOFOH4+r=N-Xf8+x~ z)8n1jEuXxe3cZlN14{VdIt;czmVg$+1-ujkT+V6jy$a+%_;7T}Yc(Eq#6pMQX+!o0 zPz4|bhBzj!yEqPpz5xn=6r<$+RD5t4@emIkiy@`}jj9SRPHV2dv?#s-aaW zkdLQ=)xZ#^8867M$`Z~kzLE=0f#k-Jc23 z*X20H;fKZ^8Jv?`pjTYuO{c}N^X&xk&1KFRIRjwLU%?wXQ9=pt$u)<7E*CU!>%Pqi zvclOE5T$=PgvLX#f{Yhh+CaWGIfz4t4y^*BY{cRa;A}a%B$L30zO z$TA0uERl1(Do#@EIhk>bxZ(#XFYihZWl+QqzaMegrMZ#pTP!14;LzHC%vrjVLtzf$ zxpAlsbd}>rq`qZW1?sH6GuPSPlC*YjY^O2fkiYoA0$Q*7+jIj6K2gcfKZ69}L(CO7z$5$B3JjNURAnS{w zzJ2G$JKy(8Y_s>=c<8>Kaor_-;y1VUiz7dft6#F8Y#e!a&{YvZ`%H?EQXzN&h~p>4p+`1WLHu%0d+akM4n1~ijCr9){OICLD2*Kw z?>zdz*mLi}sk5)GY?gTi)371sUd#F3OMe74>EJc;ITn3ts*-Du^?6+KX=>_c{D$q> zH1mdTsZD^jJg@eD^U$%*VKeC%1s-r1+f#_0VN1y|onm}#F{jU~S|Fd?(W?T1#tY^U z7^H8>krkNqEZboC8Gh*=iuSCN}{Lj`}UGO{O zj&8sG_9}R<&kE?sx}pKH4{J#FHZ(L;$NHlPjQxc#UEkQ2wmh? z!pU;~t|Lfem4UzkK5?kqyJzRB8YtWT09L>TP^FU50|NzwjG=_kF z0R-t(T$wWxSHQ42L~iMc`IKYWJ1gJTeA|h+N7A&Ia@m(+{2>Q5mz>T&sQCjxXD?k2 zrRxZ=a=`4YKbl<*Dd9}_LwF8EC4+; zgYm`TSkm*C^mxfNt7Pac`b#i?!?Pqrwu%F-4Z1+UOCm{IyQRKcr!IMS&ajB@eJkRY zUq>AHHp>W>ce8`0(M?{nV~Bs1ABF{$v3_Mr;;+<>de3ka04PVUF6wkMGGg{YJi* z1*xL7icnC-N)!Pci9`WR*P}D&FICCgW&*r_pL4Tft51CGdn)H%zn`Z3_`!E<7#nSs z4;;MUh3wyg`g-o%PI2ys2Su0qm*VHQdg%Dn>fVeW*?=cnqd9Xr#U)=|C!YO#w|M?< z`MBC_r_=8Tfwr{MzVQ%%a&aBvYlj%8Mo3{dL zt!>}w*Mte(;;F}b##?hgS^szG0*^H%uV+`!Z(!F1xonr%sZ)LY@QO9!w^#Oz?GK(E zU%Ys9-pj(Rn&O03lesjju^L8YwKK~`$95B3>f)rg&gsm0J~rc2VMV@=_^@9Gyf(Q|UOgs`>k?-Tdn5xfyI1xf7C_p9vn4+S zhG8uCqFwL!#ujdu0j&16*7-{Ykte0@7o-#n5`b@Pd?gc1pG$0fLiVG3m7I8fR9zf# z^u*LN&4T^o9}LW3U0tj>Xm+(VguSEJSaWu4w)yll70vg?thc;P<11k787ORn#JeE3 z%5wqgRgK#6A&rl5T2?-!pre%#R*g$)N!l(B84txGDykKh2t?97BSws3Y(@_0zTu@(tSJZuuBFfcTCytmpZ$7E6TRowLe=^6ThT(rd0WS+imiNTllX89}l#}_w-=FZZRZOy*&sX*+QIg{dL0~HO z&k70gBXi(}Up^YwUo$A~y}m963~q{#e(~j84Il=vAb=53b0c( z@8P=wnR9D{_)f?%oZ8S3|M#)qIkzKAg64SL;<}`<~R_lg7mdE(9B+`Q1lQzvTwzi3OWgERmWCTs0TX=jQLP>m1j5HMgsoHZ>nmzW20r_7@JG zTTcG5FHVfcSD%j?Zuh`XHWa4Oo~p3^S;_Y9q>sppnrW<`2R9)zjLj)=guk7tJ4Ni-=iVc-FSoe)=x*z z4-8Gu2khDsCr!(Im8oC$$zOBLS&1{6GVu8Oxb=oLV*2w(#UUp&#t4O0TO#fn)w=-8&9{b3D4g(-8F_!rKS>fye7S1|Lto#o-!Fn$UV;h5 zMl8_SD)f&)P|IMD+oL0vr))1P7S71M$iH^_fY|M@S@Eu1)v^8tGqT^dw&`5yFR~1C z8&8$1#lE+7eGg1tcks;k*x4^;MQE2QC?hZ_aR$56*(zS?a5~d!MVMINQl%vP>v~;N zm$nzgcl}?a-X4_+Q2nwxV#_TzjeG8Hh#y^eNZfKsL)P_VHE8Az*57+*S)5@0R)BFMo4%70`Fk1NZewUC}wV+-iEYD#g5T?{GMbMvn;O zde+9ON^RkeWfkOXjc?@V`RBUFOPOfdcKa!bH5b&&Ezgngfe9t_`2}9|y;U0gZvH19 zt|iq5_Z3(1@!IptTAuHJc!ZB8=;&M+fltqmH23-V{C(GNYl{{(Q2*IS0n$8kbp3wDh^2u5>v0CWnIHRvm~>D4>DI@pEy= zaVqe=*b@a>d|Y-w!J;^fm6HPbie&hdbS@077_zLC_nl+c-(Y5(dF~4__Jeit`&@ze z?eo@%)4wpjS^-nrA9Kg`6rRB&>`MoAaG-+&D~1Crbs%3Q7z59tN0!|Is)Z;n$Ea{! zRf$odi~$({K@~h;1N^8`l!*l%R8lO;L72~@8Pnrkk3AI`qKOPU#?Oy=Pwai-`>U!; zRnHYs^qIMx+OR|Z=`2ekZ?=L-y};uj=xO+3UW!6l%MQBzH)st^ENKf&UZO>;|!f&Jqb8L%DDw|9Id zzZ10Rpk>E_#RV(vU2$?&9n@zqru%Jo#Jt^iS!jD5;G}>sV=tJvsChxY2i|jU^!d~m za}~;@m~+ON(YWs(@#uu{G5$|~j;*%cCK@dt&g77#`Q&NN>{)U5vya7?&IiQNr=A#n zXT3lA<`T@hk