From ce69385c10723c424c497f417e806326fac28d8f Mon Sep 17 00:00:00 2001 From: andr1976 <58475535+andr1976@users.noreply.github.com> Date: Sun, 3 Oct 2021 23:29:52 +0200 Subject: [PATCH 1/6] Adaptign for tqdm progress bar --- .gitignore | 1 + .../__pycache__/hdclass.cpython-38.pyc | Bin 19588 -> 19547 bytes src/hyddown/hdclass.py | 9 ++++++--- src/main.py | 14 ++++++-------- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 3a7ba42..83a5626 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ src/hyddown/__pycache__/validator.cpython-38.pyc src/hyddown/__pycache__/hdclass.cpython-38.pyc .gitignore src/hyddown/__pycache__/validator.cpython-38.pyc +src/hyddown/__pycache__/hdclass.cpython-38.pyc diff --git a/src/hyddown/__pycache__/hdclass.cpython-38.pyc b/src/hyddown/__pycache__/hdclass.cpython-38.pyc index ef1cd73e4023dbca54349ee34bee85e0ccfda5b9..110e36aeedb9301146abcfebb23ee53c15a29b27 100644 GIT binary patch delta 4607 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 EFaE_g>i_@% delta 4891 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 Date: Mon, 4 Oct 2021 15:16:44 +0200 Subject: [PATCH 2/6] Update for tqdm and joss minor corrections --- Manual.md | 1 + docs/references.bib | 43 +++++++++++++++++- joss/paper.md | 28 ++++++------ requirements.txt | 5 +- scripts/hyddown_main.py | 2 +- scripts/streamlit_app.py | 4 +- setup.cfg | 5 +- .../__pycache__/hdclass.cpython-38.pyc | Bin 19547 -> 19636 bytes src/hyddown/hdclass.py | 11 ++--- src/main.py | 5 +- 10 files changed, 73 insertions(+), 31 deletions(-) diff --git a/Manual.md b/Manual.md index 358f155..33a9372 100644 --- a/Manual.md +++ b/Manual.md @@ -80,6 +80,7 @@ where python3 is the symlink or full path to the python3 executable installed on - [PyYaml](https://pypi.org/project/PyYAML/) - [pandas](https://pandas.pydata.org/) - [Scipy](https://www.scipy.org/) +- [tqdm](https://tqdm.github.io/) The script is running on Windows 10 x64, with stock python installation from python.org and packages installed using pip. It should also run on Linux (it does on an Ubuntu image on GitHub) or in any conda environment as well, but I haven't checked. diff --git a/docs/references.bib b/docs/references.bib index 1edb50d..d9d52c5 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -199,4 +199,45 @@ @misc{firstlaw url = "https://commons.wikimedia.org/wiki/File:First_law_open_system.svg", note = "Adapted from DOE-HDBK-1012/1-92, Thermodynamics, Heat Transfer, and Fluid Flow, Volume 1 of 3, 2014. U.S. Department of Energy", year = " 2008,", - } \ No newline at end of file + } + + @software{casper_da_costa_luis_2021_5517697, + author = {Casper da Costa-Luis and + Stephen Karl Larroque and + Kyle Altendorf and + Hadrien Mary and + richardsheridan and + Mikhail Korobov and + Noam Yorav-Raphael and + Ivan Ivanov and + Marcel Bargull and + Nishant Rodrigues and + Guangshuo CHEN and + Antony Lee and + Charles Newey and + James and + Joshua Coales and + Martin Zugnoni and + Matthew D. Pagel and + mjstevens777 and + Mikhail Dektyarev and + Alex Rothberg and + Alexander and + Daniel Panteleit and + Fabian Dill and + FichteFoll and + Gregor Sturm and + HeoHeo and + Hugo van Kemenade and + Jack McCracken and + MapleCCC and + Max Nordlund}, + title = {{tqdm: A fast, Extensible Progress Bar for Python + and CLI}}, + month = sep, + year = 2021, + publisher = {Zenodo}, + version = {v4.62.3}, + doi = {10.5281/zenodo.5517697}, + url = {https://doi.org/10.5281/zenodo.5517697} +} \ No newline at end of file diff --git a/joss/paper.md b/joss/paper.md index a4b57ae..ce916b2 100644 --- a/joss/paper.md +++ b/joss/paper.md @@ -21,25 +21,25 @@ bibliography: paper.bib --- # Summary -HydDown [@anders_andreasen_2021_5154096] is a Python package for calculation of pressure vessel behaviour during filling (pressurisation) or discharge (depressurisation/blow-down). More specifically the software allows calculation of vessel pressure, fluid inventory temperature as well as vessel wall temperature as a function of time during either filling or discharge operations. The applications are manifold and some examples are: +HydDown [@anders_andreasen_2021_5154096] is a Python package for calculation of pressure vessel behaviour during filling (pressurisation) or discharge (depressurisation/blow-down). More specifically, the software allows calculation of vessel pressure, fluid inventory temperature as well as vessel wall temperature as a function of time during either filling or discharge operations. The applications are manifold and some examples are: * Rapid filling of vehicle high-pressure hydrogen cylinders -* Rapid emergency discharge from high pressure gas cylinders -* Dynamic pressure safety valve behaviour for gas filled pressure vessels subject to fire heat load +* Rapid emergency discharge from high-pressure gas cylinders +* Dynamic pressure safety valve behaviour for gas-filled pressure vessels subject to fire heat load -A typical system modelled is shown in \autoref{fig:sketch} and it visualizes the key parameters and transport phenomena during gas vessel filling or discharging. The thermodynamic state inside the vessel changes over time as seen from immediately observable variables temperature (T) and pressure (P). This is caused by change in fluid inventory (density) due to flow of gas either in- or out of the vessel. Further, heat is transfered from or to the surroundings via convective heat transfer on the in- and outside of the vessel - with heat being conducted thorugh the vessel wall. The easiest way to explore the basic capabilities fo the code is via the [HydDown Streamlit app](https://share.streamlit.io/andr1976/hyddown/main/scripts/streamlit_app.py). +A typical system modelled is shown in \autoref{fig:sketch} and it visualizes the key parameters and transport phenomena during gas vessel filling or discharging. The thermodynamic state inside the vessel changes over time as seen from immediately observable variables temperature (T) and pressure (P). This is caused by a change in fluid inventory (density) due to flow of gas either in or out of the vessel. Furthermore, heat is transfered from or to the surroundings via convective heat transfer on the in- and outside of the vessel - with heat being conducted through the vessel wall. The easiest way to explore the basic capabilities fo the code is via the [HydDown Streamlit app](https://share.streamlit.io/andr1976/hyddown/main/scripts/streamlit_app.py). -![Gas filled pressure vessel subject to gas discharge and heat transfer between vessel and gas inventory. \label{fig:sketch}](../docs/img/Sketch.png){ width=80% } +![Gas-filled pressure vessel subject to gas discharge and heat transfer between vessel and gas inventory. \label{fig:sketch}](../docs/img/Sketch.png){ width=70% } -In its essence the code solves the mass and energy balances, with gas thermodynamics calculated using the [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999] including both real gas equation of state and gas transport properties. The energy balance is the first law of thermodynamics for an open system exchanging both heat and mass with the surroundings [@sva]. Heat transfer between gas inventory and vessel wall is accounted for using either natural convection or mixed forced convection/natural convection [@woodfield][@geankoplis]. The mass balance is closed using an applicable flow equation e.g. orifice [@yellowbook], relief valve [@API520], control valve [@borden][@ISA][@IEC60534], a fixed mass rate or a predefined mass rate in or out of the pressure vessel. -The code also allows an external heat load to be applied using the Stefan-Boltzmann equation for fire heat load minimcking background heat load from both pool and jet fire [@scandpower][@API521]. +In its essence, the code solves the mass and energy balances with gas thermodynamics calculated using the [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999] including both real gas equation of state and gas transport properties. The energy balance is the first law of thermodynamics for an open system exchanging both heat and mass with the surroundings [@sva]. Heat transfer between gas inventory and vessel wall is accounted for using either natural convection or mixed forced convection/natural convection [@woodfield][@geankoplis]. The mass balance is closed using an applicable flow equation e.g. orifice [@yellowbook], relief valve [@API520], control valve [@borden][@ISA][@IEC60534], a fixed mass rate or a predefined mass rate in or out of the pressure vessel. +The code also allows an external heat load to be applied using the Stefan-Boltzmann equation for fire heat load mimicking background heat load from both pool and jet fire [@scandpower][@API521]. -A few choices has been made to keep things simple: +A few choices have been made to keep things simple: - [Coolprop](http://www.coolprop.org/) is used as thermodynamic backend - Gas phase only - No temperature stratification in vessel inventory -- No temperature gradient through vessel wall (applicable for high heat conductivity / thin walled vessels) +- No temperature gradient through vessel wall (applicable for high heat conductivity / thin-walled vessels) Still, the code allows a variety of mass flow devices and heat transfer both with ambient air and also considering fire heat loads, with the vessel fluid inventory being rigorously described by a Helmholtz energy formulation of a real gas equation of state. Typical calculation output is shown in \autoref{fig:N2discharge} and \autoref{fig:H2filling} with experimental data included for comparison. @@ -48,9 +48,9 @@ Still, the code allows a variety of mass flow devices and heat transfer both wit ![Simulation of hydrogen cylinder pressurisation using a pressurisation rate of 10 MPa/min. Comparison between calculated (full line) and measured gas temperature [@STRIEDNIG] (stipulated line) is shown in the upper left graph. \label{fig:H2filling}](../docs/img/Striednig_fillingH2_10MPa_min.png) # Statement of need -With an increasing demand of clean(er) energy and associated storage such as e.g. on-board hydrogen storage for hydrogen powered vehicles, compressed air energy storage (CAES), compressed biogas, compressed natural gas (CNG) etc., the need for tools which can simulate the filling and emptying of the pressure containers holding the fluid is indeed present both for operational reasons, but even more important for safety reasons. +With an increasing demand of clean(er) energy and associated storage such as e.g. on-board hydrogen storage for hydrogen powered vehicles, compressed air energy storage (CAES), compressed biogas, compressed natural gas (CNG) etc., the need for tools, which can simulate the filling and emptying of the pressure containers holding the fluid is indeed present both for operational reasons, but even more importantly for safety reasons. -Apparently, no free (as in speach, as in beer) tool exists today which accomplishes the same tasks as HydDown. It has been one of the main goals in producing this software to provide a free tool which can calculate the pressure vessel response during filling and discharge of gas. There are however many tools in the market which can do a subset of HydDown capabilities, the same as HydDown, or even more. Most of these tools are commercial/proprietary (and closed source) and comes with a significant license cost. A single tool has been identified which is free (as in beer), but still closed source [@h2fills]. Below is a partial list of tools which has comparable capabilities as HydDown - for review of more codes, please refer to [@SHAFIQ2020104]. +Apparently, no free (as in speach, as in beer) tool exists today which accomplishes the same tasks as HydDown. It has been one of the main goals in producing this software to provide a free tool, which can calculate the pressure vessel response during filling and discharge of gas. There are, however, many tools available which can do a subset of HydDown capabilities, the same as HydDown, or even more. Most of these tools are commercial/proprietary (and closed source) and comes with a significant license cost. A single tool has been identified, which is free (as in beer), but still closed source [@h2fills]. Below is a partial list of tools, which have comparable capabilities as HydDown - for review of more codes, please refer to [@SHAFIQ2020104]. | Software | Cost | Filling/discharge | Fire heat laod | |-------------------------------|-----------------------|-----------------------|-------------------| @@ -60,16 +60,16 @@ Apparently, no free (as in speach, as in beer) tool exists today which accomplis | BLOWSIM [@blowsim] | N/A | Discharge | Yes | | H2FillS [@h2fills] | Free | Filling | No | -Compared to other software codes HydDown has a number of advantages: It is open source, computations are fast - especially for single component gas, the code is simple to install, the code is easy to run using a simple input file format, both filling and discharge can be handled and fire heat load can be handled for calculations of emergency response. In this way the code has advantages over existing codes on one or more parameters. However, the code is still limited to gas phase bahaviour and heat transfer through the vessel wall is not rigorously modelled. Hence composite cylinders with different layers of material may give inaccurate results, especially for low heat conductivity materials. Some of the above codes can handle this. +Compared to other software codes, HydDown has a number of advantages: It is open source, computations are fast - especially for single component gas, the code is simple to install, the code is easy to run using a simple input file format, both filling and discharge can be handled and fire heat load can be handled for calculations of emergency response. In this way, the code has advantages over existing codes on one or more parameters. However, the code is still limited to gas phase behaviour and heat transfer through the vessel wall is not rigorously modelled. Hence composite cylinders with different layers of material may give inaccurate results, especially for low heat conductivity materials. Some of the above codes can handle this. It is the intent that the present software can be of use for a number of tasks including (but not limited to): * Design aid for experimental facilities for e.g. mass flow device sizing e.g. orifice, control valve etc. * Benchmarking of other software codes. * Safety device sizing and review (blow-down valve, pressure safety valve), for instance how fast shall blow-down be? How large should an installed pressure safety valve be? -* Thermal response of vessel during filling/discharge. Is the design (lower/upper) temperatures exceeded? Shall the rate be lower? Is any pre-cooling/heating required? +* Thermal response of vessel during filling/discharge. Is the design (lower/upper) temperatures exceeded? Should the rate be lower? Is any pre-cooling/heating required? # Acknowledgements -The making of this project would not have possible without the great [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999]. The author is also thankful for enlightning discussions with colleague Jacob Gram Iskov Eriksen (Ramboll Energy, Denmark) and former Ramboll Energy colleague Carsten Stegelmann (ORS Consulting) in relation to vessel depressurisation, nozzle flow and heat transfer considerations. This work has also befitted significantly from the understanding of thermo mechanical pressure vessel behaviour obtained in previous works [@Bjerre2017],[@safety4010011],[@iskov]. Furthermore, this project relies on high quality open source Python packages: NumPy [@Walt:2011:NAS:1957373.1957466][@harris2020array], SciPy [@virtanen2020scipy], matplotlib [@Hunter:2007], pandas [@mckinney-proc-scipy-2010], [PyYaml](https://pyyaml.org/wiki/PyYAMLDocumentation), [cerberus](https://docs.python-cerberus.org/en/stable/), [Streamlit](https://streamlit.io/) and pytest [@pytest]. +The making of this project would not have been possible without the great [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999]. The author is also thankful for enlightning discussions with colleague Jacob Gram Iskov Eriksen (Ramboll Energy, Denmark) and former Ramboll Energy colleague Carsten Stegelmann (ORS Consulting) in relation to vessel depressurisation, nozzle flow and heat transfer considerations. This work has also benefitted significantly from the understanding of thermo-mechanical pressure vessel behaviour obtained in previous works [@Bjerre2017],[@safety4010011],[@iskov]. Furthermore, this project relies on high quality open source Python packages: NumPy [@Walt:2011:NAS:1957373.1957466][@harris2020array], SciPy [@virtanen2020scipy], matplotlib [@Hunter:2007], pandas [@mckinney-proc-scipy-2010], [PyYaml](https://pyyaml.org/wiki/PyYAMLDocumentation), [cerberus](https://docs.python-cerberus.org/en/stable/), [Streamlit](https://streamlit.io/), tqdm [@casper_da_costa_luis_2021_5517697] and pytest [@pytest]. Sussanne Tolstrup, language secretary at Ramboll Energy, Field Development, is acknowledged for proofreading this manuscript. # References diff --git a/requirements.txt b/requirements.txt index 2379756..6d1d31d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ -streamlit>=0.81.1 +tqdm +streamlit>=0.89 pandas>=1.1.4 matplotlib>=3.3.3 numpy>=1.19.5 @@ -6,4 +7,4 @@ pytest>=6.2.3 Cerberus>=1.3.3 CoolProp>=6.4.1 PyYAML>=5.4.1 -scipy>=1.6.0 \ No newline at end of file +scipy>=1.6.0 diff --git a/scripts/hyddown_main.py b/scripts/hyddown_main.py index a36b33f..3f4d3cc 100644 --- a/scripts/hyddown_main.py +++ b/scripts/hyddown_main.py @@ -13,7 +13,7 @@ import os hyddown_path = os.path.join(os.path.abspath(os.path.dirname(__file__)),"..","src") sys.path.append(os.path.abspath(hyddown_path)) - + from hyddown import HydDown diff --git a/scripts/streamlit_app.py b/scripts/streamlit_app.py index da0481d..b9d2691 100644 --- a/scripts/streamlit_app.py +++ b/scripts/streamlit_app.py @@ -126,7 +126,9 @@ def read_input(): input = read_input() hdown=HydDown(input) - hdown.run() + + with st.spinner('Calculating, please wait....'): + hdown.run(disable_pbar=True) st.title('HydDown rigorous demo') st.subheader(r'https://github.com/andr1976/HydDown') diff --git a/setup.cfg b/setup.cfg index dca98d2..ce6be98 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = HydDown -version = 0.16.1 +version = 0.16.2 author = Anders Andreasen author_email = andr1976@gmail.com description = Hydrogen (or other pure gas phase species) pressure vessel filling and discharge calculations @@ -23,7 +23,8 @@ scripts = python_requires = >=3.6 include_package_data = True install_requires = - streamlit>=0.81.1 + tqdm + streamlit>=0.89 pandas>=1.1.4 matplotlib>=3.3.3 numpy>=1.19.5 diff --git a/src/hyddown/__pycache__/hdclass.cpython-38.pyc b/src/hyddown/__pycache__/hdclass.cpython-38.pyc index 110e36aeedb9301146abcfebb23ee53c15a29b27..a56007feb5fe94e1d306f48e1b83cdcae6aa3184 100644 GIT binary patch delta 6548 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 Qs~7{|7xCXY{VtUM1MlyyR{#J2 diff --git a/src/hyddown/hdclass.py b/src/hyddown/hdclass.py index 96c207b..5f2c8a8 100644 --- a/src/hyddown/hdclass.py +++ b/src/hyddown/hdclass.py @@ -5,6 +5,7 @@ import math import numpy as np import pandas as pd +from tqdm import tqdm from scipy.optimize import fmin from scipy.optimize import minimize from CoolProp.CoolProp import PropsSI @@ -308,11 +309,12 @@ def UDproblem(self, U, rho, Pguess, Tguess): return P1, T1, Ures - def run(self,generator=False): + def run(self,disable_pbar=False): """ Routine for running the actual problem defined i.e. integrating the mass and energy balances """ # Inititialise / setting initial values for t=0 + if self.isrun == True: self.initialize() input = self.input self.rho[0] = self.rho0 self.T_fluid[0] = self.T0 @@ -325,7 +327,6 @@ def run(self,generator=False): self.P[0] = self.p0 self.mass_fluid[0] = self.m0 cpcv = self.fluid.cp0molar() / self.fluid.cvmolar() - massflow_stop_switch = 0 # Calculating initial mass rate for t=0 depending on mass flow device @@ -410,7 +411,8 @@ def run(self,generator=False): # Run actual integration by updating values by numerical integration/time stepping # Mass of fluid is calculated from previous time step mass and mass flow rate - for i in range(1, len(self.time_array)): + + for i in tqdm(range(1, len(self.time_array)),desc='hyddown',disable=disable_pbar,total=len(self.time_array)): self.time_array[i] = self.time_array[i - 1] + self.tstep self.mass_fluid[i] = ( self.mass_fluid[i - 1] - self.mass_rate[i - 1] * self.tstep @@ -623,9 +625,6 @@ def run(self,generator=False): massflow_stop_switch = 1 if massflow_stop_switch: self.mass_rate[i]=0 - if generator == True: - yield i - self.isrun = True diff --git a/src/main.py b/src/main.py index f303340..9c636b8 100644 --- a/src/main.py +++ b/src/main.py @@ -6,7 +6,6 @@ import sys from hyddown import HydDown import time -from tqdm import tqdm if __name__ == "__main__": @@ -20,8 +19,6 @@ hdown=HydDown(input) - - for i in tqdm(hdown.run(generator=True),desc='hyddown',total=len(hdown.time_array)): - pass + hdown.run(disable_pbar=False) hdown.plot() \ No newline at end of file From fa644f4a864964e6514648b0baf42e193ac78814 Mon Sep 17 00:00:00 2001 From: andr1976 <58475535+andr1976@users.noreply.github.com> Date: Mon, 4 Oct 2021 15:21:50 +0200 Subject: [PATCH 3/6] Update bibtex --- docs/references.bib | 4 ++-- joss/paper.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/references.bib b/docs/references.bib index d9d52c5..92e925c 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -66,7 +66,7 @@ @article{Bjerre2017 year = {2017} } -@Article{safety4010011, +@article{safety4010011, AUTHOR = {Andreasen, Anders and Borroni, Filippo and Zan Nieto, Marcos and Stegelmann, Carsten and P. Nielsen, Rudi}, TITLE = {On the Adequacy of API 521 Relief-Valve Sizing Method for Gas-Filled Pressure Vessels Exposed to Fire}, JOURNAL = {Safety}, @@ -201,7 +201,7 @@ @misc{firstlaw year = " 2008,", } - @software{casper_da_costa_luis_2021_5517697, + @software{tqdmref, author = {Casper da Costa-Luis and Stephen Karl Larroque and Kyle Altendorf and diff --git a/joss/paper.md b/joss/paper.md index ce916b2..e04cb92 100644 --- a/joss/paper.md +++ b/joss/paper.md @@ -70,6 +70,6 @@ It is the intent that the present software can be of use for a number of tasks i * Thermal response of vessel during filling/discharge. Is the design (lower/upper) temperatures exceeded? Should the rate be lower? Is any pre-cooling/heating required? # Acknowledgements -The making of this project would not have been possible without the great [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999]. The author is also thankful for enlightning discussions with colleague Jacob Gram Iskov Eriksen (Ramboll Energy, Denmark) and former Ramboll Energy colleague Carsten Stegelmann (ORS Consulting) in relation to vessel depressurisation, nozzle flow and heat transfer considerations. This work has also benefitted significantly from the understanding of thermo-mechanical pressure vessel behaviour obtained in previous works [@Bjerre2017],[@safety4010011],[@iskov]. Furthermore, this project relies on high quality open source Python packages: NumPy [@Walt:2011:NAS:1957373.1957466][@harris2020array], SciPy [@virtanen2020scipy], matplotlib [@Hunter:2007], pandas [@mckinney-proc-scipy-2010], [PyYaml](https://pyyaml.org/wiki/PyYAMLDocumentation), [cerberus](https://docs.python-cerberus.org/en/stable/), [Streamlit](https://streamlit.io/), tqdm [@casper_da_costa_luis_2021_5517697] and pytest [@pytest]. Sussanne Tolstrup, language secretary at Ramboll Energy, Field Development, is acknowledged for proofreading this manuscript. +The making of this project would not have been possible without the great [CoolProp](http://www.coolprop.org/) library [@doi:10.1021/ie4033999]. The author is also thankful for enlightning discussions with colleague Jacob Gram Iskov Eriksen (Ramboll Energy, Denmark) and former Ramboll Energy colleague Carsten Stegelmann (ORS Consulting) in relation to vessel depressurisation, nozzle flow and heat transfer considerations. This work has also benefitted significantly from the understanding of thermo-mechanical pressure vessel behaviour obtained in previous works [@Bjerre2017],[@safety4010011],[@iskov]. Furthermore, this project relies on high quality open source Python packages: NumPy [@Walt:2011:NAS:1957373.1957466][@harris2020array], SciPy [@virtanen2020scipy], matplotlib [@Hunter:2007], pandas [@mckinney-proc-scipy-2010], [PyYaml](https://pyyaml.org/wiki/PyYAMLDocumentation), [cerberus](https://docs.python-cerberus.org/en/stable/), [Streamlit](https://streamlit.io/), tqdm [@tqdmref] and pytest [@pytest]. Sussanne Tolstrup, language secretary at Ramboll Energy, Field Development, is acknowledged for proofreading this manuscript. # References From b2ff47c4c4b0df147f1e111e410a19e758f4549c Mon Sep 17 00:00:00 2001 From: andr1976 <58475535+andr1976@users.noreply.github.com> Date: Mon, 4 Oct 2021 15:24:20 +0200 Subject: [PATCH 4/6] Update paper.bib Update ref for joss paper --- joss/paper.bib | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/joss/paper.bib b/joss/paper.bib index 396d168..a7470e1 100644 --- a/joss/paper.bib +++ b/joss/paper.bib @@ -298,3 +298,44 @@ @article{SHAFIQ2020104 doi = {10.1016/j.psep.2019.10.035}, author = {Umar Shafiq and Azmi M. Shariff and Muhammad Babar and Babar Azeem and Abulhassan Ali and Mohamad Azmi Bustam}, } + +@software{tqdmref, + author = {Casper da Costa-Luis and + Stephen Karl Larroque and + Kyle Altendorf and + Hadrien Mary and + richardsheridan and + Mikhail Korobov and + Noam Yorav-Raphael and + Ivan Ivanov and + Marcel Bargull and + Nishant Rodrigues and + Guangshuo CHEN and + Antony Lee and + Charles Newey and + James and + Joshua Coales and + Martin Zugnoni and + Matthew D. Pagel and + mjstevens777 and + Mikhail Dektyarev and + Alex Rothberg and + Alexander and + Daniel Panteleit and + Fabian Dill and + FichteFoll and + Gregor Sturm and + HeoHeo and + Hugo van Kemenade and + Jack McCracken and + MapleCCC and + Max Nordlund}, + title = {{tqdm: A fast, Extensible Progress Bar for Python + and CLI}}, + month = sep, + year = 2021, + publisher = {Zenodo}, + version = {v4.62.3}, + doi = {10.5281/zenodo.5517697}, + url = {https://doi.org/10.5281/zenodo.5517697} +} \ No newline at end of file From 7161c6c1f382ee75a5d4c5add5651ceed57c2211 Mon Sep 17 00:00:00 2001 From: andr1976 <58475535+andr1976@users.noreply.github.com> Date: Mon, 4 Oct 2021 15:41:23 +0200 Subject: [PATCH 5/6] tqdm final touch and remove time imports --- scripts/hyddown_main.py | 7 ++----- src/hyddown/hdclass.py | 2 +- src/main.py | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/hyddown_main.py b/scripts/hyddown_main.py index 3f4d3cc..96cc250 100644 --- a/scripts/hyddown_main.py +++ b/scripts/hyddown_main.py @@ -4,7 +4,6 @@ import yaml import sys -import time try: from hyddown import HydDown @@ -28,8 +27,6 @@ hdown=HydDown(input) - start = time.time() - hdown.run() - end = time.time() - print('Elapsed time: ',end-start,' sec.') + + hdown.run(disable_pbar=False) hdown.plot() \ No newline at end of file diff --git a/src/hyddown/hdclass.py b/src/hyddown/hdclass.py index 5f2c8a8..2debbcc 100644 --- a/src/hyddown/hdclass.py +++ b/src/hyddown/hdclass.py @@ -309,7 +309,7 @@ def UDproblem(self, U, rho, Pguess, Tguess): return P1, T1, Ures - def run(self,disable_pbar=False): + def run(self,disable_pbar=True): """ Routine for running the actual problem defined i.e. integrating the mass and energy balances """ diff --git a/src/main.py b/src/main.py index 9c636b8..96a7f68 100644 --- a/src/main.py +++ b/src/main.py @@ -5,7 +5,6 @@ import yaml import sys from hyddown import HydDown -import time if __name__ == "__main__": From 2d599f9ec119be875603ed81802ee4aea59bb45f Mon Sep 17 00:00:00 2001 From: andr1976 <58475535+andr1976@users.noreply.github.com> Date: Mon, 4 Oct 2021 16:10:11 +0200 Subject: [PATCH 6/6] Build new PyPi release --- dist/HydDown-0.16.1-py3-none-any.whl | Bin 30582 -> 0 bytes dist/HydDown-0.16.1.tar.gz | Bin 23579 -> 0 bytes dist/HydDown-0.16.2-py3-none-any.whl | Bin 0 -> 30640 bytes dist/HydDown-0.16.2.tar.gz | Bin 0 -> 23642 bytes src/HydDown.egg-info/PKG-INFO | 2 +- src/HydDown.egg-info/requires.txt | 3 ++- 6 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 dist/HydDown-0.16.1-py3-none-any.whl delete mode 100644 dist/HydDown-0.16.1.tar.gz create mode 100644 dist/HydDown-0.16.2-py3-none-any.whl create mode 100644 dist/HydDown-0.16.2.tar.gz diff --git a/dist/HydDown-0.16.1-py3-none-any.whl b/dist/HydDown-0.16.1-py3-none-any.whl deleted file mode 100644 index 0d4f8e2a51f7933cbab5a40c37713c8eeafd4d0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30582 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 diff --git a/dist/HydDown-0.16.2-py3-none-any.whl b/dist/HydDown-0.16.2-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..68c706f1812e0bd62cf827760a9909777cee2c2c GIT binary patch literal 30640 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 Mp9OBS`SaiZ1D`YM=Kufz literal 0 HcmV?d00001 diff --git a/dist/HydDown-0.16.2.tar.gz b/dist/HydDown-0.16.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4617bd0b1018a69acdcbfeb3d302007a449c7334 GIT binary patch literal 23642 zcmb??1ydfuwk_`N4#9$JaCdiicX#K55Foe&_uv}b-QC^Yg1a*}=e+j^Zq==tnwsjK z?&+?Yy=Sep*N{fR!L1?anLq&2KIY<1UXF|`Ost$tY)tMZu3#4dc3$h;i6{OBxxauQ zjZ0z~$8?Oc=Bt+JHsX@~ivg9lgf4cS>Xby9DB_5P_$0HZjnAv*aQ3vVoAeXwk{`BceO=xELCs1wrjLzcLp(ft@b z0yVEs<^VTW7qfk9%QCzNES*ch;9$NX-^axE{pj7u z!l3k2(_6;FrLTEo2}7S9MNmZ7$i{mA5=A_3`aB037R=n5F!Y&V)t_b^hASMBx8pZb zKtlu`HuTf-;VTu@osG`HR+163h1KosO_U~RKRHUR#uu#}+v*82)8PCXZg+l1p+@9$ zoXc!_rrAw^vx1pG{9V{Y6QcXE!kkc=L-s35NpSjHqJf#(_?rO_&No}-q6lR30!|Re z5Q$*#t(u=;vyj=NU~YPIfn1qouEk+C15I$mnT5OY#8uz_Vf>&+RE)*;ql?}_H#u- zRZ@)GGVJ2z`AGNx!&cgcRLcdkgItJuLej&kQH-5NUu)m5FW|bqyAJ=={1q2e-MQiu z;OY{oY}74e7H;qC?djs`{_=Pojm$I+b2S|Y9;^lSbboOFfd9?y{qp%CAwJ+QD4G3?5 zj$kaSA%ia{tNUf30?ML zJbkdg0t=p6QNy5ylyaO`K<6D4R-)vtwEbqxeR8{Mm66}I!n24wB#1e2WBS#5bQNmp zvtm%x>$3ExnGqpQ#R^J&XZmi<;TY>m<7M5UyjO3IHi6l^bA|mW-k+!|$DL|cDXFcj zji4o{533Emk)c=rj*MTVQvtPiLxy;Mavuco={{R?o7KzJ3QkP~v}S%P;Tf@OSDt?% zW?!SS`;)oqvp=w^sX+Bs4DN1S)9>YgOH4QVS`_gv?50&}iBNVIaCkpB)l)lL)#T;# z=$ZRb(`JbqEBI;7-566-8$In2n>Uk z_4TiR23q&elqbVXH*ebS2q*7v&sU^IokFeU&j)XlHRlmkD^nf;g-U;7eCs#W*E5#R z=`SZeI7-Ok=bSqu9Ktlp&$opTrtP$6_4Vm5C%zqFYOy-78hWTOuv)^IHn1I=d~|>> zji#S339V0+oNj!cFQtmt2n4i>BW4uH3Yg5?)e5i#b z(PQGtB@(zJuv1A9B1y-1RX%_%H4~M)y_I?{9Riwqa+k~9ZY?G(_@EFy93kJ;bcB1< zTKB+?4|uE|$de-uczy^ok^g33clHt3zRX44IqJ=J`M9=k*v(38bHNLXDRvWB1IGMl zdTc>c+Z;d6a?@(g3EJO9)q!Fs;b1WcTj;Tl`{@&urt>=*T1K`{a)QS7CRcl=@g++{ z?@z1t6!Np=E-XxLQLA||4H@2#?jBz(COit?N31V|v5?Q1DMpZoDP|KAX+xI&T{avr zrpfrtyqqwMAJf1)s&vJE@9NF$m$nv2{Bl}@(&{)`UkHWZf&LWv=};8;-x^ULC5~0X zjjW3gw$bk<_AFAweVTGlU=n#7;6E?CH8{cR|wLw>|h zA_@7e!{*gEzzuK06avTEbDi0@waQ|TsXTwQF}N~0h8PLUl84d60uvd-@><^qmVrw{ z>kW(PP_}>Yjo}OL8Rq^_+PYkHTbRMw2p|*TNb5ag?Ne39L)Iw91n@CvH19sEZ%ZnAU=+YV&5f#NOp` zM|mT$)Blq3MLmTdNA65}S%d&|)c14D9&q0a2y3rM6WYjq7lW|Q`_&kY;@Hk>`qnqF zQMPjMdo{waDZ**AQ?fr&2~zp=j~qLCrVUh9sONZ<`H)9LJ*GYP;#1V?dWCmD6memm z+wn9Mt4f9qm55OFfOs!0e!4ls8rcmQl0cBoAO6b)pV~Wo$fjL-#jo$9Ez#6b45hoc zd9YXk5}t2-Kb?=Zz(cm_qNQRPaV0Y%1NF&Zol3=t4YXx2{m%0tZ*Q-w>ayf3#BH(} z;{oEkHP7>8L^ppP*kJknFZof9Xwp>Q60o?}So(2c&`kDj;pnGsk`beeYL@9?sZ15z ziCipRHyT-WBiV6|@G}W=SCMOOel#EYR>0R_U7d}mo@2{{;Sq#)9|mjeK+r%SRcwE0 zrYQf(hifAjV7^x&NKGwIE^MAsQr+IjKh$n<#-VJ*+s3^kbVq zcI50ExcEe4$h-~>7iRc|fiZ_yM6l<51Q?0=Cnkkt1dd++!hUvmnAIz?`zE>=7%==h zWBZ05I@jl?&2O<+qF-o#tnmCv38@KgRw#&gN=@YBe?CO;WM>5ZfK7pSePJYr6W1e? zU(VS!X6jvmbPTf$3h|f^W=>iTy2hC?io0d|LEVg$^iXOuK}*L0Llc5!vfQMwHmkGp zi%-rd&5X0pB93GC93=hAjK5ywFe(RJxM%m534;o%_HwZN_Y#VI0w@^QU&b6PkLNsj zOxncUA9u&oWJJ$mY<}f%I9QMgU$C*E?qk)GkO&h%L3q2*z4D$4J48XsI%&;4P+@0o z14!H!D9n#|aF3;p6tXQWNy`v)rZln}<+&oxmSzk0@GHH9(z z#4Qdci3nUGEIyEsK|$uTQz^!H87ylf$|4xycp;&mGNpXE6z(;m{7iiP326McYwr4{ zQ089cSYOEGCtge~r#rWM_}Q|~_{ex-p=joUK4#rHj0H)%g{n!fAq)_kcl^w0WS+r$RC1;(Z3;Ssy^jExcs+F&SWJ;oR^B=9XwT z>sK-(ZQkzoPJlb0-jklXO)&{u8)L>pw+(9KhP^OM3ZPgc*d6O6$;5ZhJfjs4LPouLX- zDe5L`N^9l`9!{hoYY(Hgk5(81`4|_oiTVnb1<3{z<4Sqf+0p(tp`yO9b@6oSQA;2< z_)(7reMQi3;zejESOUt{ShmuzA#SE)y)ONF^p=@n4RV#bbYyff)A4#T)W2li*e(!L}d%5LQHU zsG=0i?qmXg+(LXNb$V)?9~D}tT8FpzXf}|jU%~Fv3v}H3bF=W>=F=i!u}7(cbnq`c zXNa`OM5#3xh}{j6<*D3|9;a_?QC1-Fc0?(I?I%Tmc<<#>&d@^`7U)I1pJL$+o-t2+ zG{S=~8~0YMic@dFlbs?rcTevIgjNb{m{EBGL z7Mh*;6TP$Un11V5nGgL^78Gn@T2u&(6E&IG5ZT-c$BgJV1=FDUk=$Ht_MPbrd`0-z z*wvrhv`9|+&}U<~Lw#EmI^3Q6^@&_j^5$s=INoY}Qm1bCd$q&Mt{cuB6dt2?*BS&# zWMzJ=K|I&RLrhahlnGd@~Tjw;COzVr)(@sE|m@}x+{m_ z1aH?cD*OQ1xCzyHNt{ideIK?>%;fnr%q&#D!+Q_M&2Wu`vvD{8^?Xh;^2u zw%EnxeJc@zhfq`_k`i(UbBn8N$jXE`0 zuiz;HW?c82GW* zdW)=rkHgHYljsU17r+-o-Q{xBX$M^E)5+Sw8|N-2YFKynS|Gm`UVp`wcxux&O|Wtx zn3pS_wn^+A$IUXqBGjH-UFRLdrpHCm^RXv z=)50`sG`S2QFQ|000!Bh{fhG^v~!1lPYK!(K?1pkxC^5~&9yPzcnmmUv1`P`XW>Hm zg%uG`^!5^&-EQn>=`ce1a%M<G#Qi^;zf~Cw z0J&73alH?tBwX)*4A0>LPU;{Z6JVKS&Cz^}o!hrb8yZv<_&@pCqkT>XQPlTXevqQs z%4%TwazXXWF=NBZV!w8C1E=)!0PV3*nXT5D&4+1Ipx^5@s=nas`}XB0YE{$=Xz+t{ z@U$%RO?k zA`{-cNANIpx!S%QP!S$b7v-a_>nj)UWykV3@4+&N-6S7xT-<3;`{;Zyh^Wv=mvJ}_ z56xjxS-{OX>Am0M`1Hd+Dt-C zXuaj^vrM|ToU%Ra&LLq$lNgq~?!ex-zu3$c69yF3qO{Un3@_5Zm^Z=!q(vZw_ zpV?8+!FHeNPWY>@$vGaEB-QqV3_A=bkKetLy|RW7MqSBHdI>AWeA4a>T{LlET3B1S z^kdzRcN$Rw%Eu&9+}1195x*F%fI{E5M?U+r`Lg>y>Cd~p_ii!QK(-b0v2OrxhUPi& z#(6G8ySNof+Itsz`TI2|vmi;T#Ruk2hqc|EWT{p&>X2BlA*Gjn;(eahEtT;rv**Yy zK~~2@)t_I`7Nb9n(zMoXK1LO0kdbC0SS^;rxb8>V`b4dJk&lZX%GlDEAjXy4JJjiJ zn1xgg3$2v9Sh0@aof=lHEm`=jvK(XgBRu@APfoGeJ;Ws=w=-DL)f*mlw0{cKYi$W; z^1xX7n7G;@#nk#iLgmO~Pm}aLAy9{INS^nrlt5EGJJVnH*RVWQL4;!8H0o+N6MhXe zJEwAUkcD-nN&a;5+peD__WYHo^8AO2){nIL4vrU5miXDIi=KW)I=$NiX#=sh_^|tQ zAu|Ny(Jj~2)%(+Tlf*BqdHCxnu=~992@MArBEWfEGm}1FZFgf#|AcyecJlams}m{& zGiRgpYuiI5E~bfb4&I@?*YGlz%lulo=Qdi0S|VwDwomCx)HNg^bv>-F-`{}?%oS>3lx364^mKf~^;)yvB<@j(*H3co-Q$oX~ae5X%m_aT;-ihww2 zfFYhRTHY0?UohbE#|Ye~yu+Fh{^QSfi82<|{^gTK%M5K}(K`6eM=M7v8$CHJ;W)Wf zknIT8V#9>GC_dRNdjN|{zJJenh~4bn#(Y~-_UoQ%u5^xOnIx^*!W~{#tuCP*1RVNk zm31xotkJ?|EzTK1ptm4Nc<69H;t)M(XVq`d!$M_~d6_`AVt&E_Rw%6}6+X`Jb*90y zA_Jl)GhnRpYI5RcqVL{|6fW({A|=u~Yeh_BrI~1IkUP8L?O~d4Sjnp zjndU`j>>8+CZlc$rotZ`)5ahjXecyMtBWwz$sc`uAwuQt<+HJ7A`m3a!?4Df$laXB zEnfoOBZTQh+I4wZDQ4auDNxzbckz>56nRRj->Gg!2$6mEV}gO4Ij>Fk>*;^6pU0hO zG#A>^&I)YE3rg!eTui#xF(~Lx6=qwTp*|db8=@-qr|N~RrH3NvyUK^+87FpQHUmP+ zSiGw}W)*RiyI!yLsTfAUj@7J{f@2L4GOXVYZl!wTk?G8tiRoW+E5@%KaN6gQq`l;{^UDkKdo{vX{HK8^l@iF7Y<#+GB}kGEynPz z%ra!MC?$_%u1GutHlJfwf!&*d|5?X(s+KzBNoRO?Y|BB-HG>fUGklkF{)=qpV11I$dx_> zJSFb3;>+dAVrNiqQ7<+zV#WwQy~()i@mhK_Ly6YPw6N={m1hK);ky1y3QECB<~#}L=wBdn zN7+dllTRmqn{};!KP|Ch_S@NEag5#R*bo}>oX0%YWha>hv>s7IkDle5$j%u zu6m}GJoz>q+!u3G$uw7K0XBJKmGp8Jjx#^r4^qUt2~}bXTMQO6?@NrGmjV2v`kW4I zazRAeYs0a?21}UVJaw3yUh2~B4@ESpQ0hQZ7d7k)6i!C{yBpbehV&K7FD}ud-q)ck z>vDb%P)gh|p1StCK3VmGqJ}y0sN86W;8SP2r#OqpLksUn6uOwSF z!*a>GuC;i2b3Um|lQ}-W+BP7Z`HU}?48;>E^rttcy^ZVcBGet*A_I#UQES3OMHTrW zkfWw4o1`=vqsh<&uK69`ovI_qfjv9Q8r|_XQ^`b`0>0Ql*vBV3UHFl=xSm9mNJAtU zo=X=${767F9NawR$etJnK-=EHVs`Y&zrI>jk9g;JJbN-ua}L}@Y!@-N!B4_pFzI~s z`=Nkk%p8Blvg7X{Gf9i$;v&H^6}+LJ{vLU_T~UaAA|=6pr=<;rTOvVKiQ6@IKn?jS z)FH!IAoH?4IPiEWG2_)s;;1h!Q{+tefM)cJB#C-CtwMcC{AeGpX;*9cvm~&(7}ap5 z@tCk9uR@8(8?^Qes!xvwDkR>4f6!*L;Vt(~w_A@A+&}6Dw9!%&U9ub}0NmXQwO@FD zg4CcBl>dRA-8+{rOhH|~wG^trckUXH?52qGMZKaIO@D~_NNzX5+{2hM*+t-?Obgh- zB>&;$toP9|%Nn@_P2JAVGjn|Xh5b_nG2XmgvcQU)vECd9Pt?X0NxmPvc(wluB~Eh> zvxK5D8>9j#mo7LgTy3nc+nk-$|4yxhuY*%kE)3Al(cJj%+^od0Xbg2(F4tM69L766 zbYhe^H>&tLM{}9ppXfn_OvptaWqYc&F86aRJ)wkIEeHdt?z$!V$htS5JUYf^ffU=M zJ+9rTO5SxNPq5|rbd1l$z9BWN&!qeXl$dmLT5H;{nBZVg@@T#wb8d=$9ds;1$hg7a z1YOf~oUK2fP9g2xq+Nb*A0m41p2O7Pt0E;@(x!u73%{Fp+$teptB1J`Jv^Wpz+I2c zSBE#Oro8^_rnWBZKbUOC&0hg@&VlH4P#S3YqBIoz8F>vf)$&Ps2O9s#jWGp|xsm{* z5ujT3v!XL)>B27b9pF6d_AU%^Xbo?&_+Tv_^1SV?YSR7JZg~Kz17S5%?A=K7`hi`hE{d?V@=0 zZ`3}S+Wb`WbJ<=&>;Rn*#IH_V`AR#Ud|<(Hfa;}C{(h(f4bDF<>&NGF6}JJ`S5vE= z&KAE^E2pRQgPy9*X%Jsfph;WYLZ8ac+@=+wkJ}+aCa>oqZ|1Z2^p9ruxaN+lcHJVR zKb;hpbld%R@lX3XuCupWcDF6v0zABe0z%Z`7A~8{|3}Bp(K7PUp%3m0sl>Zi{d?Tr z`!+d1kpZ}Te%_v+JnP>$c77cJde%u6R^G2TBkw@D#}uY_d{-z+N`|DlMl{8ZnCJ29 z5r(j>nCB>)qbt3QzYZg|Mim&=bcQ`oq5ZvPo?{hZTv`s#`_rMQQdl|6#a&6fb_ z>}fi@eLjHFy&6FjP)|YXuO^-S|EC!|{zqNVx1TXjfG~n>VEw{w@>2x_Rl*q4n<$JiKTzEX#yxQ0vcbDtG4N; zfRCXEP<-v{`&qYV{W{IRW&D?9=>s;KhDLTx4gXI8 z+{v-TF6brpF`$^vA?8o#lUL1tZMSZ7L|jKY&!@Qvu|Eu=m%k)#{XV#r*?jxD)dkGv zI+J3?iq)oJ!S9&_&!!N)d>g9PY1vQCzZhF{5^p!~h&KKAg7dxtfruU50VFkcZV>d( zX^(M`m1;1IqT5$4O+S`$v>SiJT>;_R?O1 z6ihR3s=tA#7l7qs`x56ruLn=N^c5G!?LDYHc?ReS5B+4m2W5P2tG&saM-fb)kVD_8#8Ww#>m^!nkL02rJA(euQlEF7-)po&$Sp@;4z z8?4vvYXEd{1K3mK%}>-p^6cdOosUk-p(f3N`h}nLICN>c5C!2N0#pzc~^AO$VOQ z^$_sFXj2%xPG&5rBx@?zJz`ZE%zs1HEw`~%v%y@uZYb_8PxZ<#a6i?;E$3*Pq4HnR zQZLP;3n~r!fcF2^7)}L_XIy3DP=qMa&^0#@_N@q->i3yKa)twVO-i}-2R%+A{wkfw zVet~wkKm!nz;?NBjvQdjg|78-;*PdIt@LJjzmEkZmu{T*ZsW)=bPbh7ABfOVc&z91 zC+bMpihW&sCLF00d0|S@N@(MreG|99<{i)`1#|y7k+D=cyP>@Jjm;|v&q3q#i$YL7 z9eR1emobGREwwjd{}OUny69|8H9rH&Rs;`@m```UYm!NGhA=RVXo=EmSXl@*IwUp} zlz5`jb!&P?BJR@VHd0OQZed26^~yfSc^Te8;f8T^JD)9%xfu&MZ$2xM9;bc z!&W87%exdozqy0U>Fiz~Bz)zPvTA9SZizzW_94-h!*Z#Wfud#_A`O|Zs3@4(7X?0< zjJ^rUHV>cUpax=c##_}mcI~(W{7;+4Q&ee~FwjdiC-a=zOD;7qzYBWpXrmK5y~9z) z=q1hf%GA0NR{BFe7F$3VkExwE|F!Fa94K#5c0%WgxC+W!0ipE}vKHp#iA@!vl9G!r>%4Fe{ zqY;rCq92T|XSrOm5*%_38aqgpsN5^aQy7};i!2*nHj{gPnY&+=;5&Fukc-4FJd4SJ z$$7j5VJSI6LAN%5`v@9)HG+Ow0C!RO7u^q_sR!h^OTfuP_vT%QWhC+e&}#mi)-T~A zHOpqIU0v?{e>nvB@k*+B(AiXu{RSX>(N2k?nKa`|m#_J?r~Vg?lRo zcC+B}Y6Bk8PgO!dZ3GgA8qqGs*V;BW+}zsAcxf67FwjOxfv}Kml~wL<4oC!a#3b<= zx}BUb@X3}H5xpYNT>ZD!e!qYVlY!JSyy=^#my( z&pO$423{8|+L^>ult}m6bFM{pOn;AnpYx6sBSd(sjt7*C0h9NVRpz~arjb<7+{gZ6 z$()a6+o4O4245aI!rK+%D#(GV_N{*PwD|nfx;z_p1;qaRl8M}X$1coDDsZV|`_*1p z)7Q$IeUnX4bxD>KV1Fd|yJ!^mvL8EVU(j6w-XtQ{{(4sSSX%*R`IC4>Am->_@0J}Y z2TOa;)_1_0wWAfKf(zRk)3$*2y9G$w=eb2;UEo^Cd!voKeaC{RsPnEqmu)6rOJ?E3 z1;O{8A5y|MHI}+lHs6;tgs01-=>gA?y9WGC&mrB%xQU@=;njZCN&FM{(Z~b{eKe}r zT#o$c4*kGw286#&#rQda>pB6Am~Ws(^3SKDb0KWZ=Y8F_#aUk&%$h~($F6wz6*WZ6 z>!`FKWU4@0-DC9Vo|H8QTux&X0Q+$}wGrU`7lRcw0LCM!^ynL5(Ah=zzlTW&^?kmn zJ{lDimAXK0+E~-RbvIt(vI0Gi^p)L0$qyxElYOuMgv)<-B|efK0uNE||E{CfKypt< zBH%k7FF^M5r%>a(1I{rJ$n(Zro}2k3)E<{h!9aVd*yrrmvns&9PxnoNH-^y@8ceMu zlziRTda#oq}!%4cics{d`(#ZRo&;{JnjW`v4@3#fkbND{VuQl$)AF05LCj5atfaG0?O?4ghh#fn`5XTTD_r`f7B+L0EJB52Z2Q zgVcfl;@shXiruNq6mUv84cIhAzF(Ps0K-N=1;4vS<-gbjU}pe_#;Uy-!vElvZjIrG zkh%`Pte0HSC+PiC2q_%*72pwMPTv88>AzfA4%2AT2m0WS!EHv(4T#J{}ShJ=?Sod+QLFI9~XO%-t1M`Sdu!9%rT+i9-EE+EQ zu4U?bM#4ot))pIeWoFEHi{?3#-Y(QVx2a}+tZa-uoI&FzCreOUI$T3|xd{~^FR!{L zRxoM2DdR!L@7Rr&y635{qWfS|$RVe0%a-9Gm`gCGUk2`2-`g96DAIf3*p6lzDh6h} zCeK2rPGrT#GM&{w zN?OlDyH~P>=I!m3*qSe~lRF-vzp^f%-BIMuLklP%v7k_XYxLh3u08tyOtdIvR>+g0 zvb$HTWL1V~!@*d}`5rMW7&?HAaJNM~vkUPau|0jlPO9^AiWGRW&X{h@>y}{DGi~znscQh-xvA zqXU*@&G&nei*9{u?7Xf^#={+tf(Bs>vq(dA)ck^^>37a`A9J~`K-uzE3Ub{;(-EV^ zktg1P#w;ZcHv&O3SlHisoBjDvx+eR=?wuGDH@*7*lxZZoA(aby)%)to4NUvtjNV%9XW*=8Mm=i zZ9rV-1V)KU8K3Q>APfR~sr^@%FET;eb!0o<-_VQ)7!YQ}OTYs{M7P*F<6Cm3J+)u` z8thsYW!UFQ+geOM6}cFPz(pN!C#W zgG`Jj1yb?1xGz(ML%g`f(fUoGqZ@5vW}$y;jH)9d>|5pW@el0D=7j8E3R2M6=PFFp z;tCE<(|e0%$2%v#Cd@MJ6+7p_5_z9*#_UGhr)m=3=rSq8ccIFOf8!|SllCKLy^WuS!nE{~8TZ0d^*SHZQ!!)L65*4E*p&Dvx z3-+DaLPz)7Rwzp!{)rt^rdNMSXn^S|=k8b_ute+w~AnT`HcTJD!)7OQEvvnF?} zOyUWR5IXRzy?2&3w>XReGH8ojyzNg(e|U$`X4mvu{kez{9kKXMW|7|;l_jgX!BxZ) zX+glG&fLip2x#LbHlJ(1X0!88ge*M4Hv3*j@ZpOFF$FD1;NrEZ1 zRGQ^ssDF0A-#t^^<|}sSW3#2~+ly_wmyF~z00FUqQE*S1#-ebQIPQ~aOBA?;Q zh~P>vfw~Un4hqV@{aJFiX1}g2yD%Y_tZYjf6{+i;UY3@|^4(uG3=9zJq);I)T%X9P zw0U>587PWi-lbI-AdO&!j46~V6r~C^?n)Xg|Kfk^G3uw+k1CV*9vMiE0I1J<8}kf6 zCAO44nMfqcsru|LDjTOli)!LTtVvbZRg9*y-i!(NE4-4NInSK;aCB6L9ZqC=*Moxz zA%6YkxEDYTHs<%#LnJoJniEpSO*@L|8G;h)&@pE|Wh5{-L$YbUD9|Q@A3t{?A-Wtv zptJAnm#_%YBWtt!;JS`u$Xu`MO`Jd=e#2N|;jHNQEYi=|NKhOVVS5{K701PD!8$OA zYDy=xi749EAIe1d>)E!gZir^}o~J)GX$vQ{EHF{PXrXYlQyPiz+%!JLnEm&2MdlKg zhnBlSs2RbiS`@MqfkCN%c~GoqqPTm;!OtL`pO=48#qB(QkIS#R{$`f6L;n?vv_jH* z-o#vTbkWwt%)06HCJCCdzduGM_;?A7nPMY6j7r$`PH&ZtuqPf(>W7G3QAzCF+r3&2 zPGHkv7m=}G>m5~NB$ibs$Alpku65KOpvC49mbVi?;$0(0mQ2BsO9-QdypV$fwnBcK z$NjFGo->hdifj=!QHc8vQ#}V>yfUBJl-%`m%Ubh1hRrGji(v8!A4i{S<$dp`>6U}g z70J}43@~qJ7|am0oUp=PZyaE@#~BIjJ^^Psdn@IsCd1UH&$ZaYn!@X2>*7P~wqG|( zOvopBLU?ed=yy-wszS7%OE2t7?q@i9z~Y0fJJjAM)VtZ+0=AxsC#M~~%d6=fZkGl= zT_I21$CA+ZkdMC`u{A^JX*T`gf~>FK-Y#$Ev1Hng#i*P@ZJ8<4#a`oxGf7ES+Y+r4 zolJ9m1@`C|U0=Rn-k@us7}Kv5B>(OrA<2l{VXk4hce%FVL~uG`c+GxkrpGh?8^vtO zL!xf^jE|8bS=I%)+(DAROqGCur!XOY55vaPPdC0h0taw_{K2OZd8p;N!z=42_@xWWB#{29{M484d~ z@41Sq6g;^e7#Q6CU-P|(gFcf_V9OBAjvTYyWSSiM%WA7p>XYGh3e}hzTqhv%CNqcN zK#uxHPV4c;CSumI%Ybm?!rKo&BK0kV2Ztn^{NGuDb9K6Z?esNnu^Ip9$Vi+n&yf@4 zqL>`1&csRiiE5b{-0D$Fv(&eKedFq{-Hb&2YIsggb_*lnqRqu9BQsB!^uZHKm27JYDsEH z#sc@ml8_eST#sugy-M{}xr7;I+D?dUjkas-WoYU2xjf2IBA)0}VWA);hYL#`nybKw zJ@7qouP}J^tz?YJ(Z`z|WF)L<-j>o@k(kcWhyw_|>K;mH&Fs^=LxUZme&dS~G#^qX z-fm6v!@ppGN-HxqU*Z%n@waLMBt>dgbe~qFptj(|x&=9AZAsRbeu$1^90a3MA()fB zN5D}U>Ld_!j0o=~7GD0qXS&94C0=`JkR~%$rNPz1Ti80#J+o`TL7I`!FvPfapiSoT zyZOsL1;6;3`Sa%7U=#X zhS4ijoGeWjFBtRLeK3;rZn6B6EzD4wenH0wH~AU|b1c-ZsX(b(BpwswFU&38eT$|n z^*W6^rZGe_gDK%i3wpROt+{{qBKQ9Nx3lv+oM?me)T0!%--HpdLXcG5OJmp$i=9}< z!P)?OsAeX}n$_tQCP=&dGayJF7NFbyn`YQgZOo@t>}y3HS(CV!ovy^?h% z@JwU&kc1#T{cpJ8GP4kW7)IN~fm*3ug6=>8_MErjUw-3EUJFC`Tw}+J!mbe&>=ESW zYTx8y7N)0z*RDS;lm_64?+9dVsg?)oXWUH6bb`Jrp?$-s+&?TwI@QMy!%Jb{4bxn{ z>tO=UmAq*(6`=|FdPHW98^#Vs@udivXSu8q@bzxEj|Wq8xJN4iKdH;!{yJyNCcq9H zn^W40=lUo6?ng~R;9v9xJPfI-%4bQC8sQJ_O5z0|di+R*nsRf;J3WrQoCHH{?Pj{dilxkRR37znn8{c<^eJMzDV&*lIN7^>=4Pw@u-rYq%7yF zfrj6kbH9`LjwMF9Pi!Wo%$_oREt`>`=nqa(v4oT|@RptHIzJq>OY-w7#7Jl)l6$zO zlx;sPVxE_)u9Nj^O4adR_R<*W~}?-J&fzpCYra7Zr#(nbNNGX1k_C?q=f z_5Dm)Uwti4f#YQBgHB|0Wc!)uz1A3_&M`m2BR6U@!^TEi3JP}e7~gda=G1RzGEw== z`vQth%pxpfJo>3dX;}#GJ~dI4r4|3oCCcQx-wGE_&e>?ieh3$gKDtblu2v+q20I*T z9m*`xYT&+J%wWx8G2FW-b&eqv{@_JDKRaZx$F}TlAIL^KEl3*Y<{$URMWv}6=-AQu zWfzqXlOqWBOfq9w@XhhLMTxRSm(NO^XUk0Sd!%>-!9K7@rlH2JcA1-mfk<`!{Xoq^ zB9Z-uw01M@jnWNMe^i6EPhNCXWQ+jxl$RC#4jGcki_^=s3t2Xq#P#_F)vrKj+YhDpXltBmr@cbijoUd zglFB8WpkxP@m7B2mHQh>0+>&hE8=u|zJP3MO1rM9C`@J7^G$hW(ig>f)@hmvugr*< z<{mZLDlQYYA%t_R`7}!uji#7Hr(CFY6K_-~LY z%Dfniy^XN~$jwVHd_6PaKlM(66}gH#U3I|7-LZclQkhe<`i-PeXIOf72oH)ZTT4_G zWneF^4LA?OTGVQFpT7y9m;+MCDJ8G(WQ~DqFbENKmNm~wq;&!?nk!z3!ATrq&lo9r z>bHeCG{fLmgC%L+U74%K`m=?3A%U?qTq*~DRkws2{>t6b7eoygiLdo&Az89r$C!~P zxEzd*Lyw=}v&-}L?I~Pzct*U5Gl@F+6M6Oo;|`$9nSSBFp6!!2uT5Tg(x+z-K-M1v zgY_8`OFZJ{!{o<-_6aTY7Q6phDB|L~Xs#92T4HEXb{`d#0jtW6n@-(Brs=99qo5dT zdsfK=>Ctp?;}aM+-F-wdk57vj&}9(ET<0eTA7ICueiSZu&uq)Bg35K0ASA@pd^Th8 ziDnoW{3TlHItqWn`d993Tf3d!9iOs$snBtrxw0IC$FNzh2{-cNsxkXVnACW_qq#El z{tH6f@=8$Jtk{_v90K{|!B*SOfp$Z6k9Yb4v6;!XFkc=*0pEji=AuC6Dn07meVrHQ zhTZbUz_q)ZqrB_mv-F$NJ2DLqq5V68O}h{ZxtGu}Snu@ub70W_2@UWI6Lvr z`OlWbelg!6K(<=s#ZH*qd@_*M$K_k_{!3)b)-jhx#BW_trHH?>pRs`O9@&fgs#g7I zyG!cJj~TcK^sDwpf#i`oT+(->B=R$4ZHh`e@{O04%(hS$uBL8VGua=$f&GlRam5f^ z>L5Gndr4a*9C;Q7o`FC;J$AHNo`x>>AE`^&r1sj1lspSf$4{a`p%Br3z;BdVrWVw8 zgO@)k*QIN)=PY8}M}?I4e(SfSkM&~GH!X6b9`x|1SnF@beHU_4?A@7&mXcr zt~;_lZ~1RYORK5p{wC`OiZ4heb-XT<%vJb}B%rfKd>l8J=>2TTjLn^x9Mm0YvK4v%)>-v59EE9x%OHUI6o_Iw z?7sdj_CDD8!)?E}bR~snc(2ysddQ|qA?2+8%NR2v`2{gHixb3TlL ztx?7IhG|jF6vC#rFkYYklm!K%X57DF zfs0tneHx75wQVMju&CELePdrdEyCQD^WjR*>v!}uKl3u82lQWOF-UZO_up(ZC{GjG z{P^X@QqY2`_A_5_(NU4ZC>zSH;jZ_!0J|8MfC!gR+BJcf@$Ec*{c{-u>Ep%maKg>e6K^zQn`iU4$wI+XSPU6W2I;jP#a=1*g)$ zq}-4}u95FH(fmZwPVuVqktckc9=cP#3EE%wc6G(M%X*B*FQY-IIhLq$2peQY7p+IP z)alNrJl{i!Ej;>?^Ga_#A1k-YIyrJuMWQ_M=7Qf!{bw06^n8?0Xh zt0snN3LEA#*qa#2;0xyv9Q%A>b#QBUsM}9C`|bJ(_gcBsHsG>A+Iv3EWic!27u$}I z0~pPS(D5T-1!4lxdTnlBp+dC$TUfrvtg~8Hi1KXWPfrl8c^uXhUF;Q+y}nOzY@UBK z&}PCG{79EaO~E|GCcEc7$v6-xk8zo9IVACCFv{c5aj7`0(69ISPH{mHtEFOBv{M;1 zChb+;#UW5yA=xguqFzsD*Ena_m8xgBvmynK1{hZgxLh3(cu(q{;<6M|?3iAQn_h>3 z={3%UKSMBp&)jlC!(K^*Lr&`*3Z3QtshIT`C7>b3N2qjyLVHvLJMzb5*#wh+=MJV( zOw9y4+ilu$zA~!uFZ*YgYzHqjHvAL3gsMy-jSZhUb65uxwgwmU+>0e{Ig2E$;%X&` zgl(KP<6<>CK--ZCM#*sKrg?3t8}S^N=R|BDV~jW!{@!LqpG>mMkUBE+K@05}-_Tslyz%9fx2M31 z`UJ*YHOVw^Zl&`AkKtGoZ8+4^cmz7S&B0I)FSh{kr^QK%X2;ow7KmYxkg@b>+DSOV z*g^+PFLXXZSId#p5ICDrvu-BCWQb)!0_a4TH|QUjo-{|Q-1{RrfRItFS>ObLlAx3` zp7d0N?o8*tl}38Ks=tPyFS?QXN6ee_`DSYI?b1dG!pyT%CbAOq#Z1fdTM^ zVxTulO?K4?L;X4l(O*7#M*W>2qM~IkE98Vl8;@5CYuu``6oSBl*|zYa5bnebj&DO* zx83P~0%{wT%~o&TLN1tiN&{pM}EPgDOT#vFD0*)|JQ&2*VuH%|Ldq44J1ZQFl`H) zX~61?R_?OpbrkG?e29?}+*`G!g|dc!q`}WNV!}JK*74J3Fz|c!9^_AU7HbHC9^b+k zns|YSK3}sr`SCd@=CH|OoaPpcrx#`ZZz z;X|j%lhWEhO|~8^^^eKPQa|Rtn>^~bw&<h>#8SHCe} z?O5@PepiCQF)d|jUEc?sSdVHCUC?UP%xg%wdmayyobY=ZhK6-x%A8)E@RzU4 znOq`P(;^wER^C&}wE*m(e&HXa>F9WikL}#aa7Sgf4lo|C8XS67E87zEb4(iB7F>`l zHK4C$8Qo)Rk`GQWby-%AAAhLwIJ^bjwfs016OY|M)s{}R zz-o$8EqI)Qt~fB0s+Q7D9!Zk|bWCz~l|4134nN2{EFU|^MDE7VBIFe9g@_&H4Sl5I znvwUxU8Undn`AJ+l!uF-AsLHgRkJ%LjwXmhqxe*Q&*YkGyT;+I?OGl-$-enWCho-& zN``-VvGbQd*GH)<_5T>?w{Hx6VmMFJMuUH{{x%v~C;X1jRkhV_{)OE>2LV=SCqVO$ z-N`@5N7L8>=h}hVX*M;r)9tECSk)V#91 zd-&AobUGRHU(;F*EjIt#-6qWcMlt`N{PU9eD@+)6$A-mXozAvm*O(O-tTOq+?8VMY zc4RN_9NH6E8CRLs&{TG4f$DJakAqq0RBW&s%}sYk*NDJdylLv)$pxF6W5aSOm5)y6 z6TIf9P6S7rVETl&OfQ66&C}lq53ucs*GINJ$4w=Q|HUsTcAC7{5x$M$hU9&&Owl#qFRMi@+l~CZ(-(nJNX5abuw7+|$)3O3U@QAS^pT5y zgWnU=!Qz!6o-Shyht+DWBwBY%HQq7@%m1Y_@a&~w39PU)riFF)leZEeRtjEKUExJ) z?5&NazyZB@y_(PY@4z$?o(XZ0flm<<79y23IJ=rQHL4AzVYI~q+-KQV+WzlX(gha$ z7DBqGNfp--YW*HhzCgFy{{E@vJMzTFo}lW{pz-eg+rzU`ykY<@gaD>r^3IIX(T7a| z@Ja#^SQZ$_x4GLeu>L@+u~&XpcSGs5@!y6jXZU z)2Lw{>jB+xQcb77x@G`6#Q;3U0BCXY%iBmcp96G@iv|VoLTrk8^5?WAA#yKfbZjov zlyUiod?ifjADdOW))xysZ#1daeMd5*a>gh|w^R57hcN!3@{JLMZH=`Xjg&D8(a=<- zuLX0Z9W*D6*V4UdhU0|W6mY15adHimk7`fR{73#y1UjHWmBzQB^!va-RArY{aO1mQ zwknOX+DH!bKkhMLN!Iup2leO`r%YG$6qniXq^lZxo%pb4>^7nC=lf)6mqfDMjb z3GU#`fo(_=SZpVNfgaLcWrmx*=C*50N*iOa3k#x$qY-C3Eh->@TSEbn!HF7jSsp7E zJoY7cEGmH1Mymt8Yjzr;qV@yx5jI5oY-1(_ymoQ)p99l4r^YqeT0ZUf^Cc!%cCy3?nPf7|=fKsg+_u#6ph=Qz_V#1W-hNjDvz zA1_As3inIk74DU$s=_pAH`+=I`Aw6+r5_5yH){DH1jt$JMA3%QY_w|tyGD>}a)3(^ zahB{iummhUp}$$(73abFofg*-0TtCoxST+8HNHlw2<$m+7!rrKP-9|?67~lc2@j(a z9-QbCXcj$BF{NdmyvL=6M2!2lz3mW1QOqV$9MQ+1*6HagK=kxShhy^NHgq~2h*|@u zl3<$bT4yMIvBh14AReBsI4D303e@n8uea&!7$^|!E7geiwxcN;?=Xm(M2FAxFVbOw za3$z+s!C`Yy_41n=q&2r;uanI+ly0^#cRgdOTf>n(_kLUG zmK8QUU(WP!gR?Q5&biwzc!2RkeQbnxpUk+8BxIUjzSC^SjGYSyj|TG0oAlTIh{;>w z@EFcGrqLuL!nfw*Sqt&2u~|)EQHctFKt-1(=ni+oZFfj zA3o|pq7bxAqnXlJ3!Nm*%=UgYytU26%jC4yYlf}0b6Ru9I$jv}*>Lh(l*;i|wX|0I ztw{(jyaY zk{H{;&FFv1;L;vG=T7p&{~SMJH{QgS(D8JFr6=9#CAGDLF2x2q2$@t8!3&ldy_lHJ zqr@(Pm;xpT@{ovWA>6s?dQh_h|H-L}VPGTDHk1-kkn~W;J;NP=RONgSP)ZTsFn7hG zCwD_<1^qEReyL{FKiMIR*4h^$b{Hc1V-cKkdi?$T!*HL6Pwsy|V03wB{+QhuxmBa` z&s_M?l;IR`3>SJSVMh@`^#{!Fc``^?qCd*rBG|_~6V4F!NP$a}F@0!i8N_b}W5(mhcM5Rxuc zd#s5VLVO&0jcfu8Dk&%-@J`_Eq-s58TSae&>JrmFTvMpeiN5bvi zXvHX&xn_OvWCh#*p_B{H<@!p*n>bg?*N_nmzwP|LBLBC@|Ml~KwN|6k?{w=#Zo@Y2K!|7bzJyR60r zHRc}$FYJzB!|0K8-+_$)U=cTiFV<=?G8~1S8wNA}sj!yP-D@%b3XCI#{iniyG<55e zy@dXt?_4A(15S7sjKR0AU0SBc-qS`%Xu+*9ae@FpFpeEhO#CL!ju<##PXZzK-oTo< z#?*el=^H`ugYn{r;=N`2xM5D0?)cybqcQnnH%^#jQF*&H^d0x^j#l$e{^jY>?RSEz zJ`|PEYEy)U93gFIO&tqxm=)@amqom^#~pCIDAVqK#yS|LBC1b>LJk zwwap)m}3)fE=IB@re%At^Yu>4i;d=58izgMG#R8!6Qr#-nWxW^qezm}M*Q;OG1$}> zZ4#)r4+2F&@+08U55S&pV;dI+5^J8WDj4b?IO}-wbcOuy3A&N{+`_R1CW6K3jX{@; z#kB~r;DtV#8}vZ^dinQEPqNCHJ~u$mM_46fDHi3aaK3KDny0H|dlHF_QJgi+DdPA& zX0r69Km$+O0Nb?*gAE1fX0>LsDMDd$UhQvKi|C0k;72P3M7uA6(AqwP$Uz>wtg19S za@j_Ny`YTGUGfFbfsNuDEnJSSVY}e4=Qy+77&(U=lQ9+LSmDwJ60BTb2adtYTB4OT zw?BjVa0Bu^5KGFR)*$gQu}8m32bK7w;BVm_5ShsVvs`u-*;C2>y~!G**s$ZFP8bIk z*9=&b6^^m#-TBU|8`B*J1@MRMN^i%@u<}yAF^dEt-B(Hg>eNugXyLU?*BV0xKSt8BLOC5J_yN7&<@6&_FU`c6f61;qA2AQ_ zVM~YSnUi?JV`5UWQ`=+Xm4kwQeutskmHQ{2s$xLmhkyI$#82sT4?L&a!|NTMZ?^Iz zJj_K)T@<94Nj%wa{i-#RpGfoIG%*ok$%*l)kZwX{VYdh>^atDi z#EgHgxP;XdO$%h$JG!DeJcD!`6~)WholEEd%Y)1X8GbZ4V`}TT#%^>AFPQ@1?s!I0 z^%tC$FymcTIi9#mm3(KNO{L{PO_}?bOAsQ4zKBVnftFGhqi?CDVPsN@N3O}@k3Xdp zJDC{JeT?FLVwIz1{piM*mPfCWlHy3xKtR6W-ke~+YO>0Eac?2tXu5%z!cQ`80|*MX zHgF4DgiZOKz4!8;!nao$>FmQ60-X)4&W}Ztmu!R#0F%krh04z z_R;|ik^R*?x;=(#{r%dMc#h_nGs~RuqR}ZjpwTg8WSLoK!g~s>5AiwFX-T8 z5#e!XXw!h90Mlt?L-oNB_tJYdCEufv^3QV~Q-~c5c$^;tkmxSz_zIQZt*Cp!u_INw zuM*F?*j|vWmt(Z`KUb918J3Av!%ijIIERNzDb|JJd~lAT8=0c9^8`{1MkJ^Ky4Lda z>j01|1BddTXC_E}vLlAM>oo$;}Z%Xn!ziPIY9u-cu6XJy31J&dO` zy@A+6ahO6>wqzZ(K_MZ4^tbf0deT8RGT=r|l8Ff(yo4|;>mw1Z$H8SeAjZeGL&6#)=i%UlwY3HcO^=;0t)aF!oa28gtX*S$ zFcR@RiQd;ET?^@zE4`jna!DuTkOhhxGNY&D@W1jKY3Ad_H%5m^XWGC&yHeRBeriLr z-|C^z+Soqgi`BL)MC$^Ttt{lvm{9Rbm~d#@aZ9Z(nQs?pxcvhjz569&a!XVgNGA3a z55z-U!j=J&BiXdRoOX71qjoD+p%>LEx(cK{?EK7zseEZnybn_%V1RaoNKWP_h!+4# zxK;&Z9J#L2k1YB>(;+dTq{=wEE|5$9K|MD$c6)KqQ1D=y*MkE!A*)`~Iysa~G9`kp%7pY}eWE8_oWE9RkQ;-CtN^LLawgueg?!-Oyp;065mkEkRU0w{#a&v8TNDf;J%{Xa$i|Gm!t zZ+E+`PO<-|*#Cq3f5O8Po^=0DTLrF5?Eh&tiv2&|!1@1U!xn6Z4b@;)q)$Fd=J?m4S5g{)`xoLmXKVAL>5 z2MIbIkO!C}8w_#Duj#A|ZriWMm>OQ=2bS<7Ty%3Dn6p8bVAXCc^dUb91TSR#R|u^v zuEZ+u%TMWz14{|hF(zfe0UM3obX)fBmIhQSW1q|MmpTUQhAZwMNIybwn$*)#_q zn&;*HeQH^DkBZLj4^vAM6m+X%8xo(Y(@|yeBITMG+cWhqXu{SSHGH?OYWRv2s zAO|I4dBe+c)+N)ayhf+fxSp|G!*7CLYYY#^fd_c^1ANp}p#B|}+rmt6Zum38#5^_O zdH9#HOb(88I)w~8Q)x3Iq|(t(*LeU4Z)T1^SwOES48M1Iu1OMPs5cj+)$ zCeUt4co*h~n-Ctn0L$`zcN#$@<2wio=GMSfihTwtiulqv7uW;!Bu zurId&u!h?r^n4VE{#ZQ{FwO$`z@#Z6MlD0+nvSs!uhe1pPtnE4{D59;DtZ!b^a&P8 zMk*)jP8bm8_NG;bpNEITg=@*^XQV+Ee7`w zGr0F!LHy3L7rp%J?|wKKuh0%6-j!(Bwi<~FAF!L?+L6dH*X9)7@Zk7gd8(uVl_D>m|@<{xA3xGOd>3|Jd6Z>C#84F8E^>+2)zJoE6u;q_oh{3~9>I0#b6 zQQoVMoJ;AVh*+F6x>+Qhj*;rJ^Def#L$D6k4z_zAq=tF@@IOm)0;hF~`F_})7tGs_6L zY!vKR!_aG{UwX{rfiP1;A5oYaMn0Y(_^<_|{~njp@`iZYo0+e!4-O)6w?bJL%K8f{ z>-%LKJz?h2lVl)0TwiY%b}JP26De#zk%EiS=TyZ%uT#YwHMVII1iQcTiL0LbDxS+i z@f3=uP&|d=DHP9I;#|s#C$>m@20g@^U!#HUkwnMV&#9*xc(RER=zz>Nw$%y`1oWsg z_4kOsIx)+_aE0)iM3S~~!1mWTjG)ZZ`HA8&l{6%M23v=yDEDQNjqv_Dj3d^;m&Kb; zk~R3!wPw%jGmM;@n7!lU@cP;@uF*#r78Umq28THQiFSA(h1Q-WNw=0.81.1 +tqdm +streamlit>=0.89 pandas>=1.1.4 matplotlib>=3.3.3 numpy>=1.19.5