From b6e8b271c957e3e3c375d75b1ce2a1f8d94f2d6c Mon Sep 17 00:00:00 2001
From: rinaldia <antoniopio.rinaldi@sed.ethz.ch>
Date: Wed, 16 Oct 2024 22:02:30 +0200
Subject: [PATCH] First messy commit

---
 LICENSE                           |  661 +++++++++++++++
 README.md                         |   93 --
 data/Cat_FORGE22.h5               |  Bin 0 -> 895032 bytes
 data/Hydr_FORGE22.h5              |  Bin 0 -> 308752 bytes
 data/Scenario.h5                  |  Bin 0 -> 7152 bytes
 data/TrainingData.h5              |  Bin 0 -> 17864 bytes
 data/TrainingTarget.h5            |  Bin 0 -> 1078792 bytes
 data/seismic_data_full_located.h5 |  Bin 0 -> 1179552 bytes
 hm1d/FlowModel.py                 |  960 +++++++++++++++++++++
 hm1d/SeismicityModel.py           |  305 +++++++
 hm1d/Worker_HM0_HM1_1D.py         | 1322 +++++++++++++++++++++++++++++
 hm1d/__init__.py                  |    0
 hm1d/model.py                     |  882 +++++++++++++++++++
 hm1d/ramsis.py                    |   44 +
 hm1d/utils.py                     |  237 ++++++
 ml1/FlowModel.py                  |  330 +++++++
 ml1/__init__.py                   |    0
 ml1/model.py                      |  455 ++++++++++
 ml1/ramsis.py                     |   44 +
 ml1/utils.py                      |  255 ++++++
 model_plots.py                    |  201 +++++
 model_plots_forge.py              |  183 ++++
 pyproject.toml                    |    3 +
 run_model.py                      |  163 ++++
 setup.cfg                         |   57 ++
 tox.ini                           |   17 +
 26 files changed, 6119 insertions(+), 93 deletions(-)
 create mode 100644 LICENSE
 delete mode 100644 README.md
 create mode 100644 data/Cat_FORGE22.h5
 create mode 100644 data/Hydr_FORGE22.h5
 create mode 100644 data/Scenario.h5
 create mode 100644 data/TrainingData.h5
 create mode 100644 data/TrainingTarget.h5
 create mode 100644 data/seismic_data_full_located.h5
 create mode 100644 hm1d/FlowModel.py
 create mode 100644 hm1d/SeismicityModel.py
 create mode 100644 hm1d/Worker_HM0_HM1_1D.py
 create mode 100644 hm1d/__init__.py
 create mode 100644 hm1d/model.py
 create mode 100644 hm1d/ramsis.py
 create mode 100644 hm1d/utils.py
 create mode 100644 ml1/FlowModel.py
 create mode 100644 ml1/__init__.py
 create mode 100644 ml1/model.py
 create mode 100644 ml1/ramsis.py
 create mode 100644 ml1/utils.py
 create mode 100644 model_plots.py
 create mode 100644 model_plots_forge.py
 create mode 100644 pyproject.toml
 create mode 100644 run_model.py
 create mode 100644 setup.cfg
 create mode 100644 tox.ini

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..839fee2
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,661 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+                            Preamble
+
+The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+0. Definitions.
+
+"This License" refers to version 3 of the GNU Affero General Public License.
+
+"Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+"The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+1. Source Code.
+
+The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+The Corresponding Source for a work in source code form is that
+same work.
+
+2. Basic Permissions.
+
+All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+4. Conveying Verbatim Copies.
+
+You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+5. Conveying Modified Source Versions.
+
+You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+6. Conveying Non-Source Forms.
+
+You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+"Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+7. Additional Terms.
+
+"Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+8. Termination.
+
+You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+9. Acceptance Not Required for Having Copies.
+
+You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+10. Automatic Licensing of Downstream Recipients.
+
+Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+11. Patents.
+
+A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+12. No Surrender of Others' Freedom.
+
+If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+13. Remote Network Interaction; Use with the GNU General Public License.
+
+Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+14. Revised Versions of this License.
+
+The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+15. Disclaimer of Warranty.
+
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. Limitation of Liability.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+17. Interpretation of Sections 15 and 16.
+
+If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    ramsis-sfm
+    Copyright (C) 2021  Indu
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published
+    by the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<https://www.gnu.org/licenses/>.
diff --git a/README.md b/README.md
deleted file mode 100644
index 15c8bb6..0000000
--- a/README.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# HM-1D
-
-
-
-## Getting started
-
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
-
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
-
-## Add your files
-
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-
-```
-cd existing_repo
-git remote add origin https://gitlab.seismo.ethz.ch/indu/hm-1d.git
-git branch -M main
-git push -uf origin main
-```
-
-## Integrate with your tools
-
-- [ ] [Set up project integrations](https://gitlab.seismo.ethz.ch/indu/hm-1d/-/settings/integrations)
-
-## Collaborate with your team
-
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## Test and Deploy
-
-Use the built-in continuous integration in GitLab.
-
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
-
-***
-
-# Editing this README
-
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
-
-## Suggestions for a good README
-
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
-
-## Name
-Choose a self-explaining name for your project.
-
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
-
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
-
-## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
diff --git a/data/Cat_FORGE22.h5 b/data/Cat_FORGE22.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2fe8380185c601068c5424aff493083ba3c5d70a
GIT binary patch
literal 895032
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%0DFX9h+ekT9;
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

literal 0
HcmV?d00001

diff --git a/data/Hydr_FORGE22.h5 b/data/Hydr_FORGE22.h5
new file mode 100644
index 0000000000000000000000000000000000000000..fec635a4a65e7a70e785f6e3150c8ea2c7d50d36
GIT binary patch
literal 308752
zcmeF%4>T6+wl;c65|SiIk|arzBuNrNk|arzgb)%!k|arzkR(ZxBuSDaNs=T<k|arz
zBqT|aB<X9;y7#;0yVu%hpEJ(+#y;a)jj`Te*Ss!&d+5pD2lRFHM)HdBa=<Sh9u6)J
zLHsTI&(A-<1ar9X#4_ux|NLgiA4C3_%K7^@LpZoOpcDOb7yR@3C5Qe#H2%4pn&|3s
z{93Zt&-_z!6mtLm9S=MF+yA3J1NypJ#_$1~|M{rdqqOwT<BWYW>>Pgojy)drS@HkS
z(SIJVe}7!_b4cQAgvU30)tD|dHT?Ae<{0zq9fP<1>)pcljGsgHA9g$(iw(6_t@^VY
z_DlADE-_iL8a}|k_B_8{FAs;AuF0yUD~#~<!j}x&&sI?Um0+)m4*B&J27BYRrdryD
zx~n$mtuR@xWxC;Cy}Xjb>_0Cz8eiw%zdnC`E5KiEf8OB#)z>En-|szpJ-^ex|NDQ+
zXW;K&pT8fK92|~+zHhV7gN=`qCp>aNcm&$IxNY35xWU`TWt+X{U)jmaehb9^c)UwO
z_$R+s8LiM6@@w_y;mYyrOA&vuuM^onS^sbE$3J;h|3{zL-^;3Fe}5X_dlCHlpYwh0
z_xHOYzuqJGKId-ZYG>oQ!E1-RJ-(mtefJ-~pE`KhY=MTKgT36Se|$M_dk;@1H`m|a
zui>G=9xsXtv*#)({o~7xz?ZXk-RNfL<hlvp*suTm{q3zb)td>A`M<t@5C8pg9v*HU
zzaGi3|HrrE>E+?H(d!@I&M^GQT<x5;z}pb~^??5UnAU{&AMYRg>+Y|QO90;veqH_g
zGV*Y;_uBDm4{vYyKfIiW{iba$HXgrT&#2$8>(2+w{@nG2;jM6Rbp7T({yX&7YlrEW
zU;l$|@x%UPPEJmI4LpCI*$o|{&;R>{M1J$<ze0aL3K-WfIA{0Q=Li1Y{MUaUYMGd5
zt^M^ff9+xYum3(&Qc%XX_}_iJ{(1K}et-Yq`t_QB|LPjSnt$%EPb>Zk`SW%1&sQ9O
z{?`BXyjSdBEq>qG-<PuNH~;nge{AdJ=I-F)wjJKTU%z$tu=n)b=3)QOum58|h=0Fh
z|Nad8`!n$G&%nPw1ONUE{QEQTf9o><KYxH<Lx%i*V#%JTGXHuW_xpLVo}rf63X}i*
zJlb{J7I%35`q$4j`0#nLmxqn3r@Nb{y&b+84tToy`z`%`=Jxyd?Dmh(8{ru%565OF
zSA5BT_B<S()&KSW{ocF&{^tWe?}d+ny?!Hw-*2BiZ>}BpI~)Jz*XvQl-womT>v{R?
z|JL(z0el;pe?DP<|9p=5{o@)A=Fne1mxA}{@BdEtFP@)^|9%%^L)gax`G4y3^S}N)
z{&ziI*q_^fe!RdB$Jyu1&c@5$%V~?f%I|+}{OiZfuYV}OBlGVs_t)d&_rGI*JuK~g
zHf(gU@x&i@;J@4c`OC?|AJ?zf_xt^G@UY(s8U9`NUp+nx$HVHcpPT;m_IdE@$`yYA
z<N2Q+N9_InOJ4j~*n?*X`?==te+K@?<C1;7v&SjRLw|jLfY&uza?ziEYiV*Q^KmHu
z{PTYY_}7oy#^m4cgW~8vQ~Y@T{kX+X0|)#0^xuEZ_1E{$vH1P(&(GQL=W74(?dZSw
zIRQWZd6oWo0Q~*?5&Lsx{`Y@QVD<m2pA-D=|2{;&&i~*3d+Yb3=Kq8Lw(~uB*4`?@
z!OTwKu7#{$zY7)Gew~<-uJ{~!_a!bwu3c|1SB#rf2Yqao1!}uI29<AnOe~zZ^abpg
zp}9erB|5*OZ6WjOp=bIPWMI}?+fJ;Duz3l)<mo3-*Wy}Kb%SsN+&TMK5MyTD!_2fU
z<9r3Xo}W9=g1D<hlS=tU=*2fX5;GHDVfI}x;WhL+HD;*5)+n@=uY%~JrP~BMrb>MP
z=CaX!Xmt9VH_$U>o6<0M`?U~*v(`7m&UpE8RIIHUZ4MNC3-^qPhD7aEcQ7;gI|nf*
zPVsJmy>r23;^1f5R=Af&*byy@UtpHmFs=>yu5Tu2UUUQ+G^>m#YOnPUcFd-qewe-I
z_Mn=Tv)Z9&Ru4OeIU%u$s8qA|J?sYDkD?`fkI~2!{tmcXXz3F>y>DS==8pc3*>H)+
z2iS`=T_mQBo7xF?uPkdKPunxhRe@tZLLWbI1?rF+iYl%uAr^-$?1CLLV#*H8Qfs@=
zj?XhbLC*}Beg?BaaRag8+v;xErA8k{J!U;b)ysH3!=2k+hZq-k12fZZ?pMrx&aOSM
zFB+CcG+QwF3*04ZEQ#5C)tLQLM)g9kueA&nst-o%y^DzM>GQwBj;Xd}8|DhX4m5V0
zY#;PY`Q@iD_qNs%LnoSigPmz^I4ZH~KHBzys~_%JA(}+Jf@_$Wf@?oxPL6Q?4tv+>
zDMZc<69?d4{>_|dJ*yJ4Tp8aF=zHvzpankz(U7<TqIl)pLD(@{oVQ~3O>9GT7D)eu
zo>}XD0&^1IGop%?5y$&qJC6DTXqoq2G<x)qA#k@!S0{GAzJi&V@Anb2ah3xo?8TNR
z5i<hE4~4tW#MMOpRppp#J`CrAJ~3o5>O5sPs$7sqEd4xt80?r)5nC|J6gQ(?R+8M%
zGlQa!VK$oegxF+fFdTO2Klh>Dako*;xj#_eN>v`{nF+%(F*6+#-(wzlYC8gUCGH7C
zi<GgvaF^CvNzC;w#T+=Aiw}Ck^hK!1lAUPd>l~ujI0b&#F*UNBFjuuUqVa*^BcW$1
z<{rV^Z}Ny35uzsmJM$@ls8qpCw8Q)xn)6wC6!c7k>FJo6!o{taQ@>dW!p<W)j>ug$
zdNkZC?Uobm;)*dV%;gY*zVFcjw8(io8aC_-QF4LY7}zn}pW0*g=X;6jr-%we&#ZrO
z2y=?}1EN~G_E^|)E%8SyUSCIJ{l1{K<7SIM&+Ii!#mp>heS_I_;<|CLlgN!BW_=hb
z3U|Mdr9{DkLd<pM18DN+dE;T{8sUkmPQOGfw~`Tqo*DDa2D99(=V;G;;R(<)Lw+8_
zY!Y{m*z!n29Cn$`zNqi898@Rq6DqJ^=0xb3N$$y*nJ#>dm^rl8NWiY_MHJC$H18z1
z%ckoR^Izv<4)*IqjmIfV!cHv94Q)2OK=cWenhZTtd!iNQ8k47J;s-$~=$Xn>LNE{B
zyhDuotTqL9mJ!~l%=9d@>&^!>&uY3f^h~4ZM9fUlS@oFH?N&{No%hcOBJW&o8Ms$J
z(jqzzyN+2Yu?HPcQ=A67lBb)|NcVF@=@bcB=$W0G7MKIQAESn&M^1;H*{BzUIqmf=
zqQ<y+a<Jpc@<6K$Gtl_fcc??))EUq-`>(}gW)_>&Vm1$1ArCvLDF=x;=A1L(9`Jb~
zQF!`Q%nf(C&{QjV1=x9f+k~n|pCMM>7n=n=GtSNovqIcMv`=}2BJ|8K=K#!R!}5vk
zYIA18F8iq~>hGS0>hrarLMfA#pl7DMh{eow_pZjwmA-5a>?-v36K(wlG0TrrQ-+>d
zXm}ZOXln;*8Ynv#dWng4Xxp_@M86LrD$q0aLQF8%-Mo(`n-7}@JySKp4>RZVTw;vX
zELGT9e{)9VqEpZwg(kG%{>1svGfjR*V`hrSRbtM3v_uVdzRr7z0*U>YYt>X1K+kk>
zzld3d?;XmKBCQU6nWi-w{o({scJ!Eq&@;O)7-0^6eHS(M8=?U{v-z?Q<_yDZqITen
zMX=+axCyPfmV_pnG@#BO#%n^)9F#hYnOS<X9JA%;#aghFiP%ldyVHv~$Vy2YdZuXf
zdCW};Z_)Jol8d4DwzEVve;y-NE05BFo|*8-0JGAtB6Q%?4`Sp~FJ0JMxMvbO&rZ{W
zd#>h2H1I_NYUo{uii{Rn0zETLFB~(|>vbt+o^hJ`u&cVfljzXejae~JVJY;?;%jFy
zN0_`u%|D16Kra<yj&?{z69dfomO;-n_^gMyLAC%*z4MKz{>|MG_T16w#JKxYmc!l7
zZUd_DGY;)LUV|1X3mHMrG;=<HnJGE!F6L}C^%b!5f4ZG0#P<<%{aHC<=$Y;>PGeT{
zeu;989={U$iVLP_tX?Eh-fy@G^vqt7#h614^H9^)FT^(SEvsOkbuE>s_hFJL+yz6{
zp><Nn(Bzv{sH?faYUr7q5&JMR%Vlq4wzg6=gPq(rPhx?>d(0vCW!6B?6#sb=bIbAP
zXr}U5bLf2^8KXMRVZ_=~L)SvjOj28fS;ajE<>2ckMr%4*z~1UbGO=4wd>!2LFRVd>
z^^Ty%uPab7KVD1dnHiV&U}pLl-o(rwsJtF_HRA3>XOmXU${(bxpl6m!#bJ)R`4qJ@
zAH4y3na_r3S9l09=*~~fOe3oW*066nl7*%#bP_e~>}{au{h3HiP!_d?yW^u(sFL#`
zbb#vtT5^heBlJv*r@JsSrQNS%&ONJW2fIK`7ov#w8_bP@lkA~qdg;Yr)_DCG<?$Qo
z0DYCnQZ)W@5K*!9J7#A8o_U*KA8{=MH8*J|cI>xtgg!^=B+<ZJ*a_~!pI4v_;Rn%F
z*?XwR9ZqNHncUxYU}jbxxr*8DzWip`DcCs@i;lm-9Hu<M1$w5Wa}?%wt_n2!)QBz6
z`>W}q`cDIh^}KzUnJH)IxWZoTMH<TG-9n7Lu-*-NTfO7N-kpN(a4!@wL_;s{M@<dy
zpc1Wv#4K^|t*~eMUAv4~@Pn)e-0Sw+5nXS-z^rOM&J%iOd3Xfo7}+w^`pz&f=;f@m
z(4Ia&Vu(TyW~RygS=(UWGMIv99&aM*JX-4wy@2ykV$v!8?QnNd(??aF?nOD=Z=q$p
z--%Y59zL*V%D%XWIbU$<4!8$juqKMVeulYu=NMn;nLd|8F>4!^p!}^vc0ymXXCay>
zzJsW2(uJ8h*fGNo_EA!2P|KSQ#IEkuyP(etKTI^b!{ZNkQ7av^sc$!$e&hz~t?-q|
zYv;Nf_RQ+R^Ozl#CkMb?>5(O|gsU2J<f&16pl3=y4aVH*R)psA4x)i)=Lf>hP;(ox
zaa#vwW}2YvUf5~qokDqD*Ae4IOoE_yxExOGZ{gYp_u@U8XoR>QYJTk+DrNGSn6uwG
z81~EnsT9n@<`ehBy`kHj=pkE)S^W-Q2=vU#zCg@zM+#6og??1w{@eqw>)W`M7<Rl3
zGt*32Iuv&8PAAZ8u4hDjHKT*j3q3tROyM0826y+f>ZqEg56bo83R<!4BhmJPLpbc2
z@_I>_3wMr>fP1LOYNCW;Ip(&O;fJ7S`ibwxtamLB6*TEZ>pEsf!Y+CL7NY9SX3R`Z
zbIHT7iwQr5TFX8m_N+IEg1(?{AJIhN2WIj6sz;!2+31C44qifikH04hJhF|39kbRc
z0kg}gu}9&qqPCJ)=2nV1nwKjEdZw)APR!kPIcWa2ZZud>;TY_UFE|mK8yhh*Gj@u{
z!cP105tQHX5ixO(-f`%i#RG|hE5Bhb?NE+`K5D-^YAKbD%G_)v=5<@0fE_a^JPxzy
zozd}dZ(6^c=zXLZv!(*aN$8o?8@FRl7|cQ)k9VR<%5n*?8>p}+MsmHx%(OTqdJ1-(
z)rZhrw+BSSv)YN!i)i{2)3$xV>?Jt+H1rx5Tu>gpRJ5w`4beelT@vh=ikD+B7q^T&
z1NVqMONmm~3Nd%A93Tel_e_Spfz%~b_+~rWutw%A+*7-4i0ZP>F*CXE2&cd<uJ0gf
zcjO+iuT<k4^hFzeiDt(?VU|>$nF@V-g(I5nl#KdwH4=r?)|`hOv%WeCvpX+u8r;>+
z>JlsJ@-fG5>m$lvaJvBeUfm05VPgv#x>G70?xrGE#I|KmF*CDT1TVr)Pdo$_ymp6}
z+@Y2Mz3YB&BInHyn9J8pzXW|uw;gI7o`}lH))NcXugZiSGo&v9v$z8HWw^JLY7u=0
zb1~~2?;+M!Y|esxlG8cVh3gHfa!TR~+&R=Nh|zA3F*B`rM`pvWdr=UYUw4aWEI98f
z^kNr0h#8IVF#GJBnghMIhz-hrIUcQ9R!el=v*H@;n9AY@F_*67%!PYY$3miv)K$z~
z`CY`I?oHQWZxnt86_tI3HWi8G!99Jw8Bz1dL(EKGg%LMkm#{GabsW4w9GEjFANrCC
zSE2=13uft4lW#)bIe$HxTOErAx>XZJ&Mqr}9kX%Ke#~Cm22l+`wOi0Lt8_18j&JNB
zDvH<@!mdB_6k5FO1sc&JavSdEdrXKOIrlL$b5;&3f}O#BKU7#MmzcU{)*a|Qx}AyK
zvQ3yPizXIBAGdxjYS$NyDjcaK7L_i!3p-}m#=V#&kN2bPb5u&8XZkx`#H`Qtj#xk6
z`X203s!yQqZqHCP-Z7<c=Q?XdjIFzinQ6Oi$bH!Lrum?Sy4gh2oioaymk`-R%v#of
z*{@~%1L*bktVRXJ52JNC<wVzx#pSSLs_x&7xjerYjaj4g5PGIu_<77d)7}z8)>~G<
z&ZO@cDt_b%+A?$0Be-Xl8W42`Z)0W(9RGnisluxg_AXADM2=I_9>cwC{zjseTODRu
zUXd#3yOUR<`HRBQ;JQ+xn4snp*fE>ac4GEv>_)YBDpW(ytjRo!IdR!*qVgW|r?4BG
z5RI1RJVK*Z^3}lIvO|y9HMsyYGcW%eW}|NRXRsFyPba1qO{s;u_xcS)-Xk@bt7i&5
zhd!ZnIqJCa0ID=tOe~qBUI#m7WW{#O(p(?W&IGv^&@%(8Ph&Q8dr53eHm!$U+M-C*
ztL_1+v2FNExbp}uCdTXLVP-lse!<*7c1r{7i!)P+<}H(6!Ch+4I$};v73P4I0*%lc
zbSy=M_wPd+Cf_D{tWkXpJEnTKC+5m&@6os-nI`C&3VkOr_eDJ?hLsw>ft}gLFjR8z
z9@-u|v>EQ%a~2WxopLZUg}Aygr_6VH3w!tKWFi-@cnjPslGhMz>nbqIZ{ux+zIT)!
zT9~#64b{C#l-Q}<20LckSa-~R%UV&r7O8j8GwUYAVNT9@N>uGIY=<4^{t&c$axof{
z{}Z)dv*11S%$~3;%*=vmotRD5+jqcDyf2ZMIaBll+<i+|5d{XzFxSR%cS4^uM;mpi
z*oCS%T_=_$D1L+;GkU%YW?8p4X!nRoUC=Xw7sX&Uu6s;u9<}rn>@w1VP#@hwRJ-vz
z%D;17H}uTJ%nZy-=Vk4f2Lo(A!>)9~NuuRS;U2ilbgUreO}>XYD4+8S^hRqmP|@xk
zXj9l#qIZ#eFYK6_>m4yyN4-K5W={ADJyU686y|{+4~da;bo*duQ4xSjJLRLDL;KL&
zggM`!XBt+gVP=ZBwO~$5Uf&NpuSLg+Jlh1n!@X*hA<;qi4ray1LA2jjZ2)$~W4+Oc
z%*#Zn7TF)rGdlw8FbCwkKn+%o8-$+O5FCLyb#fU|eT~*n*l~CJp_O5|Xxy|O)UIe2
zN5`+8+4nUCGqWhF3A0)0+99x$+<26j9m~%NcmFy1L?NeJnCpjrM^h41hQiK$z6YvS
zeUVr(Vk#H(%-CdW%<^^5&|a@G!=Pt|riEfQ)h!{m`7Y#!UDntgs9$C_s<*5Q6>OO?
z9C~K*gfp0#t~m{uIXhPKz^**_Fwr`nX9V2k*60um!fs#=nf4VmDN^Evo%niJwB_r0
zqVLSfe9$v>N-Z(h{&<2W#g5{Ko~cq1jG4o!h!~wPe<bXz=5Iq~t25DV*A6s)gscGc
zOyfnTFf+yK>M&=FG8qLspR{lye<PP5+-rO_iO!kVFe@+nj1In47!AA90B1C6LJCo4
z<wPOqnO*PAF$YbqM2+(K#z4<(`V@#cJ*<GJSu|G|cD(DiqSas1(S)cr)N!WtSm>Dp
zwkI$%OMcW~wwPli0z2u71H{~+L&m{9FhQLtQhfz;qw7aBZNv;w*m)&8pc;#kh*e(W
z$3xGIAGI2@qHa0b|7y4x^vsB{yD^(*<`FyI&Yl3foPaH8z=ZRtK~6I&yi!sedS+_y
zG0aSl$xkqIuQ8YiyUI`dh<4L{U{)wnm4KdE^z{<vu&DQ_+01E^pqDJQMcZu?i2ku-
zC81~P&smAN-mw%-8Ok*odZya^otU|*bBM7c6r^Bho9u+jFFK3%K5s+|y~L+L&ooUt
zf|)6y`v`NEubwpQ{Kf_n1($upT=!OaD)da(3F(+sb6Qc(l~ZJ(FMn@^#stR^<?=^Q
zgPz%Awj6UvSTSlcjYAfCW{c%^%$Z-ah&nUnro&F4)E=$1J&h*)s7GC5MdhGpa#S3`
z%q(+!fY~ZRdj{-e=lc`$UB6%s9x+=UdZyT-RLsrK-=G;@lV(EiGin{Gofbo^c{Nf2
zdS;^UQq0Pkh3KHc05K}Sa~A9^CtM<S8OtcbJ@35@8WemIHJbb!70nl(4Lvjc(?QHk
z@34EAd5biZU{`JFOLUC-gjs3k%sJ3AOKg)dNB($)TEtFJhF*Hk8np9a6ftlp?_B7a
zh6%cu8=vH(X|8=ljbt|!*z+v9K#cd2ng@4>QC6s8+HtgB=P6qJN>CMgruo<q%uK1w
zJD79cs?CR8K!7(<IOhZA2IJ{!&@(-P6EUk#u1C4^$1Q-q(rgtP_bGy?FpXOsdS>5k
zEzDtGb5XOX9%B2w%?n|lZF`QWA1k2&ccD2JX#K;ZXo}-w)P3m4MbI<3<_BSBRy?_d
z*>=P{P1wmNdk_nszr!5rHB}3GrbJpi<~E&LH0#wEZRq`cSD<=h4-)GPI2S|DOn$o%
zv+9JaC}&O=G3Nay9oSn3pCR_#5YvTwfteW^^64;Y67~=kpEg1ddS<3&0A{A|*Bh7x
zX3kjxyV`rMM3*0LF{{K*)`y;1_AnN6v|}}DHB@jZ^s))d&~DZJ#9-G!%uM4EY6h@x
z*0_vjJntZCkFr|^J%8FMV&W?iL%2KpnxM*KBhbN1_t8>=VauUsS_b%GX39*+#hhn6
z%LsNs@12RFlbbL%-I%xndZzcMXv~^nl_>8teq-pXZ!bX;EcX(XqWUp22jo>&!amaW
zB5LuYjo7JVZ32Dn!xKcqp<`CTT_nK>ZBz|K)1KT#y<CTwLeJz$_QA}o(#Xc_;5B14
z>=Z|BA{Og3V2*e--VA!C)Y!wAJ1&)@IR-pypbvPv7&QpkO>DT@i<y~ftYi**_2Ba;
z_vE+4I5W$&(A#}FM(mRrWdZl1+XiTuWiV>?^)@OQ^@Esw&ubm*nf|t!n1y1eS;D<u
zX(Q3yu@1A^P?7b}Gb>cXF~>eBMQvTVte}@4p^5gM*+~q2-i?`Q>ZPy&_HF0SqFFkx
ziF&@~*3b)%jV2}=@Y%rK^{pPN8W4zbPAEXjuYMz1zjwEVJyR|?9dp5rDI4J)Vzz-O
z9#(_7MMlUDdZw@C0n9pIi;1=J>h`cpy0@LE@}m<oN35I!^vvjor!iYOz9e>^G~EQd
zeAP&zvFmV0xQmTgOw7>8!|e0?3z2`+7AM%(oKGb>znbI>cV*vo#L`Pun4=5?Hbc*p
z3D}3ZOYAl=$XL|{c1G_#iA|F4F{j^<*#bRN^V3PpykXCY3Ac@1VdrQWMjSXi)D7+>
z@{5QTwmF!ke|#e5Dml5sKJZ~OQDmt2R=78wTtoDFQh`~+mDdA$X4RQJnBz5W5*59a
zJz>``;7*LtX~k^*O3Dj*W`}Sb=A27Ui3V>Cx4}+0AcUBD^(STz;|1Q(Gr5DaFjq=;
z679_Fx5G~1QzEfQM$`xHVYgQiCBK$oZa>Vu1A3<ay<M2~ZLbsSk16`XE=9?OsOI<v
zGuO~bJE3RBs>Wcpee#&t%d^xEc7<nxh^EiKW0vrmw+nh^*7*#~emd<$L0=nx*wqQ2
zB)S?1?}oeT+ZDuev3r<fu5t!I&y;(=19Q*5tHh8S@_S%sV&+I}Irs{5rp$yu=$Sf}
zQJ4k3J|rf|>+Xe}%e??1$B(a=%Z|+nf}UyhFb%V;V+%3=<obQE3syZ&6mt~}hI=!Q
zA<;+U4rcA=gTxvE@BOe(Jb#&}{7N<i?t?q*h*6hbV74?EcK~{3*X{_+d17TmBV(;l
z*onUPBc@CCVD`Q->mc+@-cKo*s}D929dEA<gPoG)QDVtq{&2WQ%Ig!QZEs=j9Ox$o
zDtSb}-tgf?Vk76&LvT+!X-(94@(eSN>zGLBnek^rF*|6K5c@qB9)?}9zz(9hP8VjW
zS2LoZXXXf>!5na@fhhcT^%2-L>^@BNxXKd^cXeYOV&%RYnByeB5*5r`kHWsM>pU?`
zW^xSN&2C!~+k2m2&OSWq81zj2d%>86Y>S8~$L7bv&RuC6k;}0Ia|NgDap;-0s;4l^
zKdB=Y@|eWIF7!+|QQ|q*3And;Y7+g<U&E}Y^O;z;!#N)I$-*f_RfCBq;m-NioERfk
ziP`!pUjp>Zp7ub@1^Wt!CO77uf}Ob8R$}JCHq5><(uvSB1uRcsuI;TMy2u-yhMmg2
z1H`fcjwHB8A5$mFKD>gtd(%f^@JWX=us2psA~tUspA7d5p4CKcjdINV&xfCdo|!1H
z8?*EIJmO%(>=f9Q?$|=Kywr?Y#z68M^vt~7$1n$pJt2x38>GUnseK>OTk;2H%^Rxc
zp=VZiUBaAj@I6uKwrv{h2G%7IBM*<g0Cx-dmBdb)Qp~vnL(`#W8Y=C?Eb=gin8vAa
z5q4fDorpY78ZlRG5zm00>2T%<W<`xh#9~jqOR$R&2qa4Be8b$)pqvRkGe9^Uv%#fS
zVneglW!R<ejw7mH9i0VtZsX;|xP8T#?Iby_K+o)3y&ZE=R~FGsMlKt6lDF-N*}e6c
z{SS*?g`O#N?-1sCn+HVqW7;{eQ&aLMR&4r$IhJ$wHRzf0s;QWJtKJYpdDi8^&h$(S
zv8{IGb+~7FE+y)nFT^aUGeAt<;h6_}SK&)UP6L@6a4&DRAzF()$1HbMI3IduLHj|>
zA^YwT#cycbgk8&OU!w29PndONW)?uttX-FkIjQ#*QAK{uE!c6~iy}r3j3|V=)iGUS
zcX>YM{7rpC<CAW;VK1h7ftayHstE2rJXS=0ji;DvY6b5=&vX_D!K{4#4zaXBtr&Ju
zJG_Z9mp)+bS~~qM^vs~$iI|PV>WNJ&R+Ydmy*+}cDam~g?z}g&hzVV}m>m!H5C;l3
zm%_ee-8rJgVTt>2mzK96=Gr{Q95}#V20c?mDF}08`7NRs=e!57(>Uottg3p4IeyF3
za_E_gXW}vUFRUd-c&>N|J9B}9#E!+B6>!gKSV%MwzKU7+QWr6`dDA1<d+a_#<i09a
z3HQnsW<<Mv4>2o9j(7|`vuJey=CH0CL`j)BRj_L>bS3)tzQwG6c=8kIne`>Hm{V-3
ziE77|Rl|-;X+JS`(;#MBPPM1dGkfP<##~s{K{VyDtAU-wnN!59T9IdP_wzI%3ZB1@
zxo+{WTIiXsJNz)K3g;5bm(F?)yO?HYqMTS0=AP_{b<i_I+M_X>?5iZU<SlstyUf*l
zi8=@SF$>73)I-lqT6Yn%OK%&IL*Du&?8-_`5UmD;8sIK_%!rs@eiw7_rXjDOXNsNl
z!Q4DAo9MG;MkDOBc{UMi7B*l`tR4RvdZx0#Va$W6<;19l#Z9oY+_9V3mC=hiZ>iE7
z=$S^l&tn!9drM4TVc85j@AhLvUdd5!;a;6*Ky>W7jalj74`NB7R}1VT*JTo=4^L}_
zd*_Ue#6X)m%!UJF+n{GQ&JM?%R$fZf;M9BvJD!s}iSbq4m>sq#v_sGAPdbaac;RcJ
zxu^Mi*hvXQ6LS{xb-+EKL60abT!6VD;~UYV+5H3T)pw^8E3>C`!aZ)q2BN~g8q9r@
zgg!#g3|oBwvsqU$v3;s~7wobNw-fbyJ249#miq)fGo|D-W_O#HM6P3|-LR{e9Z9s^
zH2gE%<vAA<3+Lrw4z2n^l;GLY1N*k5RH9$)q%UyS^IS))ORd73yjY+YdZy}*eV93g
zZxdsds(yu?b+ae2XZ(B21=%uv&@)ZiPhu9|_nerSXZ#IzzN^EC0tbio!@YLuBBIN>
z9Ly@cpNM5MoW8?8x+Iw>J1}7Y?%gqKh{5F*n2k5_{(zp@9KQ#1#=M(E?JdfKu;b@(
zCnhdz#q3-w^%HvL;K(@4rKwMemJNm+AAap*c7zb~GJawXTDo8e^i0v+S(ux~cM`o<
z*mJ^8vptbmJxO#Z+!OLv5tX{iFb{-sb3xCHEZl|JV%>FOXQbjV*yYY}AsX7e!7MT$
z!3{k#ZFUT1uky!49?qr1VOJF&M0BY7j#+WbJRazo#Yq{MBNnz3r95p$z^-HDNn*fa
zVP3c!G^`*tjJbz7HG`86dZv2w4$R!UuM*?3<@sS}x5AOw7xW5q(WD6@p=X+{j>0V2
z^^ll7RaXFZ{)GWVq28~U>m%okf}ZJKl7?B$riEA$vtAH(v9pg8<u?hAhI{W2Lt^N>
zJD5$Y28nIMy@g<(m2{b?S1UUP?t-3n#N^Z$m|Yi-6NaA2xg!E|`Is`I^-`^|u#;={
zBNmMB!5or3O9XnRczX)wmY^o0Z{FH*u+v$6lvo?eFADdhsrp2fb+<5c^!5{@XLyW<
zy;aFYV)u7xF}UZ)SQCxQpJ5i;G-d+y%#8R@%s%r<i2Pd?io>pE_zt4;!Y<6pwKFC{
z&nz8z26I$u15u`7wFK<Cd=3+XGI%Dz-Ds%}vC01i=JfGjiJB{1C1KCoex8^xY4T*a
zJLXvu2R=T*ToO7;3VNnRVK8Rtbw$M7$oW%X7dT@ZQN*SLbL01E($F)#W}m{WQC>%^
z8e%dPcJcAyM8zsD8MybmXc8lmu3<J`_?g(@;XDoYIU`eu28$=k!d<w*oR~VM60=7J
z-*o7i+|7ZQEBy<IcG+{~V5hKRE3qi34RhEe=^4;7C0C!o-2SnK=s(p+9(MYL2Z;4w
zIA+2<B~qQJR&oV1m(53FY>a~f>}_W!5qllR&w_j5kkv%fdF7ZTs)j2<&&(RW8?#?h
z9#OD%_H5YId2AuNrZ!_%T`Z{tJ+s{B80MHUPl$3$4d%eE=gmH1$oL<aO|n&$p=Y+d
zyM#G2=si&<&vq{C1Xd>ylS0R;z};o)N+QR)Qp{yvhR%bYX*FXfX4#S)V*dA;s;~==
zaUzP9H)3vf5T6e{(<lB2X6<>8h&3*HYOqTj9!OMP_zm;mGvx))GowbPW426fC3d~E
zQiolhPaM%GWAs9}i!NPGO!qIw>^+`C19~R!itU)I-(?XUC&?{>ol>4XvE*Yt=EzV{
zP3W1@g@-VAT09^IMrv!p&Txi5vC;Yq=CtpM+R!sKW~XB2DStzZAF^&S>>T1_i2aX8
z>cG9&Whv1-sSvZ&!U1BAho>&=14dpV3NMz?gL}hE8=}XU=a|(qgqJ|itbB72bDaM@
zqC&QYKJ5C8e2HN}pD>$Enz<BuX1i%J=IoEJi27647{E@bFp8M+WyCVLyGQC0xk~ae
zS6KHEZDZUFVJ|=X0<q9RYB}6PhgcCM<~_yS_E^vedZyp-5X^c>cZhY*)K<VQ*~6Qt
zn)(4V=i=$c&@*Fv5;0qksVDa6uUZMaf;SOFlkwapa2L<kB4)nJ#q1l@Llnr{ybAWU
zrss$*p%SKWSD9)-EVFowIr<C#YUr7=GlDR8-@Qc){;pyMJL4D+V)KJ{m@^!vu7RGZ
z9UqUGe_kyy(Pf1>?3{-mBo3-`u7!K)vxP*<kykOxq;?VWUT(60eUQ%?qG*QLI=DCK
zn-RVJA7a)VKf)4vX0=fO=7e`Qh)R>@tcTsebys5K$G4a*LMK~6&+NPvi#gY#nrIlg
zYy<2>X6z@XSr20N`aa(pdM3~8%b2SkbPyee*xA5NG5!>>__2sB+#_5}h*C-SF?XmB
z+Xy`~z{3x-!N^=<gZ3;t*rmR7CaRBV!pxm9(H?qc+?#03cK(&bzAH-{U{_?cmuME$
zk6Ch($|mTU*`^mU`+saB3Qe_kgkAlu6GZnfLQZg3i!>ru+`WrA)_RCD^i25}AI!aq
z*~CzX8Jl5eI%E^EO{D>I*5mOm&@=UhAI2=0R8CBOws;HdTs?LZIa7NvmuoAzLeI4J
zIgeRx%v)lCzNH)NLf#xBijN=V4)>NT21MU?w=wGk{UFv}_u2~kB-2cyO6W8XxN}V1
zNQ}0q!)*0stS9u$Zn<#G`FBf+#@`ot!A>k@Co$teH)bCPg>BF?`Qy)Gu2FeSbapZK
zhMn^8Xkw{4-*&i1J<}t~j4Z(1b?zH6=%u?4?2UZViA@)$?0|c^{sy9^e+_2d@j|}P
zGZTysV0L_0OdOC<-wC^t>)VMIA3HHihsyau&&<7b8grn<OQJ}m=`Pqc%0&{rtcUx<
zUE{kpu}U!ybNquZM8zRncEi5^L@F`j@uUE_o4c$dcAT!loTDzV2YRM~$3D!$BX1K^
zwN(RQ=kd~$$UWvg=E{pQd!c9Ay*Y_l!T&k2=!$U=?81z~h>}4=_rbkgViD2bGzYW(
z$4|t1X{TV=r`$>=s(qQTAMRX{YlyLTD=^zy^M*jr>^-^%bD`o*qN#)O0oX|laVKV}
zv|{#qEENhpQ*d}3=DO2QiLTEK55i8>BZOFf?kDCL?FC`bGv$1;F!u;`5<~Ru!(nIg
zCXv`8DjEUz%qy#iI`7Ib3j}c=f}WXleHUgI)9XZzP{l~tl}Wo0tt{SPmi;1e7<y*D
zTny&myN`)t-}R$l*L*aH==0z^W^IRgN1$icoXEhOsM1bUcCm?u-5~c#VwAe@QMg+^
zTS4sNzlS;R9A^ylOrw`OFpK(JC8l4LKL$H*eMcg%|0~SZq7!1FXF3{1VODzgkXRz2
zdmMI=*8_;sAHQPmJTNB?dS>9QG|Yw;EyTt{>rcQgP3|~R!&)#N?mXX@5#tr_V0L&g
zNbKkEJ_-Bc6PJnRk7X0!F6ClJ%sKr6bAbA|Q_wSoJt8nS@Rt!iw6zjpr~cB9SSi$l
zIqu@D)6g>&-lSme+tox2yRtS3c4kILiS2v&&%ixfLZ7H_dJD7A$9`gpv_~@R-EUna
za($6L3-^jc)<oO8&oIkdk4b@^S$H%QbEskoQNm&2IoP#v>>&E7bYa$eJR=o)W*zq#
z%*m%4h^o(4pNAc%$6;d3Ii57QTWjkOd$!-eTp;w7Xrk|W0rui=&J#05C#S>R_lhM^
z;N26<wR=Zhgr4bgJs7i!X%VsP!2Ar@MN4lZ%35?_?(Ug(33_I*+$qe)ck77F{VOwJ
zmvJ<lsQrNJGTiwcG>M5Pu3>go`Ai(#?3@MrQtlL@rTWAxaF=;zPR!%4#2j>vFB^KM
z=*vLNP1_5I-WTUyg`KAUR$}$8Hp~g4(mBvGm5fec9%!o}MoJi6gPq0o1H{fwj$F9s
z9#AJ5-nxQW#Ns0{?U2KD*n7z(5qYe~=fS<I-<0T}SdLlo!SEZ<GmANPV~#kHN0fRz
zJ0Er(o3{`HPB&vVP?x+3J+oo!G0ds_Pl)Q;1_iL=ez}hrC-eie-9^<~&@=m*E@3X(
z^`2;U#kLT3l12%{?7d@e!`)wEB~i$<6mxy&&?4xW?$SFktKG^WR`krg1H0HmPDJ^;
zjhK5kh!;c83_W@Tv#H`EVw=6*UD#!D1QPXBzF`)8tXu*;GnqRbv+L<rBIh%!d$23t
z8b`D~H@Xz=a@xy@1>1`;hX`@phn^{}za4W+Qx?%zRIUtmI#=w8wQcp7llF=}fS##x
z{Samj(+9-p1KQ=Vvy%2FcCY<{Ilo8oA@odRxm3(zci#{*`YkG8=W{fM$p2vEBe>Vt
zFC{vkD8#I+GC(Zd>{$u>DDF!{8FiV*aPO+IAqMe3$82;?xC(k^Q~g2A>D%uSH7{yB
zfgP{DFEL@)C(MqbGpnIz4lGZ`T+;T6Xd$uYDeR=LM-g*7N7TSQ@PIB+<W@fB#<hJ!
zuS0InV6P!}fmpRcsuu3?{p*Q}icc~3mkB<Ho*BUrg4z7U9b!kNS{>|iHhU8dPJh5G
ztUmn(^vu+)iI_e3>xtajtLkA_Ssy{P6XJdecZG{u#G<BL%wfBFh>}+}H^9Dq`8lHh
zUWr$5*O#y$)~|YuIi-`o5qhSYbP#5)Tepa@Ju0tZXM4zl*jxM#bK!=mP0%w<kH%w`
zP^=|p*{^s5J3o$tL_rnKX1Lc?E+o2gU&X9?x{Fv|v*|7DW44|l%AFHyfqRdZ88Kx0
zL(C>ZBU+(nwk!$2oY{1Ps3SV34R!)oT!~3-Z!x><o%{}ZCdc(y%w?;piB<=ewZl$U
zdOtCL?I7mhp84;gXNt*P#@t-oLG<b0*a183qo;^9Wg;Koo@j4ER6cPZ^WfZJozOF*
zHv3_=<jy5_EtvHYc6l|<L?iwt%%bNec0tcfuaCy;y}gpidvVDp*i|ptOLW}Tk6B4n
zr5k!?$?}VsBiq`D(h}C6Vb_^^f*9B-)B|_J14hKgg1ea0)(-gsJyYY54`v>@Y-0R|
z8NIM`=yxFY&uYM2TsHnI^h|S(!<eN`loN9*7x%#~VDoOG@abO64GWaMLC^HqdLFYn
z|65|EmSsQe;_8nP6@*58hkIYT0WqxUHfFP3KZxyFUIVbtUY<$R-#hIG+=V1I5>r;y
zVRr8vI|x0KOFA5LML{Xiwr9~#*vTK-Nh~bx#vHmqfur+R&y+ZN7IWLI*F-;i^C7U)
z<A^5K&E?~Sdvc{7QI)#@Gw11V#F!fQp|H2!nojIVnZgD40<8^1lkGK_#f5~1LC?%w
zasab$Q!!CMRGk}kwOQMVE^VEdRrbmahn`uMdm3}}s+UCB1ExH%>z)!x3|>2Y1l)~#
zw295r^Dt)=e<5o3yYRxE|7a>Pv1}3_+@0;$5eMU{Fqh61;D?@Rxp^OE8SdM}yalQw
zVHZ^6NfhOOkGUyDMgV%Icl}Asn%kcftJ94~!7gD*7*T20P(ip4j9WyET%Lp3qU{s0
zbE4B|*yrXZ6Ae2j2*F+Cz#3v&K?P>7wY+1XXYw4{gSl$@O`^jFWntJU_PY^_XSHIE
zD3clsJyVJ!4s%D`Q({1+p$O~@Hir-!5`SV&U9eyr^i1`wS(v%`JBe{x_M)(}t4}2M
zjTRjb_oDPwM6;$c%#ypf#h_<qXYIo5zx+B;Xs_Y~*ws&TA-b=6gITRpLL7Q##grJ#
zu?3Hb@;&+!Vb>cGL<}wdj@fj>JPGKTZP6K+vu3pu_3UjX!A_9lBr$oeuq51FD_0OX
zx$j{vPvo2oJ=3~o2WGjgSBV8F@=~x1(Q+h;Z-0fkW%Pt8&@+9PL}AuxdPuAtrz;J+
zq^tm<O50b=9DC<Xg`OFmn}*qHRSU5@WW5aR@~0dp8m|?c26wTZWyFl>cQE@D4-)zN
zx5>i3Ci*hbxlDFC+?DO^h^28aFh|WDCkH)KW^)AQu3=@wpaohpU}se0M{MHj!JM8l
zOCEZrW_=1~-tA4qg!HvDVduEyC~?4#UjgnV<MfFZ%Wq+pZtExJPV|@s`@r0bM3GKu
zMYuPHSQEVpo?+HlJ7zZY%&Le`%<<Dph>9B)D#5P*n-4K!Ru^XTvKe!rXLkHd!kiP=
zKs2aatqeQi&4-Dpi9B=R?y*3J$i4Lj=1RV=L^~~471%4(pC=ZLo;(lkVd<7c$)+cm
z+x<qVLeKQi3dXFzyogvIIDbCuQYLOAs;%n4%+)zf4SHtmlv9{(3+jlypI0t`U13Bx
z(X^OL9qtkvG>KW!*D(9d`b-qGcU}nlx}Rr>u5%}9z+JV{oLD}r5_3!<-y-Olay5aN
zd)y0%At`e;VP~SXmDu9lhB<Szv=;PCoh2tQ3pCXblg1fo!_Fn^0P)ukI2XgcEKr?j
zm3sxV?5dB%{168n*auHZB8sgYuM79)&!$A5>E)QUi-+q$&#d|8k2x_qkEmQWdkO3Y
z?Y0o3;+ipA&Xv@Mp4sJm40GPFCq$zK21{WlTC<Os&i4becZ#Y3^i1CROPH&@-xD3v
zZI{7LX-NXH#BZ!2+#|=WBuXzY#oXCCbUF0Qz==CC8|LN^8$Zl6f?ZmO6H%j}5i`$P
z@fFZB<0Fn>c9{N%*l(q047=iQdx++<zG0RsQ(g%@Gw0_8%mHz&MBz#+6WBF4#}Pde
zN3Vjr`hw-eO7~*SaeN%6&@&aZwqx#lkwpv}Ew>tWX6g3C_Sf~8v;9QPpl9l59l|WM
z`~fi~P<svR+$Z`IxmJC_T=7BC9D1hhlvK>}1#gIjpDotHE;J&BC{aAp0`6^AONoBb
zg_!kb4G`<>JlDZK`DX@Eb*_vh+&L?4h%v*SW42BdUJpI9=jlPr1@8BVCMg<LuoKtv
zC1!em!t6VG<_74Q0!xxH*S>y5bQ!nC8g?pKQN*&=5jJp-4%8*e=H_GWHt8b<hq&3o
z-gwFdVzar_M!08uUQg7X{uDERv7jCF%*1c|F*`@!Ar9VGvxi-&oj1`k?gM6-xzin>
zXXZI4Vh$QsPZV9SY7^|5o<<P8`M4e7u9>1mtbUP;Il;S!sFc3h3HAee=ZKMh63%e9
z7-vE3G<=LXx0Qc0^i0EvL6}8yZxPczsJOt+E5w7yQ}7ORmHE^y&@&w(;xQ{uuO${+
zt#E~1#J5nQ)GSUnxOd!NNDTOyjoBcsi`ejJlRNBFozD=}6UDZ|oqK^9G0y!VW;?zS
z9?&!UGy^afy|_U%8$HJpc9Q9?#O&8^G5h;X_JW=%logA)-mseJ9=L29?9?XiCsvpY
zVvhYV-y3?S{FKX>dvA6SLqBia4m;C`Q^dAAB0g}>vN9p+Mc>CPIBVDr=$XlOewbZ<
zUL$hOo#hL=@<+}@>tRip<q{|Egq~UOG#Yb=dnHjkWr-i`S~T|(eZBiJ>x@>}1wFG?
z?;_@;*KI_Van}B@<H$NejBXX$4R@<RBVzZpyO{G$h6F&*G!F5>EH)*Zm|;F+5A1wC
zI}rJ&H(;*0Gd>V{rt`N*%*xT_#M1kV_rfm9ZZ}aTt`~EcvQiNA%pm9Un2m<LB{r#9
z?t@+W(_=(UzEQz&=S?vnCcL<f+0pw4ao~d2e%P1jWfCp?riH*=dfY~0u3;VKz}B$`
zpl6Cq49DDft(55XVNodTG(vU~t8R8<jyG302t89V;w<KV+1JDfEAueenSVP%>`>qf
zhkMR_J)*(So0x^;z7bO&xktd>!#SPEojBzX+$+^K5bfM+Fe~s0MMBRk(ma4U>_stA
za<uwk*tK8SPV|4>iCN!IE(&^P{pHh`Qw(1c)dEeAz>aHTBr(=xcr@H?KWGzsrSdQr
z-uyx|{p@lS_7V}P#H>4$V&Lv)wT>tlU4^+$LEsqlOjo;om{ork63dlUV__Hb$df2H
z>^<h5Q!>Y)XNEjIiP^;cIkDxeaUAS2HN%KH-a}8oU10PgVv=4CW|!BWh#cdb;$dHQ
zIhknHI^iVTWdqj`^RHE44mROUfSxH9vIlds)J>v~x$-I4X@7Pj*2uPEPP`+P2t8Bz
z+i}c;N1hU+?i-$louyp}vFrFx%z4TSlAvcAIcH%O9o9)qSF=9@JMX87L|#78WVlzK
zT}5<!QHEK`oBJ&E%#sVcFh}ZLCrbM%rogUK#Dy4W_y)6KtHe3znT_HxnA5I3CTe`p
zPlX*%NDwjp=6B2v=JU=&&+HG+z+5cbPBgc&NrRo#w|HWXg75{n2i#vl6#iL)x#2ix
zI`mABM>{a9J6|PMo|3-^yErvRqJsM?%zeBQGN5OMX+~i-d-0IiE~tA6cG(vKi2AR;
zVixk7lL<XD<#HNkcf%GUSK#`~u&WS1PP8=<%!0f8hh@Y<sXLfMZw?YAK5x4M`?m1Q
zM87+-*>KmhvLn_Vd4V}uVcb>dnW}aXm^pvmC&nmi<-pGRksq;#s|Rzzsae;cXPP`s
z!7T3HM9e(9HWzljnn#HO-u&0$UMr|ibkVzoS><&<u}s7x5BAZQFA`;2rEkE!dyh3S
z_}Vkf#wKI(p=UPl55=4zRYKG@Uw9LC{GWY@iLzaoo$t&jfSx(nmxQ_WNCVOG{_0z>
zld(HY%sb9g2=^dm9ipi74a`kkUy0souD4;Y`Sd)ons;&$+!M}P5|v&&!91{S)E(%V
zkr#q7Tj&)LJ9o}6hFz}6Hlm?n2WFAhX?LM#riq`z>~*b<$n#-k3GAx&hZ7xca@~Ww
zqPZrqIQ$ys2-(j>DJ$nv*mv}uB?c%=ybpJS`{u-k!AF==kMos5&s2XDh?(2DfEagb
z?gQA_scj|pxwT;~;*~Cko@u6e0<+|c8e+Df(L>nzUpPP%dd*P*_xhdcMEA>AFsm7U
zBv$Nkcm(@c@g$<W$@ogR_jZ^PL#4_wo8BD$7<y(~w?F2r@I0d4o!M2e6SUewOg_?#
z*;PUE3G_@(yJMKk2djwI$_CZ2lY6v}SitoIbI2*xr_eLSpI*Y;;`W~Cd)BrFb~>5~
z#M*6RpTRvza3xViuM{)K>!G#KGowXzVz#=RL+oyu`5bondz^^I*BUX4nTXdx&&=3=
z1hbFSBO<@K-V4~(bnhWL%YMVGd`Gz+dS+?g1<X-LT8T3EtzN>eYhxTS==kUcxEm=i
zCpI}1V@~Jdcm+LEQ*AqD-lti_1YWsD*g2lHCl1urV=mby`Wkws#f3wdrS%>Vb9ZVt
z!7fn5pD1GZ1#@GI;v49hUgD{kHLkrOR&`i3!!CY*3{mms$hUCsU$c}L5nhPdTy}ui
zvEH)<_BnkSL<0qxR=5k_w;`qu)?)TJF5Ct^ll##@%#}{}h<2wm-oZ{m&6il@_6c(s
z@62}SnUb2xnA_`K5&Z?%yoa6sg(zZu<A@Hpr|i@vs$I^<%w^a|jNRk*0rs}y7l^$p
zr8?nW*s-2yD)khz#7)7E&@;2T_ha@8ze5zfqt*qxy7k^f*CQV=t13+Y1U<8SV<P65
z!52h1<yGCV>#2w!hH!CzhP%lrEn-V`F6K<P9-_|K%{{Oe&^$*>+9vS@?k<8B#9#jp
z%$Um>`Fo*fT8RW<mc4w7nBSuE6?VaUJcwe~-eGQDIkgXZrqBL(%-T}5#F{lLzQHcB
zJCvv_%h?b2!J>u4sJ?8>mPfjXU8S48!#;208KTi~u>rV?Dw`40ogQNL<{I$>dM2-0
z0OsoI8$?ImIfJlMI_pX-se6k#a@*ve&@-hk#A5E$ttJNUT*mS7*UnI6Ke2JyAm+4|
z`9q**YKULP%yX@S7~ipx6Lt>!PZ9g`MTWw?c#R3sJp4XpDcNCM&@*$^`(X~~yG9gN
zm^BP`4W-URkHOcN)sIi)hMrkj5sf*{sgkI0YRPce_08W)40G$pY{sj?13j~S(M8PJ
zb!|j_LF*B)6S{DMn9?Z33wQUOMnta5cQIEi8^Q-Y({_&!W_j^!V&Tde{ICn{a3D%Z
zHDGSbA3qX$reAj?X1(xoVqMW<0oWz4-%V6K(u<i>L1`59%$SYmF<TEd6MN=Z3c{|S
z;uz6{Yt(4Ci=Q$eW>(+E?CbV}C~($G2==v$GKntRrj3ESir_|KnQk5C=*F?a&@*L4
z!ZCMemJ)+o7LA3S@t&Q;=A3TK87mb;pl53DKZ}`P>NPQOjrlm(Id>l+4o>3}g?nj{
z9?`PzCT5u<--vmo?&Dz}v@xA1dVGo)+?(cXAbLC1VAkXkngBhsdj0{-3Dw0!C0=!L
z*bO9aCq~wFVz$^OHxYVfXWD7Zxw<cjhC59qU?(CHNlaTdd=lKfTC|Bg;(3^>a=s89
zI$R`Sued*zSe!p;GTbB9tRqT=S7Gj$CLjepGhqEb%m#gh#D<xwQ(%``>Pb`|Y{$%f
zTt*stW?aQd%yv%CiG2yiQ(;#$Ka6PRHdF@glDvzE*^6>8``3LU3JE$*gMEEkGSR(p
zf-KzCcCH~-WL98~UB){ddZzrIJ(znZ+$4ssRF;FCX@?uJZE`E-tbC~%&@=VAk7E`L
ze@aX)GL(m%>-rEP=aHY7%V#c_2|d$#V-{w)!4JfOIra*$3#mvXigSt1f_qECDxz<7
z8D<?fZbj&swaL3MCoQ^8RN1CD8+IImF2rcvH<+y&C6u6Nc8`t0oS*raXxySd2X<n6
zf`}P8-!c2FoTm&ulYf5(=9<avMCUa&b78049ZxKsCaePYsG=1_nZ6RtT~VC#pl1e^
z?!auc@hY(?R$di$>2n;3noh4U^Kwm?4?QzseiUZM>W9RE5xQ!yD@hI@TGV~TEWK^c
z0_d5!X=#`Pbz6ucJJ+kju5s*fqSrFPg>ctsSw^gya0hdI&LB~-W19x-`-3kNBl2Yz
z!QFg~9kC<q1?HS-<20dX8my1NEZldWm^xES3w9o*enjrU&zLJ?XK6#vw5v$Ltl-o{
zEJ|3r7<OUvj}j%__;ujkK0=@9zvvcb{knc){U{Gz*r%jjB&sz^>%pCCr!_G)^BHE_
zWn-2=&+H8d#auX{glM{Qp+4*+I(&#(le;kc<<D3OJyWnd33FXo1JSi;wE^r@*B>U9
zNAWC!d(2E7qTI$Cn0tQo5<}*=8p7VB;ykfs=;Y;a&rGl+>Qq0$EZ{cE2zq8xaxi9>
zMMXr8ZSz;au58pcqLpq3X4%GR#?UkK$DYC*oLNT{YgxGxcFh6dM4uck6S!-y)Fjpf
zU&EX@`7=>@jq@tl4}LmJjG8vl6z-Nq=ESbAk1*#&@vVlQX;d1BS#)CoF+Fy!8SK30
zY$ftKwPCIvD!m4JrsMn*n3bw)h$SP8%wZRqe1Irj$FUafonGq1z_crv4Rt>f8+{!t
zV4pTNiKww`{5rVvw3rg(CzNA$$Qf=4J+uG4Kjz}#JfeC2?DepdTC;_i6V{A5V49>A
z^i1LP$1pd1ts;8NG}r(;_0oOB${z!m<6>2<p=T;oT*BPv_?{S+U~2<Av-t_ccGt1C
zaL*pGlBmC^6ths>(2dYDQ%3E??4FiG<Z7I02fGSiC!%d;BWC$!;`Y!p3j>Z|4xR9b
zD6vw{0d{Tg_YnOif5WVoue=F*X5FU?n3Ka=iK<0bj<DlgA4iOd8tnvk>zT`mJ+{S|
z3x510n#|em414j4EMn$Rxy^9*O|T~lRM%s!brp4ip6QZ&2(!wf2gEWj?Jcm29_3Gz
z)%}9G`<0?A^vvL~shEv3-w>PMTDZY3BOr#ToioxM?))p45)*?9F*{ElAP$;&ZiRj6
zrwpRyG#L-L%M{rV^S;(%4vG@?gq|r{dJuDy?LDG*tcDltH0Ssds~taKP8d3K8}v-2
z`N^0Ep1dMPj#%RjJB#EfV(0S_+u@$;rAstS%f~FD+eb|Eb@PF}*Vqe0o@G)y;9m81
zJ<(yp|Dx&+o2h=gHjYa|k|YU9k|ZQal8_`xLXy8EAxV;iBuNsIBuPk;Bq2$Xgpec&
zAxRQKk|arzr2ATH=A60LqtATLb-aQ7WdB}cE9VOOz@1t4<rH>!@DrkRp~g|z^;vik
z{lmUu8!lYr3wLI#bs~1^uXjYv#aoWSj=Lh9825LQAG|xnt|5+8=V6yR4G}F8_8o`4
z)XJO099Kzyc=wxZMHE_Hhu!j){{-BbZqov>HPVZTHEn7Eu#5F^Cn{!r#vV3Ya1!p!
zQ2%&r^Vv<r9#fM**kykSCF;-P41#yTLM>wQ_Z)23umK`x>7HQNS6N>t+D3|>f_M4F
z7Q`a^YV44|ydiLBN-Xoo?yfE%`b=DQ8g_aKuEeHSAF-2M=Y_(Zsg@jz&9S<H80ER~
z4D4*CogxnEjbj(Ktqg-Z({$!tZ1Jo<V&=zPXJO~<f0f9eD-sUxjizQq=iukqs`DnD
zgFCar!WTR8`vaov!X*)~8+hzY4E*&0+c<L0dAKt>o<(72*w+$uV%JB)j&IpXVuI5s
zw$ntl3vg$Sso%yff7L^@nrs^dJDKFm#Jsmc7vVj?)0ild{uH}iZ$dQOnVvr0*xEC5
zi1mgFF|dpO=txwa-HJVWUn~~x%<wM}*p|Un#J+;HmtdD`ahzxvHjFL2P$drT%v9?%
zZ1-PXMDE4bmtj}?EQaXtS0EnVm0}HvrPYtI!<_ySr4l@^z`j>Ki|FUNFah2TChsD)
zXg6c0yq$R!?o5qoXR*1`D~Pdes}o^o?{kzmd}k25#8BxP+?nS7H?SpVe;{U?S|-8H
z_sa#M;Jhi<;k~&)pXmDi5w?2RZ(`MBw`AByTW1jEBj?|M_aVid#1Q*NY_q@9Q{c|*
zRymEGRb58Zo2Ypcb^-~9iAk^ev0Yr{Q{m3!NWO+$sr{a4<7u7-JGp5Q#6mruba)SL
z(<O?}%*XD!^ONZP(d8EGb^TL`jrZqfz<Z+UcA{!<J@&Yiz-_oQBQ1ikt-qHL2V~VV
zVVD2dgJ}G#7h5z^_72>c8PBd@d)dDw^2M5F!LC6ijOgSv@h-fpOk7PYSI@<cc=eqq
zGkI?|?E9}L69eAPz6b9{p8pZs(`vBO_4sn&&eZlffz3Pf5i#CS^*-zzKOP{Cihsf`
zyDyy!cc$f+OW4xEuZg(@Mh{@;ZxKQi4*Q4QD!VEV?o4;<Y;4V6Ux~GfyC1?X?pY#H
z>F=z3cpr(`LJX^}#I|taE`U3;_sTKs9QB7p16Soj*a=N`A*N_|V!OSSd<1tU*R*Kt
znzTBieVaiM>=b<hi6wXbV22v6D26*z(mxZsN4%HlYid^lJN+;5#AYes$MBw9U_w;?
zUXINf##st?X7uAD*tXX9i9_cVpTMq2(TQkg--a#mSG)}F%q*2iY@h0CqQJy;Phr<|
z#h>W%>KC?}>#}mVGb^vBV@GLs6XiU2JcHe!z$Id^o?r#Mo3?Evb_qYh&b%{D)cttq
zIqdoU?-CR5%T>a=v#A4dJm?*Eh19GUaA#Uugk#Hoe@@JoT~h_Sz{kEs(O*BXJI*hu
zhC9>iSqip}eFw22W?K#H5>ze{Rh;-=!uuGf0Wm_o7~AUAD6yZ{y%zR)*KZSz-pbU$
zyNIVPF+J@Kwx`~Vdbl%reL}J8h0BSKhFY&+r~J{ISSCJz9e!V-0q#ucFG<*aL9Imp
zf~~J%XJ~Pr*m{Py5#Cc}^@y6*1=!rbhKX^Cu5V!P@GOluGA7jo@1-%;M2qTI*iuf@
z-ol-kb0rwtPrZ~V<hrsMb}hVzh;G__*cxvazJoinM&K%TY+5r>v2Ak;?1qn=C5GPN
zdJpgBhC0Na;}5X2#eWd>O`Tg|FZksKF<EL(8@#&~SQ0tEzr?OOGo>BwOxwo+*z(pz
z#G>=dKfo?T@gPycz6ZN|Y<>sanLa9)vGuAOiA|iwov=%~a+;|2ilYnOIb1b~QP=Nb
z+h~6y4th9#gngkv646votQ+3N+suiX!d2MbcX&R*oyq^v54-VrKGFI9(jM5Un(il7
z1a)CYN=bc&J5$yo276$jo){==*b6)3$3eu7;W6xt^XgyV&eVB!2b<6S3o#+az7KXz
zDhb4~Ju|<;dpYN3qLq3Dw#=)E{cvaI@gBtvxSmTCdAs-<?Akr{5<Sz}v9<Li2H?)D
zKXL&(Uic+Z*--yG>_)pz5W~fPV_V)=9fUixulE*qZqO&9VS&vL*a=(25mV1hAA)yx
z*-b=l>oV-x;eSL2#lt^guk<XNSUR?77~aETb`zzlTd;fgi2i~*)9=bTYy<Td#FqWK
zBd|;1^&@I%|HS5ctNa`8%vga`Z2PoM;&7|gDC|m(L=(;LO#K7zl7<_I*~d$;eZ|L!
zf~Fp0uy5|oB)Uq;{)Kn-0y|>WKofTK8R2obGvyzj!5-TFj2LoW`ycGg6n%)@cHgnH
z#uPaQ{&#2UsU%|yRJRe6IRBdfJC`ewM2=UJIpMu>|2m@0^+Iep?Ga+3$AO8k4;HvZ
z6xWmHg7>c09Yk;8*Vwvu1Si3r+1PaoJMs7vqUwDOZrF{Rco8FmzG7QTE#iSYb6{&C
zcK*OSqOt52Uf78~4ku;|PnrzxUgy^k`JUxrH`omkonrR!!Cpn>Cb4{v<P><1;Ityj
zsMlfl*Yoqkof*Izh;4MenAqN=HWha19_~c#w9nYQdJ6>L&Wt}2kL@VjL>%2<G7WZR
zU7<uvaZW*am%gt>%<av=_755$3K#5|4*S-v*NN_D#D(BpQ`Ul5yS*AaZkTrl+?h&>
z{@5es1;ns16=B#}#JCcBt3G1q?3p(c?o5L#vDiZD4aAiF8%1E}#(Rp$r9F;a)3kCH
z+?n<Qcd-@I`iLd1yF_6ZdgLlm@{WiYy!UJ{Bl;eHj;${~NgVFXW)olR<lYBFb*Uw@
zVaHkEOpG4*fNgtbjs)D9LnTqzMcZqMX6M(>ft`fnNn)1WD7Meoa!I%|1ypWhH&yiz
zT{vy$!cOhVWnyK$kQBT}?KdXMU4M!_s5N08+?l~1-q@xBImE8D3evF4Y;`2+3b$hO
z-w~S+cV=Q&1h(_>D&ly~S{c|?m>efs2MuG(N~tV>J2QW48g}477g1E!S{8O4B{4*=
zVS$D4u5;dy*iil$JHhTRQ6<Jx4)$Y9vxpIU7A}H!E6!cS{uRyGdG#~p;m$PTJ&P@J
zy@HtDv|0gno*qYuylI2j^=p+B;m&kCasyjg_ye(QgXLn_g?C*bN{dfXg7>~0eWHKw
zBW%N<-^A8@w<WMo-I_tvJTqSz-nnIW663ZvVmk~^UkZ2Th{9>?((*E*#n>tp*h$44
zCgxQ2WBcuqUj}!k(3NZ0Ei2v=-S(TS!cK!Xf>@))vmD-In{<ha0{Pg(sXvLKtuAV?
zH$Rd}?8%(F0^YMXY$xg;ug4Y?7f^>gGub2v+qJiZ$SI}15_VPj9z@%LUTpa@vKnw_
z7L{DV4%z;eC~@9&73{hd!iYY06E)#oZ%mumv@{nxsp>mXjdQOS>^ZI^6Qk;9Ys0(E
z{{M)BNj2DoT70YF&NTHnfh{iZh?u!nRR?z7tp|ww!k@4kGo{zSo$1_l30w8}Yhp!?
zkuK~aO+tvWLI1D^=B`=`cV^($Y;5C!uf&c8yY*m~QIbg18J@Kc-ucdNAtsbpVmsM!
z>%*Nn7JUr6eCb1?)gI;bu#@3*A?B^<#15#JG=Mu(gf|+yJ*kf9*<`Q*cG@0+#QM}f
z*zs#u7{Z;Yd?XWlbVe^Re1qLa*jaYP6Z^!3jo>{u$AoCuTaGOp#JLIX%+&lN*zQ~J
z6S>bQ8pE!3ffLbTdmFaWu(%1_nWYMm*kR?>M5!@7Q`q%J`xE`DeqkHzS+*JO%$E3c
z?35MVM2-DB%wWgGdx;pUCAbCN?VC0dho?TlE=e6HnztS@hrQ&HyTt5FxvlW-yTO4d
zc>Eo9v)C*PxHDZ%!m-tRpA)O*uK5pk(fPha`GFtUL!nD7;m!;xNx?ST-a+h+*tQLJ
zSqc}4dUpI)@Gda6o|v?>7~7?4l=#0tCf^SG%J|zvn|c{*c$eF6ODs%!gB`3jV+Y)s
z;vS*cT~o`6-fOjNV5i&aO>CSofSs7BuoLb~)vhG$alck#WX@Jw*jbyLCk_Pi+QEDN
zTs@-k)&gwNfnj3C0#|$3dzGXS`G%!-!Fxl5HPNa36}F1qGzYjd%cFy_BbJsDW%jJx
z4ZHpchll|y`ml}a7dpb7+0JtnJ3XnHsNJ-A5A1k7&JyEOxt!qLajgz<)cXN;*^D1V
z%MH$ZVK3cvgP1Ee#~I%Jb1aF%y)Us_1E=hRJJUTs09$iw5wSLOxeM&#791ohZSTPz
z`8j_-+?intm$5C%8;QMtHo3wsC;Bwepo-%FybJBoB&NjQ!**NojmWj%(GB)BJV``*
zEwO{}uGnNwESXw`9h%DH4tJ(xs~>iccRtZKbEyaH^f&A$Hv4s9CyPmW!kwvZ5`)dz
zTThIhYj_BDw)sKCp>Jc@MWO0maA%s8+`*RE{)LzoVSgBQJ_-p$0lS&r@ZR*tl<2aw
z0$Z(W;t{wrD<>Sqj*8DE%GEFSf!(0XUSe=kJGQBo#8J32yWB5eXHI=d)LpCZ3p@VS
z6U4+Bzp<S&Rgb})Io^2-yTb1i(K^S*4|cL9am4(<>Br$caPB6e=+-jqj&J{nUJDNU
z!(OK(o7nJk(Fu4@h}cb3DR03ZvlR`1J2N8s9JbZc7sP%?-IK7(o8U(@TJaNGq+U4?
z?#y(aRBX?rP9krURS@jz-J^+)sZ)dDU3u*WVwradcKD1jqVxujQ?T#r%q04Y$%eqY
zVU8WK^>Y(;YM}6GxHC2L&tP+JeMXE6)eeQ7!vY`Th}C!O(w~ZF;LfyANXC{bZzJaX
zu?T~mUvwl<sA}?AcyDoBM|6uX#MW3bLacE)5DxoTo?ApkE$MUcKKy0}F?8x{Z1YsX
z2)HwQ-k-wG_I^Ut&(t^%JHZWJ#ALs(*sfxWBH_;DG)cs+`uvV)J9o<k*vaRI6N|o0
zih}o$&^1Jfl058gt0AIK#J-EL*HgGjY_gS%hWDgD+lXpQ>##Yh_+#MCjG7RLZ4+Ni
z9IR7|g<YYGJJB@hGq$+af=h5`X1d2?drxg5@~<_CgI(kMP@?k;&dczwnyE#s=*+>6
z^cx_`=In`w{ebaxVql>76?iwEYeDQVug1>!#+v|lrp^L?Y`&5LV!}_AtFUv5a3zjC
z{fJ#|J1-ILOsnWvY?-AE#5~81*I*Yg;S^D1#W;3*-O41mGd+3kVrwV$5$oUVx(>T|
z_p3zZRFPzOAJsJ@hI>E9wwy8P2Hcr_2EN$2oezkHVoOqBC!FI<O#S=;+dXj3O}I0;
z^P{k9&1;Dcq3cs&r?lWCvD9i5JM8E3G`KUR6mDbpKJ6j;{n?ogJA>%U#FiIAx8Oa+
z(U_<a{}h{R#e@vFGh<!6vF&+sh{Ku+w_#WE#*t_~wG~@3RV)+k%<T6O*uLIXM8V9p
zcVO3SaGdDsH;k<=rjiABW|eUocJ${iqWoOzyRaL27()#CCXfy9W}$|}?&8PTSyq3E
zdJ&%YU@xGMMNG0?m;>)Ff9#1IOPjGPU(CD@cc#sRv)FR+6~w~2)w!?>b~#EEPa4GT
z(o}i?cc!=d4Q$=1ABc^*mU*yCe1CzcI%CR1cpty5PmJt*gl+Bjn>cXKEg$yz#u-H8
z!1)F6E;@H7F~htO+w0r(Lbx;e7M#XzC@v#9{ap13b}A8viRDlGu_J8di{Q?biN1#2
zul$}E;Amb9JEI8^#CA2F5_nIq(<N&2<YV(D{UpY}ad`}TNB30X=*_vM@Ls07ooMM@
zk1ahz;0fHBxduVl{+%U6VKMbG*tOpCAi96<#nudzeF}GG?ZYeBaprG{N};CZup5yH
zBZgT`d<O3pKedUy^10YKPrnll{y0^@UMM=5nDS!wb9i@i{Ex^LUxQtv##ae<roGDv
zY(<_&#1c)_7qAO`bATv0^%Hi_P3bDQGkxD*!q)eGO>DkxR1LdigAk&+-#=_lu~jv2
zXGR-mW7~fIN*t2h{StOX4-<)I-)7aqyF};~Vpee_wvQEe9o(4$5y!Bb<R21UY?bR_
zr}k$bu~NAcJL-kxE4VY|CPZToUalhs*BLax&eSE4*mdm>cBbZv*KlX*x@ThZPwgcp
z>e@BJ&iQ>jaa>6F4ZK&}HX&MfmSfBMaW=u7nSbvHcA)WnqG+JvTiA6-IuX6h+pu-M
zi8sTY*&q{%olsm&RQaj*4t8Vb{D~1ye_>nME^C21v;Sf`cAj!K(a3Sfd)SFgxI|1>
z6KsWd&$^97UY;k|_1DIUj&BaN!Cu+@F0t&UTsypn>pBpnz29N?3C;Qdcc#BVIJRNu
zb7HILnhw~d-t#4De*S^Y9k`?u?##G{DcBC?9mJ8-+qz&^Dsz!&Va5Lu-lcx7C+5f(
zWBWZFB?|pH*bV!Zi?@kxFJwN!yN07JvF7p{>{zuKJ#c3#x`bj6bC(lCHMKs&&isux
zv4?*EJNu?WFWi~>?~||vy<3UNx3_+QovXolBBvj3AG}wI>Je>?3$W!s4-<<dUBALU
z<Y5|7;+s@Iymz0rCi)b=!q&5z_6_dLrgOpAN%EycHQSW~u;cjSNsLnN!?t;`@H^a@
zgB(|}3okblP3txf!cN@fEHU#M*AIC2*3=>LyFb8g<o`i*)^#3&z3TfL#0sG~KjA&{
zwk1)v^CkAcu_?oFX9nI2z&186B6gfy{tI>)k_U-8<~`Va-{z0NotYqW8QZD2kvKNA
z={M}k&z&Y(J>?jMcNtqvV&27j*a6Dlh$4=Te_-GKzh7qmUr#l$F=*{Nb7DPr6?XhJ
zp1*KsD!=i=9zB>(48OT_9Cntv`-y#ryRdVGr2fI3X=o6GE!<g8Ocgcc`2N40`@J9{
z_vbO}+LP)N;Ldb-cn4d_{0p)4v^^*6!ekPNQdTo3!h7$KDbY{90^8u}L@u~9TSk4b
zQ!eHbHC`;91UoLry~Nnd?b!Be65McS4)42wUBdm6Xs)Tx13Sq#Cy3enzp;I9s`A2}
zDfs>tcJtv+MAzFklVPWB5J#*!Hk}XNqeV9n<&Dd*hkE`ILnIGRfxX$oY+`r+B7S(!
zI=!2ySKNXvU?n;g?#!ff=dfMmUl9NI0a5|jRgNAb+9?0TmV2Q*4ercBj#TX6%bi5=
zIx9igb?u8LdS9D59o}^{HxL^SmS89Hj}cXMJ%nIC-jYd-6q20*@7A~Nhyxu>*!jnV
zh2hRLzIO&&)c6@O<D~XX*m+6%5c$l%V>k3Giol)eB$JG-Qrt!?AF`MQyNGj<M46|P
zMd7`F=Q?7*#X@W&<q=~0?gL`5Pv^Kr)K-%ghj-q(9mII<*VvBN1ZTsYIofy%yX@c-
zqUB8u3D`;NdJ%IEf5r9}S~LglOksmW?ADHVM0e3GlCaaf7f!70nKT#P<4&$2Dm~1@
z9@#QP3_HC~3icK<H;KL5B<I0<&d@fZfqWgd&{KYCxHD5mPhz`WEGBZjP@50Cn%(Y1
z`^%rP71b8Vz@1sLFCIITyNM{NX|e!zJ&mD6Uw%$mc-OzFMQm=#!A?FrKvciIXCdr4
z4XzWTkBQ5{yRE1NacEODc2N)SBDgcnB>k}^9u^R@`c>p%=X2VXC{X+nyJ_1z1-LU^
z&c$M@$u|%ycWzXKUDRkWQBHXrd$4llVz@JdIqqVcUhX4y)$US)UFN>4MBQs5OW>Vf
z(~OvS@Hw_K|0HF&GsoBXVpp_0AX*D8SqeMZ+s?%Njt|&@$L6TOohf=R3cF)dEz#@b
z`em@wkvvIk*fNTp(7#+2?o1V#+t_18J;aEioy%cob?!2;zf4FC-t%@E6OArD#THSX
zumbMP^xfXro*X$uUNr@E*wxoM5*@i)v6Ziht%N(XtT6&R{9qMP`sP{<*!8VBPV_%K
zjBO~SvI_3Z*7a%FsU2NJO;Kx2*m2*BA;$FxXu-R~NkigD-ec_2Eq{p?r#-b{FC~*j
z%-ObZHN5)`*%O82o3UHUX6nG5={6dMt#Pq}SW~%r4eVlfA0;YY9>gAAuA~chX6U{f
z*yh|Hh&`(;*TOEl@d8nwe~KQw3*OWxCbvAoc0K%?$a&js9qg;tXAo_V&DV!_dC{H3
zqD_t1AwARA!<{K1c^bPruZ-x^zsdl1dZ!N)n~M6eleWokfICy|+%;?t`S--Ao#uwH
zvl%@{99+V)5#9?cb%~}N`Pkx@e-blmU5sGwy)Tu>e{Jq2cyC;_o#=e99$S@Pz!>h#
ziZwylku4=eSs`^3*bQWO5Cc1Uv5k+(n!=sgk$nX_W7Aur&PmhFu;Y^qBPMK_Xa?_2
z{o2H_`MKETMc;{5Lrz;@FLN%Lm{&I29Nq(V{znwKScBcZgl{X{nV!2(U~6+cBGxZg
zwSZlG?E#`P_b2SpMCt$F&J1t7gl&27HL)+n$P#wBYeI;IhyP&<3$5A)cV_DPY;5<A
zuS9Oq-Bz%x%}yjb^vv20?@A}P5KHqavBS1-Tf?0xb@~`~@BD{EzirApU}rG2kJz%P
z6Fa3$(gyBKjnRwPTo>zzv6TipVQ0TPkT@Lo2fJkX3R}1{&G%(uOLF%Tvsc;K!Opia
zo+!vKY!C0vDJDeMmU3+M!<@U|&aBEff*rm7K2iRdq66%PW;qc<Hnm}!^@#6=JF|OE
zBz9I_HBql$&k=S4r~QdZMZd6Jwk_KOcP7WVbnMDS-9($6JDgxAHyTSUTq3v^-h(SQ
z62&>5V0Xoh6TNE>Im2Fe-(6y3qTD`sPh90dR6Y0(dwj|)7q~Mc*MwtRw>&2fOkcAf
zcKI2;MB|Ph*rLalxWb*8k)49=wW)*1cXHbS*fq?#NOao5?*{KG{p*S4^NX<~ibjbt
zLkADSzCZjnF`!Jw9o~(0+7jEN-e9LMnc)F<ruOboY+jCXV*GL~PuMxudJ{({4Pcig
zDjb44)3PxMTl!!tF*jwa7wr7koF@t&<~<DWt<&|0?&}M%H9LlhwX<BkVIP;BMpWvN
zIs)$_0oKH@yjR#3Tc-KIo!J`_jGZ&TlxVPR<x$uP4S5n%7WHAfl`ZszJCkcP0lOxu
znP^|R`55dJcb_Ge#Buq-d+2f<qU62@*gcbe5PerUABVku;|*f-lsW$Jo}6MyRBw5S
z&3Smr3Ai((GXk(}*B23oe3u8nu4vXlqS>Y%Y>A%vC*jV_nsXW3C$Etx(7!1Vc1<Ct
zi7rJPLGZ4&O_Nv|eh)ip(Kn*pPRC%_5B|PJ3|=C33f@gC&52$AUSMa&@r1ygsaxxZ
z&A%_7n3%ZqH0+#L?I(`AbzxUbkqU)7(|Sz|wrop1F@L(@8Q2A81QA6$#;`kl)x+S<
z^vb@2t+VM1u_3_zEbJ2IBoI}$%nXP3v9G4Yi1`)RRz(xf!JXOv!v{MrJeO!xwm1TI
zB0KjI)1%t4J(ozFhdYyZ_XX_we>FtM<@%AZQ?5NhESvNjJ3LYK0^FI>jkmD-+&&Tg
zQ*5GOXSgPg*y=U?BD|+g-$c}0Uxv-y@sAic>u@ye9kR2DBcB$<z<X)HZlXnA3%1l2
z(O9@Mb3)Ex`^|qr6xybH33e?%juG7!{lwNNQ;vf>v*!0r?AWMIqGF}hW!McnL=!{f
zrpCj&`SK0K9_JG5>`7xp{Z$@UU@zF1Nlcz1n*i^wDRxB8mL}{fFX5|jXWC|*!IoeD
zj9BEWod~;-Sw2LGP2aJ*KPg^=JJV-QGPYh`8?ouDMH1|iLL!N3MU$_?JIA(l#HjE>
zY@0<R#6g<_$*?c{olZ1eB7Fni#VdCZGygSUd&dc;z@5oodkVYJ`3ccEQR61;R9ATs
zE8M<fM^0Ik3U{XLnndh@ckhUS)3>C-&Nw5S*zsXfI=pB2t|97V=V9}08X_hH?7Ibf
zr#Ux?V`h>W@Lv9P8_{Zh9kxsn|82N4^M0Jf4hSzMij=8k!mi!Mo#+|$8C!eFf;(_$
z);q*w$NzgnR9<e91-sFgp~Ub>oOj{fGEs}z_c{kV*KL4kn6f7u_QGqf6H~p!@4>tK
zbPFQ)`fBXj54<^WXFAOC$5zTNAeMeoxevRr09T?^-bd_Svw692XZnT2VjIkFAhuX;
zd;q(YAHhV8MdR39Wh?XG&W!z?g>4_zM;v~>>mlq)9Ig`0<3#e|U2?e@G28h$w(q1#
z1#o8yuJXlhe*J*xI%P>A?9@}7iB<1DU`Kn+c?5T+d`1-ZkbW&O#CLrW?967JBz7B(
zVrP9?UJQ4p-kjUm0(m{eq^~<mVCNEYnaEKj^cdbNEscpb;ZL#U7ELIHJG0Qn8$0;-
zJ)-y$g(tA<dhST{{`VeRH%_b!?##xQ5!i{&RYcXqwNGI;u5p|g={AgQJw>G)?#uz5
zH0=C$T}0#Q*3V!knh`_H_#jXL?_R!!M853D*bPR1iB18Y&tb1JCyQ8awy+Z3Bfi=b
zW#%_y_dlBX0`AO!A7R)=;T6R8C#$Pqmu_>Es2w$k&AUXY8t%+^ha1?A|JsS8s+Kjd
zD|>l?XgO)hOL&(~)F<Y?euVAs_M0f2;#Ld$R-Fu@yVv|Wc-Nf1lUS?Yh#mJ~dOh5k
zO0!O5kK8RIhJ9M~3U(F&hl#xp`muA&<Qw45GzhtdEj0f<F~!pSHSFAeoFj5A;%S8U
znkTwM``-_-6{CI<OP;&Dfqke$Dp4|SZWFxssBS0vI@e?CPZD?wcV@Fj5O(tG5~BJP
z^=8;{rg#ve-}PeKdda?nJ9FsP73?DYw?s2v(-zoC%nBoB8BKf-?>?Wji2`$Sv6~)z
zC%SxfYK6U8NHVeV(d;&OkFxxaC>LIXJt)W54tHj-%?WJN--X03CDjkG%Y1%-sQa%Q
zn?Fvv1MbYkmzS`eonI5juNrm2u0kV(Xzlh7TXxE-F1R!Eb+WMo-+d*DPT&0zb{)48
ziC!OOb;G-k?-pXi-Ae2PBkoUdXQ~7o!yc1(NQ^L3?tz`v*L}o(=}zptN0Oi6&NTXQ
z5nCj@j+p+$pci(YHi1Oms6W{CN-Ms=o$2V1iLLzaGqFt7t`BzMFXM^QlZ3y*d*4+P
zqW|l1Y(qEBez-GRZydo+)wxg9^iuo=JMQUD#5nynY=;lx18`@Kh(uzS-mNBDeA4?4
zJE;JFV$OqK*nVcq2I0;W3Q5Oqk?tnCS?>4&JB=T)#2PulA$X5{vXQ9xyA*r)!Z<PX
z`Jtb%H+Q&8?71X24DZ>h4n%$Dci4iHX8nRYGg%`X+x7KxBIlGfBe1Kw;Y+lA_XAtr
zYsqi8GmCDeV29{;5G8!Kjl!;5<Ra0>i2o0~>wQ{JY?3I(PI@p(RQq~x4E7u$w~0}Y
zWd6dtjioJd@a!AxLb(~^aA%s@gkp>TeoD+#()tHG@8{k`{(s-F8!stv4F2!VbbgtH
zt?JxLthl;$0_-9+&J$(bcsb#HfKQJYs8fJ#{BD@oA?P|0_8GU*h&msnxZs`7*P57c
z_Z7C2(X>f$XO5i+#x9pAC0d!S<c6KhS5IP|bRTxWqlG+hXNvqtz-~X=O!R!RnHP52
zHfM?T7q}+Fd%ThkQQ6@E_UQN^F<jM|5B8QXZxH*q=1hV2+^d#E!`Cmdh25s`!=0IW
zBLLf7r-;bywR|e<Y6TAx9rSy!l|IZDfIG8P<T7^H-A1C+r%lsf*L&hL(eD9=AiNux
zX%bsb-NR0i{zlZWbes-*t{>Nkv2tQU@NWOaoH#u40=wh_&kVRT&7b>WOFHBevo9?b
zhMlkKexjgr7j`q3)J(WDT{U8`)nC^WtN08>U>AKOh$#PV414I1`YgCJLvG!{Hq-w?
z>^^EQ3cD<k1frhNOfh&D_+&~<lBmFTc`#8N?o5uaKG>C~a)~yN7SD#AoaJ6(;n{ZV
zU^xj1xHH9VE?{?!)DXRu^yk1%_xTB8<M;@6;w4o{xHDB>-ohT=`-vEN)n+d2tTp0@
z0|%x{!FxX6CZe%U8Mf%Vf5Z&I!}DP8bt{|5_hFGVyf+-(O?0~3f~{gCIv?)L@)PH<
zBP3oBWz2MCVAtPwj2IyO6Wi#K@&dRs+XruAr=RU4YCo}(g&nU=G%^0d)P?ZwsI-AN
zx~l}cZ2S+=Qq@Ba_R=piiMd>|i{Rb=svS}IbrW{$0bzN#Gu>~T!PeAyMyx%gtpK|?
zK_8-${&(z=c11<FGs8rZu`TYl5qrBW7Q-&*L?qGR!DJ<P7cyH%OgUAE?It}!<gz@l
z1okz9=|p=uX=Qj<e6oXBGSYw@dO>h0+?kTkPht1$dP4NQq@e;keN``F^WLx6$y|$;
z!JVnDk%-Ot`W-QvZ;LAIY;S}UhngoXhxejGYlvpI@~|cJhlp86_o>0&N8~0^z({fh
zyf<}kBf3b`VXHmhSBE>ZvhO5z)Tv^k+#|J>up9i(ofv%fGq$PR0u8t`yLQB5XO6rf
z>MEJ6f*t?!P-5cv1WkB%zNAGQugSr#*gHV9zPd*X_Ocq+iTMY_wc$OG&w?nbQ;prx
z%)1)yOfNxyY@J&L#D;bi9oQutbtS6Y{fIrbao!rZGb2vKVp~Zx5c@Z8)P-GMUog=~
zdK_Ei(aN=OXQmHkVSAqKBl14kr3btE9ao8t7ev;<yRwoQv253K?C^0eeYi8FReiDh
zY90{%xt6Slo#9nyVr#<(?9>Bu4B*bxyb*=Xty4>kJG6cS>>LD75=YjJVwbirH-tOW
zLgY5K)ZHFpPWR4@u=6`{nJDx?$OztBHX9S&PCdoeke;v!?#!D1ys={k?-3Q{6pUdv
zT<S;+9eIy!enHFx?#!Nw2<+@#RYd(uYfWJ%sCt~3ymuJel}lwa+?kvjY1mZ_T|`?x
zYctr%--sa=H4AKk_mD$|M2TCEvAfs(CHfroG>5&ONEWea<HD`*p44qmRFi1N=6EpE
z0`APHzA$W?Qx(L)!qxx5uJFI3MANf_*y3_ZmT+fg?zn;NJ<?9(SF+p&yT*zOMCWln
zD|lDEq))7<d4wIg_cu}Ys@rzh53I}}1|FDi4e!Q$JBb~u8?iH*r|*C}Q%CSLHs7r>
zVnX{W8`wD=Jxm<S>c=kMD8Cc#Osf;uuw^9P6Z1Bk+rloO?;KG?n#T^_+Y5Dxo`Vmu
zwa@+})|a~2!#;jTDpC2u++FZKx_CP=d{;fT<@i(wxHJ2f1!3pbln@QM)OW*9_^Jmn
zwV@Z={eY|^+?m`ru3*=$eoJ&XWV#1-N`hg;(sdJ^;61Een<yoci`|>`o#@x?v={aU
zCz6RRxwD<&J!SKMM2%B5*j&<l`{2%u{qF>}{a_(+c%iBb>`F=x5Y0!ru_Z4^?}s}x
zyW$eI@2=NG!AnN2uxnlxLUi5x4_lpU)d9FOt5#-XM>l*W%Jc1ZgWXVaA~B?S)<JkT
zJG6z^onDEZwT{~z?o7R-$FK!N9uku_Dto}rrF$QdL!uMAGFQ?Q?o6A$i`a6f>WGDf
z28Uo5{9hnZ{Olj>u7xYS;Lh~kk%_H4@|oDU*zPdw5-Z|~s^c@f;e9;Tgcw;<j%~e{
z^9bCT0|`g4^H<&{8Xr*fft@Iy6ES0T8@5-o_))ks`2-`e8`7(ZPVIWWuv0nePb|;+
zg&nbR*)g~?Wlp4H_s{Mo25jEp2Roy_SYrD;!Q=3rUbvB{Jy?p(dv=@{UwX(N_KrL5
z5=SHDPQZKFVh5t-u6Nkd<01iYXXY*o$M&yzP88-^a}su~3BE-4h9B6P2bKiFomrcl
zf*rTIgQ#?9TM+C<rd=e4t>X`dcZ>G*#NL_3*g09FM1$^wr(iF1;x;iQS0)7B-8S12
zxlX;ou9-LEG~Ai?|Ak^J4n8H8EYu2xU1+H{QF7!Pc2A_j8MrfjE0VDFceN6mW4DIE
zE_vB`qWWImv+&NzrALfjS%7WZFiaep>>3XHqU1E9S+mqRc$YY2P0UJvh3&I$S_Isg
z0!M?fn`V|0T{f;f4?DGPPh#clKJ2L6g^_S)%Jn5+4+b|Ag9|rbfSu`oXNg^5Tv70z
zxlo6wyW;^i|HvRQak2A7*gIF;Addf)h=%uySWBXH%}Z?Ay;EY~&dg5;zz$qlL=-)+
zJQj8xlMfQTR`+1*G|#^TcV@%1%h(C&jYO69O>wXr^Epk7$l|yR?^YW%iT(cfu=8er
zBN}aXjEB8Q-!)?TJh3bA?pbI~<Q;s0T_47i0C%QisUNoTj(lQS<kG9K3tzmSD7~u-
zyYKJZM7T5km&ITk*3=VQCmLRZU1~xQQL|wToBM!z65N?_$#<|FR(~Omc-miwUFoz0
zqQ$zI$?z`KZc5CVS%K}BHSq@AnL^z@*e(9KM7P|<DX`Pnyq8!L+>RYPPvR!rnTr2i
zz#jfyLkwN0p9(wk(i6m<UnAJrk*aBMXX;nn!WP{1iI^N~lMXxAWpPB#z0+^Od)35E
zMB9~R*zyhkh((hRXTUxrIh!cayy!N(cYE$8`lPpD>#Y;bggdjz=Nxv@%ojwpjk<SW
z$I*R^7&ZGRwoR^b7TlSGUv6R-26qxo3$5<LPW-=UVrJOXY<TxxxPi#OqXfJ0*B_$u
zVvl>USFOk-R{UL%1MiWsc0}2lChP$x;rnoB1}2=rHeUIR*x{<33%iWTK17|>-?90c
z6(7KznJ_IG+bO+`IM!y72fK2gNTOBN<cIJsvvD0U&%Y2mVD<=6Wb=W1*tdU4Cwk74
zE`WFK!X3o=?+w`TVS<HlXDXMT!XCALLJW`8cmzAk#a_fd`>)u!f8~nc&NN(>h%H?6
zj+i=eOEK)+6T*qy4U<aXz1DRN(IGhxTWR$WvD9<lW7vmHyGfK<Cs_*by=~iwelzQ^
z4YK&3z@6Fh@g#PNe=$)bSFH?oT$|mAvB96Q?dL6c3U}tPMLc%N_cuiIg(l^&lPnD-
zX8)S-4BmYswTOZhIoQqi14P%@Jr%H5Uv`~X<s|+b-lHd45am}^V-LOJt%N%>WU@cD
zS#klf`>o0g*kyUT67|wQVhgOBR|R)wl20tQ%ghEM$HtA-u&ewSOthIjjxCqFvIg$V
z!Y^6a!NGk*@xom%Vb^7GmFOKNQVZ|83(bg)*3YpMe{t2povFIm7km8K17hS~rFz&|
z$2t=Ssy|@oJI#3occyVd6t?KfT4ILl`Uco}O+HEFTRn>1@OJrYxHFxm-Nsf)?;)1A
z?QDcygwJK7OqS3ac<(nfCI<LF#WtEfp$YEHc2jTc^e^{_+Vd3N!j8Alkr@B|J+@<*
zSTo$2qmLu7%dD%2mXT}U!A^Sdabm9hFt-2Sr7du03NK5;ZmsSjx=*xz4?E3-7-H=!
zfmV2rb2TI?B|pX<(f&&e^Ym<ky~VUFVz1u9c6iTevnLwNY{nMKn)w0l%#@E|*lzw6
zM6TS`9k8o0Jxa6>9>i9hr_>2|W{JfO?9lJ+M9GDgU9jtUe1Yiui|-@6>qqJno1Z<x
zPPYF|RF8G*hCS!93}Up?{7>+1J8>s*NWBre=+*QdxHHWrpT?F*E+b~WUG*7uKAwk(
z0_pwOO?vXZaA&&sT*FqI`JPy5X#NFuQ6J9{<!1Br!TaESU1IQ;huEgUKZ#uhE?;4v
zX^~3Q4V&8!@B9n56BDiLv7LWS{RVgDxMC1?#j_Hk_1_f(u#=7TAm&&1Vh1|Oeuq0#
zG~o(%hx%Khm#gU@>~toF5gW88{($#{x7tLNX}Q>AY2S$vZB9e5xAI9Q_TQQP6W;R-
z|05dt*I<jx<{O4PGu`wAw&#~ZBJVuaU$Cn$I6!p#-i@ssCOraoX4&IQ*x}Z%iPDiq
zzhT#>7((>7|A%e(S7Q|J%vP0b?9}S7M9qo2|G<trA(0sOYStLMJGgEkj$E(AF4gA#
z3wNf4=P_)lX%C4xddlOl^K08j6q?zI-Ev3rAKaO4A1`8S_}39@?i+CY_}?zpG?1tm
z{0DnjYQ+S&Gea#hvCY4KCickMal$V9aXeA~*NlnqE*NP-Onz35?P|}-1$QQA>=EoL
zmHR|nC&fvylb`5BEK+a74tXWc4R@x*<Vfu9>(xY`w|YFV)ARHvHl_W-PSRV(3wNfP
zPdYZo%x+?o;f~3$v-ucH926JigZIMw8;Pc0O0mU*$BCH*ho->Z+u|;fKTM7v-Wz2d
zh|bpUuvLGFOocnMLNOdW^4W8u>|Y%L*bT(^5(BG$U>iFvnFe=e$CVW94D}A8j_Wo-
z*zrxiNKDY?pAPR%Z`TvY1d6fC(?*F_Z3l&5FXMBYn0H5J2D}Ft+7d<l-(a_k&k%+?
z)6+B*Tl>pXV!f2sOxVR2coUVsf5RR<qaXrzX87YIY)k7_V&D0#vtXC2c%Eoz&npV=
z!hhEiQ&kGE-K&R*+!I~JU|)MBjp*=7N*vymT&;<v*I!|WX-}ICcczqQFm|s%DbY`F
zr3CB@+B}IZ!hP5&cNWfpJ5%Fh0ydX_Gcor5W=YuDo1P^O2XW1X_Yx@`qPfKbY{~C~
z#B5n-DcJiyzCjfHB{2`)o6lPkU7x+gR=1xb4R>Z$OaOMYN)b`sY59EE4RIbMhN$;o
zo4uMZ19xUO?`7<)>y1Rcx0@EgPQddtF)58h7T#U-G>IHO_pmF4zY%Q=9T&o0?&CFL
zp}3eFya(SmCyIZ0f!!6vvk2}??*cz;U5k8T<C&%MuuGKPPgJ$;!X6)<s{nUqq+$%V
z^|N~7z}N;w*yYCr5sj<IutlBJ7sH*IapexSm--hXpR2tR>>79zh)&uwm%zKqTT^1W
zKm~S0+C*izGiBO*u=|hX5(DlmUJ5%S!@b1z<L%h#;u0!wXKI^Xz~=o@LyVWwUj{qJ
zf)m8iff4MoGped^XIehKg)MFUiI{udW;yKq72}A)_S4niy>-lp=&n+Rty%q#Sj%~M
z1?=OlWD}KMEmDW~k^Q@gVb@!*Ewn{f!kyXcaSl62;04h@PgetWLT$&0DZ)Ro-R>x_
zf;*Gz<4x?E<DEqN`&OE;Q#6exmIO`Jg7;9V4Ma(c66~IVKSW<y4{g}%Kh7jJ4=-2^
z@5$%wi0aRpusQ98b>Pm7jyZ#EtMZIEv`2dl?20&jh-T{Fu_az9>cX9w#hZ-nbG?ly
z@YZ52?3z3xi7siA_26AiZymAnNFjEV@CZ@P@W49Q4|b&!gT<xw;obE94q{ht19oPR
z;Ci?-bqh{m^IJS2CZ5qSfSt3f7jb<1SL}*mxeah<S}P`E%RYNY%pWr|gk4}vI8n5E
z(nfgi*t3S{btMm5M}3Icuz#Ns>=Srz5>>P%H^KW@(>7v+KpnPK8ox2znf<LNvGa};
z6OHbunZQoO(4Clm{4=(v_ySY7GkHzpvFm%^5FMpVHp5Q2Ae2}(Fu@Go!_R0Dr61>D
z_iY~_`k&vk1@?xD*NLrm;^y$4I<}RlsZx#2UCp}{?#wt&e{6><1;mkh6${vv?sp|x
zT>pqIr9JOIxHEG+VzK=M8i+!A8!chi(i%*36CTIbxU+H_+?h39S=h11`-qD7cUi%1
z*yJiPG)QDSyqimz5qq{i$Ic$$vW7cTU)C2}@bLp;^03kl*two}CUQRefL&!b#|G|9
z+n6Y9d6imX(Vq1?VHd)Ak|?1*irrnm+!pRkAKu&8de?i1O-(!PV3*`^nW&Z~WDoBg
zdd9@4BTunygeUBRJ9BV@H+EsyJ))_&f&=Wt?>iDRd*5Sw2Z`;5JCna40=sc*718<3
zT1VKa${r_HY#+vs9A3Hy?o3(5H0*)$E@I%=b|=^w$HWjjss#4Jd&V9^qRy4a*nH}L
zi3$5Xoni09n?)ScTDTA1%bV<pRszk~GHEki;Lglz4Z{vNQb82CvwA=5+BX~}dLAFd
z))rTCg*&s}<OX(pZ#z+0%JKm0M)NNa!w2}>;N9|!KC!Rl5q9qO-$cXnZU<p6te8Pe
zwVUq_@9twZL~fNv?Aog79&l$maGu6ix>80gtzYE{yRiL-iBi}5v3s@T55b-3=Wz|&
zK;S*GWv#gv>{43K5jBK)4#PXw9bIB<*F$Xk<3EYRIWFF?FEL3ang`820`HPi+lkp*
z>#=<Yrux90DJUC+-CR;abRAxC6n5(8J&0B1z1Y!qvc7O<%Ew&69$NaA7_!Io80^eA
z!-(B0Ci=m9R=qY+k2e=v;QDuBQj^nh*t>Wn6FJgm`@?(X+W&|)M{2O;g!xXuomsfy
z1a@#&AyHghH2`*9IR}W|z1`TlLDDDT&TP!Tgq^tcHBt49Q6TKb7laTaxBtVo9@Yqg
zJ99uG8#}-JE75q&AsBX|F^R;Cs#&Mt-D}SlBHxut?1mNGA#i6p?LUUC!uya|uBCh$
zb`eech%y45*!`)Jp>Ssgv|hwEI#Ne$&onp#yYvl#MD62$uzAH-gu$H|Z<2}a*!!6{
zI@j(j?8@@viIxL1!r@)|j0rKfq#WCSJLfsLGlkC|!ERN!Pjt6ajDVfy*dAi-(l+e4
zD)IAhXDV?<VvodE6T|BDB4KB--=El<^b0#jYuN?3GYve_v4sS>i79J$M8VFjHI~RF
zEO-&#Yce+y?Yl~`6_1Y-OL7iH!#>pHE>SW_E(YFv<~k64x4y&H9}tO!JF|H~ICgT$
zbE5jN&L!A!p7$k2m;b=FwObMgcji!Z3U<-b4x-tfZI@vu!FiFGwSqq$-hJxV69ssS
zv73@ci7rhCufSf-<2JD}RVD%6qt@CI<&M0;9-J}bD%_dD8$z*7yPgue#IzD&mzm>D
z)b0I-%^#$24erdu{3LAWt*ylI(5*?Zt5|TJXuX~HI=sscuO;Ry6krFI4--Yl_9w%>
zBRY-fRV8%;-gWj^6C2`RVJEDZmI8OC%Kl*NF`iOlgx1QNu(N9NB=%43!_G@xm<o5M
zQELLW$dP7ZdgkUd*m-U^OXNMyl@9OqVmd@elLy$!y@SNExz4v>AD(}MC_NyN0q=dG
zmPG%Om)M5er`(1+vo#_BJ5`~GsA;!66L#EVZp65yJ=hLa^Y6f&IWplgc4>Sg(V~7+
z7VM<<pC;xcaomM>KP^q7kjFjjmZ{%}ZfhO0VXx78jaV~7>>j+wW||WfyIx=q`|;$!
zof(?rhiz_>PwWX?dLMS#bN3VVw{~F*4$RGkJ2QDf47O`YJ&|*G!vok=MFbIT%g3<g
z?bP$&&Mb<)gB`N;3sGW^{X^JwPe>s8teBY(?|Sv7#3r5!?4+cL1#oAoHTht3c;phJ
zQWqD(&Svdi;-GgscHs<(M{sAFZn%Ig-c>`)6w@z)op;U&B7g4)c4MGwG2EHX`M0oD
zw|*j4gxZwAE^<K}QFi<E$M8Pz(})<TP=;+>{*T!4$Ey_f8PVB9ovKAo;GJ*JZel`w
z3%1h=(K5I*$6U@~m-D<JT50J%g`G^(F=F1-pV$GZ%H?opinQLuZujmadS+TZgPrz<
zXkxwJ)Czcy7u!HoHYvd#{rra*KG)+p>@D*%iGAM|RKk01s2$O;qzPMiyYLIRGgBkZ
zV7n_kBXZkmSHZ6K&k>@-((l+xRf^ScXO>P##tw^bBTCg<)WELSC6efuH2EdG8)&T~
zwzwB!r%W9oYOFm_3wy5CbYkob={k6~&)h*A?rgv=@e{0vJJUSp6t<+v6JmCt#w*zQ
z&h;V+ZvBeg{7tR_?o8JOiP-8T?}$}D&0fPUIwG7XUp}c3-iK`05JRH#u+5eZ5xX7t
zy@7q!gquXY6_QQxE>ORXn8Z_u?UKa*7Vb=rrjyu}?!`o#RJCT<$*pxK7J7fi4xX{#
z9o(7X8{)CMI^Phz#Y|dYr<)T>Z2UaoJ-jCdY7tfQbFjzF2Z)iOds<;{z2G`=z)HLg
z-t&KMB^oPKV~dvaw!@v7@#i?US9Af9uS(?u>>3<hiB9n!u~k;g>wr76+$9z}f~SEf
zqqVUUcKvUHi2+l`v5it!cEO$5{yqyk-Mf#dow@5H?07d^CC2-Sbi=!&m>F@@_&Ijj
zXRc3hXIjqn#g@*0K+OH7)B`*JP-miW$p`FKt2v+H&UBB6!q!x%CDz)m?}c65p8%rL
z(oyV@7t6oEof$UaHnv5453#pyXCLfxTrLw0l7zm(yO5SKF~$8Uw%gPR{cvY;t@XyP
zd4G>+KSSXg>=ZK{i6x!yu|xgD2H?(=%!$D6F|H!|2Cn@MJN>!GiOuH2*va3P4#J(O
zz90>ov!sg{{d4;d*x5$J5Qm-$48ePmts&7Y`Z2b|(!azkN6(+I_nDAI6j-rv7~Y%e
z?1?Ts&Dd&5Gk?LIS@|XmJIcL+D3`i=1a^bEM~T7SgV?4slzzjV*=2A8JF~N$s4HeU
z3OoLs3&h0Fe1G8GIZ&TC{_qiYh52uyb*S4I>}3~Z5c93(|AqI!pEg8Mg+}a-r_;yb
z&h+{df~^x>Mr?So>L2V991jy!;`_13)Z{sa{&#0axLm`w;(1T(*EF91ySz8&h(=R+
zIN@C+RhO9l{vo!f_fH~krprXw*Bhh~9sTBV!Mn29c4C=vJ$Cr#sgvN&l%5-e-S@DB
z=>Kg6H|z{UJ&3Kvz1XQ%vOI8SYDQea=2m!1jI%Z6g`LBnGsF?)iId^I^o2IjVnQyq
zRQz{hPMs4U?EPGli9$)Ur@(uQ=6^&t_Zn=CseJr!XV&PRz>a-iNK~AmIu&-qw+|3Q
zJG-&X{iFrp&g{8&2|L^PHBmp%Xd3JU=Y|lI&HrJ$e$x<yJCk!kHg;9<SEB7thv~4B
zk4PjIJ)I>4?;*BZh!WA2*xkz9GvLnjaXf~tH{l_%NljT8c1d;nh-y5Y*c?fcGvUsR
zdUFxm#=VX>c+)@xc7?iuL{slS*y1x*%z`^J(;ySuyYn-VU(8Mvc8&MqiO!#Ah{3yR
zpb4?!VL5iBIj1<>nX;irum@!B69cUjXT#3;=N@8*d>eMgQ*jBnGj;x)$L5Q!CMLYl
zn*%#1M}Okj<zLw4YRe?y&a`q#$ClygCgy4Gm<zjrH?c&Kse)4Q-hOi<(er&Nwzl^;
zvHtd<d9aT+xJy*_laq$`QBenCxbZt|%g-Y7;m+)n49CuW_?&3?O-BZH!lAyz)Z!o5
z?p8|{z@5n*k%C<--$8V+-6jh=r9V-`Qf2;y@E-PJJyB{xF?R3eQKDbnK{?nPxZEbT
zT$5P@?<tzLL=E>h*j!U*$itl(s~d`K|Nbd)SV&6&b|tsHiRPW(uqFKz6yeUyzL$jU
zYuri{4BWaHcFmIKiLU0nO7O1!Z7s1%rT{y-c$g^vbN>?951mURhCG#0hIcbtYhw4s
zSJ+v~)0V=WsplAsEij>!n54E+1$HiVo<t6wKJ3bC3zxy2Y4aulTh6_iSa@@@D(r%F
z&l1JGxt7Cwmyiz8+u#AVZs#DeQPf!t_KEjy5LG`*tbq6Nla|EDhcB_M&8MitojGti
z06Sl%h-hrJd?oBef4UJf<a@Bap3c{RJCpBE9CpLSMxxV;O{-w1;&_@^ewjlP-XqjB
zi83ztu=}~c5d$<GwP0`b<{Gh`UrZa`({Gv+wco$M=Jn=T4R>bzZ9i;BgM8xXv86h&
zD-+#Mv^4I*mi|0<4cwWzk}=r+59^7--!|yNuJv>f(Y<&KThmH?E!>&4=k8#~$$ud#
z+1l&DZe;WdF-&>pI(WBuVM^@fsKCy-JW(I+OoKWfY$2CiV#>9}>tW}nxtGZ0-i}?v
zFJS<8roHY3Y{mCA#1bL>4X_KneS#?2IfC7DOw|zXOy7IAu=R~U5t~oiY=m91WE@f5
ze7X_5bAB@-M$438+ZO*L4h?y2f_>4sY@*rIMaJ+hVY{1{b+HB8M_JSa?o0v4bJ$HB
zFNiK`x~8yGt2;)l<o<~rbxnCQ+?jH3ZekA}>?8)?v@(O8sctl}>+sYq@SZ8Ofv9Ux
zg3aIghnOhpVGeuedzr-Xo&{Usz2c-D(fVN%wye3Z1>BkWr_W#q$~+^AT510WyN;nF
zL@)X8*g8)YE#b~=7`=|2aIuZ3^1@;p?8bIS5+g28wt{ynwROb)eTCS0+#^II%>&zE
zFY+dxn9eV44ey>ecMy5sH(=Kv7Tf`MrsM5X*vbY^h-Jq#Y+x5I>P3_`{)*k#BexUo
zOn=ElY{Q4|h^_r*wy;Y*9Zu9No@58_+*WIdap&@|9ps0IBRlum!@hJhg=nEHxeMN<
zUTh=gaMWS@UFLUyJ5#9cBzDWbVxrqMwcW7O&~zu(9Q=$O%fG-8?o379c<kYpH^fjO
zlRdCAza2{K>6qXI@7c$+i2C<(umz0=h{-4S?1jCn<aHvaxwtdDSM_ft+R9X8%NO(R
zgFCZm=s0%BxdNiZQxzB3b?<Z~`ds{ot*1P1Kirv3yJNAFI2wp*Y8zc)$59tdjN%^0
zwz;<Q0Nj~_jak@*2m6SoH+Q+gPF(jYG4rs<L3sBTG9&UEJjZVA;BtpM(^=FPTlL-p
zVnvUV2katGIum6de!w2sGRG6{%)rx8*v2xo#Exz255X>DD1fLVKZ?!wbh#JYnF*sA
z*iILFh+~yI55ul}_hq8hWg%~Pmr*k&=Iwim9l$-|2;7+>n%>y$jrWM2{0cs>)4u6Q
ztZ#Xb9e-Ht|EPKQxEiAW-#<!72$hgqNRmVep=n$aLM0(2l_W`&P)TLCwRacYq_!j^
zBuPj}NT`t9LWP7Rxg`me-(It=nX}e;d>-rU2cPdbKmR-*&-HrG>@{oFT=wjVFUTSF
zPDC>PbLMS?5!<Hufx5+N+Y#2!ZDKsTcFZ=AL(U#>jB(}juMr;oxYQriZ4~T5D1W)z
zcF<nBWHv&lT~`^`)ow+Yzrrg3)Q9~%iExnK@IcUBSL}e$U#6UKv%M-oAcw3h4P!iY
zZ6QLV1Jn*sCpXy_Vf=;$#vK%Oc_4>uq7O5ErLqd4b<f4Ypl-m47=&5X3VhJ+x6Krx
z(&<Z#m(Try(0zx;PEbE#Ksv(P3x<S%_PCFB2(^cnG2WQhLjZEfkj4<kt#%b4tSOiz
z1a+A!HY1$A`y=Ds^t3}k4ta3Z0mj{Ao*|Smv<?Gx#ihFt+R1ke2klx1rXtKOJI^?O
z!#9L|kGMsE`q%VPgj+Tb+y&aF_FRgvZ03E&ldHQ%f*jI7Etv7PtSbnkYsW`{x@9{&
z5q{38WBkGb&1jHA&J*loTy5x6gy~BxVnCgDV<<ueZP{4R{;<Fpq07&+jE~*@1>uci
zm))Q~a#ae#p?mwqf%cE%79k8;Tf(@xyuu!kLsm@+WIU}b7ooADK|HAIbYwlk#L61R
zoi}SFfE@B?dIIAGGan&byv<w$>NM0s5N6N)&3Hhq(O!^4Di6qF{CUm?gd0CPC4#!i
zf@FlHdA;|6cF~dr2z7TAGu}KxJ_+QIVJo&VZu2t-VclrG{h;nl@mhptGOrl#xpzP^
z$RSfpcQfv>_8vmH17-(6UCAUKLWd2%7}rr8e-Px5SLh7Jg_Z9R4(Pe^5U8t7PekZf
z-75vOn{JzrusrJq<0*679|k$(gdJNMZ$IEH!ng%Gsi4mO<7$MBLtZeRm)G|Q$RVv7
zqZn7;bq8T)!Sth`&Symc!fw02GyY_>{xOh4x~)oM+)$<lVez=-X`n8)G#;UrywY*d
z-jF;8A-^o2af=OY2w$geN(c2B^eKc>H*1{$?TS5}5GK#8VBED@H3Q_3ZM`EHFU%@J
zxUAOXB&gHe;fL@-&R52H3r1&x98yh?%6RpVYJ}cPmYf20CXKNOAC6GW0_{l!GZBvc
zna6lb>`#P|#T!n8dfQbe5PlR5Jp<Zv#@Qn@U;CJGRry|LK@OQVNyxZY*>!}S6sKf^
zy8EeH5IR?WVq9<Y$a5fvEJ#1dc*M--2sO4X%mH=vy`vBY%<Xg@w9l@chVXg+i;N%5
zX+k*p<GKr=US4nvp(t<AMbPfFWEsNdhzE@4kLaEYa!8vMe8va;yo&J5=!us=oqw?x
z!k#kqj8}?==Ybs3qcn+eqqXG-OOh=wgSz-h;Rtm$$Xx;LO<hb73h8r<TURz9tnJ}?
z71U>?A4X_et)36sm9{NLn38puare1hu7Mn~{f;2UZ}-nbXun`w0jSgd=z%bANG;<b
zc|)#)98$ee#CT0a8A6|exi>)F^c4bxPhw?mg7$->CnGdmb((P*nNJ8~$2k{*db`pC
z2pc-|DFW@e$<_!h%5E{<cSFZwkV9sq`ZK<TzJO41^O#$puB^v8gswARGj32l@HWUH
z3w!TjJUZ(>Le1J)cR=0epkRc&oEFCCEtpUOa>(kClZ>Yid5_R!iNjq`r_i_$VbTbd
zQqb;FV1cmZ$4$m>#LC_SIizi|5932uWh2ZHjk*u&g2t^usJga_@v08$4?qs-H7SO1
z<FXQj_q&)r1a*n2fe7^~n;HM<ZSV->kP+#}8DBi}Ey8*~yE0Ih-CKlk_S_ziLA!FT
zIl`m;3mD&+^BbZ3NAD+~zBD8Yp;O+7r=VST$tr~T5tWRGjZiBGIpm-fyBM$gQH;=k
z^wbJaXI8uoVdd{e##2Rll^};SDm}uu+}c+N<CATlfjWmtaR{3{x;_W(SGvqXXiZ;X
zd_d(dgjqd2Ux0eQ^bCYb)x)Yld%53Agzi~S7@sg#`6b99ZwG}k9@qaSLhS{{)u68N
z!&ZbLL%uL>m8bIx<d8LA4>6t@@dDxW0-M*MuG@-ega>0gzX9!Tqh}zLS(VFp@$c^l
z?Z&OI0rgs?X$W&WXuJjO{N&{b`<6Xq{I!QtEyy9ar0!&VDt!%MnYYn9P?y}p8==9>
z4~)0H)T#qHWOVOj#+PMPApHE+>OH8t5EOxMUQUO4(5|+CMwlLw!?^d5MuZAW)_wr>
z55J}&bQv+=BWNF6ums_aAEk^(#wvaSIpomd9gKf;x{NSLWcV4>nUC9uu*&rv<7pj+
zeE~V7@uWn?JC!{~nAl~01E_OO6(amu(e5i~FYum%aB=z>#x-VsMwsolx)Ia|^ge`8
zd2Zitp#AyVg$OtHzr*<CoK8(3hb;ZDopDjfMTEL}W50vC=Ed#^!y?`=ZZl$VGsq$9
z?BW?e^Wy<Rv(a;YfV!T=e1xgLTN(EdP5cRRNV(EX#!Fo55jrG0{sMJ6llCLL;-T6C
z+J#-L5DuV=7_Y66YXv!^Uk^XVP1DaIEPtun2I^A$ToF#lddYbEx&42G95OB_mT~+3
zr3f3XX3BgM*X4Z(LTEMQC*$gQ<Jy57GV^OX<316!2)h-mXb<Y1*zHB=7TZ%6v>T3|
zhp^b`I^(gwW#m8(sWom3;|+IDBjk4&*#Xp9Bs(K~{pcCv86JJ)K@K@JHIi{f`ZmI3
z?`a)DookQn2-{4X7%zM|rW42^m-RlzxMtRCgcsf}?F{O8L3<FY<#ba3?bTMZ5qgJQ
zW!z*)E5e71y}E$<q^~CtjvX;v5wy2lb3hpR<0<2|u_|3b4*9VtjPV?&LWJfbsvD?N
z9p{TM&9#AXuMWE1K@Qnz(qYE$KdM6L+-0#6sMAZ0L0C|s&;ztbc$*^BNWa8*z3C5x
z0e&7mLH+FB=?I^j59tNkkG{1-IJtir<MKH@ltB(D`VhjnQ%C{A=1Y@QKwbXg%?NEG
zJ~BRNgtjWkA<x(yVBG&lCBmMgt$TyI%A#EeJ$}opfp#O&RD>mW&odtH`VFB@vRfZe
z-(++Yq0nPsU(jydWhug1llzQkRdnqKa!Au2!Hg@VUqP7ia=bdIbNBN^*gmU{@!RH_
z{Xq_CAGD8g?fy>@=2=+`0CgcBLJ_JDksS!yYc3fh^!a+0@#zs?5I(u)G6>Wkv`ax~
z7~5|!XqOqi2w|*K3FCIZJ8OU(vcVvb@!Y$)2rW7o3;}h0lh-56cvQpq77vY~Acs^;
zO<=st<PkzwZ}VZG&Y(vK!a~#Ej7PsT(gZoAX74P<KcD)5koVSUIH;Q!l#H<YTyHJV
zo^G`Op-D(F;|fFMM}QnMY4JA3UB2cZY|+xw26Z>Ctwm`2qnh!du>(ee95Sb9H{(H0
z_YkUz%yd9ql>rZ-m+LRajXR7V1#-yyMj4DJK6-~xuggkZQ1|n2BEpD@UZX+#V(<9~
z>yO`HJlnLr9>^hQ`)y@hx%XLwN6mG{fVz!uS0j|~|AO(-bA88x9Mb7S6yv%fcM#@Z
znywG(!WIW092D`L@j5Mi1CT@d+odsX_Tvr0O5Nq-KwWB4JVK-2-3>vzoM;Zh_`CUx
zJGizXY}&tRJgC27bPA!hht>qpKA?*e!Yq>t#{DW(CxRSOsYe9k<;RN<y1z6r0(BGo
z{1Dzg^_B5B^U;$)4yhfK%6OxCHNp_9C6hs&)rVMwH5!UjKzrt;nFyzU&11Y<#7~3=
zuWc{}^=@`25X!_3r9gYJu029Kr^k$I{qAW3a>!f*A>;hJ*Ae#ZFogznulH|3xaH9&
z#;1CWoC<Qtvcm@%Pd0gu(7=1)G*H*36ooL_w9|CZzU<{Rgr8L}GJfGy6T*3K*UbR+
zYC*>krk@*R3fjG`mLXIKdBFHXjqWo+4(YO(&-mD{R}tROnrH^<BCmNN9Qxxu;~!&&
z&jLAQP*D=&=1%1Zs}d|{gSs?>aD>LLa&tg?rw%3v6OGO>?)<0$;ZFrub5LJ!_%Oo7
z73y<AyN35-gxSaMG9F;sWgf^OmHmPkf3BK`aHILS`Jis{TMvY#>a~oE&JD2uIi&6f
z5#!A}%MgZLnrjK_Y!(X;)`iPhf%Y?6lM$NPoo2k}kB<mbb)6T0dXJ(52<3jOS%dbH
z1Z#v2cW*JS<Jxf{$RV%n_h(#abOGT2k1;l&u2x|kLO+w&jGI;rTm*8+a-}_tryReJ
zaKg)3i$Ps`zhH!Mr&<`dH=nQs<dBVlCmGLEe~-}0%E1=YsejmqFjGTiDQNe(WPz~T
z*PDz#371_4a!9vpK8zdMWg{$(8MPeL#p<p>sO40}ctcx1JCH;24PqF#xLbnowVde+
zP?xbk5aHBE&5SF07}$dxGWqav#$8R`B5d1aw-VG9Dv1y-GwtC3+BILABfOwmz&P*J
zZ-i=Zy&XY)bzl}k?{g!ZK)Z?6DufSrRx+NXp|%R-kYg9`V!WlH7-6K=RA*3Udu<!S
zkIjvY=fvo(205g8(GkW~on9eKOR#kTbzTN>2s^oUT?5+h%gsXQY;=Wjy+^+g7ASbS
zg8GQV83;8hhOGtd^_x~A3^@LT@!6)zZXkzz?i<SZQPrCWCz~6u19kFmw;~j&e_`C|
zoQ^xlA)D(DF`mEk1wxxkHtRv%pvBP$&xCjO0PX%-GZ6N)%VoT>`8z@n-Srzly-`sb
z!jiVZ8$o+~!g7Q<cONp|v_{Dj<dDMsI~lh&x`wcJy^$BF%Tn-0Xln9-ait2aO(2I%
zQA%dq{dfh!_AjlxLEUZN2!!^hI&22*+U7LEyucjBL)04)s#~qy0_tn(QxW=T4A=_V
zr(arv@JT}{;|IePeLxOrcx?ycGIo~{#>N=>f;v0hjR+eY-!Y!sHq;N~kQN4sjQ73!
z7-5Fo{B59a%YGq3#YgS@L3`QyDF|H;pJCj<<TJv;O{=$q`e>y?2sKUn27va@RSOaF
zRPQi8?^LHikV972Y-c<@@FGH!b7O-*or0A+!la#V7<bVayaVKrEsNqAztQjjp{>>&
z9;h37jgK&=xs~ytn2Et4hg2=fWW36;9-&u)BOlZm8|+7Te~s!+(4Ht~g;39^i1D8f
z<w8IX8KL0E_~OIo5Z0IL3P4@<CRc>BkH2JG*|fh9<d8>wV;SG5T8dEKd}b)9E3FAa
z=%oIWaouy{!axq0U!Tr+*v?vngD$NI2X%Fe_9FBT?->Ew&9vqrtXzJb@ziFST_A@v
z(%r(iT+wNS@on0Xpw1z|8DUe&Gsds1=@SKVNbCKPj1MrnjWBEdv}jQ0r?4HNl1UTe
z<>g~yKo04ybd2!{$6q77U9~h8)W!MkL8yJI+iuX_IA=D(kie^qTdB7qtg-Zp1NE8p
zClOB97`_Lzce~_(@L<DJ#@)hI;z156b1jVV;^l=1?P90|P^YEqi!j%*fpLD@C=tjZ
z`x+c({B=nc!Yy)(_ky~q`(qH6Jyb{p?aAv+5gHu6#CRL^17Y+gkA0winNm8!&ohQ3
zf%Xekb_nOGmNBk&s>gniL#Ee+Fzy{#fKcJwq-0R{&~h_Emz^IOAFH8#0OXK279C(b
zvY`^;P%Z0&pzdS-E`&kN@`pgXdCXLVRfXpnPjmc+&^W;@1=M#kIEpZF&A`K;-C1ra
z!k-iGGhXnpYbwYg7b^rau5tJZ!tC<#M?hV`CQpRQ$Lkn>K11^;$RRiS?qhti>QjWJ
zb1aU5I#Eq1LS1#)G|=9hZHzFi{w(7*JHH^T%XK*p>d!1nL1-4<FCDb^)LMivb$JQn
z9?hLkfE-dzH<0m?!d!$7ZTcCYPA6eK!Yd^;j0@LjoCG=Kfc*)K*G_zd&~LqYCa5!2
z2tim*{boF++~^d@AtxwhG2Z_82ZV7|PFbMN-ZvRxV`lHupgnKS0)$q9#f+<~%bx)`
zWTxdd#(nB@5O&khI}7Tb<gP{N)=<s3VfcV-kV6*d?`Ax9`8|YMF=ppLUBf6ILcZfK
z#x2?mb3hLHT0evFjFNW<r^>B759$>6Cn8LK*y{plcU?apVOz=##tW(T7eNlWY|~c8
zHI>dHyf8y27u4~pRwGnXeZhEjX5UL7hxD$AV%#L~4#J1o)AK-Gl4StGu{*yr-ZEJK
zGRPq#7o{<7+wcbA$KlJbfV!Ogc!cK7-LHan)tEU5(+cw$_i}7Q*ePLCKB&L1e+r@V
z8m()fT~E#lVZp=-#v>l87JwX5Lm`6k`jjGs0p%vwLEY?4eh8nZeP#UUjL|nh4msI3
zm2r91YJ{RWOKyTXr<z!V&HWS$L3@7oOoTS|d5jO*`4i!p+zmyb-ha^vggwKD7K8T6
z;r0kUmOp0PsJZ7YkVBS?5;7iNcpafm+vMAzt|@*CLSe}##;w<kyaRH`+N6VwXH9&L
z&~*L65>Th45QQ*>>U0;hyO&Qx*k0)(<G0hA5ZYI*D+Tr1zQ+*eWe&Or+C%0nL#Q73
zfbp7s-S2}O(#Mj|`1Ja#2%ij|_yE)$%=JQO*zlflnegEcK@J(4pTxM`@^XX?(Uy-u
zUGAuGgcgo+WuU!p8-*}K{~Y66N*WL<%DFxU^<_zi5xPE9e*)SK)-Og_m~xl#XsXLo
zkV9&23S#_o_dJBW8RN=9-MlIfgw-mwjHhP~sQ@{oNsWkcg}^d|N!fENL7j`G0AUMX
z<{4<eF?cdU+eN1tAKLH{Va{;p=b%0){{TYOX0;cfy(-!op;zH8#*H02R)HMye!M^9
ziTW21>a7{`64d>aU57AY;%mkiKO9&Ma>)A5dl=77xsPym`K(u<PI*%>!lP*|jBlJV
z;Wfx1<$X^wUaImQq0=0PH=s_pW*@@*ekwJfJuKS-;h_4PjMwpH-+~;{Ki7wGvqjkm
zE5k<Bg1Xe<YY-YOuVP%Tx!*gGL&lGaVcemx1YuL_j5<(vB|Z?LbxAYh1J)S42RUR`
z(s9Q9CcZ_ewBD{B)RlJ@A#|sDd;ske%FPkp?q0xnT-tAh+Ev~kL4Bi77Q&Fs5uZT2
z)tprbYXT}6&+Mo68RU@DEq5{At-cuH!NF6%fI7F_Z3tx=8W}GR(`x`Zq+R|I#<iBe
zLYNzE`xVsjN5vuR>)5psw7+gOL%2o%3gc5tejzNA_523vlan$K8ay1<1lrr&S0ao~
zdBXTIO8Gm;AwPSCGJc`^O@#Ai7&n7DwW_TM(^bAO?wzUg1LTkjHHR2~81Mq2OSa8V
zP&d{x8sQCo=U<>ba_|g<Ll@;T{_)Fqgh9jCw}5){{4|7B-v_sX_O$5b2#pILGTzBi
zsSV_iiSaubch<j#@TZH>Z%|ht>y2>n#1D*XJk*kD66cWFos$_4NU1=mTyE74)IIl#
zK)5ljLwnFZc?ONJ)F+2=kxC;%-8pMzL4EU^RD@yu2FQVSo9rbB>)w|#eul5u0pyTo
zxjPu|x#%*&)G$MNQ0FmxBSN|5?-(!nKC~mqAst2~GOknj7~z%Hd7VI=FkXmoKuNpK
zpuN^*3PQi6GmM)~{EV>NeYFCpPw9LJ;RLF07tr3md?CWP?spisPwS)za>&LP+ZoUE
zxropzb8J^or#{CWVP?P^#(nw??gnzmZkF+kKY9NEq1)g&-9epUE+1j>msZAO!zL<$
z98xPklktXS^$7XVjy*t~#i;!VUpuJw1nn8EmI$Zn7cs6_BG(J#kjb)sjJqbCL)i8}
zR~gh5y1OD=mhzHuO{%{N$RRIy#WK$8UW!m{#!OXESN$Rgp|{FU#!WKE^#(cQ!#C-S
zCk50Z9GksD4b-(*>_r&K@7V{m+YX+G@T1Lj#&f>N^aVMj`S2}_tLC3ZnD$+}AE@(+
zc1GB#@EPOx9r~z)9MU;Hl5su#+XxF>ru7GP5whD6YD{cmy#B$M0U(DA=zNUv*(t9P
zK7YD&AgDX)wFlwkv~GhyyZnsV2t__u8Fx}?Mc6#sYcQzKe{&L{O~2t9pnXub1Hv=!
zpEB;xR~Z6w$ey`jj91zeBJ>EOhJrey;l2n<mNhUQ|9#XjkVEQ>I?Q;}%_@Y#)<v42
z&N@B@VeK7-;h;Us#T21w(j~@~CjLN};_jgZ>fJl1BWzC%83EdFKea<>-@S}+?X(`+
zAcxF*5yE(gPXR*p%t<3bUCr#x2z>%RGCsYZwhqW4pI97V{NVdagocByM}az-++7G`
zzsT!?cDt~t2pg`RXFPY=H-r|^Zlghc-%&>qW;hJg1MOQ{Z4oN!-)Fq+PS-IYhjf(<
zX51j@3c|t%<Hv%!Xm?M9nkjXRe>T?C2RS6qYaiqDx<5r&J>9|p)TO@&MQEZTI}Wrf
zWEvw(dUKX>mw+z_Th6)|g8Ca4DF|)({l<g#p@SD8%&{q9Jm^d32_T159UjPd)zw^t
zUf=a6f;!{q^$73ZtYJLSLBj~-kb3b6jQ<?_2w{Ya`6N)cST+P<{e<6)XFo8S406cX
zowFEMPWgcF=u@XDpl+jAGD7*Z-o~K4bov5>PCmtq>#E38AcxGKy^Zm(H#rCg_0ux}
zb#-UgBJ_V>&A1tV01a};%8R=hPqn#+&?wAoDyWki&O;c#>=)w>-wmgM9I{C#gYhdj
z-yyVawVw{^2E->al#%>vKWy)brE7nf{81T_Czfj7z2oqmt^e0v^3y&~d37_p{(tT2
zCd0fxeBicMT0i^dn(3F<-1g(k<2l}cQckMJm&aY&{ZZS!ZQO)++<4=T_lJ~|>ha}q
z$H((;9bZ4m=ew?0Wzg`Goqr@J9WQuJ`h00~(s<)J?tlAv`1)|iw;%U$^B*N1T+fX+
z$?@e$?y|k5a*@|Bc7KvQC^o^`w~4DKIqCE996w%3F75u2_V}-;I6pbDi94U+-c7!7
z<g1_D`GMs4{wFy;KL6UK9Y50k_}g6C^Vy^rm8O(n?t1mNF70@b_8*@A>;3n)>m!{{
z@LbycLpt8@@y6@%9Cy<8<KzFYUE1-GwqDx)O1pm2^&8Jg*9Sbu=MV1E_7`8C<kGGm
zpI;;=eLkM!<B2=oUs8_O|F@lVyy5*NxwQS2_WC02@k83*c#fa1NG@&v@y{c<wA)MS
zkF@&-pYJ5c&le;o%|ARRjo07i(vCOYKa!KipS1kn=A`|H=cNAPdEiCCqO__e_WK9P
zNyitSOS^wapO5FH_2cskugCMh-CzHDdAxrl$M-ME@%ck?()kKs9<Rr9+)4e#^M5_w
z`1~a~KA%WV+JAUXS|6TEJ0AFWk{s_J$))WNzCL_;QjXV?w&(x#9N*r*b^Lh4*N5l0
z<MR!7eEk2l<L48S<NYJKwEdNK{z$uiQh)JW+Vd4&kFO7(A0)?@CpkX9NdDg*Khk{q
z+nh8WcupE`Jjd^kaL4O$$LBLC$M*-mJf7oD`hH5P$8+5A{^L#>Z#>8MKPkuST~g~`
z@a?$!ZQSwwMRNS}Nsjl2<aqx`j-O9Rj_)tr@%=^0@p{td<2k-O$w}uc(*D5nc~SFS
z94o)E-^WOfFHdsP_TYI31=TvY{@m{`Bqz;RJl`6Bv1f-q-0y27x8E^f@5?yu_Xd*V
z+w-?h+TVDNpASh++JFDkIcdD`^9Np!=YQ+?`f(?XFP=-=A8E%QKVOj?-=6>5j*l1a
z`1X);ydFRQ;*Os$NG|Pok?ue69Pj_Xc4_<n|5`oi_#llJY5w53w7z=K_$$sz-1P=u
z9?x-~+eKtHErPrLkQ~1rkeoC=c#h9clH=P;a?<$`?+?jI{ljz8c;Pwe^Zz!-Kab?3
z;{ne}=QljZm&cv7fAL(}^9jB@$w|L2;W=r2c#bbma?<|8^VDI_DsLR(&L1QveLkM!
z+k?Bb^Ov+g@%e(+<2mlq_6I+{amUAll;idI{R7GI?ZF)%e^O4W$Ct;)o8<WVNsfOW
z$rX?2c5jH|zVH2OCw)GiOFO^t<w=g8PjM$LkLRTQ_qVyU<3XAqc>cHjBP}m&|Nn2-
zleP!X@%cb<()kI$|HA9>93L-Ij@Og=i(e1%dOXJ+pKm0`$M<g??=Q*m@xh%mzIcv1
z>GSa%KR=P2^t=|&@%cq^e0xYv+JE@?lAN?YJSVLW&++B||K_CUsnX`sZa-;0;JLKx
zC!Ig=96z4^wJ!}G?W1{=`+Ee^_DK8r`1bryJAQnST-xo!=L5+}&;L!`1Bc`(bI)t=
zdOXLSwEzA#|JVCZ+VPgQo^(CHbJG69^M5@a`1(lm70;y|A8F?UzWuo4<4JO9Kc7^O
zj~`x-=eXnJ`G4D`-JhiK#&i6B7k7O8aL4;c%JF)9{*WABp5*xcB{}KyrOom2#>a=`
zr1?kMemuwfLvm@i7ymqxllBLmOWPl5>q+|q&q?El=lJ&E#~Uff>q+B_=Xifej`xS;
z`14QP@%c>3@p@8!N#76g9Cy<9({G<`&RpKY-7n+yc#iwgQ`_e*Y~bFf!d=?=N*WJ5
zC+$Bx$LIV1ZI^a@@cBb>()QuU6Uj;I!*kO5@ch3$9>>@8H!M2OeIFq?X?*b<-yV|V
z^ONKgjizX8XmH0X?gIy&UKzQc`~86A`0+$?Y4;Cld+?kzUijzZ^>~guY5VXTU;bY^
ze!j&W-#(J#^O5AzZVzdF`1KsG$8+5AdXnS&i{#R7FKN7`%^&UA`YNG{JAO%?8&tX0
z+m5RzIez{nIca?H96w%3{@)&NyniIe=NrjM<40N^&q?Ej=k1U7D2x7I{{Jmff2196
zY3uRrAvx*z!1otkkLS2MUEOeKQ#yBi;Evam9RK`(?WE7g^FqgQb*&$`>p96^ZhWJ3
zdObHDxa0eal;icJ`S-UuKL2sY$A{$7?mub!|KDD}wEdCxc>ZtKldi|ojvr}#crNYu
zN!uU%`!>n(`#X~3+e30`_a}aQk(@N1`2P<^@+((HdntHv=Qom*j(0pKjTfGiwhzxq
z<Avwa&M#@}@&1t<@893LwDV8e?UQ!>r0xIPT-yHN^YdRjKA!mcNja$=UmibxNI70l
z8h_IL2cF|D?R+Nn2j4!t9?x;d>q#!hvoAKk%f0W6`@JQa6&-GI&$CEQ`aC?Bc7Egg
zm*k}DC7w&$AACOlYsbfn<oJBRUE1xFc7Ef>2gynM56|)aMRL-3;W??lc#bdsuN~ii
zxRdVh@ZXE@dOXLSG@tSPgV*CZ?*Dqc@bz_Har^r!JMR2Oa=iZ}m-hI;`-eMeKI1v*
z@5k|6+T)*8k3TQK>+$?=9Um`}llC8;lh%hHe<UZZ56?;K!*l$2A~}Bi|7*wlNAiDt
z{75^Vc>Vvh<NFK$d_2b;uO~Taf8e>a^8-IW;f^0~q#Um&%@@4?B*(AkB*(9hBq!~U
zzs*VGf#>*mlAQE>1<&#MNpk#pf&1T%4{3SQ{J?Y4_TV|`^YI-2Jd)$rcaonDd+*~O
z$h}WPa+%xtFQ0Vep7)cS)L&_H{QN+2eEk2`@%f0a56^Lz_Wb$ZuE+cTw=Qje@$n(K
zwCg9$4?LH4{rK@pa?<$~|9re2&;Qm*<Bfkl$)!D>rR~48^HbXOOWS{G`$HOUJSWX3
zJjb^e?;k10j|Y5tJpWtA`$KZl=i%2oydKYS$H)I)yR`EQ?;q~?_L00HDr!%OGWYuz
z$+h}L9g^S1J?|wsJ|9Ug?f6PNe$v+C^PS|<t{=bu#$DR=k&YKU|8I{szC9$Dwm+o#
zgy*FFhv)e5gO496$LpnaY4^Xh<0ox@HY7ePjhMvU@8dpY<Dr)`$8+ZsQjXW-`-|k#
zjt{=SaL4yQ$)){#()QrFwEI)qdeZjcIX+$_$FEN$mv%mqwih2ylH=P;a%uZ3?R+6^
zAD)l%%lb^&a{qrU$w}k!w>fG2{x&C#KR!PHuRA_J@c!aC?xf>U+8jS#@#XOxcWL)8
z>HDO#>-%rllja|u<NJ%``2Ht3{&^(F_ZP{f9Z%BsNt=_l=Wlaqw~w?x@LbyUllI5|
zbdGNiKHj7pugA|PxZ~qR%JF*q^GJ>_|F3-84q=Br%OWWFd(hzb#~v+Obcl8SPM<F0
ztWzk%p#5})Z3lYh!I#fXl~ey?{&C_$$Ba|SRCd9YSiN70bpDuINpgk<*yRgWn~EM>
zNn-QdnEAWb^+{y?!*%(q3G))D`2~HtuD_{74|`iMp!{YW>vFH>9Ig5sP36DdGfBHg
zFM3tcW}fb3AJ%35{DV34ch`+&eINFs|4$uXp5#L)^{BGb-1<rGw?A|FfzLhJ{*e5Y
z*%M0#cdnk~r1kx6{z<v|z^;>Ae@IRmzs}m*`<x!bjUUMkZHu<6m2#g?a?<DH`LVk{
zugUM?*8i`aw0(F^+CDrd%?~`Ud9r_t$#HIbNgk;cY<eY+tH&K*Kgs=#%U7=T<<>`X
z(tN{n(&yv3wEJ6qhEAt%bGiPLoV0%Y_{8h+9Cy;^<2k<lxZ|Hsa(sD`Pd?^0VASy*
z?D>%7K_3^ioV~@>lbqCFJSX)R&u#KL$61Wx_CLw-@h3THebVMiTQzcSDsufLxwPvi
zZ4aK~$1BN6`y0<m+lS|P|42@nuXuiPK$1g0S8o229N!+?i}WXz8`pE|BROe%{x+9(
zzTo3e^1tmLX?c8n|6g~~{>F1@_Yb~2$)#QYe;VJDeRsbZcg2u`dD}aSJ!PNcD0n<A
zntt?zo6jNEy^R|#Z90?5x=w0Het)~u6g<981iam$aGLYNEc@zR2T!s2>k$@uoh*-0
zaQpZN3ie&yox%CB`xpE3_p@HNI=R-vF@cIZGxt%!#$L4BQ3o&K{t(ukHL^SGZqK8(
z&2F9P?yExUyM))Q>#>dXij;$=nl^j0p8M6OX77*<)S;0n-7g!f()?R@vtpcGSQqUr
zZe7#n$a;|N>c?t#*HW8*EjhL%S(WxZ6ZARD!;|#|KJ6?+)wi+!_1xFfGwpcPXIEeE
z5!ZXu&h@*mO(+Usz0N%HX8w&()}!=R_juzRN?Cl(fBv+gFa2fBvEGjt@c*OxC5bd|
zHv3X;r_)V}fA^;!?i8%7u3O8xnO)fU+IAaRfB58lLH!jc>d8~1nnSM!&~I;b$=o$>
zIqSBjbyIdfn8!N&{^q|mwa?Skf$aSP$-BsHdQ|t8t0(#OyzuWUZ*ujMcLz?XUNwmQ
zJW`I=uepBf&`ddQd6F+Uk@{JA99NI~i}9P%HNF4ObG%-2+cM$FIBt28tIV0ay;m()
zkNdL7A<Gjx4Q9uOl;ib>9w|&3HiBE8<XIg@nqGa(^#}LgV|(AOQsdS~%HQ>EP|KLb
z)ssBz(wm(POSt-f<zo_p?{(C)qSkn*MJVsmpabN(_cwnynRQkD{E8h)Cal|a+Tqui
zcA_*dEBLoL52d@Q9t&N+V-@SNN!_(?mvLSph>kR?aG@564wUFcYSLDlp8hEO?##OV
zv|B0@_pf4IwK{6cR-@Hal<@`qz!M{A8MAZie^)rOp4z;?cttnP`+APO?G&?`%6O}{
zwYQcIeSUITnBqpxC(O3n=V;>0=GQ-++gal0LOHZG)R>+dO(!NdSnCXNWqn3-Z`x7Q
zl683ePoLpwo)t8PHd(#-!{$2{)PM4C9gHn<Tr{YW6&jb9hU&BP6ZiL;;hu)7hO}aZ
zeS^g?YYMvSUY*}-g)3QCX+4lI{IL^tO{iWm&0_++^p4T1U)2t*!}A%;Hv|pqI`p|c
zb+!HT)k~&Nq6bILQQtbqf%OiJt6#_8b7FnXD#c6PEuE={1M?TyJf1>Z7)9BqC9Gn7
z&FFfc)4kWSzVPg<x??`>l<}ixeecUAv?X=^oLk;n)^i5mSZnua4eR&Dj5(t6*^T=2
zUHxuL&{VqZqOoV$5zg1T8Yti2#Q9aN?_c<JZd7yJ&vv`6OsDM|L|M8;oICB9B;QwK
z9h<LFu3XZ=cO7-<+PRZ`uA0(m6AE-qqBx(RY`nB%$F*!;Q`7I>l=rSwf1f8eL_f`F
z$@OX->)+3ho9=OLJ?nJ8^)E-OyHnQPCaJv{K8G%;cv5fnZ5`{d|Hmd2J-WShF5P!Z
zPhlrpHwyZQ&C|8Vcx_<4VSmvQ{qPMGT~|Cbx32{qF8gDMO{53w69fETT;95Y+F-0=
zzslW`KJ#*+?>4KAY<{tDo?u)mmn&YexOXtbnXQNOH8)uE)b)BR`ry6?I;9`&Dd=(`
z!|ki=+*ywsW^_wu>IN!*$a-xzUu)XluEOx`Bu~~K7VZl%sM^T-#)Hd)WA}SePQKf^
zr|8(whTT==W>j;2Z0nPS(R|M93+s34_w}Nl4=D}${BjX3+#E1`)G}|@d-pHz5g)&W
zb;<F(nWB0m)DJ0HLQA&KoAoh{t9Bi)=R9)S8s+i5wot<=ZrV8JE~Tsb>c7@E*vk5P
z`6Bbv!Y$OC6y*lH$II!s-{Y=_yxYv?_F5Mkh3&cg#=|4dgQ|R}Y3pmc)AcK8wf4oI
z-~Hlzdt*aY%va8J5>tLS+WJzjEQjpwqrQ?pzpPt_ZTg(khTGde&*A)4<Tcd|pM9xN
zl^nCaW)Ad&Wy|IK*7>o1CYiP#xtz;~tXMGSMVD=q+v>5I!+jm;;LOWWZ;E_apEWAh
zeBK8?*5l6qF!j3YLruK*%%^#;6Ww}TWBh=doR<z(S-ZTuFPmR5ZzwFV+DiE^^shT`
zdKK+en;?7a{07$5i-i0!5#Fp{wtSga&@GS>nBLt->8z$D^U0s}-9Nj!-zea6_1|fQ
z;Wq=R$)nVNs_l27onEY%*Y^zP+Y~C&wyzChbERc(I`j4gQ9b9RZ~r*Km40C|zV2}t
z=gXU&O&shwza+ay!&+_!6)ju0Z(ZJ6y4Kd!(`sH2>z96o$Tjy0qE4^y99!nIj_!M4
z`e&!gK-S^s!~Bci@xCKuc2Jimy_E^?x}F|AY2c6NMnSAEC>xd#ni0slnzvd^n_Unk
znx|N$Z|y;kdUM0Lr^yc1Y0)Vcqe+3R3xd29ho}WnhALWx7lv=3RXzkSU*E*J<b3_V
zdt8@3AFO_Fpm&+huPA*UL_tsO<+P&f@g1xSRy)1-^5s!^dA^V1Uv8umPd6^|zsqOc
zbJx<Ksb6=pK2Yw#K#TgFRQ}oDl?4@^v?!$TXKyRcJ1QqH>l_op=5yjcc3u}7LJbn6
z$%$IMX!Q)ARXe_L-dbYftz|7>^WF_7&W!0Np!&GTe!i~aO-qi)5Z1MHHQoe8aJgju
z3aR9>js|-SH`CPtN6K@$3#o#HVe@ubZ=vUAs5u3$3T1O6*Ep4j?YKO5r;)>}Od%DS
zHG9M5(5>_ax<}2uS^>L!bKjs>W8Jy@;&z?sJFf`Xdh2jm>t}@mYH;HNYGAGpU4O7P
zaMx8K>r)C_KD5+x`4|hwuq7r!DsB3Jfxa(%Y0W1^+SxIjs|~9i-54TZ^YHxFEwXzB
z)RZrKBip)cqqh~^*fGjGly#A9c3JPv;jHUEu8$7N38VU*)ON3&>raOtd04TqEtGY8
zmGfUF*l=FGT(CDID3p5ec6e(?-gY`+wn(%>i*w%5Q=WpS0_x$Y*oDvL1<-vKYaGvR
z60r3Hl|L=*bcf5&cPnsF91%_#zR#X@@qGXdzn{V7?@y$zZ>Zw(PtWxFWef~s>$7jI
zI~7$fq(n9P9S`^h(tSoX&9&Id`QuLAwyHP^sm8jUm#1_NV#g2qlzpX<aqGD}``U__
zadiU9<8=Dhfr219Y){Vqef@>3!~VnknEPvw#NrUDS6#hHYsVe*Ql47U+*Tp$uU73j
zuizQRdeSR1#UmTSDE;xJ3*7y7(AgD&53??EuDE`Xdwf<no8RnM{jz#)DAnxSa`a&J
z4*G27^2k?H!dd?@H`nf4g^>05-u46cT@X^CcU*m=Ch+J$t0m`ipL4F9xbUabAkK##
z-gWZpFd=1Ke)piOFOSZ97OkFnT)?{a%4PO5S~$P^vHX+hfRL(x$X`1)jYpsBlQXyd
zn-JFFc){Gq(JK6?NJxF}7PP_q4v(Jqbo$k|)tpQ2mpJz>zr3i=*ib5K`zE`wjXe5M
z*4aEW7tRN&w{CU1BxG~R^-@UjzH}X=+&7r+Yp++-^DXD^qi@f6Topq7UX>E(JUN(d
zAKG=ekG6pI>&JXMUvLOzz2@R4&&TURsgy<K1(ba-z0&Nf+plY!cl@zy($Xd&o3|WN
z?vr08psw9l)l>2erft4%p6!q#WSzM^isT&DAGmUA*&%)~J-@|4reVE+f)39g&<hT%
zd%t|6kczsozMoQ5Fuh}2u<DRyoZtBU;2M89=W{$uiyb-&slfR1erFScX}`FzPHQ`b
zvi|XrMyus$&L#I3p;Uc|=2P?i!F1TJv_N{4fc0Z@Zj6bZBHrJB@}?IPXDcfSsFyOm
z=h$Th(=R^B@4S=!pS>}m_15oip_F#^)Yh>#f@%2q&}V|jAxT0um)w5{sZEhi7nPp{
z(;MBUOq<{=VEubfuj^&o1XR_H%q{8F!F1wL8PAYjp{)1YF|Sj9F9FqLee0d)>tOov
zvzPr&z7evy%%~&tEGaIJ_CIxE;fDXk7X({;`YNDyxvZVuBwk)}e<Ni5lgxbEoOI65
zH6?UwUL>T7C&YDpQx!}XE!6Q}uvozQh0OyrN0x@LemZiPnx~(DO1{`M-|j^)ZN0n4
z#);>}*P}mPG`1Tx>z0rb{s<X#w<4H+u-$hW|0kEj{SEWTL31AI@C9tWTk!O80X@a@
z&BL|NyZgcP@*{@N774}k^N(-UQfL%R=DbRSZXY>RNX6ca&$v_=OrMU|H@xe{`Mv4-
zX{!?jY!0udgWi^}-Y?$&xWnsV(52Gh`HAA=&HiOkuM^_y^`H99Y9G(tTe_2ixs1j2
z@TIqRQgZ_|!yUxOgC}qGKJ)QmtgpHkd{C$p%DS0~Yr{l!A@!{M`|(4YgK2m?LARgq
zSZ~@Z0h{;QFk)ZZK_T@>b%x-QdoVq9$v(Pv2IocEGJ`*q3)s9Gd>x7wpC5VQ7W<b6
z)8F6Dbn%ek9G-7so}1--d6uq_a((LEpgu2{zQ2A&$C5q**5%)M{ywO}`HoGSn{TWY
zP?@p6>da>Z(-X%p6ZMGYy#LEHRWnv_K3ukGr+N<|HS)UP-DZ<uda0j6z!yc%ceU!o
zY5d?kN^8m25N{!MX}YEI4TE5MFxBt8`)mR0d%9b-ql-BY7&y@Qr-zVQ#pk;p(g~*F
z`3L%@Bf*t61zf(yR_#fj-9pM?vdBiD8B9OXH!Ab360qJ~_DD$o$03yMj$3`rdI!@=
zy{;8JIwxfP`=^Ec+n+hVI;~@`aXW?7;{^Ar3dLZ$?9qc(t8W6<S2rGd8GD}dQ$}}|
zrv?fsO&>4g%=W>wd8&fxuuYt&9~e+?H$lMWN`^0GtELO6PJL!K&-}ro_qQz`wXmCz
z_0J=H&kfM#TsEfPjIzE$%8sgw`0`bJefx8KLwA3b*7aDcfX$1S8zr7J6H@c1h!PF!
zcy!(R4EZ|?IN#n~w*Az|5H`29e6A6?OGw?GUUjnjOCAm96ZE*(!&1u4xjdwsrfave
zLTdQ2rV*E(@aT5q&bpl#%{jb(f%#XvvtwWG5mJ{s*6uv=kVos*ecb)fNx=FVD}@V}
zQaCTj-KMD6J%qhJ>-8VeW6ym7>+pIDuix-|tDo3%EvJx24`D9wLJGQ-!{a9JIYO%A
zl-?VT6!2(xzX2U?KlH%abN1SQ6i~~4DTQ9W$fF0(9Pzl=NXUBhpYt)y;rV8|@`?Gw
z&hqHtUF1@?v<s!6!_R~M==!;<BIOXu+Ix3bvkV>$w-0)49~*O-C83n_?mM=%sXY3t
z;N`BFD&qU0KlK}D4V2S;DrECzC#U~9?Zf%rO*g(@KP;rY7WA7_vY*GEuc2R2t2kTI
zIh4&cOD`(g9uiP;mu9IK@8Z$$ejhsZ%W%zQTOpe(ENbe-dnu&ib~?-s*v_M$D5>w+
zuppH6`{s1vwJ<K9*Jxe6dwU3F*W#$G=FX$H_wF$$DL_15|2X`<03F`n71uspPOaq8
z@O~LOJU(wEeV8$9DUWts+atY$rI3Q|mgx~)vrEAGyUAXm3N-?%y^c$KlnsxD*AM9M
z`UM>xZ<CyQ)*D;#Xm~z`4(Atic)#jmac$D;IXoI3f6#p+{Oh`@2`T7`C+3w{R0^og
zvpa0tO!MgMkD;IUuIAh^V)Xm&&qLT8p6|1=1lP(Y@@RN|g%0-z^dB=aOcLG;C_(xM
zBaspB&+}d(>+t&}%wc~LReB~{i`Oq&m-BSZSpfwd-akXPtM>Qyt`$;aUtF)w)#uT0
z`=HyrU!x;`M!@Fq`(a<5v#V-#d9>ttsepp+-TEwU$YlZ5Zic0{xfYLhaFmTWX3x37
zj(r`~GlXnDx}oK?-a;XDb>g0OZ9{qV+<S(HLK_6E!}}GOw|DvUcKtrCzSGd$_^Y0r
zM=y<WpYxjYX<?6Z(@u-8pJPtlEgH_F)4UrZnlFg2mwz1I-#~X6{(RY@;X>+Tyq|UV
z5j+~6zyFiN?WNUoV(*LV_gzzpHOvg5pg)~t*7&$o$U3}V?$f;T$e>Z;_3H~B`ScB?
zpu_zK9nRN~Eh4}B;_qAV`#f|wzoD;gIraPVF(Kvu{8{?(xjgoM9{TI!55^A+7qB^;
ze@|;-U2Db1AG}|L-ajwyz@+;^$}H^KoFlH>`53xQ;hYb@G(*`Oem{M4<<!OzK0F#e
zUw}U2a*qk?28UA6Gk)_5b`B9xJcGx^YQa2uT}9$2^RAr3^8w7^@&D0vNXtnfkA~+<
z=)VG*o}QZ(N<oL$tD^m?Pwz*Ix9`vM5$G4JW!?^&CZxtGWLu9Faq}PM$zx)U_V(j)
zCF4(nCy(R2TUE%cUbBUi<935~aR+&{<oPS-@;4S<i4Wl%UcW4Lj(r<-lt;t)3LPH*
z&`%uGQMjljq%4~kj&~McKj8fuba=c#hxc2NvP$-6j)~9zf1W=;|J_;8eP)*U`O%+z
z^5N$h4J$&asPT>i{EqWz+~N1%)vcb7H;ccI!}~+%;l&Mo?L&nW^k)U-BUVooQZdVx
zXbZ&GLpVR7J9-W*UP*_tIlNzXbF=xCbec!6=&<i>z$O6&{h-sGA?5FctPef0@6LSH
zP-=nY{&thZ{e_<o-OMCzesY3<%?&b&oPtIQsfk<Tw=6ltqmL;0$9ujAVI6+ohIzjj
z*XfU}Ln#Ma<8LA2>+NxWnG@E>#rLCs9DZMh4(EsA=yZE(ACG2k2NQ%8^tR{AvZ@S1
zS%>@YR)ON17rS}%G+t5CylVmqI=tV94!>Vc@3qh@AVPdTpBm;TJ3&Z6pJkS^u0_DP
z?A{TMW4nY>Pb)ix)`swCcs~st&i93v7e}A*<I$Hccs)BjAe4d*pT|Lm&%Ywtzr8KL
zk-Ptd4$n8xW!n3Gsk<tm=8X(+2=L(1i&f(UZeuuq{$2U-h$BKahvTz#)%s(+4dUy`
zh=+m;*M$^xProJGKbwZKF8RGve1G&j@`d##9xa$?b<=As=kWU}%;ELo#W=+w=3995
zsGFrW#gBy)bol)Pdb0fLIj7o$)P<F|2da7V*zXt6^WG#IDJF6`ynemjd(l~aGmlRF
zuwuy?D<K6P&JXBt{+52KiF_fhhxgmi;qearaK3&^`$s}*`}M}YU&PPP;PZm?S*2UM
z@8HoVUwa*T$`568xIUP}>mT%WIsTbb1BBF$X$D{Ji<dt&_A)g)O2GP7J++=SI$Tc4
z&e+*+PAGMJ@hF|*Kpy*i1v-45a$?(%36FW){)0IjZ<s5dT~?odTS!3<-+$xMkFKGV
z`<@m3;>63t;|Dst-+&Isdr#GI<%Qz<35t4Cj;jhO=y1M6hxbpmx|6ai#Mc*iJ%iqE
z$~9r<L7^1%NgGr2^%}&__gu7FU+{Uf<o6}<_2@r1eE#i`yKwlSoje*oAB7Ij9~+O;
z%`?U0jpuNDU=F`;LWkG;y;qF%De?Gk81Oaq=F(6KIy^tX@rL&s|H<L^Wq7|2uaD5-
z_CtsLe=zaE(I4Bm>n(KHf9P<2`aiV1b6kA=hu_DcpEzZt)w@q91s#50yL0&Gmh0l<
zA3ooNUN=4Hm~)wsg8t?-_(54n9WYhVJhP6ghYqi&(Bb{b*@kz&KD%+xtD$SmAOB5r
zWGDswc5>tb?LA?Xg@w0!xF?TJ7%kj-Dm0vRp)R;%j$nQ6p`qJDkL{v@y1yLTC5T7A
zSUR%{e?%nf%AMl;`^RuTe(rRq)-F-(_2i~WZQT<q&cnNOoSGHDxovdAtY^F^$}GBm
zSjS5|TC@Kfd&73otl#NWTzDobn!2<ndCS-`@$>BOrHzG;IG?a`^~qOGF>HSPuAb70
zz!>UYhq%lmGQqUu{W#9$2gcIB=f$$QcFd+2&r7k?k9)VA$La;sBb=rVe{qxZPr57p
zbG~stuBv)ZW_>K>+b!Z&fcW|L@${betQ$Gk-s5-hz_{IP-Zy$yi^<X5)V6saW%tGe
z(|na)CS}c>KdOBsbNE0Uo1b{Ua_fQOI4b(!!GoFCgK77lrw5ME*u%Qy_jk@O-SMva
zUc84osB9wsWj&bg@XYSM+6m6<&wq*OUc-6Y7v=#6rCYf&@q-MXcHN})<K~!n)<Z@Z
zhUQvw{%g<g_v78;sjw*yLx1<;(-Z9iYiA{JZm*Lsd)|lhlnkX)>VEN*-uGLDKlS)@
z%Z;&%Z#!}>`F$~-dfP4gh_)4<o_73WJ-?9i#!UI=+xsT4`BCNIBL@~GP`dly&uwtv
z)3{5X$8vepe1H0?Zvr*>jjGM5t$cd$G>yW<e9k4$OE~}3Y%+OSZUS}l;%=elZvLP5
zE8|%|x+b?z`QeR}^%3{W#m&KV)p}POx1eY?*Rz{4;oVJpHiz$bz<TK255<}JjSXhs
zHzN6~0869pGkI)1$#*$z>z@<8gRLid{>d3VPSymm^|+@|ZCTIF|Ic%t-Bgc>w*%Sr
z;mhNB_k96(FE8ZkNp4qhe#_yS0CxQ(|1_vWm)m@<p5!ys`4>CsaP=hLv$R8&$;s_(
ze@I@`-`DGWZ?2x?&Khmm4|e*q>nC|()}+t8)@^J($$R^o#I^0<>PZfN4~O#^_l{jI
z3>%#2$9_J^Q%4l%ywd0DNj}$h@Qu?YzU=x*uA}vM!OX2({eN=F`-T&!H$Mk`51s2v
zOP(LPvhJ>P$7<25m8|>y%yYjf6u%Ev(6oN&0$=)$;=RY!ojqAUo+5X;S=Nj72}5o7
zTz>0E84sDN6_V;ptEy#Pc;p$x`YD$efvLqj)(@;cUFUf=n9_0b*ZeWTk9K~&^Kj*p
zova%aJq^|?<Xqd&E%0mnPU_g5-kpYh_oLsfh%Q$43}GGqehYK>d)=s!#=mPXY@^}*
z6!i26^>>P4VN^@b&XU17{`CH@PG&2tB3Pd}&*RtV!I7*#@tW6q=TRh8bLdo9%F*q#
zmgkgyvMrn!i@*J~Gmc{O#g3PsneB?AwlvwM$G8U2_re!`QVHVxvq#*Aq&=KpNa)x9
zKxPzGvLW=yv8DieRkxT68OJ!6yzdi5ZM<i6``ETXdgpxbf+Uwq-gn~iUzcPXDsFHN
z*FRv`X8EZKLA04|u+{}Z6b0SFE9aEK9L}TTllkjcMo~Y08OATz97GSfxOwY~eVh;L
z^W3tNczKxrp1sd7;Ybv9a6!MGKfVXiJ$5K8&OONa!VXJ13`*ggPRiNrayp7KEZ+XP
z(P9TZqh)|aR1)W1ZcaJkdOM10oc%*%TE-4~(DEJ!va`6nrQXoaBbUqJ_QHDYH2=e2
zUq(@7pT1`secwULJu&pP3E>=Wf63IzYm-LvXvzDG;_>|Bd$Y?2sO{za6YUtNAl{x^
zT}#)PJMn0r6z4NP#rqd}`p20jlj1lpKDhAy=<F!U)v~@MO8k8RZXa~@Ux&`Gn9t=$
zmLI8~KP8HN-XZW`*V?$BbGX0Z^AXdLR=LAsqp0Y{tP?-P&vPy>ti98~=UmNQVbei(
z&gahvo{_vTiYl^MVC`HWzQ64IN&kTZ=Wnf+Eo@r;zkA`TO!>jr#Lo*d^G6Mw6-7Z0
zu-9K@?#y}3kP+`zx<s+RKYcA}xqeeT-{J2~DoQDdTX%2{^N5cnT|3_9(USL5qbTTb
z{Gr4BM@8DMTJnNNo2>P3IXokZf)2MQ?#RAbW)<A}pik+lHgub96a^jj*Q!&cUr8m8
zzTV@k|8(*8LmzKB$8)6kejPg8ewU}Ic533!$KCw>Fu%jqQ54LF-W3&GZ;GK#juV)w
zeH8z`RlIt@sx`5!fA~GB=TMp5tlKm#@6ob;H>E=VT9nx%m`>_yJ$UQXIM$tI_dm+{
zz~yE`SJf=Hh@<Y_8vXp6_<sI?NkrnLOwNDqe06erIOq9+<2*lz^RShD9@pB6@Be3w
zl^-*559{qW*Hy&a<MMA0hV~a8*+XS$PPKg?eqTjB&C_P#)_B%KMokgb6>+|)_)x!<
zmI+ki?#G#jQpE3{Z1wN>?G@)58y6ak$>F?1{=8GJN+N1&@!mdnF9p-@MdgnA_Yzp|
zwN4|VRGZ5ajDy!bx|~3rFFP?S|7|c`;jnJ1QW@vlE}gPD)Kx^ie4olY|0bC3{qy4e
z@GhK7ey`y?Yt@enioX-6+a260i&gowrCsS;vj?0@o<E7$9Io$^+>>L<Q}};=e@>vF
zm()F|avLG~-#p{&yhW>*i0|jsW3IQ(6j9J6zn6)qEd7X4vsUtH3%Lyg=Gk-krR;Sj
zn^U=5^1cD*BUd@D_w*7`-T7l=lQ;4I{Qk_j<o!0zCC^ty)W_rT=anM)^vN!wFFnFI
zU)`McIe!f2lHYek)Qz1}Z`;N2={{pxm-&C;+%4Q{L1p{BY(8?0tN(#|5w+^2=I;-O
z`E*<P!b4fPoKIbzVxgMH`2$}sgT+B2sxW=RleKYt+W59?tM)3+CC@`dRI>3+yQ3+5
zTJk;(mrI`aa=BUmElP2Ud)e)S%fs!JJb&W0PxAavL`_&eC;4s?|IhOZ&Lz)FIF~#h
z<(3~~?Yeho4(F2RXPo;+2mhEHDWZz1LgVz~`G1~=aV~kD$N8B=qZzHQMO1C?D}u@$
zeEPlTS(RV6IF~%{<$QwDc=M+bBI*PG;0f7qKHY1RUb;@dy{td~)$h!rft=@i(-Ger
zMO50D7Pr0P^-JCt;9T<iH0P4%cOpt=<n^Qafm}UwIDeqS?OijupKYFa{gUTVA`1HF
z(Lp!N4|2ZMVBlco!y+nBU3P3rFrUU<^8Am>;r@HSGW|f4fKLmiEGavfCZeFj@i?j|
zzcL~~d_0Zb=X>T^0tH?2ey)i1_HIp0`&9N)nb#jC-rdEgug>hI;rLs`y5#va=i5KO
zzqiU)MAeO2@=7;^PfOl+;Cy(;*0|XM&f)w@zj^CXM6CGuVcs_tQP6c_<0?A3axVG(
zL_|Hlaxu$}$EW?S=7?Wu;#~5+2<LbEbe!96popqm+%@B<`1|~QGo$mnl{uF@KjVC1
zf?D9}F?*>8K4#9g;{B8QZQbVUQ#mhQWp<&<M9$&yT(IHTMn&=XNS-H)DCm;+qdEU1
zXS1ee=w9l$O~aO>d_E1Ahc0<uEMjvwzMm2&b+n1%)BScijyqDx?H?=W=N%4T6Q582
z<Y9X+XWZJ&<tI+)_j#Ah`SgnlBdB8{>dMzOiP}5)wB-FC&Mi7^8RhpxM7@3Gc1t;k
zPs8&Ytd~5W<#O0x_<Tk3e3Z*2&tFCC^Ox?gcP*y#IhQ;S6;T%RCS6>+h5zS$3C@k&
z_YH0D!}-IsBgyrfMU>Nx-1}AH^Eo^}LT6roj~7t~(*r&Y_U8Zj`wOmK@_Qkd7wLA?
z>$iaOPc1X&2n|G3=Z3`()~*qsUy@#KTsez#$?plAZ|+ckX8TDIWjOVvXTCe1HtVyY
zol7j|@Oq{8>-&xK%lUua2jlWl*NSE)t`Jc$-{>`GWvq>e(r<2DdelXHz12?<Rxjjo
z$@{`w4v*(vVJe5Bt@*UZ9KD+6ED;4A9v{%hWtDnn9uiUUB^Qr8aOBf)|3Qc6Z|DI-
zH0Nr)6Q8fIbP71Tj8DV!7j(U0<41oL?@#FP`ZZwbwh5Zz{=@S>ba+08er%BF;m9i@
zs%5wJ*-7*Hbd2yu`HQEV+xN(-R(Q@iFF3|vyZK(KT-hLPi+DUG?{kV+x15x9)Yz2E
zXMUWX(ysSj>Pn|_hr0{-v{LWl2eNvce=8U<!r7Da5yr-YC#~O0?GWbX_g}=PRUX9g
z7RqxzH?7CQ1s_Cg{?qSMvEZJF@@sk({cbj&hSyu@i@y6WiB#Xq=CD6-dnLcmaN8&O
z{YylpwruaGDPG^Y+~CU|&78yY56oX`&mUB;yqDUtB_+4xG(PQJmSgt*yohzl?|qza
zyMEd0cdLl<>^jM*$(T<|ey``e!qwN_?FQ%Y`qk<2$5gwC;_+kNKNL~W;rSi9<@n<X
zN+lvnq2+bf+R1!c@_Q=haQ?y^&Zj=(>=M?F;?oxwcWjz>QA9z1R`_zl?o*tX_V2cA
z^d1o<pVcg~H00Bg_o+EQ9ji0^Kw|=%cl;KjGs<5?T{S%~vqy`&--2$UyWw?UA(!ua
ztp7s2^Ipo%_sH-*6Zn7LR}!%f&o3~S{N5^}0%k80$`0kzLyyJf4Nl@*@_RMs?Iz~>
zRvZygi!1AtOvZ|zFTZGL-FlgGIR9Y|`=?}n)^*EZ{-58sMHF<&@2%qg`zT(v)8^BT
z>(wsm7jZ86{f%>Ye^^|#sq~Wg`90j<&|hkr^~g&UQP8yv^<-a&$FEJco9Wp>-0=^+
zF}yZuQ@Ds~eKI^lsVCPzn8WiS%;EmjlDja~R+&#%CS=@}5#Rs9JZ=6RlPhOM6wD>R
zuW=6Vx0X(t`Ke8gPfOm15>e14@27Bn>1D#m=R?H%FIc~0pDz4Ae}BSxd#Bnb^f1n?
zqZAyw&?0I^(%oBr;`Ps(zR#|t2j`Oar8$@UJp%YX^J~oN-@!CI-k`(#d+07B->ePZ
zFQVj5-R+pt7EHtOgAVVH0_3fGR<;EH`TH92{Q2YT{QBbu>~AQiZxB&SR4re9X(v8^
z@-N>ywUTqm-#2g$kB1R{mD+(#!L*xT&h!kSh=LA}N9Z961D94!7E$Z+hn?3IuRm*z
zOtF#p`U@S_LvK0KPwVqM5v6_LzG1|VU|RCNIOmf0qd3oavch}*01-7X<91?nXYu{>
zpU;DSI8W!p!)079c^^eYwGVsxEACe?T~n=`-`$gQmAkt(4Hw_<!(8(Il874TVRU<N
zS3cc$*@z3T-8sKrn!KoCHRtetG;rkX0q?~76JFn;!{Y~fMx}G`wm9+qLz%tb+U|TB
zem{T?=PPu{`<Eih=C;$V$Kw9u4)4DdW*i;=M1fCB-bWIjKmWMUBgS%-+FsU2-Fm#L
zdH!B%Pm8jQetYrvzd!ev(4Q!(giNatu{r!cGw4D7(fx|t`4Bq%J_jA%55V~;bPJn0
zUVJ|Z9nMGStM2&6EIT8j+~4-QK1qE1NdCT$b9lVNT=KpXcl@}>obNVJV=sF=N#2*>
zeBhT-^)_lRwMyROx0(3(=z8AqSNU|#Yx^%>s(X*~nrp35`gV!b#xb3qEfkOE?M+Ti
z*ZS;Zef`6eeS(WP526-jyN*qw{D(RFH;K=8N^*szr*?4e=3`+YwBcMwaImRIMiP5H
z&Gj?g_MwsUJA$2b+Q$8C9=0acci+SPRQ}2#qf!?0>2@6tnVqQNeCg|H-+VhJQ<gyy
zTlIa!_pj0JpS6`ZS9`r>{^+U6)D(rT4taij+Ih^WA326xK3mteV!he_lAktcSGqBo
znibHJ6P(DWZ%in^?dQPd!Xe$KtFGblg=s(M(Cau4j@$HmaY!=t{}FcPQ8`8J-#1iB
zQY2(Zp$s7@DbsP3Ar&Ge5kiqnm5d49gE2CX&8ZYkcNC(eq9_tkQYcD;lnSBu^61-s
z*0a`cy?=hzb?$TTv-h>HY45X-Pt%}@<-sD}{(Q&ni|G7L@MWJHr7h1G3o6qu6y*eP
z-#VT!^UNgs-m!u|e1oyk&xVIP(*wBrHy63h4@CTuNf-S`WiWZeY}e@h^n1ux*}j<Y
zqLpz#-H?Y1#s_k%!%{{~eo5ogQ9M7?k#T@)Snj$lj7<+Fo|@|w$gO#N!_f4#h|j#g
zzW$33W7i2Ej{O!hUhDGXM8T;*Zh+m%KNqV-{PC(fjruUgJ>#Z4n17CO`bk5P-T6Q+
z_`Z(f=RYETtfQIrj6}v}cj^^;)G(GT&vSF^9mF+ty8U)!D~<o2f>=8h#-r@UtNJSk
zaigZK*>Olk%pd>KJXT$uu~XXoDF+rZzBeY#>(;&??pw`{Bc2*!{^j4-(MS$fIWs2y
z?gYk}vzuhc8wYWn@&>!#?J4Gy|Gus;pYe>p+fNoS7G3e3)MH%`_rp#qqP4S_Z!z|f
z)!4<D%XpI@*v+`$d3<`IfY>~&$wXSrZ;Z29cj+wS$jrg@oqQQzs_7pgOYL7;_*%C`
zUCi6u>V4pc1>@41k8>BzWW0Ns_RLOkL0rF(-jxaFV!ruSOP+7f;C5CJ$juILWV~eP
ziK9`0!Q9c4y6=5fiuoW>R=@dKj4it^ml{{fxVW}_s!`VvE_CPVf!b@ueB4R-l5VpZ
zyU$bj+{2dfnd6d_G-Bb1dD8vd#C(Z{`mL62jPtDxl3xfIKd|`KWtLY6r}jd1lgd6Z
zzdXsPF5Q*!TmMUOWs^d<XR2KX&h-)VMxVZ>4_9UEaC$&$fd=D`O2a-X-U;C@{R;fj
z?TDC{O4r{m^@i~uQQ5tVj~JUTIPcJXe+YM3<6MjCF)?2{f1%d#4UEx#$osw)I2(yV
zxVUq-E}y(6<`Wl|_#HXJIQP+|?R`TS%e8uHa2_GtgQ^)3En#AQPT>1mhxv?Y@pIJT
zd5qDYzsKZ%u(&Md9r^@3tX&qufh|kMg=IT1F0QY(aH96FSu;<i*jLQ+;^;LMK8y<_
zmrnoL#2EkA<LhQ|K0WWQsl9q@T@K;EcS^T^Fs1PV<9WcNzZR{(6wc&(Ep#1zCNb_g
zFfr*<bO=|VzjoOTYR|71qs{BiGJcbm^e*oR<FNj&p6f1#a1NPoRi#8?9^(Pl-Lo~u
z_FxFty{KUH{=;H^|L)Z}K6HO@!nR*ec76)s@>Pq%t^LKk_?AS}oXX_)9<0l|**mmd
z{;}7X#wq%Y4-Xi;ajs@4XSnCwnX{L~yxFh~(&18!LpR><Tm3GiT|VMt`k1E9p`1^M
z;b{J>m|wv?kdYt8_}_UVA)G>(VACz~b-R=+67LOSa@-Gck%IK#owA|r*FU~1n&jFV
z!d+Pzb$Ig`G5=(}LBN+p#(ZIGhxIQQf6wZpIHw_m8@jIE&-AF6?{j^z!gIPGIPl%@
z{4pIvx#qIo)3m974O1R(t5at3XTM%H6!u{9{d?CJ-=XKh^=MD>kbbvY&y&8taJUkj
z7s7$%$0c6sSjPCI!J_7eA49l{K|i7=hl}|KmYw@-ZDx%2LC!DrmfcVPAG_MABs)^f
z_v?1AyoH_z{A}mK>NI*@=s&%z`}$-GW6W>JPk)kM@7_0*J3ZZf>QkCOlPw(YT>BQn
z*mU_duicFEmrS7*gb*$@(AM`|pqQVrKETR)OlUi2bh>p&eFWnLr|L$8b_?aMmQ<}=
z;3wv1_MM;fob(S|S*MgS?*rpu;}vhuq5gUi7&oW*3faTp;MATH#<SB~2U-R)Hmdrb
zZ|xhxy~&FxJA0klpZ#8PhQ=TKZ$AX%%+Vh|iLQija|Ru2*_TNDo$IA&f1B}!)e29v
zk20R&bbiM08zEeAvwvMkEZLXyL!L@sU@SVkuivW2jK9x5)kW`S2$%k*qG?)$n2-Hv
zxAPd;7x3Bww*woa7zZp5ecUHKgzK;)rNt?j^l{V+={s~k@Umj-L6S7az5cTR8p36C
zEa@~iO3cTb++UEmgYo&zegU2Lg>Ypynhrhgi21_aT|E~)XWYRl$G@nKaYbse?d=*m
ze?3g0tlMod-}rg7PFMPWF#H1;{-Eh?=TSWM-@o&yLO3w&4LCky#**BG5H7^n(AI^<
zXaAp1FG8yr57DaM=<#3j4&`&sJ)rTvvUbdx9n{~j@8H?9yfxPrGx>(Ke-DHT<=!b6
z&1p^$^H0sx_v(~}v@^yRa<KbHQ?6gMn6K|@GB1n#4|wPz&7!W6jM3kP*WzCtqWN|^
zcE+{@>R<3So#scDdl~m|={R%po)FGskNez{)c@|!j(;6~nz7{vqZ>a88N(m^a(!dB
z^#N;-#kyU}m+p%B>c<UdR-OpqAh)|dBz{m%2nTtWP_@M-WM9FRuBV<jlKs5+(tM-T
zRWU!bApE@s%{MUSKlr`((ZB^oA)LL6*RrRiPr=-=D4S}=|Msgg4pLe=Ev+epGcyr(
zIY#;-*I77rLoMTh&YE|JmN15YST=p>82uFTZ?E<3)RaOw@bd`K;>Fn^?fm!c-A<(M
z1ql}}zoYv@zrb;4d)7`Qdj{T>a(3X9*JRIEl^j}rPt3z#fT1tojJ*cla-{EI*k`bX
z@OkmmFHG(_^xct2>L0h%g?b9qKT7{O5Q#D7Kjip-%+K5bHOd!1v-x>8t#*<qld)N7
z<?rJU>G|spSf-J^xHtV{RsiV-*l?=p=GO&`F`wcOE~|P)^XX-mnz8%HK7low?{<2B
zFNB*Sh&Xrcw3y!(yYtyvitoS}fAAi)KaFc1gtYswZF+xRd3|TB*5}3GpmU6u{C45o
zFNJX4Qno+3Z5H#R?uWN_iDwLd4|%3;O_M||lsh@D_Pdjln7<`b?Kh9&1+eFqxxN)$
z8Dl;dn3O%Vp!?5$Bs1DeHIxIx--1=VGy|uSe~z|#cYf7YvWKc?8ZCc?v@`rM<QR`v
z>k9LiP`rJj%izQMUqd+X2YnNjKjg2#;d7(DYs-al$BPI445#)VF<Vslz8~WqWfF7k
zk&J8i#i~x49Lj~~t{L!|u79#=O7uWo#$khY963wvh1}>%>jwed|M}167(HjoM+UCF
z`q+qZsOzI){g#As$I|3qOtTmBBi5Q4C`@BK&)|^dZVkrKw{_@^@lfu^f~QYIY$*P3
zyFb|N%IZ`1`!M-k<#_vU<sn?8>H>YKjpDZR-5As6n65us7{C6{f^jIfX<x(7`t4%=
zy>yR=b#y;4;uG+9^NYP#>V$HU-8Wh+cPD+xi0*En&G_`XW3Gp-7<)(inOY7cZfnot
zylL+h$ew`_kAY`Y4zS?r$sb(Zq*T0G%wv9oN4qU|i>G)C410G%;d}KGx}F<7pHj$B
z4s7vi$c}{ujPZOEq<I}RYcbzC;iBFw>JRYst~(+;$=-p{Uy3SIJLuc7`11c^*w^pY
zrk8Fl74wqWk5+ypeFXPAH0f;_#S<ZxS~F!=h<Rz(vN!w4pMasiV2sa%pG#-&p!=;i
zdbcTEF_Z%%z5_p8p}xwrS17l|;hoPbD;A%Fk1ui6x;cT#t=$Xd%Jo9I8J&Mk%AC*U
zC%EZiSx^GShhU87@O2;KLa6=I6(;T;Z5+yhb@%VSC#HBC^Ha|HMfMlUHy}T_e*MoN
zif<vu{lSRWP4ailzqOO{naPGe-T#DeV9Pbh$x8pFpJNxAE^LqwZI{FTKwqIBVE9AW
zo9;b>cJuUm@UrEFTG^C;fZ^|;@0br@%)iq%Wl~#dzAJ0od#Ey;=|B7<<j6N1gU7^&
zII`yh+bj8A@F4pFt_sXFYN7Fb8Y6#RmGpbg&g6iRW{lGYKfPK?{S7(BBYEYI#hEn!
z@qFN{9tAJI%?Rbd&@b3Wz1V2&0hF(RH)rgm6QUU--dw3~e#~>3n7@14z;OuKEAVim
z-dWq{F#fk+FO(bA9QbYEEHU4s{_xU$;}~N;LO!>PP5CFXC)S7LcGga!e7-F|0z*H*
zJvPfOa;EqtYRFq<DPGJssjj@}m&zE|LtYYg_35-xlpn3!T;@JS%)4&Wr6VsG_w$)v
z({n82lXprKx?c?C!Ybxo4>1z+blB<SR9nW)8k>@S#xlOz*?E_Ad?<G`JTP2ujF{hS
zE}fkj!Z@jT^Mls=p<F`pg%2Y~iTPpOKfCmN!r1&;bN`w|#zV$*IGPvAe*Y~~v95LM
zmG=94&KY4GBh6S_qx-{N4p%r|t#^A=48;5%&sBF_-5BdGx8LjO&iLPX=~uX2i+W$q
z)}wfPl-&G<*^K|by(3k_c$C#_<AU5PT!8wJlyGe^Z@;O@!Ml{Pa<t9w8;=>Uy|c<G
zMKP>>Jcph8yFzrOoo!@xT1e(I`M>iE!?@DsgCliDQ@njkToS&S@tZOF1?xf>d-v`+
z_ST&+uHm8g-py)aKK0GXQI9_{mc$#|c*=#h%e~K?p788@7`It;y^A5$7nP#sy>;mu
z-p;S{^A$GfGCp52DD<IHIM*>b?waaMs=xl{yi&&Z?fd9|7{b`5`+@aJd^l%#c2`_0
z`RmYP<AJeT7*Fdr_x#08jQ3TQ=Pl&IInB6)AvegsG!>1T^zm#sr+?e3j}+Nsg{LkG
zcI%kDJny^E<^+@X-!<)XiZ|oR|LpG%=lXi77l)gQ`D=4B`Rh9vU*4SZJ)Z6d`ISQr
z`^IR8bKklx69kYytgY5o%v;Dfe}JNk*>lD@E2iK6@r(X1X7kwPbiLz7)$DoF5$!x?
z?RuZ&;f!DI*}X8xAcFgPf3u5-p6A+A%f$_&8IPXA>Doj_a7p#O#|Nwt^Ma78tL;`Y
zxnH(g+=&1tuYIKOG&3WDJ9nmf{AUj_|8eP|$gI0ezQ6frYjGHp|2yA^@%P@l@}-(0
zxCb3>Yzm<GrFgo{;Q7B9>;3Ne_2m!7T{itusdyB@y_&H(z-67d?fewR3l+t7-=wa#
z%m2N9e3jF)n&^6RhM2FJckW}iU5t0!2pX>a?kd;4Zq_%g#bSO^o%$%%8%*A+a9nNc
z$jEkiiKqYVjdqdk@pb3Tzoj1^WxQ}>^^lGd#$$5dx@$d*<Q#0LUpz$qdHLrfr}ADg
zuC=?SeD(w5j+s_5yUnAx@CW<G&me!%p|{`UXZ;w5`l}>=pT)T0Z@G1H6qkEg<!Cpm
zpL?pSjd`ojxa#lc7N#;z8ee(CWK2|hyxZSpM$@HvjGJ4W<E?EOfB2vr*I*FEbxYaM
zaVyOS?Je6c{eBbK&OINCt&3kX{!}~S%lV>6PG!7)x{tA#zyIW%VR$^_eru<G+E~Ci
zukiJ+)w)sK+-DP~UL*TkyIe9j-H!2{|7`GK?7uQy>iGC5?#<WGLzCx<dCi2#sz@2e
zS8`^LI68&#j+25)b*m_D$(QAKRb0h<*3=;`&-EA&KYcp8YBb~6^W(JQ$3}68530Sg
zrVFV*!9Ab)tdU<3)jnT$-oHslcr#9vxiKfkkg;uyan)Js|Ix#Cf6Ar)2>ZS3v<Ce@
zIAT<E#~Z^L``-9EY-Il^ZkO4i<ZRLxv=@x$2a6_J-dx-i$t^JO-JkD3{$j+CgGsH7
z|9xMAaf;uX$I5pj+wGasWvkD#%NV~Kw`}Tc>8N)3qChSGG>s_k-o@qGJEn^HvC$8$
z9KS@iGsYkCWw&jIPbGb>`f0M~&~z~mIoLL8@|$%TOuqM5ht@B2z02M#rx_G4INB&B
z<(4wO`!&Joj8s&+eC0)B**#sO+T)j+Q9Hvr)ke1S9IK=YqI$-HgBOgiJ&5E^ZGLh_
zXR?^zGWcgg<8#J_1I%}<YG!<I)3_C0G+%R~-%GoYK0XWc-xrj|81or&qem^pr7@B1
z{&P;=_>-G%FpiQvk(WvOerxMMDHnRaSG|T@@y})~Rlir^!=p$pOw#h@%>=67{pWii
zOukksWuV0cCO_C)|A2ES<JbrG-m2Flxvq!5Mz?B+`M+-yBt$XZV>aioNgQLfjF5Y0
z??-YMS5G~WP5<|#pUjl<_l$2o-<4aF#Td_5GU-H+HRUg=H^pvg^#9<YQjOa>ykP9H
zV$MeUkCEKK+D;vxE}(pR`i!ybJ~95!a^%xUZhy<%K6a!}dT(1&ev<y-dilT0eb1O2
z`tyPJm~Kk(5dIIpceNZn_z?9U<VURp)1KdCe6iJLpiy2Vm+Y}_kPF4Hneu-t;*1y8
zZPM;r#~Ai#xr}+>-Qi+hCeOKM@YhHVED4!SOWutC?PrK=Ur+6rW)V0ypYhaJeMcrd
ziR5ZctAi@Pi1^pW);;x88RK~%_Z-k?P|Tf3uE={_*R>tR{B_5_FElXL9X-Qh9@$gK
zuT4mwx|HsZ_$kypUBjbeR6B3g?L#N7Gx>Zak=ZNKZ{6rwmt!eD>wCbeiw@~8_-x(8
zXR8w!Lx1KMsJ-=<r+P=5zJqVAQ0WyJ8Oedi{^{}VR&peF=YqkxY#FAH;QA!x>U%j%
zK7R7wihm?GW#iB7<=x2sxA{Zx`m%`MN2tHR(9h>fLo%0i74wQ4HTFno{(~EwvzD*#
z5Y^7GCw_x|j%sNT@qWwhHm;=hfuTQO=!1@bs*Py{?Jty`B-v9L$$|fU4~H?I*r{vd
zw@B`B!SFfneu>)k8I1WqptD=1`yeq7dk2Pofpbia=*WLIU(sKf--s{3&09+^^`QCq
zU{IXOj9y~?hUNFnmp+V**TijfCHnyR_Yh^dD`ZceO}KvBqKlZ<SI`-KtdKF<1Np7^
zHPNHVo=VSmm=n-X%tu_+{^?iE_<!YV6FhvslYPVUAYK4_K6!G&j>Zf8@4VbdF1&W-
zeIIJi0F_#^>f?;@{E*}Mqg{oDt7=93GNYI3!@?ptuu}hL?{&i&UwAq+HiY7phQyo<
zr5_^x<GrT+(qx~&@JC?S$D(J>hu!N%d{gtPkm2uWzP0hp8JFh9(fkL)o}G{BBbWbK
z#Q*yqK_mxmUH$2yCh5<79Zn_lm59gxfzQtkj5r#=<R+)e3uQtgxw7ZK%mzOd@tydr
z^ApZ7E)Kl&c`4a<$kX=Bi&|J7$u08JFsgkg;-QaVga2%pi)xp{-WvBY-gLK|_V>_k
zq(8SKIdJy6d5?@@8J|h*vgYZ%Nbd5~=W{HciTJYa(-fCbd<*v4>Dl~>`X4;Z*XK?$
z*^jFst7d!NrTxxr{s8<g=Cy$?*=z8>@14-^4L{sXNEh+dSDXB+=>NfsJ>@pPAo~EG
z{%O3&!OxN0FOkBdrhE|(e+!2F1S1}Odgbv1l^l9sqD|ky|0{>Rz3$Lj|MMp8*E>||
zrA_fISZ4mGa(Q~b<NbTjtiK}S@jQ@YzC(U;Rp5~@@&{np|1;6GTeae8e|Ovc!03<O
z-f`B`l0<yT0ylfvw~-te_6ZDoKPA<)*z!7^58^mlI^;Lm%QpU@byg|)C1dEHwDZw{
zhkR)NUyr{5Jk94e{(IVHXYwcDaZ9%+eW3YtuT$pSa(ch%s!fsofGdn)?;(f(8!x*n
zP|07!!#{%Y|KNj}pIcNYKKk=5!*(<EC;Zv}#nAt*Ifs{YqxapQpWq#LV`hpeegOab
z9vY2bz}w^ZkI?%UFH+@QN*Fgd{@t*}*nI4z_2&X3+xO$O2!2<TlmEf~Joqbc=*8~W
zvvMhaJ7V2IhuWXmDSFcW6vlU_wKjaF_ycn2!|uER$KTNVPA|*97|GN4fHD8@ejD;j
zFzgK&_j4R1b2)+bBO?C!|M6VIpp~lbA|C$-wul?#7ESs99=vd>)S}=>POF!>yVEui
z4|@uRzW*=(IJQ~EbhC(0`;{FsIfCM$HtsP;YF@@=#(6LEY7CMhxreFYeoFMd3-k@F
z<zP2|1obD_No1_Kn)=J2?R_5TD|m@*^|Vi3OdkB%X5t_}>i@uujOVT*e%AJvkKB!;
z+S%k>b*26Q#<$iE8Q0}f6gSiBx#p|YBHrq|r>T1>V}se-GOih3YnRK{Tyos!ajpIN
zIz3-kER(=EyQQ|9Tn^)#Yx*lEf4at{O|h1k{C(fie%OVmCdOS>ch#*|xXzti)5*Tu
zH4&fUy(n^x2IH%D=h7SS*SW&R2~zpV^uFvTzkc~cnEY{TWB&;=nf!8}{o5>puXB=-
z+V7gkzV5WLIWKTza{VUF{)#u4T&ioNQ}YGJ`2Fjr{P&Do^!|X~2Cwa5*Ew*~rKOjz
zJz?y3UfOGQ3H`pQV6YDDAKlkW+g2)paf$Qg!~xNawVu3~ky3D->z#Qk$ElRwM_g??
z_Uo+Zb~YI86xw=`@g0HHMbq+V?v>HZdW#m)ulpej<C+=kf6CpkeQZp-{Pl{-Z@Dco
z-1DqeIa=h;D_W!?XZSOg`}?_!t1;Y_R}a@tru~y<0eN{^=a{^+@8?qK8%(}qS-*Z)
zlNpz&EBW2K7sGuGKI*=zznGtpowD>}E@PELsv`aW;(2@jo~RhZ<?p-j+(|*qC;2M0
znxrsZRbV;xZW`l%`*~wHWzFkeT6Dd_()?oW2*#ftKbsm${Na#MW&-64AMICI56@$q
zuhpP0UBI~Lq=#*%k{E8muU?;{x{LXN&6lp~k{lfPrbonsr;L?;d-2<9W4Qf36^e!w
zzZ&h{_SCmyY&#!F3UR(I$2jfn&d&S4#BiFUE5uq9&#TMaYLfoO_;zPeQ;TA3yIiXC
zs#kZUW4Y|$7l&18JSP<vhu^A>Y3H44Z!RYkF|N84)7`f$raitg6~+qHyTrD$?8-+m
z<#kN1dfp&UmhSgxPl;Ez?;>6;e4$#gY-~Gk+c&}VTzAH&+`Vn~DaCRj@p(&iI?#H7
z@u%ZDzhc@s<9E>V8{ZihSs4~9{Ep#@M@kl%Hk1Ea97ikUj5{lDtQb(wc;nD}`YpuL
zYx0z4e4_Vb+S&`Y@oSo+_=Cy$zGGGnX^r7bCL8U_rhMevkKwcg5!=q&W1JI4NyT!r
zPVb))P$S}JIvyNRP3-~Ck(7OvQ2W6c4;#s?6VpD@`;%?`2`(QrxKNM!4_rBQj=@@L
z&m?<yJx|)tjqwGK2-++@`<2P}jQ&x1korfV@LaxqE{*5k?c-fz+ZpYLTz|{}*+-pX
zx!Z?g7ObLp_w{PynhljP?JTn;KV?QSW3g;)lj5rwE;M*xaBd;R(@#d+3?}^q=bpE%
zo7Kd)!?zhnDk@?)hy7XVI?qM?#LpFp{a!P+Db~;IO!@_R=Hz!pR|{j>_qWT8J7Z$m
z!WiR={qIw<^3E-x@u=C5)Zg^Bh*vz;-L|$j<E;y%iaV<^e(ScvXu3=+mpJXgMAIx0
zzvh5!$U4#&FvbV``*cbCJsQtPC+E$KC3|YU>F)@TzP9nS%AenSX#Rl<HKn)gp!pEq
zeELEq#h17Cb^22FJcjGmu+LF7P{c1-aplC7k1_4?6+5bIPE&tEURGDT!T%@Yf9C_n
za^9L<{5sR`p^spLW%JyZ(RhOkWQu#u_!Gl<NWJP4LhmCq4PScfK0P0J`JBY64j*DT
zImwRkA*V!qSU-oAqlqDpyQ1*kp6mtW%{Iqctg9HW$(*TfPxh)~%hewa6pt>|K7Q;m
zjVBoGd$wr75(|2Ner#z9*Ma5-<g-rSIlZ?bhJ*aoc%^->iT$r!nx}J?-oI#@-;mcF
z3H>vco)7Yeqh4muA$<d%6!<v3qxt1t@=pG20MlRa(rQcPSItb`v&Nk&GO_LNgTwye
z{ctVs+1jf}Ut3>DY8KJ^-SID`&26Ch0Qu<Db04y4d?5ed>)it_)-C=N)Bb+7;Hp^d
z6WKq!Z#`|e(H3v&&%&<ZS=$d$JUqU};R4+s94#&vj{GnA<$2pzcOiRl-#p&2^)S6}
zUp1!jTn*#p@;f(mBYyz-{#{ma3+Q?8Bo-QEd(rzP-s??+$ligWA7JRm*5RSYJ8z=+
zZ|bnVBglV%pMR1hDv|zxUG%d|?8tv1KE0Q_?B+G{ci`c1yUsR~y#Pa>?&i21A1I*r
zQM=k$J|X)6hW!A;{!Dq96x>Ad^iPkQHit<c!9QjRs+vf@!H4_E8<&xM)@Bd4fsRy<
zSd!MVg8V&rPQ&1h5pNk|KL5EjCw2A$5s%-4G5^5u4{0J*qgXo;zhdIGq5x_?xaX+&
zYx3j|!Ru6lDzsk4aO1ix=)THH#Q!_*i*aA)&W`T%d&slR{tWY?@xu8njyESM{rSuo
z{@82U)2p2=Mf@f88Q)z=|G)to15zfDe*k;_N%w3d{id3`++cct%GRf9VstmgwYOh6
zr<49b4u3M<a;lc+2FmAxZ=|V^eFXb)8?3^}-hnYb0pdd+db!d049|iav`OE==?d33
z^)6?O`Mq-Y(_0y&U+~x9-aET{<iC&Mz<0JZzZKB^F7^$-S3~Cuz#oG#pTV8VChk5!
z^S^P1;P)73dOz~}`;XByf56?}+LTYH_JE<kU5<H=I7{b6n0TBrGN=9q!ykZyk3Jl*
znfmip;gf<4$`?czc6S$(zX5+pz1>ls;wP}H-kZI-6km<7H$1Y>lf?_*;KwrOSChVg
z;a@LL@yq_{BH|ye?=_n?uW;ZQp_!qjG~ZUn4B6qcMZ|~R`TGG##t-}_i;pVAa;twT
z`i4_}2>*xc(H_X@@HLH8(id>@%Ich<<X?lId9;k#A>w1U6>iO<`33&>ei>u<_Z?@&
zl9AiV{<qmzFybxD=hC2)p)cwFkpJ&|ukbt&x0L)pu7|%ty+$#|{Kb2EUNG7Z{uTN;
zZ4iy0^oDDdP2|s2%!=fuk$!{s9bSGvj{IA&c*!=^_blFm9R3(`*k5pxvaifi(yx;P
zxYzz~>Aa&h`wTw){u|eo`~?`}HF9i;-ry3l*CRJ<IZE~jjQ<0}zdL=6GO>Om;^i#w
z1_;Stf*sbC&Kght13X{XO{*uxd#JD7kDhh5hQ<?IUix7fNAdK}m3@*csa^>E1e-qi
z(ou!{4R}!RbQ#A|$`4Y1DYm?z^QBBrKS_PXc&O(41rsU$f!rx<YzIHmk0lCH%T%gF
z{Ii2|OFvQk1BU+xBVQ>j&77k1Rm3A+1|z-)*Y3Vh`&2%b>(KP2dLZ>T>@^tv8$6~i
zd)^B2kBRPmekeVr_luW%yF0yM9JMxiMAJLQLszTkj-mPVxOkF%Ht7rO1K7U5(94DN
z2fV45Wave*htoP<RdJ#EF7zD?eFG!k8ND;xY;w7XN4x+|&)L+VLG~1^((Uq5GkRXc
zzqhA9aIK^91w-G#hzFeK%MDS9ruUzhj<QyxcnExajidZEil@Mc7i@of_PHhz@jpcO
zovLWO!T%fYB7Z>q3;Pd7ev{K_ob#(Ebe>O}Jpp69!N`B&pS|lnIF;&MZT=37{sF@u
zOKW7E8<;}zu8m7^9~wU}@&_>dg?vKLLrWU}&l^00eo=pbhcsRP7)tRt*kNQ)_B6_e
zc9<B>zf1WP@=-AS71;20g1Lz72c94K8W`~n82;yet4D9oMAG*!;kp_W?}PDs@V3@?
zejmk8bvHxxR#E>zAHlHCVCm_BR<YzCk1bcbt4j6s`oa#GKPa96!(M|iK6u|4`T*8d
z{1$nN>_@uAn;%hWB0eE~{M3^)-@&KiQ=f08__2C+n&M=79`1*<^cRW;A-CvhmQ_sc
zfgJV_T)oWo#3k~d_mVniZNEwNOFAv?E!j6Pu0Qvv!$qGvRNs2J%4HnIbC4q*g&g@i
z82XHQ9r78lOXJ~(j`TeJf2l8VqIxg<Ipmn{knf%%^|O-vGtN(YWG81>LgNqllSvJI
z2GM+le2r<=u&v6BKab(GWXT_YtbgR0OZgA-3vlOr9hc!$-zZ2Z$WEg8|IWB1hvO7K
zK)!JP#r-oWzJnb04ZLY#eZVpDH{zJ0m9Hp%X?@UB-HPTr82S%J{+!x(Mfe2zKg?%v
z>b(VF7Nno>zZeh58|3u$e8~Sm4*kLT-)IjQ^$769$g7jJD82>PMLt=whVm7#rj^RQ
z9MUf^>~*E=ssatlFA@KO(Oxj}gNZ5Xb3#0r{{#;+=^DL}>^B(s*piCoLno--jr<Ob
z`~>{X(8+%=#iwSq38t+SA1e<CzZ^-=1IGQpsMp~<Mc897{3m#yxyH=9)E|TPx|!&$
z7xD0KVB|Ys#2@Dd%y0d<jOw**{u>-=bcjqw3<u6}))K^1yo&Rxpbub-57;ARYx)uL
zr~0F2_uK3&;*n2+kq?3~Kan5aJ3eSq68#<w`|SE_oW?ZDhvbg`8nBb}4GjAUR`6F{
zH<$e5t1nah)-Pf478vm*7~|n5PO|CdAmY)#;4!gBpRcEQ2z;ob;N?83=k-&s&C6K9
z>=_vC1tY)1c~r>P!R_%^+xc9uPYN@iWeKN?cpn2j|GpG2fk)EUc!DWE0HZ#K^O9g6
z!LVQ8$2)aTDN}r+wM_BH^BJsv!2J(u(;G`nZt=X^+)A=9DU(NQoL$87DKO$mF#L1H
zsIl|+%@^?)PcZBe*xf;~W)<DP{JpWE(;Q}B+qo^@xw`Y-*DjQAqkab-uh!%HTB_H9
zk<Z|KQ{+2f)Pul?H_kSc4tqt<hyDd4eg`AJ&grqkdf;q2PqVFl1`hE|?xsZT(c=?K
zdrc7Wu=kLo-U2!76&Used^WFA=PKntVC2_e=<D%S`_hu;vicwx@gDem$AOooQhXS$
z;W13lg3beLix<H+%a&cpBzrg1P_-t5^bhkDa@5x$NBth`>e}yj8r>i5gMR@de+9$d
zt-KYz*vCY~L*Kx-KN$JJ$!i;mo?DT<Ypb7t5r5r&GUxXub2gvBsE30QKVyEto`Es{
z!0<OXKMnN=aE^9GmwRfl?dPj$pIEbP0_pbvuQ{<oJ&NbHj50DD%ozC*<d~l`4=$H}
zMf!ty3XJ#}jNjw`5$}OvzrljP<vfaCBP00YUUXg?{4E&qJNV!E@-duF-itdmqec8y
z-|4pBDZT&?Di9soLiPy^{lWQjf4~0QkFEzp|H0j&hwive^+Ju>Q7@t<)BcXO^#m~N
z1sM9ZrNU%!<s>@)?%Ud{!zg|Mqn<M>$>{q*eOiCr`*#78)>qmX{Rc+AIGuB=N!Atd
z$gjY#pJ3Fda6TUVH(2~AdS`!%r~j9AGQYl<P3^&Wg3({#_Ikw8PRC40UvRy28>7F#
zu=g1$Uh=E7MLg;O;C@TKFX~0(4MsiEPWQHAD?KmbWiaw-FrFX!4}S$lJP*D;J50`i
z@_C%E*WB0A%i+Hm`T#ldiym7dJ%mF=JoFWe{|6)g&wr%W8Z(I2&)e)3czwp=rFoRE
zfl>c}K4bj>jQh9u&)?Tw$=`#&-THjRh~_iccadF-Io&_{PmedxhfzH`yYGuvy%=MC
z=;tZz!9IQH{NH;0s{_ej<9aaUW+AWNSy4O>HviDa-jw25oJVG<v9@;{=`T3Y{&Y+c
z)nmc%KRAC6^)N8>6)b#x>(DNWM{#}`)^oxCd3~FnAB_HXm(uQ5Pv_a8z63^n1N^ce
zB0PrHXFX0-rzJPg_ty1W{kr#KjP;o-^K!jTR0(<f9@k?%0rIe-A?1b?--59|HdWPX
zZs%rU`}zkM`T4>d*;|Aphrfip_oSykN+_O%9QF<j`|`u@W=EgT!uEP5826L!7;rD<
zgOLBE`1in5st>d=@<TAjyUWe^urtN1Jz&fyFvef*O+<WfsgQ@i0>hqxeNUa=##24+
z#*tLr@OMH!`_SYNx7Um(9NAy`mEt|fkuOU0wmUt4Bjiz!1w&uJhlcfDXhQXq&5K?v
zN_ZjUk*|VVh55nDd&IWOq0e#M_uFN>7PjY?;5A*3MDEp%<-iMjER$K#H<mkUyw$Lh
z+K=@nF!D9<dg-&TGU$2hQtFeqSHkvq9SnO2hJPB}K}W^nv9LX!1|vQNqdw<koIKAz
zRoEVHf>EykBOh63YaQ{Gz8{8o0StQpM!f7Pt?f02uE%;182R2&y_7u%?+E#*5nk6i
zlD>jtZuG6cOZ7J}>Ny`Y6>Qcg2zkWsVAONK@W1am^f9xK6Y_fp*1jG=_5_T2EEwal
z`p44=!rSzHx3>BV80#V6hc##CS=0Ttg@!8Jza`|czXXi=0Y*Ke+a#G24)MbF^>Hxb
zbuj!*ak{wt&s8Ch^(*kaPSb9AQoIZ{nP8o4L-y$F6uIAS;X+<a(TWz?Yw-Qea{Yhw
zVT^iHfYh!0tZPCZ@dOz25sZ4o%@=|jy<+Hm(zf^rjCcTy^`hE_0p+$qLLTuRcvtto
zU+9V9#+cThPr4xFpFKRX^bM^?fl+S*!=CxxKCHj~tdK`N3XFOS82;7EtxPfe44og^
zR*wK9e+MJ}PCYf@#B4wM9$VXb3>fwb4F7IpUzHzoPT0O)3r2ps;EQbR!DGz+K#qI`
z@`)}kDY`1L92oic>IpF~%#RCs)EB{sZ@}o!MMjMegHH>2_)jqA>&eo6)3#H8BmRRN
z`4QyMFYq;0_sfA)zte7&-tT`($RpkdWB!5P#`z@}Q2i~zMKrEdDCAL30b@MD$cGLT
zXH*ZM>yht)<Ii-;`$O@_@iV7~+tdH|trl%KJdSa=+Pcklc8m`sNA9TH7t1AUF50L;
z{o(G|`<JgLW4lz%8(VfV{`dXJSgvkYt&-14`u>XNuvCx3jQ@RaiSfVhKgDwT@rBiU
z{mI`&K6tmKiSeP>u<bV$;@ahrY5hOs_l@JmY0IUWUl;PuD;j-6)fvAG*fFPXAI80|
z7^SHVjpKIrI-pybCgfGWojUw!Fyra(es?-d_lLak{`Uu`yT@@B>u+QvC((RbptgS=
z{U11J*qQ~#{TVl$Okdnlm9a$qRPz>n#*><Umxu6-9ZwB>*03y&3zj;(;`v=69~4nx
zyTpdE?1s0+n`{|J=NalmjF00cHt0vsCi|{klQy>ZWX80)@pF|G<BW?lLv9|7<92=V
z)qIm8<muz!w^Ab+cgr<P&$z=lYrUrX*#~jlZ4;-$N%Xt}yCi+Ayvg`_Shu|CiE$kK
zfx6ba>1wHr8)thL72aq3^UPa1VJwc@W3*>VQwELy`B{HflrnbLtBD#W72hs@zshmZ
z#P0FjTKyH5%kB&LU>&#3{_>2M`uuY2(vh)1;aj6duXqmrx3)wkLtc+@#tOv=Uk5SP
zk@|9BrfGcp_^LhLw`0g$#*GT*8++L@4t7m!NnI1qO%p4W?0!i0!q&~;xf|nm+qSzu
zbY=YS`=;^S>6R)NVV02ZnYUVL9sM3$XX%xEe?Q}AIvtE>9FFJWr@v73DH8HVA3ops
z8Nm4S>9}rNq8J}PdU2~pY<&CoEBm_+ju~FWc(+!|r*$ceeWxy{eEdG1%W>1(U{WFE
z=ND<8yZo7PVz-l0lOHfvdwSr2Wk!5^d^A|CY<|CV#t{t`oJAhvce}j2o9KSyHuW%a
zr}%Cbx3x>R8pg}gr+jVx7|&ha($&y};<?!!CeRX_q@4#0c|9b*8{;y&b*l_|O1NO@
z4^G?5>HC}N`=t-7F+LV}?Nqc1<I$s(UpvtC*SpM=jLE0-npci^GkFkWHRT*-cXh_e
zj~yS}rt1-Zx)z_RUn0jiS1P~!tpekX$Bagv=qlmXu8p^gdO-1dQtqVXze)ev_`Yoi
zxg8CR<?a}s88AS?-R*dwG4+v<pQ<^1kFPdk|Er%&r}k(3_jH^HSqbNNrh|zk#nb)2
zh2G@)Fb<pPSD4$EaqXvGWllpRoQ|fZ#*$n*pL}(2-*mbjeEex?2NUXFaKhLay^+*k
z7mq!-l=PDPFP)yTL78#S#b30pt1>Par|R=bPr^-^qLJx9^Y3Ff^@4ZCj9r)a{kdfZ
z<I!~b_r|djZkUU8d0(<G+1n-tYK&$qdsKSl0WAr4`{u>sFtWFbKM%|mj$!hE3vZ0x
z5<?z;f2vvF6bUz~$WU$?^<Pib*sDns7@z&48DXx=*nfS*6H_BeyM5E#YiYP;IOB(^
z`47MIjB$VI8;5#Th6?$=U)PDylyKlbsr^Sg(DQ>QXBLI7oksdo;c!Qu{L!{+Zucje
zFt(TV-rbMx5Bd4pe&?%6UbySxlQQ~#SX6J%tI-P?k36<fFoXIJauvhZGPQL7N2>9P
z_alXTYSjFY7J44AFe6bs!ho?_{;{)OQzabYLG!07cFlA@utvkphWJ^G|D8uG;UaeI
zJy%Bl`WbzVd5;ETtK9`H6*`OyE&0#=ss9g;J6lyG5b}5)@WaJDXVj4Xfvx}Zf~|y;
zDeu;yX_t^+U=ec6Y9ixH=KHp&kbXcOS}~zh80m-Jx(fSV-a;O7@K>2B(=Lr-@_A!+
z>#5Ut*Sj39*t>_$!`FDo%hC9N(O>BeCpUN5BIMuSeb8N%`U8A<vd78<(qHh3VUe%q
z&Y}LfD63XuC*(g|Px_O%nDPJ0@jQBQk@QJlArJilAJv;2rA6ZbhQ4lp5E$=B->19h
zIndCF^Z|_L0k1tZ=C|1b2{&o|&O!HA2;0sxW*n(?;Fcok2jp8e4e6Rk{b6w^&c(r&
zz8|gQZ@GLD;~A??82qI1gM96CmmSmeC7ilUfr7~bA)lypLD_jS<JH0*vD?NoPPt<z
zv7`BVxk5`tX{M0BU*xTHob&@+8Sy~7Rf#e5QAg3E;|aQc*yfqTd(i#CFFJqJSV;W?
zzO8eAlOK&w{l1p#nr3Xgz`ssZq&%VagSB{NI<j5DZQ`^HYRrXv@#b|i=l>TU{Lh9X
zCJ*nj!oG;+%fLII8%NOf7E{H>dk0E5qhjH)y?T`Iwb>iUH%+U%JcZf|`R<XOn$H?C
z-qn(Gs59wLvWaD{41FR0-Q?(ZDUR{PbKyq$q)(8W#@76~Pxp(|RL#_!EabPpxiTh~
z<}>);`O%D_uYcS-nrciE@>gDss-H>r1UxJCd-owDB;4zWZ<;2?ly4tco0~%O5At60
zHm|K2ljDB4{@?l767KWEQEp{)e`EdS^obhAWyRIb7IPVkZ(Q5<$W+4Z_|rwycchTd
z98vOWG1+Hu{{*K=W~47**oTmmoQ=Wsz3gs9E9&QKN;t5_xTa0v)PAs>=TFt)WFH1~
zkNem-p4kiV@(DL8uG9E|`#5!T+fQtM;^>TCQ<#4NLw~`r-@fJRQzi60N!T~=54V)n
z=V?BG;qNS-Z~dAxjI{?`l9Q{p<L`WHlTSBsE=;H2gE2nfCaZI@YslaG<mNd!jG}m`
zZT!GS;qj*W<j=tHPvy3A<|R}A!9RdAKL;#bZ7$)!7;g_r|BZi!2>Cs><5!KM@c~aP
z_?YmJ>?ip1l3o5+r_=niSmbZpU&v2s>fZA=jUO1}0Y>~0tlTmunZDnN_zG;UXjM=(
zjN-30dCnP!--~E`HmMs=&FUlMJ9ls?&!YJaHY-(MZ!?bZm++TPZlvFMezXUS_JU>S
zW?nl<_7nYk*m%|*(MZN3>E_OA6dys3_`qTE1?z)a<nIy=*&d?#3LY4`RJ)4wA3RNE
z!bV+^N4-;;_otVTcd&kI^5MT2`T{xF)mg{7Y@m?uVxO1XK>iJk|9A7--z#d6kYD8T
zxat7e53ruLrb+>g2e|s+b$O2Ljp-tT{xx*{+}7EdhsmCUp>N<pozpt^BK_OgVm>aJ
z+Kc!Ke5&NPd0&cuz_9<p9xt8CS_OQx`-lCn$R2}(lcdh{r2hxI`<OY((EkUF`n(|P
zhk(C3_j7h0*$41Gqd~?lix|V+ytkP0!nvc6&nrt#S0nubcT(EcIFiO6ytZd#qkeA*
zSLUksZkv>lZ}!f1|3UFN*sgMk`bU}{;6uH7Q3+haRaXC~GVa3s3wUVH(s>p0nH=^_
zb6nS?>R$pL@jW;$&(y9X=?{4Ok|DzqDV{e^luu7>7VwB4!HECBi2oiR&J8X4E#OZF
z+<Q8N{1F)b9~^b+N6<Nn&%?_TedOhYy!!Nxdu8eQ!5indT)Rx;rIgoK|DY`87n2qm
zdyu~X!=Hfhd>9YRU+_xDN-JZU|6u5gzI4m1ntB0`cm=%IbmYRvG#|kuR!r&}JCA-p
zA;)M_gMjy}O4}K1%^36JTfoE8ycPlf*h$AXmEsdzzp+QMZUprQ<T8U!@vWpkV8ml)
zCsmRp-vm738!*Nn{AhNU@kdD?&IdQjP5LC@;qSqS*T9HBtQR~yRq<ZHM;M&U+C=>U
zewu!I-Dk4T;3V#e*B`R)_}+1&=9)`SNq@oD1+^y(>3Z<?{^eKGD1VzdRPXfBDgob_
zySnlo*+Ve=1^7&E{p3WNPX~6qe$hzJi}(?Y`3}bai>*F9s`x74Kh!kuyhi>KJTfP$
z!$kT&C7YLCjg<oa(@x)e&eR?-eh)^x=bs{F`SrDchkpXkUl#2z(UNfB;r=^Lg;IZ@
z{rEi?`5xHE;qM2{C|_PDlV<Rd=385S2u6Ma*1j89_nMxkZ-9-#rZNHVv1gj~719qd
z^b?%$b<551bbow*8}S-=n$_0Nnv~CgU#&F%xr^eBo1Gud{_{w{uaTGx>_+1UMm`Qk
zzUpguTT>%Xz$4!RBYy%HM~B@vq50aQ|C_|dm-IdC*=4=wQa%GlJOS?T&iLRNiU)h|
zS~=3;ouEBG0wW#(BR<p~X3)XEl={=p+QX5?8~o(T28A1g8HWz@*mF@)!aY^<n(jdD
z|Mxu-#<(BkhzDCtdlW?Glm4{X8!+^z;@Po#1_c5h`5hSX78v&BODD1I*SF*^jt-xl
zN&XOw`2`+osrL8{`2+kP;uSFL7a0EGTY_QOwub_~!dVpEmGTkru89g=z7J)L_#i&1
zXlxmM?;ZLEhCc;=KA+UzpMGE3H`Ti_Q^31FIr#qP0LJ@nUYxW@m2pktyKT>Dyc;VI
zui>%;{7(783#+I-V9bAT;3LH=uK(4(6Z_7(e<6K9`!T=4x|9BXu~Wh=)md$NFj>G4
zEV~d^LjDSj{sW``A{Cv(mc<Kr{684+02uyEXtGSO_qL!tUj`$-1bg*s{y2f+&+O<+
zYLjR_AwC7)-q@k~1nFniF4Glm)PJxC;J<Ib-=KI3jQlL_RQb??6aoJu?oa7a@`vE~
zj-HvP2QkL=8<zc;T_zFm=sz&xJ23o_wUeRU(P%+?eF5BK#GPBJG#+(3Bly0l0v`4b
za@cdoG2g(jH=Eo}1Q{d=+UqIc|COg@Z|^Xc;y?8N&A-P@u4er2`#6lhj9jwmkSEPw
zy)Uv|`~`echhv?)QhWox@y;>q1^HL-dOEFfubqT@ce)^B#5tPJzj|fvvtf+*7V>VF
z274@}_BcIKSB(iL|JZCbcNgWa;K75dmd~dA+o#4u#vxSDUjKm{*Fz5b4j$X>cVZC5
zFX&I`8~EbDxzhW{{$~mf4s{C<@auJ-Tdt$=24nt$5l<etHuzSxpMXcb4~+T|7~{!j
zrA&~g@khM{e5KF&jgu&U2E%^1xLCLN(fm0#+E(Qq`9m=55g7jS?AeNA6$t_!{u3Ov
z=(bh}#SdW2S3|2H7jt@E=rb7c02uWmhb2=R577AIdBNhws)l6pXW+4Blg6JV|L^{8
zz`ewa0v_=SxS>gR>|~11z{uAuzN#M2q4s#Lo91?;ALUPN{L##Q;Y-Tj!KjDq<b%d)
zUJ<m{C%|O`v_J7=@4@2_9;PFvDS!XEw`S-G0gv$nqy7s<z0YO%T<>j11U&i=jQY0B
z%CbtC;{txlcnhDe6i<UuZvdlz6y>emj?(iXeg-4n0wZ5j;v#ex1qpcQFBtX&jQsDz
zttWW~)ZhEVj%znkd<kx?n|r>A;sbD9fn0tUieLL@$<9mlVeuRo_7mLa%A7AAl+WrO
z@z^t;`VaXy81)b^;$1`adDjIrKafv@?f+ANkZ|A$iFa*Jk^Y0xKCqtiD&K6fk6@<{
z+YSa$epa&i-K_zqnf(W^OIt~A2r~KAH5mp{6rTw63#RrJ3V7I0FzgR_!~28jy(}f%
zmC8A?!P^Bq@?$XS&EURgxRTz~-)C+o$j;u!;wdov4H)^7SNgYpUv~+3v=<EhPL52R
zFmAVi@1DKreI4b)VAvNh;^E!9WIGpZrTB8IOkf|Xmw^#a=GffX=jbeGU+;h%^$^Hs
zo=6Y!q4*Yz{A$g6xk%@o0v`4QjCih{SJ)fW*;4&pZ-RRA9%}!QK90XAUjrll0ym7`
z95t54$Jw$v$JblHFByLRQX$1RVEA7!>OH=F_iEXC2zbOZ;O9er@yawG!I+QZ2Wj;$
zaAf`!jC}RINBR;)cLBe&ug{U4WG^7c_(6{R6pVb(r_-m$GOjE>22YadH+UI69~kvN
z{2uuQ81XO|@-D|6Uno=ip>JT=|A%QGEXUakc+@MwST6%3zt!2hPU_DJ0T25NMtuYf
ze?2a1(SW{AEdB-~p9CWwUp`lNm%&CBPl2I7VA#WPFN``TQ+rU)24g(|jCfi9r;cLQ
zDgl3d!D?AMn(tuw4PWFQS}=zHQd^c-HH)rCd<#bW2F7~R_GvpVZ=?1j{{q9_f>Ce6
z{55vFJaY-f$6(kiFyfD3fBU)vq%WvvgR!0jhJ88`ak<mD4FZ1EgL$J}NWa0C6pS0y
zDPIL+J!848ibD~N*He*AO(WR@FybS$AO8m)7A**oR-^Tyw&zEDnv+#0$fNmz_#O=X
z0KXpGeUF&NWA>3WvoNwZus>kbC&8$fT&Zg5{*~H0@5_{%+VjZ%wlUT#!0_)mMSrFg
zIWT_?Mm`2cKCJ)6Y`7-12mTzqD6;EXPl_+VKUXDK8O@e(p%1KnohEyV^$#%oGgyDg
z;(hDMJ|Am1*w5Tez*`=9FK<fu8hEMAW7$oLjIqC<WYp{FjWnLNKh}($N&XECdj>}Q
z2z!M13yk;;jQ9}!i}g(~;t??F5f(Cstlg+RsHfn5MSI<?V<<m{9ODl;*8jj*|CF+{
z5Am}V@cGJLb>nG1fU$o9jP;09(cwOg^9201>e#6|6z_u3elY5BD(;HORyG12@f{fd
z2bPZ-ExJSb>-5}RCiATY{QolaA9BR!@q&d7kCw6g6%73XBR(Bt*)`DELcn7`1Q_-L
z4E^7E>gy@rS<Ie;;ZMM*cO)m6^chF}gZvwOVCbL~3#i@%hCO}#@sx9g9h<LU)UU^e
zE?1IYE#P5KA&32dJm}D~5qqXfI56~0#=|Nma;boaet>VPhYrc2c(WkY&%S7}fZuX`
zr6@z0G4vU7tfzJwwf3AZjStpqz*vt0*U#8>=XiGs2Y-h30x;|&81X*Zk9ZpldjrP$
z!lGUC`yE{*;IZBVMmz*Ye!b^yaa1IYKgI)$^-(bNJ8Vd7q19|b`+gj7*h7u?AFU)D
z82R-me&zE6RstUNJ}~qHjPcSrY*7`ogyj$5cK_cd$NYK`cErey^b7GI80!aM)H{8x
zmp@Q96Y#JnVC1i0)I-iZ)y%D?{z3f_jQTei^RvJ5<L9Gk{vm$^!~QN+95E+#CB-i<
z{%)wGdQ=<3KY-ysq2Guvz*v6=!~a)&(X%(0FKFMN07n0Tk?$<<`fhu{l+~NS&}Xn?
zh>=1Rt#|bfsf?DP@kG53jPV8kXZt7BvwDmi5<1aRz+?Ry4E+ZqemweVcfb#xu5a6a
z1BQJEJ9i2w&!_tIinHHZgC+}j<bPn;Q!w;d=+JS<UVTCPdLtP22aNT`m3KbN$8fA3
z55|5DF#Ok^%G8td$v&bU4Yn?vlHY^s3t+@6UfmP@m(5}J7mV=)!`}rSdv#Tvo)`68
zF#HpEef_By?o@vQBOd@GzC?SJK6_G0pSACfeItFbhcW66(0BL)F!TwG`G4Y2-2Mu4
z0gwFzVC0LIX-|HbO=I;X$gy4kIr42V@|mOcE5v@21nv8Mz}PPX#(a)1@XGx_{fGPl
zjQI~neg($=gHgW*BOg8(?!HMdp2c5a)Zf6!C;nvguyR%x@K`SZV|^5i@tAz=#pX!5
z9`*>lZ~L-)E2usKhQE5Pv-peENLHT)W4+aHM)e690|Aft9t`~hqkV6CZ0cPxMZhE9
z0>i$6F}{bNIPdZ`6!2Kz0Av1xk&lfDG4NbAO28xD2SY!>u;=4S(%;|FWBmt4y$Ou{
zRraob8crKAdk2R71<Oiz7`&M3aS4ImfjcI$_|m<D>Y8PwZ|EN|>b>dS-l~1I+4?FN
z?Exd-P1k81Z>uTb(LONjH5ltls+$i<U!d!euY!?JfoCohYh9pv(3HIF-HAh3d%&=l
zVETCB)6o>~uDPER8KlPQt6<clz=`u-9kZu=Yuoaz#sj(wc;s7P?0+*;tO-h&74X;}
z3&#8cb00f*x=i_AfcwTh%H0I~zwg;IMtlc3_IoPLts8h@fPlw-7%=7wI6prw;V$Jz
zS7c{hpVgQ3HyHIJF!p18k_s7GME9@H{F4?&^?fk>KN$6md3$m*s(Ubd1pf9>Oa0A4
z2?yT!_@de-%J+w6Y#FcEPryUJ!C3DAACZ!qc7odf=jZC4;|5c`Ty4vc6cfhSZvr{$
zk;6N7ytq+=`oGY1Ogim10Wbf)&E*!wYhdf8sYSzWB%IcpuE$o=_&@V7FFw7DF@6tu
z-MMTVWxC(n(RR~}6{$W)Uqe4m>sw&hXE6HrP)+XUPINu|E&3b#5g<pr19?K6-X#8S
zeY0)+Iz2PoVL<CSrC!6sR?_`WZaK30*njb_g;z~p+c7!nE5+j{ADbm7;L*R}f8Xz>
z`|tGHJ3?B(mmc#C5>P%5dCSmkuS^`79QVidh{t;m7=I>@<^%FcF#Ii8a8}s=G_5Bb
zTV$Z?rp)#efESzJ$bRTd>q)w$#;LspJp4E0wd>AR?OD#`uphV{<MFZNTHhR10gwHO
zVC+u>BYt1Ly@%}HE);)1xjXqf=>xdW@SLWjq%UBsm+j86aWd}1`X5}-P}rk^#tV$`
zQylTL$5Cnzeh<d}UGV)&GfrKk`7yuu&lhV333%-90%O0@v6-*;B=#cxZrk4uImQQa
zTpt~~V(f@c0v`4eTs>#=u{l)l1&hQx<;T<WntpCNlSul2_!RtxHz>SK`UXb4yruQa
zv*^wO-h1tW=niHQ4y^m@Yxs0}9x(PJ8m#L3<N)d8y{RR)T^%GGxLJDMZY7$3-~c<n
z<Vu=fotC85)qV5kF@M3(fAE&E<wuK2e{<~yiDjz1d8yRVbi@E-mtZqf^-YYW>sGvQ
zruuj9wDLuf4c@$E$+)m=Y7ZFy2M*qup{hpxHGOb)_?>2No(^}Nl}zmeW4|vL`<Z%I
zTaC_X@#aG#ehA~Jf55!-DEns%7)K=b&J(Sr{Wyzv|33f4o4@>fLV3zc##heQZe2k7
z4>|1nl=uq4=~{0-X7wxA?Q}n|#JfXo6xjpt-|FKQn$N9LU%%=$dh=VpUg=S}ficEo
zW<XajzgBO4PT>1m2O4j%!5oV%^7OpmVY;$W1D4Qw<%0Y($~68xBDwoxS1=y(A?m|I
z`hUowUrJRIMCo<j{DSU|$}1Mr^R)4_m*2lmrtt@(|1}#M)CbV@$nU|=L%nDR8tunx
zlW*lZ6~?+qIF-EVvX1rMJoZ<E(cj?c@u4zhOC?-qubaPq(|FR$3qx*D`@yKkf*Zps
zf<JAMaQ7R14!->D%|9$WZ7xOEgI@~Qjd0${82&t2dAo!0XK%h(S3Ap&*6+cnUx3T}
zuGcQ6_IK~vr=N3~H;?fG2brC`c98xLd~)2}iVGWQ|A^M8s~_Hb^Bq=Y9>2DoapH-A
z{rCMBV|=V4B3!FU-yQk{JglYu1}6`?xqK?k2Qc1m=y|}p&aB#-hrI%4Mmm&kB6}@g
zdH%KQM{j=L&(e%-Zj29H336IT_lF$MTh@7(@91)G9`gzO>O*eFlWS=IW}7_Ek$*Ct
z`g`8Q%(>~*f2H#mY8@wi1&{GN{8W|ZD;Up*@j9-ob;ObG2iB|pc<%jwjqjP`l9V)h
z-rprZ%ZHM_7|1I&_NM0nkAG8iV86SBo2&9{dg3Q<{*ST0{tmJqkQYcUo&G}%`JSRg
zXJh(3_{s3Ey`I=hxYc8C#weF~^BR&J+wM_&z_=bPt9Ve?pPpxE(Yuy->QBv1FSrAw
zFW_Tk^@H;0|G*P%os&z*UOd~Ya#ES*KlB@{{y-oeMD_p-`|~rPUJ_0Hk9s~B`!~Ue
zcO1McJMGP<@on3`3$B^C#_RJsdLOCEwbd(~=4V^`A=gcgA2oM9lc(?2aWA6&#Px%O
zGv&26(|(Fcl8M_MdGlOYx-i^{G3K+0FkpdiF4_Miqq=lg2?s9f^nF<-=|6aNm(z(p
zq%XoF@1h?)@#crsKhhaa`VT((?YGW2n(tuS$&t6$?xB3YX6X64Om9B>M{>9!JrDSd
zrH4uGHpb`nM#QWl{hRVDQm#|7H{bNKztV1MFZkg_o2QC&Kk%meZlPB6|7hRkyFb=G
z_F_DB`w7)v|MfgGdzoGhrSZLXrm6FQJa4}LgsSNd^gLk92e94xx5IwZe0$wkWIg&N
z(-$!O2N?RZSa<92oE&c+{SUsY`1b?K5)O?1n7-obOu=Jsez?Z(i+AYx!Ijl=H#KN{
z!O&N?F|NsXUVHPnAJ|ziq^64WAB^9xl1~khdE?FhF9!}-!8g);f*khYKz3#6)Ix85
zprcxJ6ZtbR;tTM9jzb{-bUOOPL$7RazFK~qvNh=+_@e)_Zs$BC+`9SKwr-^HU%RMo
zuMO!V81oBUXM40rjru#)sm^v;nm3Q%gNHs3eBMC%2#zY4I_5TwU(by3KFX=yJnRuT
z-sJv*#2rkY;MRE8oW?)LtGac~4Q4OE=Dr1QJCQvAuXpcTe3*VO?I#!$8Sc$PKf#Dk
zz)7j|#VXW3w{7F6kD%*&xOAL3ne-K`^5epxA7rn<uwO&IWgXp^$m}oJ>dz7i0VNz5
z_OM!A;NVNot9LDYKrP)L4E+Yfe*77J*V#9P*<Ud12^j6^_D3$DPrNq|`vUH6@w&3h
zRtX2jd@(xusJxJ_&z+^Zr6bu(F!BlTY~$U%Cz5_D4CxRxl=>h31`PlI$)@4Jth?U)
z(S&>PQ^?<g*EAmtA0w1-Ki@uEu<e#NFE-TmDkX+|e!#bp1$&u1R`WuWH|d+KWZ;3{
zQQo|C>|k3DvN!lW+6y`Kqr`8hg-o<J?_V?O#R_^}$T1%vhyMk`U*dUSPr<2U@*{iF
zd;r5f4OLA&zw5R)pMTojD2wJB81eQ0vV`M)e!I&08;to4#{3X}xnb)U%Hk>Tp)+S~
z<Y@j_3MUnMk-l1_bTvCm{u*+`w~)hs8@QN<en{}<Q6GXF_7d{K=MTP)qxl229_YPX
zpZarhLBj8ENz5MoUyOKlNco1Mc)A|*4-9)b=<3_8R&h+fA$M2G-7t{G8*)><Ei#4V
zF9xS<%e_MShxq}<{lV~Wy>7lLT72J||JBRoVHrIS81ox^qI3V<G9)kc=sRy2**n++
zF!q0fVgJ8)-JBjt<NxwOSg1YuPcX(441a?D3_ti`O+EQHu+hi~mS$u>!3UjISGn(E
z^AYwG^Rb_7;>#!hB^S+}d~6!sZ@k@x6?xP@cs}r@9H||n$R2?Yr)Q;ICVl;Rb<e42
zvR}|&@K~R{DM>WmV6^8zscqPYE8aZpEBND+cS~w09|OZa*)82OJKdk<Q(*Kb82R?n
zeePCyLEb#pQ^A-|V8r*|=KL6JeBGOGb<GP<Ao~Q~n71cELjC}Z`6{}->f*~_Zyw_f
zhP~V<yHKqYwHNU>82J(y`Nv+nw<Da-)Af@MTpmIG6C4>Xe_v}iW7x~<B}oSk1bFk$
zCUjpJNaF{_d;qK5TH0OOlg<xtGTfp}?S;O8;cvl+hYG&MrFr?W_zMhu219?&R(`*r
zd(oRmJO@tQ&~tc~#gw16$x&~fwtQdw%Tp{K1s~7<r0D7`;lMh}Evz)jo}ZsSeT@t~
zFYFZ<^)s;I?rzqXD4r2!rC9jV_{+6=YS7D;?TmaJa?F>=(@!>Uyx`6MKf2C4uEzI&
z{6t1FDtlz_kX_bsqq0}F?2K$7vvE##p$KIqBb1SfgNzW8jAUhGBxGd^;rH@+oaedU
z50Brs|DKQ6>74t%uGjUN*L~f@PjHd{9S|)0zYTKytHqInog-KHDjhDoeeyv33ygn;
zu{UE(gOkFS`zpjEF#1;4E&jasYF~wX1umPmXrld+SWVXkfy#NUukxsBmE%9fo*~be
zwm_F4_lKN#0bV+1+RvL3KR2s0Gc3ka%^%?tkLPA|k?(`?za2x4S_IBk#}6J?>txAu
z;*U$0dKm3KRb9WxvG2$WKJI_sOyXIX{Eq7*9)PK5!0uJ<d3s8Hso3Omwt<U$6~-4v
zKVb47bEhjc7Rh+wZ{d&2;+<k7K7pxEHOc3>E_}YP!g#>=FPQv$`1-@)-afv{sF#yn
zhRFB9<VU$>?P}H){n#aM-#aDw4sw$<KXMg`50PU}Vb)(j|0<Jyt@2gouN=00zQq49
z`UwY(()Md4_Nmym(%FNS_$m#i4RT%lx4vOu@@wXY--GdgF!smAr(%x=3w;&z7v}q5
z=Cge7$z^YdzOY_kt_SY_uGgnf$<JnW(?5@&>8m_nwIe;}Km6*!@9;Ac&mzY@t=s)1
z(_^%%zcBU(jyvQq=dd<bv$Ef}JG}<_D*rP1BJxW~e-BiY{Z%io6<jpNS3!T_#pMcD
z-zWALCcc@RdOO*FtUCWN`5#O^l(Mn?xL>1u7347M4JQ8N`pC~<>X$I%t!>rmaQJYE
z9}M*|nD`v#`@Ov*w_kGgRl1Gd={{BT5vD#1lb>0H|5(*c?sw*sO?j8g_`(fr%fAd*
zA^Bd>3s!;Se3e-#0UzqDQ@M7GUrf{WDwm1q^LuANtfuhW`p#wpRR0OH-e8xZsb#h-
zmGcQ|o;?;a*jH)!GhgNr@n^72`<glL#s0y?+g?rEy-fNkt%q8@8Ro0}%U?G<T)R~A
z1?1TO)YC28&E)>D$1w2$jQ>k+756zn^s8jjc<ZsUzG3nS7<(}?|Fo9h`-nd^{61WL
z=hX2dBwmDh{>UzSc5dE&s=mO?H%xqQ|F~>dr~Ybv1;$^&{J(WZg~Nlos`)*P|A2|_
z!soR*6w}04DLU-g_wf>+!7dvuf&%6KVaDtDhq%N#w!TU|i;sRTqAxJ(2PPin|B=J2
zzYPn#cbeJxD$F-bybfcJrYZr$3ba(?^?y0=Mfj}S^?end=R%G?ASeEViEn2|y0=<T
zQ;kPq;wu<?Gx6IFhc_}F*9+bMY%cyBPTLu{c&o%aF!s<QYRS}Ya=+w{u;r#^(bvUZ
zalPmla?gE>e;<(e5jpk`eqX-Vh<bt2|IQqx^{(Zskk7-|7nu4|p&Msv{gV52$Sl>)
zLi|5W{N+04a;c*=)ayk~y%;(31@r%3mzOtbCErhe4P&qT=O*+%Sj|_#zar;)kz+q#
z>{Z8$78BoF`6|>8VEmi6LnE{8C8VBUh?ijE4VZd@Q_;moK9^MEbvW+5@29;IufWvz
zm!uVJb-SX(>xTX}9Nq8A=(3VO!NhZ=if42;E8?qM$%+oXEB*&YUt#hC=P%)I-Q@Gc
z7cl+|W_`M?+I2=>K=pSp>kCF-^S_Vy<7TN|4~)LS#5*RJV?VhRSL11zcnt2TO}@Ha
z;?IdOo311jR_lFm>8#cBLnI%CiMOMlmy7Z+Q?DN;euMus4XRO2*4M(H9X>9V&(DaS
zu<o;;%A^1HK)TB07q;!2Zi_FY*1urv=dw|0W6g^BD)fKg@F7v(hlziJsehN)mZxq;
zUbQ{}b3gFY_MJ=HioMjI(9DVXsx#^<+-t^}Qyt{`Ve;pS*ZoKR`lVBdZ(-~|Og@x3
z*5YY;9$y80hVgH3f`6+;t;OE27&fHF_K!Ma`~nY+sJQb(e^t)?F14C!zU+-oA>M<@
zS7GYGQFX>UdB4&b`>`<fNErWGsKVk%x6e9-@rI4|$sos{GG71k@D&9XHJ158jz7Nm
z>ZV7rcRFMJ1IB;D_4B@1kQ*fD=ZqY-I_8DWn4iM*dtvO$>8bu{ujPKpcVX&F`uA&^
zFUZj;)KB26WuNDtBI^M@XMJf?^zvBE*R|nK?B(+p{vPMJMrHbkG0SXbo5^_jT;4w<
zL++Q)vtE#6e_-tCl6Q0REXdL+Z-3Ux_f_ICnE8aQ2Uvx!7yl4ixY3XF4?5-H$2UF3
z>r^J5Ku-N@b#j}|mwxIL@;CUwxnoam_{)A4gPiqS;OnYT7y15$o_*Jpm;3?7{=xW<
zfAt5ZUI4THr`edLyw21a^8uLo=y;`u*S#k?h4Dcia_~XL9O*A2H|AG{&+ot3)Ox7I
zpT2j~!|TZRQ@@6(H^apLnl<anF1V*t4is?T*h}(xnEo70{69PG@|t_+RDFc!4zJhZ
zxzyv9Yin=GdrGGeKf>e#F#CnRe>92DNzxhnM=<sqrvBs+)xaq}S!diI0<#|hrvJEO
zrS@6GMV&(b1?Kx;{L4Y5cbfePopFB!jQ+sX4_Cb}e5Q_kKlKQhd>ba-98`SskQaA!
z3jP7cAHiHt>KTh^d9Ue=@d=FofmaM1e81%CSdG;mmx9}G>Xca1MYqpwP?>xmIraAY
z+nU>Si`OYtXSe>DB>oJ>-ognzatk`iddO{)eaA9IXN<pL>?2IS<V9+d`=A>-Wlp1S
zm-<M(4aOhA^?KVD>Lc+@o6dXljFRgoe}$=M!uX%qs3yNgp4S=oPr%q4_tlT)$Dh<G
z<eM=01<ZVHvpbaeTIQ2@2BseaKk;6&riNT^%d`s*>@Tb92d3Tu<4-qTx_Tx-)(80j
zOuYdvbiM202pO-1J=YBQ9I4t1n0yMRpFMDuTlo|Fb;kY|O#cNY|J`TOc~8PYor1rD
zmlXbO*<JE!nEFiJdohWx_v(!O3b^mJ+8ZWGz6{e}du7sN_}D!<g?Jjqe#6A`S*;3f
zs}QO)?&pEo?*XF^+z;~&lW)WL=Ory$FMgrdDeX5LpWXRyeY@h2D>lb;#(oO&ADMP8
zy%(u+>Z5#~`bTVB>1U>=b;kMyOnwHFKQ6L#n0GH$XY4n@`E=QDo=AK)YI4KTX0jg9
zf8^9dkh9)k>;?9i--C&#VeEUH&4P`-iK=~siO*pC*R}%18@eBs&-V=(T}=EhOuhi)
zA2;2M-s5&u^`|iL$p|OA0l&oF);hQT+*<iQ<m89QsfWVY%bBsamRynX;`(6r3&Qxz
z_-UDUgJN{X_!Q=TVDjVFwL4C9m-R=z5Z-RyzwtV$C*I$DVr26;ow0s^ocIAb>-kL3
z{bylERQnIp|ADDjY#4ieQ3qL{<fkzEy<qxJ6HfdtS7w*axE}(}+JCuK1BvHg^2r~r
z%_}Yo(<$W3F!e+j`Azd-xur#ai67vQ>07tu6a9tjK0Q@AQSyns`{(R6jnXOD519M}
zCf_+wyIpKbw9c5H!o<&Tbg9+PtIPT<HM+?mk9|5N=R%1*6=glc#8WW(nfhYf`@)BG
z#{DEP`8rHIdT2(y<kzCV=qrqUhpBg5y*R!8L0M14FYxy-9VbUgKL`HTe|?&JxTUk?
z<M=Q36T-y%{2ulQ#(!P*Tx7NGtj@T92PWTv|32MWT=FlwB)59r5>K%|3?^TIpN*LA
z?ke@zo|~GPU%IMO%&o&cXG%N(v;P5RzAp8MsFET6nfryAZ<zf~(d(<+&5`xQerx#1
zm{$khh<$+n_xd)8clbTxQ<&d}$&XIe*x1cmt{-~|V_#s#r}mt5>oO9*upVLJSr~u!
zxJc+CmjpF_hp|^M@p!B35iR^BzGFWCOg#gpzrycP--O8*VDgnxgThlh(j@+x+T77m
z@&}mw9A336cE`h&v6^u`9hPrN)hQl%5{8|W`G$!Pi0{yMn0N#xzHjeqH!l9Z=$B!C
zDNMZy#vgaeJGagD44pze0dqeGEU&(`d9K<w<ivBxFHWxEx<Kmnuv7ka8yzIR_3Tt&
z&gZ*2<Nh0%`U}kd;83f$v~-zI`h_s|9iHE_a;+s|Ux`ogCouJhc2h#lr%L=!e1M$&
z(#Yu_!t^J|$Ius;d>p2pQN6*(0>30a9kL*+<*<>m-^;-CgJJsD)kis;Pq-raqoH02
zQ(uI6{)F*jKQc_dP@qC=<xw)9*n8yE?~&u5H*V~HTmMpL+)oOVZ^7sT-$%a$W<MNE
z|B3&n-w88bF#CN+{Fcs>)N9BeVDeoUeO_+oT6SHwS`UG-k1*@cw*QWCW1s1iHeE*S
z_ZIsPPjtwf{!R21W_}ni`k65M^<d)t4>b}_TFUi|ZIM``y5#pT_5kkRVAZrB@dw*}
zq&U_1q%-!PVD_WHtmjp`9ow9c`VjsfCVqmccW?5`uKr8vJ&ZR@zZurmE!osu`ai?c
zyw3Z+R`WZU{whp;`H;(TQzxkpvR+_*|Ni>D-MhWj8TW6%#3wNJbnw>f5jA9fh{s{}
z3&UK$qW7z@?4i!M9|mT9!d<J6`#MkRPa(4hBt=NQ#`$!`rA5Tv!sN>^@q?FJt}gEb
zokDyIlh4EW2kblg2J^fGOn!zv;CTm_{XsC#-%(Fs|2j-O3e&Hzv-xJd8n>k0XV`xZ
zWA9<&E9@WF1JmDtiT8X~eOy)Skxn6=f{EYZmnUy`T`Bddk~N&I4vIa-p25V|FwgJg
z|9aA@-(#I|Kg6JU-<``yy^i&Soc$-r*{}NH(CXviqEGBcL5_VxUf$_z-?PJHy&68x
z^JvunczzG&yiV-@*HT0Lr*~27h1AE8|L?d0*)I&2Eqm^H1KDrl61(h}huB~C%fZA)
zF!^D*?Q60EWW2dPnEjo)n3o$XJeB%!+?4m%2E=NR^E@<iC*AQi4V_{&Fyrl7x0h$Y
zb)CZVLa^ODpNFA}Jda_J^E_3_rcvkJZtE1Dw}I&|!{~qBeJMZfrT$6(6=wfA%=1$9
z&Lp*HEb#-+Bfvag1G64lRgd}XEcG(>@4`H<$n|5dk>j6{6aT^N2b?fppEFY8E9?Wz
z`t0{mb1Pl$4|@S~z9@|TF+N?~59+QCk@aC1PsRtPUh_3&v3FjH7kEAgre6f}{aios
zFkIhz%&bh=&j)k<xXG>dsV<^F#9uJ^CrrHdZv2kz{^>e}=WSv3Z^ABVy-F<UrutXj
z*Mq<1dSUwYzgP5&>mc@*d<-T(fT<7Re~M(gTRf8Z5T+jwlfP|=%4}pN{)zr7jJ<=|
z??=Cg_yNYBz|`Z354b;={l75J*SQ5Z4%18ifE?!eT>2aICt&h982hm3lJ@fyiQjqN
z7v}v8Fwf(XfABmvyfMA_a(~emIIDi=rlottYN&5<z9f7!W$1?4qR%kvGyPT7PGc|V
zjL%cS-<#=P?(8eiha2QPA4`74`9Cn{SHe7hNk4+~SYgf!hj~7pe4gh&V9qCjIj?zA
zf!B>2OMQy_g?auKCcmH_$^5}Qe+sky{K6~kEp|rYJHz{}V4gpNc|MSQp81CHKQQON
z-<xxxUmdBhaGnDE=TM1CCgKl5twZB|rC!c?9x(3<f;lgWe4pouV9ujjP`SjU7ZQIk
zKgfAr8aet1^Ze?MGT$$oO8o$T1M_?}%y}EspE(Z?<~#|Q^Y5r{avllH`|M!eFM)n?
zo)OG>PB7=wKDAvJ;3oYI&O3rR?*-;OM(VMgR}6FBzg?j&iH=e~Wc-nH-Xn6(7lZ@;
z9#>E|R<pK5o+Z9g-{gE2nDa1T*4wGB*~v?#p2+!XFz1`XoR>xag8lk1&r_bS?We8d
zr!&4!2j=`*nDeqKMw__#2I`FGiNT!L4|5)SJ+oDDTf%k5_dmd#*9&vLYy0G%uWTZ8
z#`9lc&aZ~i2kwXSL}1QKfjMtGamJjG4s!jRhXQkc9?bc3P8KiYg4XGb=L^Hw1DNyS
z=j9J?cTeii=r_#yr!eP%Q=jELAei%)V8*{zz{RMP9XjLtH(<`&f>}>1{9+d7mHS11
zV9tkvIUi~6qk~PZY}Y9VW2*j1t|I4i8kqMhz?`Sprf>7dBX>)_X*gdQ=KVY=XQw~Q
z-7obN!};AX=NZE3>Gv9@Rg(7!-QE7j#$WmkhV!Fg<^$&aW?S+#5As+g^-RP2^<d8b
zhdD22daWm4{nqLf&X0mQ4+iFZim~pNCcm~y|H1ISIGFPYVb<@5IabxY19Zmo3SrLw
zf*Jq7JoDREm?!mq!}~2@&VzzE&zS$`JV}`QgZci8ZEM`0zglNJUlvB+VC+eeMN{1B
zY?S=e@V*C_^D1F}kM)9mg*m?y=Da4|jc4uSwL0VbDPYbAf;nIOU4z<YV^`>uA5R+h
zsAe9k!M<=FA9CK;g?!|$+Oma4{k+-hNhXIZ<o$Y);~qP%(HY+#3VQ|5d{m``D(8Kv
zd_U)5!<>%;bN=hOtBT%viR6QZ_m9HZADHu^7gtOfbZ@EjLk;Ke!x=U$zJ*nk=W7gd
z-gjbMq<hmr>vc*ov!LOb<zqE4=Yh`XcE=<{<S=s1t46-Uxo`6G(sI6u;q#miJoeVx
zsx?+hfBwaX^L5I}`BDbvyxG9wcRt>lBlQBq`$CX+d0&5l-dfJXHptgz7aBIVq{_eY
z4B0!Nl)Nt|X5XjE%XLcQ`BTH{%Y4A|<!#l2{=-K`WQ3kFi`4`N^_|{pu}+EHnLj2c
zpUTYFnZ4a29eriLg5mf0{Q6>zkL?qCf_%8)Jb0M%5OW=>M@{im#|xhB-LQNUxgVJK
zA60RPHZ>ck&M!<n!RL8j5zP6WaIY!H50<ow)eJuQ+VqlKKj)3Y+tSJ(xgq)p^S*<1
zUB?Y-?ycT0?53oTx>Q7-2QbL*%ou3)K*qauhl3k)rt6fiYi}<aTvTQ35%N~0Yc@G4
z>t)ulfVGwrq`y@@bgDx^l{xPexzT<XY3Am(P^WBY>snKh`$;h{=ZC>>zg7NxvAFd2
zn?zrFI!WpohV#>5^d07X0H+uA54HD^{#i=C%D!?xaB=&KN%LfUVCT3}b03QS%$T-w
zLCz>uKVj?{%=^b`#0J%EJWXdjPZj3+Vcy4JUFF30+|fGYd7v=wH-?vu8TP<Y^wqx7
zu~o09sOuFTeRD|L<p0Pyf9++h@^=zuN`1}neqlH_rB>Usm8G8bI<extArfyI{vYN%
zT$uBFmyECYJbSWE;eE>g7xVt8^*f6Nn~srq&G0@NnD@8AP4|WsjV~bmq%kIyLgvbT
zh@NYl9~V}+=IPb3V`cp!pYb--B<@R$hWlyNf6ReH?^Wi!P2`=nUypt#_ZyXZ`>Ew%
z*$;E~+lICBdocP9a~`hUNVh*zrmE{1CO(E+e#^bJ%v7FN9@=e$%S4^={nqftO-aAp
ze#aQ){Qv8WRv)`A(kbQ7yLXGM8moahA0OuZ9z(aLg&Y{6Q#wZ9KigCM7reg5wB})d
zVvJn)r-!A5{NATS^FG^-)G3J@dY^eB*9Y@{ZJ75%RQ!4VZMJ+r_7ujx!1%8ch2ot*
zi@u|8Fz+Lp@Z+IAUE&e!9X!J0?+S?399>-9p<54~!umvx{vqdldYF9Y`N;~-0bSJi
z62^bSzR$1j&Jug{XQ%fno8D57U9tIElGr1d&%@Xg^DDORg2aA3I30asr}!V3^N=4_
zAK~jZT&F}m?Kf$Z_&?;ttH>FDnDf=`lqChb*~@-f`&TcIivNYt2bl8)Z_a!B{i%!>
z_7Wyug*W@1ep}cwR<qH>Jny9eI;HF_&!I)+{$cbRCf@qt(6`1|S>L?B1SUR)IbXNd
zI^D_A-PHU9=6qb(y03Y_1QR)r-Lg+sP;0TL=840zML%KQH}GrK^Je$t`-pFlqd&-b
zUunaheZCJA`-Ojm$q!)8%YW3l|7s7h=lBPBP*RhGLk;CTdxLy!RMKPLCb62F%K0r~
zI>`Qm0Pk@n#D2iM{~IQrnAbMLGrg_s=QG$>82<uu{yg(Vehc${9+-IMqrdOV>ceyj
z@ezExLyfIYl3&4`$6uo0gzmj$eFVnedY>Wj2b^H0Us$82%IH&};MmQT8|jSa3&Ra7
z7P@3oOP(h($T^>Pc;n?Qnm1GJ7tH&RVC+@U)TSvxT}59`*sZT9@hH5`y3HkXvF~um
z<PCwh3aRVUYH78#9mL<WK6m7Fuq-I+1?GMkU-}_1^+A~N95DCzk54sp%KmdU#T!UG
z15*#^5@cZ&(^Spx{x2q;d7eDiv|DG%H%oW!oh$YY=KN-u`UcGUgQ-`+oS!|+d~Llt
zjdjYP!ZX^3OS}RvZB}o3v|K+-e3~2VUh<x`PI)%eZA=TX2Qc~wbAIdBA4N^WH9Do#
zoHD*otI6{R1|}bc(+%&-vE9A#oQ?R4Pe1H56OT&$-@wIxuO1c?uJYwy3HotQ<bBt5
zX6o%{=#(`DtNAtipt9-Vx)XM0t9+w%sp;1~ssBH4M^TS?bq^cAKmU@iKa2lR<z@x_
zHJipA*0`LzwkuBJshITP%ly`;+`3w;5l(Yd-ZtmdkJPZknm2_S{~jp$QitB&1$%E%
zIr~#xc_LC}yT$9w>O~yZ+|SC1(o20{o1Kr>qthzu9GXr4dQxTYTIMCs#vazBC7A4r
zkb0QYh|SJ5j;kDUId||=y~=LeI@Y@_@|!a(t2UPS!E$$(M?)T{Jn+@v5=lP~YkHqF
z>+UA?qp|B6ylqtah>`8O4&O4Sy~@RheW@AW|A<DjxoXb*{W_&jREhDcN2xq{QL}QL
zh8)pMb@((oT=wrq74W^Vd#EaJQ?Ik<j`6B|{vp3#@lh%tSz6YtY2p!$(s=ChUa}u;
zV!d0vy1Y>N&XArtLqDh-^J?bdQa_JqEKfXt@LKk#PPPBIsZxIZ|H;*pcci4Y&>Qzx
z)tb_)dF6#F&yHAlt@9$irfBG$b<LA>N?rdsfzFFnd7oC>{Y_S>^5FYr*KZ6~`S-N@
z`z!3yYj_@_<kuY=3WlnD=keWQVgHe@F3~7tmN5NG*QP0r8}C+m?uu~-mqqF|<<>TD
zd0YC~eUfc=&O4&Y_vKr#dzgG4d8IXf-x#HGnSN%|ZCB_u7Wc;e3`)@{x5ZlLU88co
zw{B18hUhihI<89&I3xS3-}>h{x<i#GH8*Y2+E0~NFP`P{H9+P1k)dyw%6PCJ+r`v>
zc^$3F4GR~z5H(M)Nyv)K7<oje+<0=~hRtl18E@q86AH?a>U!gT)C({6y1DzS92HRV
zP5EUip9$$1ws)moL;s|?(*Un>@_E?g*Q}3sW&U91udLoAs`)<Ie;;?HLT!=56}FGH
z`!3%PUn+3peE2%OW=fS`143j!t!c$AJ&UeZxlL@^_R>Kr=e?>d=_KRxamvyT-Y2Er
zIL_-{5BYz1Li|LJcS}`%>#?uUTNz*Wj}~fuK0*<Ff>TrC&L+$Cz;?S%4CpXNubDnE
zYii7Ko#Gp`s?H7{l^K8J^K<TOu<+Gu8ihGON|gRg?7=pjdj+bjv24FU<E?VjfumN<
zo2xfIFVVtd`K$dhpFAJ2w|d~kO7eT~7t1jrUd#2y=UFC3jTpCTlgiu=`%Ac9)|Yl?
zh+V!Z>iWqVxM<%|oyx1KwAy=9uJ^M0Hk<c}IwjqI<H0pD{;>6#l|c<epWy>D-mHG^
zrPn0Zi7k2itWM$o;RjRPorf>cYuFzbbJ}UpK~I$(R$o21d8W#)hkDd2KS{6IKEdzq
zmITQkbNk#3S)elGjU4@Y-#M^_yUfqLOFQd(ihjbLW%7J>5dDOY{@PHYtmuo&uWs!!
zWPKbQ_4kPtm36f$wJ*O{<$Vcl>bsrSYqE0Uy~av^%s)CYzT0t?Ys80M4?C-JvHuk~
z^~U|f_u|jKdz`Ftsog`0#9UW-`}e*LJKoT1*k4^zKemF^NtFlL$0mB5Qn`W4fKg53
z^~UE(DtENl-07;yeO7*~z4)fecihL<Dl2mOqif!mofj+D16OhHR4DD7$_1`CpFJwy
z&wgm%(w4TzPpI7f+}C%nqEwEV{`>NfgL)0m2YA@zxidokAHEy5am_yYei(U~HRe0(
z?3MaWUZ>s8B8Q7qIJiQ4TIKzprfv8o<IR5fx3$MC43_bMf7@<pTwDHsO8qBo+Z~Yo
z-MM?a`^)dcz5my67yne&F~mjsP5BShAGb)a$|rPq=V_Xt%4=ocXw%}T$`7sUUMwv9
zuvqqq1nHNwnZ2o2wP=-(9q75}+!>YgPkWoS`j%c3wctqPYl#<LMBH?0eMx1m4|$KN
zNtb(H)@#0%?~;G&CaL$e@JXC}Pi4ldcv{;DFG6%m(IPwNS4~yr`Mh(!XUp#+zu?wj
z#_~j!Bi9u^ee;@LL%(jp#NMkDMc-iSlIe}2?y79}GVfE@6uq%t`0ZS|qV?ibz8F06
zVI|Q=>WR*;2jw{+^L6&&R<~kOkF7YS_KE!BAK~KjN{xw#P}%2OR_fvyy|I4%arUWB
zqeQ=`XPZ78exvMuy|KPqICn|I9^!wIo1ALl@oa}GU%qymYnekTUvE}s>Or~QRNH#9
zJ-nr#U1eInWuotJ>lVWz8p!&CE7Zu+l#um(a6o)$`ZAq@{=xssy+V9{y2$v_Pxu`4
zeA_ztf4JGDw8gd}r@yhR-{_asWc=az^M{7kk@14L-jHLR7rMyr4_jJ1P$T*cPn=Oz
zO42HOCmtF9LF92=F4*6b`q~eR*|$E59PaveyX*m#r@uRB{Y}R6oXNV`73BN>jJUof
zPV^Zb5#I9c%nK@q-m7<`nCR=se75PgBtA`b)+A-f`hY7rSKPN#)+5~A>(>1!Sx;k}
zY$gtp{ucHCe$#TQe~#Ew82iHbNB&(NGJi1Z5oZ3bKW{tCMe0vc8LmsWh&_W@U-0GU
zal4+2K2h)Idf^goX3kwje_`#5^m8>Yial_Pzi%q_cIFR0Q{l#*co`2kNx#g#uY4Z;
zK3)Ie(JG>!aLSmj_d3e`z~lOUUpZFnWz-6*;o&P(`vLQLc+$3h0~(4w{c!2|?`*MG
zj1P>yn|j3Ev=KS>0p2z6Sb@o+A8?b1Lv?fIerHa<QY>8T$J)x>GdqjFf;B<sbOU6)
zz~~F(Zz<31%#`_qS-<d<fG&<#<@?CL`u-eKqS!u_(NE;uU(vl|W;fp=^$CN0f%hD)
z{3vLT#3KgzqD8)CJ4(D)G}g)Gp7gJ{KG?nJ-TC!J|KLtft-Dng{ajmfdiOfge@Oaz
z;jp7zKfK;E`s55*5Aez-KW!e%c#jJUdRut5PQkvx1IqhP?r>O@pB+-7=HW=aW@6==
z=U&VA6K}%ABk->E-*h8G^_n)Da$K*-_p?6X!4qCID-x^94_O9(YAow*YR#i#(ud0a
z#ixqf@c(e|l->I+#NH!MyME<&ds+W^(r$GB+(-R>cwm>)cW;aRh4FtaThIJ7a+0j4
zYCH0+5&eX*NASHrc_!Twdy-SdrR*R#oie*kkr$_Beqr>n=&97!_e9Qk!PpxZ`*knP
zeNwMMk{=z~wcT8PA4Wf5?C0Ql87sqFq#tUye;E4+<4@>E5#PZ0Yq*u;gySp4UNkT5
z`NDaEJpXElZ{VDd-RGT>>uaRjsjn=*&-Ef7ex$>%REY<W6Cc3LUn9+D$1O6SGtze!
z+aU7?U+YxOtGMVp%>3L>Ds?Pqu$<2kXX0^B`~}Q>!&_f9e>zq4^TF>4b6n*68~H82
za`8Wmy+i)@?GT0Jep4-+Je{R}SFYLTUeo{DUjv7hbL*K;^c(iPduC1_(Vt`X?LW_u
z`l-jHcFz5_tK2m0*}4GHU*!1flsCO+I6BGxLBsFC*drMKlQ(JhMtf(S!hFG*e*0b*
zka+HUrymvL9drtxhpPupb}f2EmEY94x0oyIpL(l#*QZ}g$#}r%JFH(_tIlfihgqe^
zRvOz=p2yw0s>n&XANcw4M*}y>|HJ2&cMR+jrq_6+FA1$I>nFX3OVh1lPhji=%<t7o
zThY9oyH3IWz|<SywmYw`IU@1XFN>rF&SQ1T&hZJQlf{0){pxL4xLtl9{@?Z*S)cT$
z66V=yv*h|=>@|F<^~*#bnZJ`$PdL0-Ao;Z+-h$B=7<=wg@NT7y<+8ueFuw5lJ(J#g
zihjV@Z~mYAgP9N5BDn48bcqLBq$Yc$jMpi>9<-JWUuEnka<774GBU-U7B5q&z(MKf
z9qMy?TCH%E>sS}qn<Vpr9REyzf02X3=AN=%;Szf~Uu(Bbui3rj!<a1+U#vgz-hSL_
zmC<+P*gwYeb)nW(T>mrPrJn~c-7Vjbob}ms`Qzbw=~wjJU#PQ#Tpw&!|M<oyvfg0U
zZ_QmT=XgkeKDku3#RB<0_{JJf$GdXBaP{jEkMoNEvW>d3!&mHYy@ivtpMq5;UPg|;
z@(M`JJ4oui4L1cntS#dWQ_q5j-X2sb$WP*1LqC!H82%8O8{dDcDz_gnGwH3^GxT}$
zkM<w0ioU|sC*U%rl0UVU&p*?*jM*af()Wum^*i$)ewOrV{7?CR<mh9S7X6)jiN4@Z
zVd5<q`!y$@XQYkj%i>vc3uVaqf?2OH>*>wNKFz)R$@3_N@r8*mVC)C>e&~ksVWF~K
z;V-E*Dy@*;gNI${QM8%pZ{y&$7Vgr|4bY4>ExbwPz0dk~t1IJqYhr*?onAWS`po{X
zc5G1@dySm<ZA0eQj`7k@M89FKhyES@26;jAHSPAx{3Gvv(rVDI5UF<>>@nAaoO&hl
zA-iiH`m;{2$(Y%wwMR#t(rwk_*ClqU|No$2vpa6W$bYrpqbwDDg)=tke~y!QqPWe<
zWarj8h53N_JdA$PKiqx3UiRl8v4@6!Bl-dpA5^v&;ncxZo`*O1bNE1$16Ch5tMLc=
zf*gBEJc9j!v1j<Rs$p|xO_6vE#y`T}tNLX2mGv9^u+*10@pr6exL(_arhg=#AikhJ
zjhy%gIr9g%OU?VItLTek^TW+Pi+;V#vP@_s_5~&$hR2T1zxBM_|4CmPbN|j#fA3*m
zYJ}w1F!AxNtr@28rQc3G2`@MnQlXNpPnhvf+f{l0Qt4NRb>4h@gV<Mi(A<xmCjEc-
ze4C$6R|d*{XG4AuS3aa$bY+*+Ck%4plWN`8@5=3@u21;ku<;##i~hnX+m{WnTdS_0
zS5EUb4_dGCsFHhc<^E@V`TcK$hHB5ae(ar_*5=1|xgMDHR4n6?(+lahXAfBa(nkCl
zeBz<@{Xof2VC?zKpp8pS#lMgFJNy!V!Q?kE`84q%>l-HihKWarhxvY(_#8%m@jr8h
zHtqOX;vJa#fyr0d&%}Cx@&Era`i8#1+@DGIq;N;k7vf)-^$))r7nb8M_LKF8J%y=1
z!T2Bc*U%4wqkRfLI4<@Ve(}B1&D9%Jd$Mdt<g7WOAJ`N07jBevvC9ehypz}5V<V;C
z{$u2+QBKQLuG!GySiOxZm!H`r*;Vw>KTGdiLG~ALKQQqajDLIi)MCVz?()3J=6mJB
z#Xi8;3%GGs_OAD`zKRyy5btQGQ#wyOy840qJ{(suesXtNA8@tDhu@Eq`}e5bwT8dF
zPC>t6#uH{e%(|Lqh+g&!6dCfifQPJqn0O7wf3E4$_WV-G2Z--r>@SS``o$q*?PY!E
zS)I?Ux5T$F@dsSv&%^HP#lMW%Hfe~9j3@I26W=xe7Lsi%{eSoFrN32{`-jo@AI-N+
zG?nYaej%qGh@5&jjQ<a9@O)pQj5qlYOg;f$y12GWwAhCw{U23-VXNlTF#feuGygEh
zx|07J`~`C2HROyRjDOmk@jd836FD!!P>+F$uVCys`bNG1Gym)tKp&CQZ$(Z#2jkBR
z&O8-hX`}W#;ns`8Tj(U-fw_O1J$3e1ZlF_$k74uy#-7dX-rhE(jher~=pT%Jp7~hJ
zHb&|tPZq8YZ6f{-{%SI4xwWi!82^~R<mhN;$;V68ypwOU#2Ya7>}HF$%STH5^*N(a
zgIBV?k)wae@o(1}6&zGS_M2hfVAc~%znT4J<OeYM1k8HCUm}OCb-l{kOFaX|-?0CQ
z`UgzB0Ml<RcPQ=FEg28uJJ_-P;_98nKf>gPlg8|L+jW@qdkk`z{v}Mjg})&_g0asq
z>!WI|Z6Vo;S|5b#PaZX6t;Clw>x23R`2bA(1EW9G3%Fmn!^gTqy(ON5iD&cvP8^iC
zzdX-i_<fl51#^Fu^G2+E+D@mip8+P`g;$(Sy&fsQS7W;Wp~4ccas4p%3&vlOFW}E%
z^e=bFS`SO92mQ;eU*!0E_A?Ui!@m7{?>ivt8Rq^rp31j8O#CDI0QVo9^s<HcPk57A
zcauh|Bwp=W^JlQEfBqlFU&A9ZXS+?1d~x=tuVWKhs{RY+|KYX6SBz>a{-VmN*(*H$
z<G*0)D=_-FugV+8ggUDJ!qObIcaiuSrXG>?O<S`=Io1Bc=mSjsU~iWdYtk#r{(3{b
z3TA%ctg?=_3F6<UbXokMZEblT!;o*o<gYOCSWex5_tB-K{%^Q{nEU&e>*Q<GGoYe8
zA7HSDF#ZSr**m7si@)*Hi_O**8tRk?t0nrAV*g<FyWlUdH!$%j%zArOac<*Y^82h8
znDJ?IP3e*#<3)c2IrTQ=*uy&o_qKMC`Np3hC%-~Y{S77_yLM(`TA28E)(=d*7yftr
z$)A}I;xG8m)?($OBtA3A|6ua#YI2^Ap&kvl8yisi?0HpQ*7Quq{W!fw`#ks0X_^1d
zw)3rCO8pY1ejoAkODla%wLgfQ{RGJI=P><Rt`Gfz86WhK_yIZhkDUK!J+U5<<NuN0
zIujK=S@KbsdgGH}>z`ED$n)HWeiQs@Y)rGf*Yz5h{T3NI|F^bMuclrO6EEy{c-l9m
zzFPl;sh7g+_hA3))5(ig-;nqlroIh_FL~phN8&q|3hy606?;ej1E!u2Q%`)_)4q{g
zd)Y5-=>NgQi!k|LP`&ztr&L$-C75^={<QN$)ECJwb9W5*=~Y&z@O?1(7mR(%^R9zc
zi0n6Iy~6Z6;2m~>5iO<udFO7IyJ1z-dN}N0(N`ZM^&Xh@zVdhN^6`b`JaNN#!PHA(
z>Zyxc&Hk2_N9`BFW2;}Nnj-annDw)&x^=B9=IZ>z<PR|M70h_R_(K@|$lSlKXdNrH
zzX)SrVeHe0`Q78fOw{@oOgw&ZXyUy2g=GJ&VZLCl4`w`)cEtt;6;ty^n0g^hyor6J
z{sB{ug{hzN|M-6x`vnt^bl(4C=M+=bKEkXInDHEZfA!A9T&<FLXX{`~@n<mgN|^lv
zk9w5Y94F($c>Z5}()_T?8;SRPOL@Oe{-rh6t6<_QnE1S7m)!BMzi5sA3+~iApy{4K
zy#}VfwyEI7qQ!n|73?L9y@QFL-zZbtx`@AG{9*DPnDv6b;s0UA8>YTjb=nwfmlAS*
zr(wUvjp4pmZdKALn=Th!(&}&gYmifqL{7epz2Ni6*?)=rTVua3(QEV?_-=9Y1<l3(
zSL(Ff-9`Mr{;KOvU-4(~iEf|nK9+b6mY3}fA0zSJ)Ts+zcCDvV_<xw|fvHCi`TG6(
zEy*9Lm&4oVT&rax^}Lx6hnc%eem`qLmoc&Od&s+Nef@KKfGTG{CZDH1a`<=DDod$9
zGhZ<MKA8T{@5Jr}{VS;be;9p%_k12UbomOYhg;cK4zH^2XN8H^VfqF5|FWI_dJxtB
z;~$Z8eZ<f7Z(!~hW<SM?0*~(GmeDEHJ7Mxyk2c3&*%r_#>sFq;k|OmI<b@~Zl)k-E
z>O}^5?O~ndkv^5#Z<*6<)}4XHrT<$aHq%A!AMQAEQ^!JHvfuYsc+ch%pDaFiCa9%{
z%Fq8EFFj9X@|T}87Z$oA<IR3#nCpR!`(?*E`$XiIda_|Za!UhKkAsQNo{X<{rn;q0
zA-{#${|g^ZpB9_3M6Wrn%Qr7w)*Jg<VfItQ?B{J-`Ek?meDXZ(>+0b@7D;{8z}}8c
zN8Zz_9Jcgc3xAzn({E1Tc*nO|rONyGJZG1xT+X-cg9LAttM#m%_R3waY4UZti|<dZ
z;*oZ+^+OpyczCnZUrxyQ!e!4c7<6ouUgKl+YmkT7NB2!5d}obUdFj)v_mkxNk!P>F
z=~`9#JIA{1-dFv*R<SB@aQArW2f}SL%!@}ZSGjlB{hLS6m;H(D^5_RX)hg`gg{Mun
zDf4)SD!;OJl9{VqU(Iv(OL=5zl_@>)$3;$1xmCimXb&Him)}T#TtxDVwh@{>mhZL7
zq(^IRR1^CQpH0*jZRe|Uq51i0w~*_(m)a#TTl~`)_u>a?%JssD4kbElnj`kTU0JQ8
z_#^ZO{@7&Rv38?XIrZiaH43<-f7B|yi%hFBRr;;)W_$0c=j8X{<2IKU?pv(a1lBdV
zaQd}Yv0rz{@u{o_nDqm*zL_t+A4dP+A<xG&_$=4Iwr5UC@;j|EF04cO<FdZs_R7o`
zsk2l@e|C2s^~d(5R%u+PVYN)rH#phVZtFD}Z}{Kw_;<WsEzy_lF;^X*ugZE;E72dv
zwJ*I*WjyaxF5|aO^cQCQVV+lL|GB=K%~!3WOHJOnLB<<Cbgl1%;uBT=Q_;^dWVqC?
zOI!{Pd!|)Vs+jhwI#A`8>(AEN@2axT>~YCcWqf=tuSt#mrd6;nFzXwxoF}<NH5o6*
zW%)x!O1!q@<L5ldlT<#qt#a=C|H#=tk3Ho126(1lznLW$sP=KN-uBE08Sl<V)BP;}
zXchMV!`#11&dyOOqOYH-P2HP5Tk;75SFQYc@&Hejd)8mvzM-tA3Uw<x_L6wSbm;x0
zy#HbBlZ)-h9ZO|Cc>adZyJc^As{8wW208v4Mjumjy&ap&`s^uX5PPxrFwaxK*xTes
z<y{@qwF=`8f5_+9BVw{%(|_~Qna;9)o%dMH_8Y6$Am{l8<RzOwwaOKJgn3>d<m657
zuqRptdjg|hFynRSMwQ>nRjtB$fzfxE@#tmQx_V{3+^=DL;TbMf3;M`<J`mhk-}Z{u
z=)aKnsxaU7s@QkrA>{{Jt`_?PmvSxT6Cn2Pd&=QUw(|cx-vDRdw0u%Z^c6<`N0~=l
zxOG9ROplzn_NKF515fy~=i^g1*{>c{$#=?et#Tn~@YQSwRgS(RFCRU<^I*{@Sl|80
z=E<_23OM@)cD=4u{$>1OC+B5OuM@S(y5yf-E{HzEJWm3f7u+)G(-5iWy>WSxN5=cj
z;a7{EOi}sd{8|pPWqgpo+x2LcR{Wpl*{<pdr?m>thrsl2VdATGp7T$pC1{m|qaME=
zu9yAj2F5?Z{9e?7q!IxsT4Q}4?s~;~f~oj(xX4|%Kf^^IgD;M|^(jfKT<l*#S|}=`
zPskttC=y&j{O8jnIfLgP&?>)vjXvVqU*#SX&z-0y^MyRV%;k_ZePsW4#8%6comyq&
z{~D?)$8Bsgw)rrXpVZalk8+WILX!f0oNq{eGWuFaOR<me{e4klAyuB4v_?)mk^a)G
z`<MJ=KCNPgn`d@X+4jicdJUVZe9(IH=P`Ejyw;rbW?Rl{m9q)+e-|&JvR(1owp(r=
zG0H1XZ1HMg>JiPpnXMyjWqj&5)c<A@qjLURy<<<DP`PB|`}waH5`Q;meWe$fTIEJB
zyST&MRnD1yX~u4`r^rWaw@r8Gsn<LjxOqX`eXX)_S>lf}eO2DDFSBj|>DO2cXqUN5
zzVDuPk^7rhDo<*XF=f{smAx0wcyLwbuiCuqUqdsrirupxH(Cr<nfM7g_9><3uccF7
zXqCtIT}zheBKFR}bIQKcrwmn@{_Ao7)q~RI`!{HhC5P5Ls)6fSn(PU-SNT}`hnrf-
z^<K$uG2L107tdS3^tWL8!;D8hn?1v)$ohlXp9S+g-W98<)rvjVDse-9zicm`hl_m+
z9J+R@${V|^@Txvt;<r|3Kb)59pSrMR?e=01V8##Lk=efZVOh_OpX%1yh<?Sso1f5e
zrpmwH4h+vP_6T|W-ob|oi~ZZ3fAG@6XS53OElj)uNB>@YbH@mYR|YLQlq{cLY?8;q
zW{}Fn)5z%uq3_h+Vd8t3`Ry}l(c4dPT4n8n0z+!a`hi!iiVPek*AEj<_jRe=+Ww?g
z*}D7vfbKH?;g3cy$Q6FLdDrQWGQP;`{dhU=fvi{L+z-rnPT733eT3LkzxKT^1xb7Z
ze-3yQIKGF}GXqU}PKneitbgR#6XaG7Z>zh=d_<jVb*I@@tr9YL-6~)CedIr`HtKp^
z#uGX5K1_Vl=5Fxb8LL$P4&(3Od9r(M#x!{z#nf?TT&PyLsc8_|f27LHKXT$v?*$=0
zo9)#q#7}VZ!xzVGm-Pw%ef#(+$!D4_)HZfptyPHsVf^WWgMX}YL{5H$9RG>@%w7LV
zTjhEi+<Uk=ajjNaIH2A1R-*sNFVuROIZhaPlkt<crb+w=W8c#kxP30aTdSNp=6c3$
zoL&Pj7}v#Tqxd_R&-c&1edlzbR$2eE;gKN{kHM@TICMj%;~V+?(_cDo-?dTf>E**k
zJBvSo86Oz`T2N=|IWSzSba_~J?pPTwnD75o_DPv7a=jB9J{Uen<{!SA_wO5~RQ~v>
zRoku-Uu_RH>G*Vo#NT6wo+u{y9US#&*xYFYRL1^TZrwY2%1W7^eAOFG5`P4fU%(q$
zO=;3g{9nJM$Csl;zm7#X&0Z(=6#lvT!<G9If5JTfeCVZZh7zV#cwQMsf8g=gXD{g~
z{zLCK?!4_jb$(#-Ke&7AfZnUbKTh)R`BPb=jt|_;{O=2wRXO^5U~8w#wKqw<(vUC0
zh4;2tn<V-LZ<>4Zm0se9d%x;h+spbmTQGiklmBqZSyckw%XlF#aH)IDiq2wh!~R(N
zMoIowJl3S6j5loda#r!v5--4w?ChI3$nTk+e>N&*oz|G2z~~c9yt_DfPlwlX{n%TW
z@r8;1*2fJV8Wy5euwO9#0%koi-+7DrnAnRx!sIVCa?AFguhlBEjxT+*NBj+Z`sIcO
zzr~)y=x<D|657HZYP<=b`xZOzhUA+t>-}L+-zB%^YL!7>r?%}U>lem8!nvnvw3;sd
z>e5TksNi|3e}}QRF!5S}@Ec!_%+M;<8ncz9Wq#nLRqIR{DfJY%=-=aT<oaAqOd^X8
zmiWcsUt!`882zvu686eroL1p}VB%4@{D%VxJtW^vn77G)#&oSxW^Ly;H6)*cElVHQ
zUzGd-?mO>sp>LuuEoW_<ob9Dm$e-XgpUPA&;-Sg|ytZk7EtKa?9N%u=HASn0cijEr
zq4-}I`wV~X6IN=b<i}N_ZQ71ppk5E$XZh>01H~V~&*yARo-6Zxc8p2W%9FK9vn4@4
zii-V%$xmVI!|gj}-d?U+g?tU}eBf)56uDm5{$}>s+cF;EO`;!77@<{yinO|LT-Lku
zL66W~!`1o{a>fUFo^;txCf^5>p9R;odQ*OqRx!r^1}1()ex&G*Ds$!k@8p?3AWZI$
z>xEe#=a%KPvzeya6Xc_H<xee^{0uq%6-K|aUpx$KJ5$ZCVCoq#{`1STr5QT$m(&Ac
z@-vwD<ifPVEh{h8D!*;kSNq;ouYsTbZv(ns)9%-*!(QUws9zwz)u`I0FS5Rnv)*9h
zC)WF(rkn40%6!4w|2KdtGk^K4st>l^qE$YP+E+7G^dCO4qH+IQVozY~cORe6F~Q5U
z%9=M86PNUpcn;p5`ZiGPlWWdw>5OQVVZMcQ7LqR`=ll`m#1}C6uhMr!Y+Jd1;zM|7
zsSP2^Bp!qDkNA7mFMLG0Rmn2GL19iU>;tsQ_w-gnY$ZQ}a}E}Kw@K^`{5>@HVQYyO
zM|vHMSA4a~u9AN{9x8`@=~lUv#3RT*bXat0YfqK`l{0>Pp88SY%zL$L#9p9JFy~jm
z#J?Tq^pEcvq+Sn9eE`OPzQ619NH<HX5HG-&W_3K!NX8GQ{)RpiufdE5OufUU*||Nn
zJ+%t=2V;+6^zC5BcEv`{*DC#k3yrNW^>di`3C3Qud0S|D>7iPM`U}i?D=_wGermG+
zK>0lS0dJWQeQ%)r9?bX`FLC%r{gGM)dju0-!o)+ZbH`Ro5r4z?!Ne~x{?{&go|)cR
z>eq&PJ&eCT_+f3Mpf*~C`V&0aI;CeBS>N!B@vBdi75~y=rSI>(y=A=_))#!Z(gEAM
zl3&5!d~RwBiofK3@t-jDPnhw0HTUO~(i62xp<~L9dg4#uN+s@8(MkRRS84QT;StH-
ztT&u3;oME~gMYZD=MV>PxgO-TH|xS;BtGvQ^3cI~h*tTRi`P1Tv9`n$$OqTlzW1fn
z513!<Kdej-cb*{Y6GlINw+gn{;-c2qVDd$n>kAn5;+OR>)jz=GYcTW6?_n=t))UP5
zd1j4$zE}Js`5c_tdHl#{60gGe-&Tp1u7wAw^>a9~Z$i^(@mDbVbA57Httq0v#9#2N
z@8^eZ=_~uW4f1Z?HjR8I`M~NnA3j*f_+uYTwGXoPPF3@B<kXjuQ~!dAug~_|<>M;x
z3;q_ypTZt>zF%xC@ppVX^V*hf5+7YPw+WQ`9gP0i-<eiAVSrY_{~>2RBPTwEsej*$
zE;)0?C^bHU$tPj|X}-<tiaw+N^jBcwLl}Si!ScnSW}Vb}3{3nF6R$7ZQ}*n`9$Mw@
z@cso?$a;ave_`TbvxZwEgS%^$z?12}K1h8Crhf8Od+F9t`9702F;lNd{)8O+jhueq
z-oRp~YB$j;)c=sXbV@R<B>oJ!)7xgt&dcw?mW%3d>)lJ@t1fNt7j3OoD)lP0#iN7D
z*bn5`E4V>9i`yk6e}{>`TYA;%p4~^Q^t<Euq_V`P$hTc68{;GEANf10KEupp{U@9q
zZjs(jtNhDvpH=!WTdp5D{>s8@>X==PwF>?a#=pZ{PvYHg6Ky+c6~|wi;F{f}9&BLx
zTQK&;_It$D*)spc*Kma=J7V98J%Uq9{AhPZ_{c(g?-_Fa1y&Smxn9NtZda|FU#P_M
zF!iLp!{Yvou+=KZCl&s_P39NI{==iz)V!K0_Whh&DW}4%w95RJrArnNdjiwnh4IhK
zFYz0Uy@Cfd-+!#LqvX#cZZ{jLQR7pXdOiH;^4<DN#lELaZTh0T+%MM$Qy+l2pADI2
zvp&iAd#+pfreSZr22N=4>B|L)uVCsY-79RJHlwdrq2B;wuVCzV|I7B5hYnQhVX)(=
zycHYEdW2aovt3_Ju$Av;zXZ&9^;zMwHdx||_CANkBucypGk-As?8V!gReLS=m3kUH
z%K1f~57NJd*`GkXfqjOtPcZTEt^2-RgT$UrZTmf<o8&|Awdl3ug5~>R?gxLvdV#4w
z!o^=K>DE*y`>ofs>~l-LpME<`eghM~65nurF!u*jFW>R<{KcLUPm#~V^v_`Q2m641
zhFMQA`n<E~iPWJI4`5GW>?cfp9sfGuV(XOCk}t!Fi+Y|~E%pdzzTZTTYM*GY=4UYW
z80LN|^thd4=b%-nkHgqAnDz0+CG}FzuB!cp_i4X{I{vK(oH$x>WKT68fQet>kz+oN
z>LdAIv1Yn%e)ZLS1ExO*FQ{E4f4J0FUUc-X7$)|J`X5X^4klmj85|qEtC~9A@Ub?x
z{mmsGjEizCl2}ix5KkbdAAp>A^QudQC;8>`#Ba!nXOWYi!Q>O>#r-v2b+pRpGlN>q
zmwXmp-g{`;XIZ~6`jS@P*CV*CjJF{lgz?WgqxEh|U5Q`s$5+}T^;YD3KXUvDe0%E1
zGOr}wNpX*DHL#)V57@Wzkd^pb7=H|}+<GMJq<p?h-5aaC%Bl4>n0O-cNdBZ|&9w^g
zBy#)*a`fq#U++K1YpeAj<TkG!x-I<MpEAg)C&1)ODTiGn)8zV@FZkd2$G$MX_y?HZ
zJGycIq1m;x3h^9_e!<-D?HW$k^4Q6GTOVpRRr~`?{U5%1cB@B@tdHD%JG4U^sreO5
ze+H(1ku_m<odZp^3h^ymb$FAku2SEJsqf{fxMY`3u7~^p#^1u+kLl^Sr8C6e{maZh
za<1p_qLPEE%X*^z2Q%L={nDN9?%ubP`6d5@)9+`rej)Wan0(%^YfX#FRb@Yep+5r?
z&%yMYhU?$_aj2kGs9(Xv?=b7z@lmFStCd<mgSj7={P%bHVV1Y@sQWcw>X&fEl;E8!
zz4V$o%R|eA<x}%vnDKe(nfb1-d>{3C82<~i|K!HA=j)&6*DAsFMpw(0cnzjs3zL67
z$#I*J_R+_<p902y!uapAXPSH27St-_b1?S@(|`OrYSrzvAAA(*cQE=1Gag+sFO?oB
z*TeY3)Hh)A-{$sT+L!<2W6a-S>Mt<<ETdSy%k{tc80!`A?)+|(vZTHZvp$M;`DkIA
z<D(?+@F<@k{TP`19-eV;%by97pE_jC7~uNc$5`)!$=_h&qj2T><^5?s3j2v*_J6@E
zN6f8xN$M$X8z=WmyXj-x{{~~9Vd{6qJRPoo`|hLckE$oH3=;ooVCoex@#L1>ZE}~q
z^HF*YIlAwx=nqW(3Zoy#3ytrPE#pc43eV0u-mR_t|C_*zm-GMeQCPq5q+!J`7ZLve
zzdrvZND+Iur~SqO(La0?_V2;u<1q28O{!m`xWelGFgX9D=l4d5y|B30_@#xcANIQ-
zCtpO4y@ko&-@dtMIbXh?{0YXt!^l$~Pq}<u?iYQ7>Bqt3SJ&5TV~)uDuwG%}9hi80
z$@}P-&Ch&{^+A~ZZ7}!KYu<K8zu!Ja`wJ7l!CZgVA-nzMO|%O72J?B3vz20%w>}E{
zH<4fekn+@D@;T(JZ<zf^8z(foZ1L1b;r?LaUzmJz;_1;NpWpFO*pC9U{|P34+?H$p
z(?Rr?@q)?E$2n~7U;dVAk6`MDF!6K5Xb<yU^83UKF!2dYJomxYuXnSPJ__|rnEDz_
zzcx7}<+b%iALIUNn0O4P-#fr&PDR%UA7g(MrXLDZ-(Fwm=9+H@e2n!in0N!G9^Gu%
z*<<rg`6$FsF!~IWf8^h5K4I^1ABA`wCO(CU7r7t$$1wRgtm)(Rt*Pi!j~4yQ&p+*>
zupb>B``Bmw0kLN={<77FjamDX)a!wXk74Z5i?HbN(U*OU`7qoo<ZB(h)cauST|)z}
zjP!f#V~odP`mZqgR<%EUFHV;0VLoB57e*g^T<-Z!xa*^!uQ2uU2*1pXi;vX#gt2!p
z>vznmNf+v0SN#j@Z|iWZnZzG3_QP}I`J%VP9~~+d_$;6Fmtgh>!PsAml#>@NQbivP
z^;($vGEBd@`Gxql2VTl}82Xnm^>i5h9De`U++E^NZRgB6U@!X{VAdl{znpl5@rLnd
zF!5@Wg*R&ki9N!8!1Oy|;-zX|F1(m5{to*9^L;S&r%MH@^$M1F2K|9eH<pt()XV+?
zgS>T<0h|6ve%J5UXWN0|-<#ZexMXx2mA}1nm>6KEa?uvo?<|#ilh)(Sp6gG1jP*H~
z--C&N*S(t(?;!d^eG{hM2IJq>?9}e5FZ#fK)$gC%&Mbey$5@X*&i*^(#7o^ub~kZN
z^ikOFf}D61`M;m1eun-qJ}~tVnEbj;k^RL=%lJhGnnZ=mc*4XF_Q^XRZWDXk?EDQ6
z6B$3`j2CkHu`u~~m3uC6Bjo?7ufo({VEQE+tUJeiyD#?0us;;0zFxR&w%_%0K1%5A
z>gOK+tsfdbKYZq|8HZ#)1#<2Ore6Z%Z(*(<X8f}*?3sD`s*iF1CX9Z=tiJ+RO=cYt
zf5v_bnEgJV`fFX3cpqcE8aeS5a`FY3=M6e1jd<1NtdGKeei(ZPQ*XoH;@@E66XFN@
zZ7}N-#-Aj$$W^*#`zZKlnEQvZr(QOB0*}aiay>Bh0~r1N9y$Nrez6zWLl}Pv<4;=*
zf8D+IS2dr3$%kP20~epv@8~Dj&;P^J*I@KzM(2ThXTMV8FPL}+#y?>{O6_pYT_pMl
zQy+(^M=)OaZ<ziMOuW0n$~C#K*kAHBnDqstpX6KYhlLq`82x9y>F2}$>Wfe8&dy_`
zKKeLy=GbHzPwERW`6f(0j=!aT0b}2Y2dFo|#Q!kyF#d-7hp89A^phs1&05@3>_6)b
z#-72%U;KZb?x(yO$bJ_Xdjn%H%7><2?t5F!mtppk!PuY6A$La2c&O%&F!KYmUv<`&
z+IyObKC-_L#@@l&j61R4WPghLlpcq5l7AqF**^-ipU0`#gwZpye2o1WnEED6JUAjx
z)S_tlJn;m~`h}@aU9u?9qU{?WrEA3rp9jl$!sJ6R`!}aGbXZhW=8JkPd~`v{!g=NY
zVZP6A#JW4@<bE56N0h%R{Ve#-mbJcK((i-0Uza22CI@Hu82i&O`|;pq7L|tOnJxWw
zL;i{XG_R3sTK$V!e?d+@iJbfZ#$Hk%z<$8g-(mEp@3~dOcS*ep{|^&y#&6cRR~I?{
z6gm2gocPUTg{DQW<m><bKk*K7^21xEu6G_vzDxZbIq?v3{vT$4^{vP42BwuzpZ|fe
zhaE<RZ_^dgD#XjkvERt4m%yDu(@y6~y>@VCvj^6eT7~_kaEF7>uDM8j4)c6mt37vI
zm0Ta=ekPds2Y-P7LvGPOr|Ai?f5?d!VeIeIEc4UWpM8w=WtjctF!N13$^IjleiDp7
z*u1jd9qUXVh4lloUf`q{ZM_=O-zQ(79tV>jk{__28|MCD?73$_v&DNQ|Ds+A6TiT7
zovPLtC;3R*)=TpyN`8esfQj#5^tJxWpI=6ZJte<@ADNZevq1VWF#dXCtk*mxU5%e%
z)-z206m)4$tla}2W4{)re+tJmIM&`y>Tl+w@9%hZ$w#3c2ooQ}*ryXMvl`@HQR6+B
zdOys1%t;vIGeN$e{RJ@B3sYa9-id#P*`EV5e+`?wEIMEAm-q-~y}|Um@o%ScwznNF
z`8`bi6#jQTVc%FUd_T;7-e9{ScSnf+vfmM={<S3YYVtSnci0=4ege$;FVb}I(T7ss
zX8$sLGf#HIQIfyIyzgpCyx*s_#kC6cbeMP<rk-EQ!a9#l0d;=|%=p9He@fh()91v#
zupb=e`7N0J2yqRD^~{xeF8&{;9uCvrvpjmU`M|ttzX--&!}O=tJ$v%l!Cb2lpTXEu
znEf)u&-4>u#selke|@{*vD&8U^HMPJ2TXiYeCo?eZGZY0_d~<%--X+5yXd>DkzR8+
zWRZ2E)GK*j7p9*B6F;|jeWXj=Yae6(3dY{R`1g&&dOw>i^%nAF82b)WpKjS@Yq4AM
z{ajDQ?qTzuOT7#Gi=6%0$on3(Ui@0@A)If)hgWB$A2Rvbpvj-^srfHVd<>H>5D!0F
zy6eGRCpjO^P;bLNZHcauQD5!{dy1TX4RY2eTzUV3*`W>O`J0qMw#jloHp5f;TAQfs
zwEaoCW62|$F`Z_foxDZjKg08^eEx9nJKi0h9yZFW{YkFUE=uL5|NA?viM$uL(0ZYd
z^5eMqpR58Z*R7d9@>OQ6#v{db+mi7<N|}g0zjp?xeDLeI71{Guc644^Yh#~S&D)YW
z0rUF%D04$b?b!Dy#>l6S_S@CqfXdwx3%1?VKSmRNW$`p?D<5UzgnUtXEmU@Q&UfX-
zgJ`4t@7q69lxWSe+70XF|LLs^vRUmNwMFHs#S%-7es;(x-(G!q$5J~EX(oKh&~Mn~
ztu#Cw^fY9N%B6ZeEjx9r%IPyl+IJ{$NaGs$Ez~pATe-J;+1!ARDmy+ittMv%80A9~
zr#S2@eo(V>rA_^&rM;CX+g11H*+d!H_vN1=$7k->bgf^q#kH<p${&jj4R&mgH1gNv
zmQH8K>@)K5^g#2VX_1<S0~c;>^4?R)w4XdVzOl;RW~8mmuu*w$jj)Wtc9EJ%lMbeJ
zw(?R|UHx8nRX&xko;$FnSq+uXdMK;DeU8vnPV%}r^Sh_g)U;~xrms{kYm)Rn>!-@y
z7NoyC^({hEbzj1?-#<N-*6ur-+J00yy4}smH@~ZVEOKCAO5R9K%fk7bT3+!~u2(H3
zEi;u%rLJGpzkte@VgnsV7L3%4xT<s36!%iRKYx6@_EUtBU1GYKJ(b@>Uhw<s)<eHW
zXl?}Lu}hWDH=4UNX?EdABi}oD`R6-xm8ZTwTHo|tgl6=cy2Fpv_EOxtRL<WpP32SL
zYjmi7SLN%Wfnyv~BQ#+Z4*ePT)l)gYYt|1x86S9X>Zp3#FRL6grC{2G><G<=trcRc
zKKE4Y&wsueE%N~{$@p%*r=`k_XP(|0r*|&urPQon{({}T2n{^t#NyM_b5v$LYq#GL
z+N6+|;@0TR{FpM48u*rN6MbXR2l#}aGQ*;7q^7_#_iYQyc_~i^>->GpRGw4#)4Bb%
zRUXnmv+*$*e~Y!DEjp)oDqHR}eN<7#GvfPfr^E7lCX>H@-BL=GFAdl`qvnSQqkM6b
zjv=|G>gV?lf8`%^BSO>ddCU=$U!KZ%ujT~{Jy*Hp&M{@rl!!FSmn$PPuUCuI6uI?$
zUQ&H8Wxic4+YXgf&bnZF$kS5gh3owbO)3<r>DMe<dotHkLI2>$Jd0u{y@)W%pFgjV
z()M+Prh4xYZClId`G5G%s^HZ_WITHZJ9gVwz)NY{ca_!ja*@W*A1of0r+t1^-nr7;
z66;03_&oALpSGoI>Ut@iiVaOTBl-XrZTa}qIk{fAVV8cxpIAj|0vh!1-oK%jalB#H
z3(WZUvfXyIVm>d0@qkBv*mSn5j6a-gnPa_N)=TJ+HJyt5@l>AP`Mt>Ps>+MB{x$pD
zRGIObccb~5sDfS!`UkV#;o(ocJUm`TXqI<ME!?!0m$KsYgNMgteqq*E-8~&Eo-N{~
z<a_0wy+qa<@_mi;Rq{NH&>-LVt;?SWPgE|D<Z|soo=DB7+F2zYfA&<yR=L*j(T@lt
zqi;EB3wAC4t=ccx#bn+37H1+fa7bcld4e!P6J5IE&E3_#lxNMy4qJ0fWyTYEjs07$
z^eP>xX>tAYf_gQ)lySXGHqCq=VdO{ig7>x0P?`CExYu{^+_GMZ)oj~+HWeZ@aEnZ{
zY<CNlxu2xB-!I+&<f)Xb_P9iZ%m-}sY2VILk5umOn3(xY>`$v>9;dq7cqvOpd6))@
zeTMIvms-~GzRGJ?T)6j0#{2QcZ%r=L^HMVPFJ1S3QF-2x?RDzQcq5<qVACVplnBj{
zf&u%#H1|^c-WBiK^MT5Pb~Zd!^tQ_P-~1l$YZ9q>&}dG@)_J^?a*cnvc!@oLxj%Sa
zYtNp3MItqWbAR_gDWAXg@yYK*SzmCf_kxZ~WPV}RU*U!$j;^olrQk1M>>->tPUHJg
z=A&hFt1^d0AHT#`D{m*`17k1Y;E;@3vEo0_$G>mG?OQC;$owAi{N=)jR=5_SDL=#2
zYkh{N@}NSKn`Oj4!z-q*?K8G)q>(?3KA{vB`)0MK%(>lSe+$()w>w+x5B$d^E#i{=
zzi-r!wBI8Cf2_TERE^)?|Bq0Fga}C~5sFAr*fwP<6qQ10E=8m|Idw{%OzBXW5-C)o
zP(sE`ks<S(j0q)~g^=%lzfaF=f0q0AS>0>>?*4nM=f0-B_iMaP=d4aEF8t9pM_|}9
zbolENTYMkukBOwxJC9D^?v_Kq@GoGjx8a?T>)xFr>6!8EdU^cGCg6X(gDbOFFzk8f
zJHKGU>=pYDTsZ9G-8JRe1Pp(E%)jF)Qx;D%)-_28VEYw}=L5(8{^uVo+5T}=dV7ZX
zNB9%){m0L{=f33no3F!qbYT8cb?&L%^`?;&{uZpVVceCsEI$CZo>ALzDcjErzbu^O
z{xyPbYw2UPzn(Mh2Rh<;zg4k^t=mP?ACphGd}a0nUfAtzQZn05VA#jQIZ4!|1B<_V
zeS=cicyMLXEsH9R9D(7l+pQ3{3ug9IqdPBl=kII+-ad5mVM~^Ofd_2b%6{Q4n>^4h
z^-<J_q{)*uZ=TaPM_~A8=rg`WIwi2{!GAjG<)7DO@ezFN;i}(WEMEi9TRm<1BWACT
z?Yuhst3^`GAJ|njzr6L6Y(Yo9G}B<rCUfIRig-Wcg?*GZi&t1b=!jR);s3zMFLJL8
zJh8e5KOgvS9rhgM-R^7!%V)73VC;A2)8Dc?G5-Mn13koXgiSMM-_V=L+H`SY`5zeh
zBm5tp7rd5zdyG{D_mA)wrcP%cR1S`$UlQN%O=s~Ito!SgQwAFk?jG+kG>iGqUoG}I
z8nSrW*|uZEsLPx&KetOxs`g{~2JRo@v!~yg`pzJSKu3NI);BZl(3Y(){L_q(pSI#>
zoQ;j`!Y?p;gnskdx$6%vW|KCHt#0J?X7PB7zQ<tZkHN#o242|mE1Mj?xX;(tAd;^C
z_Y26mUXl>pWl;gwKkjdF&4cY1j7NNhePRB<ZfAWR3RwORdq@0+j`@WCUV6*zI?FG>
z@K?wW69>39JIvM-jQO4yDDp8M7fBJ1!B2j6KRBaj4gtp~v^Vf&{&`xM?3GEYNQ!y~
zjCc#);dxc(VO6$}Uk%DSX40DZQ{-FNzhLBlMw;%gqq;@X>YzhvKUuv1p630eMP?D_
z&=zkGF3HU%#wzztUt{t8)3ae_-&y?u#(oAzoIe%(=O2I4^LAo|Q6&BM-vwB`1@`U#
z(tlYR*H5f4bAOS?>y?yUO@dak{1f$z^U&+6KMXm;pABBF<k?;`lK!k;bZZ-nPhcDm
zhQHY(9h(u<C6Z3BbZdKp%?}v)HyHbcny%0?wTu+}H8`+jhq5KBH^8@SCfxtX^6y!W
zwuZ~PM^ZnRp0CHV`vDK@G-{S2t6#u^e-bILt7G{X^qCEe`Ub3(8WkPR;uD?+_XkG2
z0Ha<&{CRw(a(of1x4_6Bz^FH{|GJkSxS_AZ_aovX@)?5*HykeC&nDp4YEwtvV)hNT
zQCe&uVfCtA`CyOYHj#9qb&jMT^Y389OYqQw`_d;YA4NUrx^CzjZI(ZP`*+j+WUa{=
z`C5Kq`i8QBydDF$${v^7lEo)5>>2(9^(}aW&aA95_Pk)7NI$pZS~+BN@qk_@n?+KZ
z_oaFhTVF8hBQW|IGY0ewf5zf3>IX3LK``=PwM#+q?#w<GuUK$mBg?<Ql7C)TUg5m)
z=#O#1EWfLHu+Vj}NhFOA|K|r%Ih%j!V?LhQ2lT;?f!T)!<p}u>o(K63><5he67^!w
z1(VfYv;GX2{rGtP7v_J#C#$k1nsv${UXQn$Dw;(K{Rc4eOEBW$x=`x5fW>RXJFsTW
zrM5RNWE1eLrRu4Zng1C7ypQG~i%5D}z3k96R_}vx{hvC%h3U;B>Aq+4*XOYO7;HIm
z%^(MsuQfd~y5@fSNQ(Xkbi^m<@b6&Q-)oCagDhBmVsq4Rdmq-H0Au~Z7{9Uklefy|
z{C>gkH(>Z*tQX=5_`{IcyJ2kq@5qRp-Ma<PkD=rG&{2<q5r5`PJg<10#mf=f@28z(
z{RXh=zc1)nKdV7UzYg~D+BfZi9qYe<(Z2#?zuTUA>!mP*?Z<}v8I1J>znh-+)r{rC
z2k)E3D=`0v{QyRM0K-0weW(1{tQAR-FMv_sf|37YKck)j!=Hfbt`qMztRC|1vudjL
z=tzqB2J1b#F}#B1A7Io!@R#kpJGwfu{2h$=0>=Jp(afO5r_Q`z0Y<)|ys^blJy!4I
z`M{VjFya&PH{@er_%|@}i+mfe^-kj>DdH0t_7BE>h)C48xXtP%*c*7GU*55vEPjKL
zpCaFfKL^8~gHiv$UXUMv|JJcyn1AF$V9Y<b!@obcoJ}mEgNE5!MN;%*!KmNC$d8mq
zuC8@r@dNz|a8}Tp1^Zb47YzS5XUE8KY1)w#&ksgF37oDPv2sRwHhFD$!@Z9AYs?=Q
z`5xGKMMmdIdO1X``?OKJXe52!Z>rW?=3l{>FEH*G&yRW%4Eq7^+R@|D80NnbZ;?-e
zk*|QY8uAT1Kl~RM`M67{VV*tn|LEU>5ih~$Pc1m^zQo=-lEVLju|L71qt7g9&hl~f
zj;>h}R$uS5IIPf(^{2pCKQPuG{VdoE82uJ7>J`nbVfXXKM$!ukWw#FA%_d;v%is|`
z?KbVr$tKCl-PWfwe{sCk$+>l`Uk64%8I1gHrzqTWjZ-8&wQ<J2!&g~<qJiztSv<MA
zk2B^Q`2qGj81V;;{j9oVMd$?9kH-55F!n1L_w)3~{v`9hkreS698`BVw3Nj+@KxGB
zt_Q1cE|^(AyUpxrwY8{MD2vZv)LUTWI~&g!NMhN3K)nh^{}PP+EN)5Si&)lA!21v|
z>LoDpW8_EhPhjjHFyhgun$1c*NF+r*14g|ZGSxgc)-jTfdD_R(fc5vluop1wJz-&s
z!uzbhfPVhpjQ%<76FTe>I_wFIe%(=9$$6C#k@U{KeYxFOKNpPn4UQN)Vtys-A75TN
z?0b!EBwg7~&#&Df&OwW(Ej-Km>037yXpCn5f4A1=JN-{{eR8&{{q!2HA51Z`{LT6U
z7>|1PQNZ~n+P!%H92`B(>F5boUn3vr<~rz72bNzzuamsL9LxH(&}|O&S^FcAbB~i7
zx0|!~FWtv4{b<eJH@<J~F!vRE{|82V1fySAEH>!9*e;TypA5$RgR#CfXLqeNWcCez
z0Y?1;M*f8ThWC$P*gF{h_*=oyUBwe3Dc%=>v46nG*QbOunNnpFNq^_`GSy`E1V+4S
zGD5n4f)DRkLVvcaMEx$Sr=X+WLjH#SAsGEGFzf^UBjg8Q!~-zu%X1&*Ts+F^U-Y-Y
z$alav|L;ld9@Me*K|BH@zJt-9g?%C40;668V|`FxqCW|SzXYQ{jCvORL@?qJ81{<#
zB3Qpw#eDXD2aNRxBfl-RS|W9s$NL*#_+K#mmFi6|y)~>pKtCIN+)=T1%5j!YHt6Ut
zqh3I~0>i$+s2{K%un%zLq6MXr!`TF^o-4NZVg3T^f&2xGehwJ<y7pLw)b=xZ{sTrn
z0EWH7{!#CMk*_2F!F~dte7Vi6O$yJSuARz?X}O2h!wvZn@&PdR9~k)z;w}0$U>py|
z`e=XDeSdi(_jlkYle|XnVg3?~e(H;g7n7b1;_(+8rK2~wFYCvF(O<>qE09lsvA@8`
z55JB7x+TvolA_-SK6`#uH*40P10%n=*L0nqg?A*?zIvcWg}vVeqaO-JzJPf6@6UCy
zeghcw2l&O(eO0ek@O~%k2mR0IdJ|Mnvh@OE|MWIjReU)$lDap%{{^Go1|vVvE}N|#
z?Z7^N((wKX41Wqn{bSdvG@^$y@3(;AzrdMihx}^B@;kggg?|7mFV~M!XZ<WN;+gvI
zq|(8x|A2gOTiU0h`z(JgD4D-Mk$oNlI`$8A?00Ztsfv&Bu56;PJm8Z1{79-3<}q#c
ze{lBAe;SBf$L9+WkMaHqY!!OHG+_yk*C*$6*1hn0xA1;RQ9aAwRGITL%Q<xO{#}B;
z-}c@Dy`5R4e^HXu>2L(~+&ixO+fO?M9vBmz>wliJ`my<D&Vf70fuwT@K^_q_s$WN)
z4+A)-tN&whnS!n{w#mY`rI|#pdF_>`2@!Oy%Anl|&pH1gyKU2}InOFEx*2{llk6By
z9(;Hsp^qk8DULhJIq>)KQ9<`OTYl{4zok5rm^v4^Uj8GYZH|mNFm4m)!vl`l*d=n_
zTsN>-v^SId*`6Jq_(?)X*v>C0o5$H@ZKoZp=Vy{<1CQ)WY#%{CC0z4TapJngKk3#m
zt`9qXCG<l_&i{U0Z<9<C`e$n5+bRjoJwC99zAESN4gRO^&EkAuOV{7N?0jQKccR{x
zCG^?7$0P1)bI#iSYu&!7ndI|{-LjmA68f!&Z}yepTn{}I{cNK#*Nvo-Q!AQsp7ecq
zaz~X+())9lsGw>I_1QDNztTX?<t<cq&+U>)oF^B@AFPwmq3+&k7y5GEvG(cshl4q1
z|8bvp-z<~VYPc*?xg()P8PoH>jpV%Mm-3V~)|}mY?t3+9N+!`zn?9^}sf1pRpML#u
zE6z%HY|lOTo+0RJOL}h~#pctdx7r}<atV#>)uP4v5u69^Onw(KjdP*5LfxAFnPln6
zOD9vmN~kM2*HXF9f9Lcw9S#Pt=ew*wMzQRrgl_lPQ)bETAKY{6oZ+w8{evHv_1QC4
zH<KhE{B$kgii94VaLMh}#|(i7H*azwl^qX#TIXP+6BF3{tMw`gy(Xb&LbS$t{0Cd@
z{?O*sXs-YJdYrANlfuK$&0i$6bJN|s?AdyQA5FCQ-i31Rmn7M-eP|}pu57dSca4M^
z-MuoiH9J4pPiCY%!GZIw$eBMsPUiNKW-MN?e>`XZ<DQ|9tT>x*E0{6JJd+G}pZcTA
z5eb!l-jZ{-HDhWz4C0*HVw^$`wjP-={Xew+D4|tfy4;Om`x`v}P11{n?Eb;}z7tK_
zvge<C-gQ!CrG$=YYbG%m%lXTxrnl1Beu17l@__DWcK?rGmTU}d9YM>wsmfy5{es^`
z@9%2P_Q&gAsk?8Tm(XULmAa?8a2__sW{IK=XZoaN`($>$^TVzgtiCOwL47N?luqX?
zyZYey4>o_$-9Chc6*y*+Uz-E&{CLa9gYmpzz1A<BE9^4KZAHbY`rjqAWOVDXv1~rU
z&d;3<%m0G|x|U3BVanI*Z^r(@`Yv;|FZ{*kCtqTb`eC1ht}~n6@*8_zFxC%@{r#iu
zEi30&5{ml+!ykdMe`;H9%sBr{Lc6su{-V$PBUsw(eZ_4L&OU}EgM0dClDOlgTCwdS
z=;WDMQGSa!KRA(nV5Tc)oDcqP$e{wWNej3?gTIA-q;&3~o0BrhIHQ%_4nC65!`UVi
zN7{3a?@x~P8p9da>(Y9HS8kbv!heGCe1CIGlbD?I^%C0F>r<C=wwVNs{R?jMBB1?V
zwM?Qr_{X^}%wDm+;L7tAzExgaZ@0epQb%TQr`x22RWkqH+iAd?VLF-Q<3o>+S`Q@j
z=C6C7AF}uWUBrGpp&8*i))V7Br#zqbl-Ud7*Wtbgs9smj8(u5>2di^_nw5QH^Z@3+
zP3zD2DMrw9x0h?mhH%FDBX@sT<HzDv`y$5=Z<#$|JoYPe++X0i_i0OSO6aBXbU#;S
zU(mY@derHSMJ9p%_jt@N_S-r8)_Un|{lNyI-qPo@IY-$J3+&6{Pru@uU#yx$(9*dx
z)gQ3u1tVU9VLz@(`B~T4c*IvQ{1^DU^_I?VEFSi$?p-zhxr81!y|KEE`B(6u=@X}a
zR_2WP-Qd^quwAi)BEErPZ?N}S`TfpL9+yd=<9O)R+b<0N*(sA4EU8zQFn``meObp9
zy|}+XJcq7zWo>3S+wWlbtC1hKB-ATMP=l}KVVAWs2^jMQ#(cgVmE7;l83|oDq5gO>
z+aKT_Z+D$H@6H+V??z!aQx%pk-ME^*Vw^@M0b~8I1{wDJ%JPe99V^;_*$;Tc^{S$C
zEM9=&&sPN2C@oNmpk|swY`Xr*AmCk7_I&Tp@&hpJHPAoQ?Z{&ZMScOs^MI=st-tEs
zGn1Ts_gpRLs)YUszb5_4;y1XJ!`+hiEMEdge7?Eq4_hCFw;R{xFn^8nfiXW|><5K`
z<C`1)kWkAijmhLw1_4jF)Y4!H+n?ZmYCkrw`jJ7}99-8nuS*0C+UdFeEX%jR|9<@m
z+i&2?v2Jd+^!a{)zrg;%eg%t~m&~hf#^aN()3^9#l^H_3(tmZ{uvUTV`{%t%xWo2O
zk5sJ<FJ4P1>=mr~DQ<Q&vp4YjyozPljWUVvtq#d1T_fle#ThSO_vd_1`3uQ4<cxgr
z*Nl@Mp)6j$Ft$*uZ^N$Nz!!{aY7c61j>%1(Xxk%`blkmbV<pQc5B*qjH<9^A@IKkE
zy!C89f-^r@YALYe5sy}!Jiej#Klx}wyh1($9v&D|y~UFIv(%WgKU;L>yf!v-t(5`i
z+k030ENA`|{%_ZfflbE#$MKktenUGnb!YR3d=u=_K5?^%%@?@!GNoZl`(={iZNb?Z
z_a*f4;!w{$CY+J~L4SLrE;GJ$CRx*cP0JeQuTPzud+RW}U+|_2Und=8@d4}*{IJza
z=Fex=sAk(VjiA^+VAvBF{$P0Sc9r(5zPa7Mwd(>!md`ctuTtY#n(aC3t(@a<mBo{w
z0UI?s-IY+}+u$ATXOAwb%@FhxhpgGZ5M&UCqcwA)-bpCpCm8V(jQtFM2zvu#zQLFe
z+sDy+UMNJ+rd76CpP2sw!~cPE3^zXTXZ~j*iF&TZ@}J2Mbi~uy{DWmy_7BUualYuP
z<uQ@@W6O$t?b2Di4)0ib<P`HKV8l}}^7B1inro5YEI(<8$6)L?@Rr`Qbsn?*fP4Y*
z0*rhHjQs-tfOrRnzkXjb^nmk4etj_34~*wS{*Yo9A0No#1sMAo4F8Y#KC)h8kdq#d
z_n+EXxqN5w06P4w%adg>sU0II>;VjWLp*>#fDZoyUHPDShB~{y9!CzZQD*r%@)zij
zE}Z_*qy^XAxAuEFqyuM-!Vssd-n`!Sj_7nMh}B!D&k>)&*e}TU3M-a;3Voj;<b!w~
z=*Z8FGd7Oc+#y1!pTY1~U_4K4(aRxYS$^#n@NH2Vn?Er23mEY>Gx>9&T?MN@FI&(3
z&HNP@^%=Oh*|AkxEPm`UxKgw7gM`M`ylZ-l<u_o|_iX}Sq!_Sx1bc*z=ZB7X2M$a0
z+`sEZ2DxYZ*?TO@mr=iivA@8m?~rfHF5SFU@+5<R#T5sw`!jn;$@JcJ;)#TQeP=vs
z7|S2Q!85um1x(}|r_n253R_Ru6Z|3ABr#ceHj58n%vbc|PNinQBoy-l#(aQv`u&K=
zVDpRlfWH7ATi&(X)aG2*7LRHD<7bADzh6&X*gc=w2l9E?3)s?so1FuTm&U^tu5@Jn
zYu%9t^-o#82Tqu|NbfMK2f===_bC`L|FpDE(~ow|A}BGiNvUD+5RCW&Mt@_?p2>Ch
zv?3_-5it5!VB`bOl}%6Rv;ByA7F=5WxaWITZ-M=XKVNWOh23Ar`xEk5{`2K{-Pw?P
z83O;zZu&l!-7j?5V;{-OM@Fo_g#83QxxvI+hxNO_wqAvW?OA@b=B(O9txgdX{tb-$
z4vh74NbkMY<R|ynVBPz>%C%p!c+{Z7-@Qu+Ep2&ALeb9x&q!}85;OY&V}Ig#K0NL6
z$%FNmz%!c$PuaoZ1-QZ^G<q$|$B-}1`uBw+XY}9vHU8w;^o*caYmR2M{F*_)ADq{}
zv99Kv)S28@YL`h|T^-6gvieLK<^T8uyFU2pf|0pBSiS*9f2iEC{Y5jDuVep%;eWvB
zhaetT6kO0yWA+B7v;X-)CeEH$oY}v?W|CHZSzkA(Mo`p;VB~LL)LR2@KDuy*#Ygxz
zaLpfs4!TV;2^jTIH#_5qOROHl`hc+?!Km-i-$cF)#(IGfpU^*oy@J<-tsEE1@*gnj
zu@h-?y_8iVgn9xDe+foD2LBTgI3=-?<#XVNn^rHK$Lt6EcfS+!hyEw>F>u#8D$$W<
znFQBEJ^@C56@2D%$|!4=f5*AIm7nMqLE(?U=%0c69A10YjqNx12iy-B{WrvWtPdFe
z9*q5je(KKw%WAhd@c!zrSx4N5T62bd9JP;_{E^j%Y58A$HnaL0+^x;2mp?zVda7+3
zYYD4&5g(z~EBRi?XZZkh_#ZI*jY_8ppF6Vsi~bCFdHhQKL>7O*LVtTsyBCS9J~^he
zRoi<si`NZ|`Ui~s6#X#ti@?EmlbXzE%ll!-FVFmXd2uO=2gsMf@GqAFb}Y{t!q*Qv
z{0nqkAN|5E`yAWeR>~yMQU5|my#_}92Y-or6^#51jQXmjc!<UX_WtEnC&RBJS$z%e
zsD0|9T3^nw{{D44*!scWp&kLFz6axekRL7zHR@}~;w2dSAN3{t8+7#Zp(9_5ySe?{
zEmkjKzk+dnF#P9A^^nUuSUf_04o1BJMt+jC?V-v7J>HK2BVK{={s#U4^$r;M0T}yb
z#fn4sj<9$q8PmPD9qUJeh5kx|p0w%glb(|@iO2KQQ<W_vDEcvA)L&q%U(I}@M`JZ2
zDAo^*d=rd#lRwQ<HA^i*sDHq?9vJ-t<Wsml81?1fjQ4@?H(=z4VB~A?fAHsE#2fJ6
z^#|e)_D}QiN0xMF^)DFfabny@J<>gbPBmF&D`EKy81)hu`xp87mywZ|Wvo5{W50l5
zkC-pSFEH|}Ln$`;XV~@e{t>*#`I1EwmVbibpH4lUf1&m82#WqF82KO=`3~xB>~Apa
z4UBpW@2hY=FzR`*<E_!<ZCO1He+~Z#Mm+>ZyjH1S())6c2#WgyqrL*8-V0hj((_s8
z2qFIgEB4tjXBO+9fbl-+z`g31Cs@4%{|JWtgYkT@_qk<ZNhz$q2!_3Y(JvUeNoU$%
z^$4N<03+Uk;lID%DT=Zg86mt61|wdBVSlK%V4q;rt6=9j5A{k|zZLZ>@=GxMD;WL>
z{?N`cYpcyD7QY(&C*}u?e6M;>2klDT2#Wdz4Eq9OKP9$l_RNgsC&=&dJ{sqPj`s=B
z(JuhQzv6jO|AL!eGG8&+E>oyqwSS&hZ9k0d$5$h0nRWz4J_g46oC;G5R56U8*k91$
zf1%_3%&COOqnz0J&<}!+_ruWfd|=q?^@<CpPOy3j?_<EoH^F#+^SNp3HjDd4Q0z}I
z-j{=sFIx=w746N|2mT(6eiRtbGwJl5{hJ4|?=SfGFOz^VKd7IPpF&4J06P3581;wS
z^k}1IEFR;14S4?>_t?UgnFNe}_vg;GcS2cwLjN3$dKdGJ_yZm52Oaqg81-RDUD5Yc
zqX>$6AB_D8Mm>gn2>TBV{{@DB#{P%@2O~d0d__D2qdx#fzhk@a{n#K&)_;0do|N}C
zgMhK0!FXQ}dquqs9{&E%i>0l&edB$r(adb!s5TLFX3RJHqc)iYjQkyp^@IPz{euyY
z!OPpW=oQBD(*-s<KeYz)dLNAUabWECTB}-}wagx2A7J=LaP5|g9fy8rklk0iDE0ov
z`lJ7RorEXnx%Hdw?cAR(=uR~@3MY>5Aci|EI+Jt>{aL8+sjPUrz%{LVed~H+o50KV
zmR`21Pa{9K?i%-YsDx^(w%QQTlylFA7g|SlPZji{<<6IL@1~H=W_@&5o(reF&zx2_
zS+G^$sOBm?tnYB$xyWbS=G!S`#eKEghu4MEg0k3}iN`swc;C)!@HWn6qJ-78hACw6
zHj|+;|8Qy^dDQjTOwO5UYK7m&bDo`GP;%cZg-pB^aB{j!IJI8!S#6>#=j|ONi_LvF
zcN^JZl@dGO1v+cW3CD1%)FRXOr3+`AZ%xLptKTPt(>|3iy#s<%2)NnA2Zz_K<ed6q
zLYu6>6tbyX_vFJf!s(BGsXeQwaMswe*xksIbDU&X<ol=;^7=T*e{B&?|GWu&>bI4%
z$=SELzDqg3@Jc$`Iw*xK?5FN`b#^#?RrEV?2)keKO@n@$UWalHeRXGP`sNhUzSi(Z
zwPiTHJ=?jtWIkt%hh8LgI3DesLbiA+?!W0APNy&WJb2&$&aXcWs=qLub7=Y1kdR&}
z<fy6V^h+bdDS6a$_zU)Y;2rdzFC68Z&}vN49=8-SX6FdyT>EhPb!+o7g8<G?6^))h
zU%@&4VY?aX^HNBxRe5OlA>mYKmUXZF>o{Y5pm%Bav`4UK3Td{&zq{9zaO!8?bk|5W
zzu+}FWp83coE7f{{<4{yLS!4R#Sa}GPEF(=&=nZZ13mKQo$aySDJ1b-<;xCJ!)aF2
zn2f18oIRHqf2-cj*?8U2v3J&_kb}!^p6qEHPO;wLtq0Y%b&zm<!})f>^`<FgL<i5Z
zu!-TcB+&WwhV7hZxz)LhUC4P{iJsTDSjPU3x{hb_Kgsd*?t^}uF@Ml;|DAie?MYzs
zb9TDU)EZ_FV6S~X9#Ls2#PpR>-+QCOY3HXo`=7G)0XNSYm2iUXzm5-r*Nd1v4AYvv
zGI0UdZ9A==*^+V{_KWcc#TqR?&*0<#KK@31ZU5;~u3y=fFuh+AU!T5Ry54Tao)7C`
zHg)-z-pt;?6ZKb*)Cx%<zHJvhen`XVW{2DhRSBFG7Ax!ajpTeME@5GNj}%fCa;K)%
zz;FtC0b{<vBlf<%GQ}o^kV6-Z+{T7eTp!$K?WnywND67G?zev{+pn+}=(`8xHZADO
z^#hZtl3m<6uN@XLkh1wXw6Q=O!`2`32aaH$mix-q|M2y~d&AAb>1gHYnW5%<JnkQQ
zZe@7B;-4+#+_wOe9n+Y<{pa7&$MWNGe(10tFs`@X{N>IThT#-C_+C}*gyGD;wQ_g3
zbeP$X^C?%;d9zXo^g+$KeyAME^}o3=$su)1VhWk{@^r)^eeMsyM_Lw4${WV@I;Wd)
zODs~zi@@odua4sT9jv=*$r?*$4@NmRO#=FcQ?<OsmR4du9{vWp)_|@B8mTEH;pwrg
zsU)0snATx_FJ`ac;{CCGIx~L<u2_G$cbabsad>zr`&WM+kHFY3VED6RU9;a!XZD2a
zf#J`=?LTBJE9uAm8~i8y8~ha*{_jMzjsFX_A2A+`_ya~fF;1~;e}e5F_y;id9~klN
zW~Wy7-?RHi`~~Crz<btcRJD<@^{&gc?rRcG;cvmMj33+)+i^YXclZYFAt~g^snacV
zhlW$=V9Y-l@oVUPg*P3H!fCZl(!CF(QV1CS3XJ)kGjQ()8ME(0yQVH$F*${R5#PYD
zZ|rB}4`9p(SZrbLd}Ub*S>CjEPE&($3LX5Bq&902!*#3=_7jc=Tcmvc?!KPyH{>_b
z603lOLE&_Afu8iSeG2)T+pk$EnLUQbJ8-#)=VVa?i}wvW?0N9&F1Nn-<M{&^{uvB^
zzp}k<>bVi&)M)5*|D5y`0!I7-UrC9z_@$Xb9=vUtXr;x^4@Q0khJC)a*+bpf`Xe6!
z!~Vf<ms}pR%s7SYQ91D0wRbqZd#vbDh9hT5P{1YEaLxf2H@~f8`5)HnWN~ckK`g%j
z%fJ7VGxqDDu7wk(vhzz_0$z<9&-`lx!~VgVmvgS2H%lRBN-y;9%j^mJ35<Lb9N)tH
zU}V)6(qw63^xQstzkppoZO%8mlp^RFX-fj<6sC~!R(pGlG7qO%A28+<jC`kMUXgJ-
zwqGzm;LD?Q=G|uY1|ATyB&R>yPl%t`FW{&qO6@dR{sx}%(&=5GRSJ2yZq2kM19&_E
zV?MwZo8DF#YjA(reV%1)%2dvXC-9f>zsQf^pTOAv&0CEKdZ@$W1sM4O*fZRqve1af
z1Kbb%Kl}|C`LBV}{AVjzywe|NO_JuM5b&zWAsuGLafW@vKf(UNus8Sv?04wMhoK|B
zwb?V~`Ars&+^p-u^+$03f&CAC+St>@n@v&(xMtt)eO+1n$aP9n4rlRc?A)Uf+w?eN
ze?Z6m9I6R5&ovFF3%*@-jCWxBy@9>5UG1jz;jG&8!N)mTDP+m~9)qqj`!1R9@W4l(
z^CEj=qa!T;gMLxv!=F*iKjV3kZ-TMEz=$vK52fn;4qavW3fLeczsu=KoRKfPi<9^6
zWd6h9hLf^mmlOhis?hJ&0Ts^3&)`20Pr%3@U{8;CUsgJr!u<*64?6O3FrF9t8Sxx^
z>gx&7IY|n6IX!u(Bg;<_ufXs}V8jRHQ>cHyxF0b5AJ*^a(5eCpL%x2fKcNft$&-n{
ztC>GSK7O!);cvj$FZt<lIvZI0MLYu|e+Pg2>36`viTexK8~g+83yk;-{<*UG_m0fJ
zf(>uKjIkTd8TAhGZPy+b*uTW`d^%9C>3JP%&WH!t|A_D4rK`73D`WNs#`7ayz(0Ud
zZ-C+7ke}iC!OKqEIk{jk&+l-3tT*x@F!EI}`V~ggoW5^o^<>W<Pt0ZxV*agxy-U}f
zex<>gnk`pt!~7ra5B3didnT}}>3`(s@E=Qi=A9F<`~dz1jQEb{fxUrE)h+#oF4-c~
z>!~H0`D?c&lc~@5_F7aEMu!ANmv~&=Byey+)Qzz38wHmCf6E5)&AO;na%32NV%)26
zvTmZl^B#t09dTVJuv7Pw&kP;n$;53VTMVcXQ@d3?R*(I?M&S1~)-$}DaQ^4p&p#&1
z$k7LrzWJUK(+}<aH!fVwIppwmb(Kuc*Gf+0C3KRJX}iixi#Ca=c(n19)V7>^AIhoD
zX~|ihpUcRcqd}e{lf(`ACg&FkMV$jb#0k22SiY^SJdUiYUf8Mg8gWCtClmPfJN@^`
zWn9PgAE|k)YQ9QL<^DuQ!18>F^XjZSW%l)PWL*E1KJ%A~=`amzvBx*gxIT2b|B(sf
z<@GIRd49^d!xUwgFKRL(J<{x0=@K!O+bie#fBwBOi?h7`k&(0Ub9G&##dNUil8dU^
zoaOmGXSw~#i25)4?jyx~KEZQM>o%z<aa|sdWMsze6U&Oi#58EB&sJ+w&T{|28RMsp
zzxVdoVlmy;E@W=o_i+TQS)6ey>1-T%IW)?AkVs7B^{Y%^dHu{8>#;iY(1x}F;)ed8
zjDWp%I$7%G#tAHshca?xf5s!#1>%PO6K8q;!x{6Z>Kjq5G+#`Ur|mj&TwO-M^8A1^
zo=@e{>(fpA#Z+Do$q3j{Vg2%M%Vb1T+)gBAI@TY$ydL8EhD&NO1M)aOwDKI3uwO<*
z3AQr>eZ&p*EoXT=l@XJpZ{EN064L?V<;R?^a$W9kxi0UYa$YqtK*6A+jFind{`t8F
zpMNmy6^!fEK95=E=_#hFI!~Ld*(4)id3@o#&SSeQ>rNa|8mf|b#YIfJ`Hp%WaGx{w
z4|I9_l93fJ9(k3zvFAz2_~9`#PT(KC5}L-laF)k^8A*w<i=E{zrm>o1b{22ojP-<`
z`&N2pXsArMA9+0G4F7@qDR++DvQHXEEY8Nh7&cQ(`v)#g`TdA99kp7^Y`2U&XnVcv
zg0q;)<AY2Xe=tHvP5TDdvj-Kluh_<Q><65GV(;aKpMLT4FRxbY-@LDk%$(Cy@i@Ca
z_A^-C59E6Gtn&GjG-aekbuV$gqnPG($<<8x5+|^{e&RaTBiY0^kj@s<lx5{ZBA3eu
z82bZ^^`(oqmT20EsVzBrc;3l40+xTjE9YC*^kR{075OkZ$9@pIANlt`az0$2HNb8{
zoS;9sQ|r~Un~V%7>%A*wx|nshgVRfw#|e!2f-djBFn^<__I?|?ANWTw)*CGEcgo0#
zN0BR4ZN+rj_zQP0?&A!5fewE;FJIO{$DW@bEYJ631Pps_w%x>S(=;)S`uF{ejDW=x
z#>}hx&3Tya%%oGVWn|v~$J_BXVoIL<^MweU<@q^h`TG$WiD;p&88=l-<@qybJTG*_
zr+CM7{m&D{G<x8_5s84|-@x*GTSokqTiCvzAf~VnuslEFx;(#^5%Y?3Ti%QpQ+fZF
zGwl1s&~L?$Ew~Q8SMz&@PcfVS20gitWS0FF=3le#+PxYlZm17A!#<$n`EK0`cr(XR
zOl$I+pB%qKM!@p?pEK4cYtxeSS?qog@4@RgmMQv;krA+dcdhb4<^1}1eq0~^9W1X0
z*?PDn%$_k;+)y8KM*aXD@dNV*e-D=TpZR<uK4QMG|G`bVWm^4N%ja{Qe{QzIdH(#^
zUzndd=Lehjp5Xe0ilQA4PRmF;*Qya$M)P<D#{L4sADwpo;1|c%Uu{pINsp#70(P75
zdEU>WIDwJxM2^^6`G$z8&YbB+PnA~_F#I=I-Y=CAS-ZokrEEUagRADOz04W$7J9W^
z>PyYTGNS)x|FtQUuP<0jS9#Ovy>Wt$`^9?8-xu)p$9zG@{)|0$`NzqT;)eHq{CZdq
z=<@enT$lG7Im_!SmJe6A&Mg`xric$<dHu-sqr*R(U$j$3uCJ8dvSjlI`vD`qgXQlJ
zWkk92Z{2(|F-5!r<Np5Uj4A8lD7zo5$A4q^3uBwN{srcIKESXCu)Kbjk!NLXpX?nj
zZg{`K8Sw^s#ipCaSD$em>jNG04MzS{uw650_b@T-7;RZv5F;aC*ee*%XVkKZUCK}~
zMg9$z*RwJLM*V@~v0h-<1MUa*2p#?iy1d`QpHKdNM@D}3nD=I$G53F9_*XFUd)%MA
zU%>Ad`FJmf($sG3`Q-gQuFLC78G)V>aYwD!#yEj1wLSf2Pn41I>7k*TCSp3oclE3J
zs;dRg>sdJBdxeY~m@#-s{9sleHq?J$_!lthjqS~|g8H!afxiZ0J;8`~INsmSxYMl=
zem(dr=(zslMD5~rL-_sz<N9Fu*Nb0v?@(pqvA@9ZKVYo?@~|h*Gfc%){ys`Z!1B)v
za5nweQ{%T-MqFM@|G0dRm?B>V!=Hk&|8PC5H+Zp{(nr$-83AKGas1zm<Dny7W52-O
zz{p?0*w4+Sx?dv<#Z>-2QAWU+FYwm9c8L`V{CVa5_&DMDVgI<F=IN%<YktO&XU5Al
z!VGx40potbu;=sHg{!^|5YwquuD{cYWCV<O3jPvsGaz}fj2u?Grr(y0hyMh_zk@Ze
z<v;$MFC$*nWd}6bdcmK7F`ve}J+q|)c|HaHTmQOU`OU0XGV=B2Z}N*hAN&DW{=Vmb
z>Udt{J7DC4V1>y~i_bJ!P4e1~^9f<kH+#MD!xm3u0wdl+M?JQA;kB`!`}2MU81@5(
zeKj36?6F5*F-3d<BR>Yi-;De9{?HqJG4*Y8&3yMN*3W2Q`TG*i*gp$Rp8k5*PfW2t
zz&M}4|GvMGk;iY6o4fYm{TZ<Q^G;mH`hQxX+P9pIUw*pm>eg%-0Vlm3a@J&IoWSz$
z4_`%=-*(UnWb-r8V7>K}8fMQ8jQk9Yd<55reSp9H2|T;>CchsXkLNKd{(N%dFBt*<
z^Xc$dh1CMTt~G62TOuPGXPYc|#pWOJ8w`H|Mtz6%M*j&6e-1`}?yT$0MUVBw6#Wx$
z$rj&VK8u!<9i!TgD^(QJ-QoxKYnLw-xbu*+Wijn-NUK3J=B?Yhn6A0iWcZ2ja6xa<
z@CO~dX=~+}f$bJkaAW%4;}wS_K3VoER5-pd-u<jbY2YnBzA?70{gCT(hL8W7RpyGE
zf1dx}>wk|oR#_cfa*QAUHy?66m3H#*|6X^VC^>%pI3NG_@qg=o^Eh|)s3C{=@r`ja
zdj9v?y?lIQ{KLITfyEX+zA?VuS9QVY&3ydd+`X^<@PP;a_xj}fPsUE(%E$kG{NH-v
z-DMsR()jqs_{Z_ZU)sm>@s07>Cax+EqWSp7c<98><04k^@s05To8dDZ{^R_OaaZ;9
z&&3h^{EhLJxpy^>h4Jx?aesfqKZc9>_{P|Af;6RT5Fg(dKTJM&q0K@*zA^59Zs*9K
z{(SuZHBURZd)`ZLe*VU|<Kr>S=6Lb(jq&1)JzK83@$rrEQ~%CGN4xOxfAfvw@0Xl(
z=6Yjnv{5O?a3&w$7?-yTkJEGH;~V46IR-0}?D+V`_;Q~vHmhv;`2TB8a-$0)rttGO
z#w`ye?x?lq;~V2W)7^L0Oyc7k;{loLZ$2B($2Z0=>G*557JPhToOsoD^u#fId}I73
zhE5$lnvZXc%fHPmFdfCmH^%8&U##|z;Nu(P*Td~i_00JAFOy!KNgKwwG5zoHtA;1E
zS2N+qH^vq3eS5Ys=Hvh7M;_AU3WNXm`rqTX%DQVr4C2Q(#`m`@%2zPt;~QgXpY^&w
z`}6UC^GyGX$&dQ}@AbdOUplFN#l8<ezA@hTeazblx_tcqUp_T2<72w^e?Q;f`rll1
zcVq03p8WX6ILqqVw>(WgzA?7D|9<W+4L<&F{^PFtD6QN7Uia!39@4%GAKw`3P4A?<
zN{x?ij0@>Wr#~I|`2TC(e)#JJ$$y-`G1h6-_wxc3en0=$oI1Z%o_ia9{>C^=%m2QM
zG9TX<EB88g__h)s-x!zG#WcIF$j3Lvv#bjY&Nk=c8{@}YD;*Ct<>MRU10FwA_c!6=
z8{?JwtxNX&5efC&-#l?zx~pD2*Bj&JYpPeI{o>;r<1La6_d3<_@s06df6{x^H$J{G
z9;bA8LYwb=d}I7^-GgHawS0VIy!X0Rx#SBU-x!~nx2eUS{}}(@SpNBv5oB7x$Cp8$
zM08QGmD_rUY=K|(H&s08xK`i~ubN-%@1I9b_S#cZ@lHf9Y;t|v<7Ae=FBZn7HW|1{
z;E(1>pYOGnk@b})c0Q{SQJ*jA&(|Ln3q0c0r@I#RQi03kww&5m;zg$Fwz%f>Rzwek
zsC_&4)JkCV69m23a_03zc4Tz$6ZHqxB04SShk0)!cY$YJHGA>1ob%6u&KjL!yh;E2
z-e2w6c$^Pxe(zqgEZFsb=+%Gzth!#s$Ae8&Iybj0w<F*;yAG-pIl7Yhwu1}Kz7o-p
zj>WDjrfvd%7!`4B;XQAGhn9XlQ@Lv{>G+}9v7;3t8mj*8@Xc910v}mad(Ah;otzBU
z9k9P#L_c5tT9Dk@O<><2CBtSsnIo|AovVI&OFhW$Cwr6zvhiQFrUZJoa243cwZd!i
z0M04*IwY-}ZAnyicHWWpgg+lx{`+0CNS#tzWRL$3{oePFBb=qag8t&n@utcxv`Oar
z(;qrL64BttnVJWFdkH$`8~WdD(oe7V=g4U!uJw19wPhkYr)|#dM_y(EV?1=lfq4;!
z2Raawja_fXmWn7bnvv6ey_dj`PUYXq=;TSXe{A2Y$n^9F-HYE@y9;`vIM!jEwTGZD
z*J#o?b%dM1l7D_q@t_ZRu5CUx`o4(D@-LpYI>uRjdfoIdH$4RXhP(dS+~)2Am+#DZ
zHrto$xc@~u>vd}Hh^XR|CEfNqISb?e)+eu18hiVqGx-u+Jf-TUh<5GOZ0^j$DFnwK
zUET6S=LxQY-dR2W*xev^fzOKj*e9O$B1MyzCs*7MQKQI^Jf~Psf#=-|-n6RHU0{Qn
zJF^1@d6I)$=Tx|}@u5@N)fsGX7g+v%<z8e#X_oS%Ya-e|Usg2r7T1TQ?(KVdlCPj^
z&+PwD<F&WI<A%6Cj9%(aT3)oBX?sOPU;g^%7kxR$>lmdJ+uD(of}gvJFR}ae@QTlQ
zYa%e_2l}Rd?!Df7&mjA!2VI$PneSilwLZ_kC+u_;^u+bap|r}CERwWwKYLL`FNF_U
z`Yq30;QNLhmK;6qA+X#&yvTD^*`FXb9y)ln!VevX1Xn@d<SO;F+U8CQ&(-KHyda|T
z?-TSASn_n=<gV|yzH9D@t`9Ta$%C<?pM%fy{RuW-w$ntKYAWb=K3{sd*?AgCo~M$y
zr$|J_0pk{>I(Q3gl)UVwqTU#RF<(v_cIoM{A20fwza;-I`SaC^K$ri2z8873v8m#g
zQzE)FENyCR!W@C+zsERBV4UynkJuOLZ2a37zji$@&?ey0w6K}R(_ICQUO07o^YI=e
zdRdNr`$7>t<@ElM)*m;4FZ6zJsb2xtd-i-Wx_+e>xtY7Qr2Yu@gSWs6sVe=h+~fK<
zb(^ENUwaZgU5S(8aS?T{Su|^2hPS|d^g3P8OZ64_a+G7)(YwB+u!G(%2|GV@F#H#|
zpJZP2=S@CjSIEAlb%#Y%{`;$b0?U7o%wOQ2QMILqC;F2}^HU>h3q-We^`zVQl|BN0
z8@;^hUa^P3s<t0>*F5(o70vYTdmn&*m@jbluycl^6X%m_Ui%MJ<cp~M^Ct5ImcK9J
zx|!cbwL4AygyUhKIKSG3=ouwj=L)**%u5ft&6-QXKi=y7C{IK!vR*%SwDA>qL|OfZ
zDaqaf!ye+-Oq%GjUqq{BEZuWN>O;VC|2ALX>d+Iq`WF7={=UI}E_+4v&Wc#K@;992
zpEu*&%=i841zY{d;mFC0C+rc??bhj+&a3+h>`*;-K+A)31r9m8;dgU4U$XuAUAy8O
z7XPmIXg7PHkHB^%Mh7>1@)CG=K*hq8%X~cIFOF|wkTu1Y%oWDVzn{vB=nPScI=V|l
zwL{E*UXJk;_`tvU2<KTz-L|Lg_93ZBRU`Ifim2M}?a6)adkS3f{IfW`m~%`>==Wm(
zx#ZeO{ZDy2xxIpCjMyCCewDkRn|x{UVxy%g`K)~L^1&<-Examv_U$rf*e7)P?;lPQ
zuD`L==u|~Q{V3d@!L4)Vr`MSX`mH0;){;N2M60U1Z`uwKjaSkRS3l$}aC)I~=IA_6
zf%n@#j<nPCCC1Cw#c8LD=%J=-KG$^g7C2S)pKmDR+~%~+%^fSfiEQh=1?|&Bv|G^N
zE1v6o1jc-5qz$xLmLj5M89VmZhI$il<eyjPV{<vr^=eb7V$08Wbi_Sbn??M5=_{(;
zD@1dJ^SArC$?wc7AEMao$N&X){>Y(<O0O#21jh5`uP#lkOBT^*{vP8;wRRWuik#b~
zJy*{q(DD3WpMK|bK7R5f0hhFkgEomM@)2-OM)L#T6}Yb0Y1`~p>wJarrAz&WFE5xT
zFxC^t7gjEBy3@y=bhRHl%zq=lfAB&dwYMSEL(tbHpSh;c&WD_T=9%rjUPQ4TV0peX
zUeFKb3>~iB)s!r2RZkwR7180wqT8VtT?9sc03G&Zw4rDI?F141o3|csCVF_vhd{^u
zfIm2`F4GM16!fhhdmS<P;V$sb@6$)kY3EIv20Z<BEnY+iwrzX&$wwc7yYzUdx@nWI
zz=+@XhkQ76c@6Ww8=s`7pK&MPk+tnQ{2uB_=J(p%e6)=DyT^)JhhjYhU9aV%DFu(X
zu9FwDzUsM`F#c830iUW@_>z%7ou-<{iD=M@$)2y8`3Q`B2|CvIx6bE^gRvso-sHK$
zGmE(djQsMXwJgkVrHCpV?P(Pj<Uzn*@55K!TF-g!?g6cj_w^%psuWW5*m&%3aG$#`
zJTxv&74*3S--aFNVorAFcABwg1@dKkfj3z$8oO1&OJKxLjQ{uNp{;xb{l<V+Hq%SI
z1<oCs*|K7`CmA!wDad7+h;|wFX7IS7-U7SmtlN6=v75m1?>q7$3jUvz9>lQv(DIH&
zTD-f!@DI?>j8*J7bcG*zIU;_yIvbDY2O~a#&%KEs)W*@B?DXnO)<%mc>Lc(eo$H&=
zo%a^>XtRNHcD3~--fPa>QH~PPno8X!8D%~KD|y{G)p4$^z_3T#j}!ODE)h}Pl68lY
zBBv8@Nx|YComD&qMtm{xiSDV$#%t^g^NRWCOTgr($=p*j{RA#}6>*D%`jR6@4os>G
z7twZ|cgHP=@e&yG3BC0;b*I4>+yx!>0{y+t{N%I4=L$ON<tbUt$qU3Hy3;T?>iBp!
z0+#33J_7&yb;Y?p<f?uD0Et9IOQ%fwrXRt%Wzm8k^(W>CI_Br)2F1z>5szo!-8~Mr
zUHfG!ITUbV@UsvRMSct(>u@-1O4uAhM|~G({GhrlSVWyd%li(j^dR7(gA3l}YWfJ=
zxjb>P*o-scKgMIfg4-<63fPoCl2|zhM%xGR`vv#17~9@x!Bjy%zIT-GidLRPd3ozD
z*8@fLUdLuG%00aWrt{J)%sz2O|6$SO;5-r_qAkAou#Z4`60nO>jHDaooWA2{%-W7V
zWW}56+h^GL4ez_g-ca%u82u9Hm%Sz&QyxA`IG^>UzRLzS`!NdV$9jO}`JE#fB5FJC
z=sZ@>T}`R@9pEZ3>S5>>XTR0AtnngGnhrdY=O?0PUAh>*(D4-*{s4N5(iuf>jD5(L
z)SYF6{YA9C&4PQ+BD@41?iFxS^|6P*p+o8)Ecxz9G)p)1GG+HOxnkJP$En@|!(O1n
z|EKl4IJw_k5tV=cofiSaAAse*2jNAQZu@gQ%U49tU0<T&a@<qkV`~k^m(KGRcxumR
z^6Qrm=@!4cbq{Y5ecp4Hd9C9df$KlI92)$b>zLm`1GEj(*m(JV9!$WKyE#=3e_$)H
zeE$>Sd^jH0+wODVP0%5Gl9SM^I?+Q!5s$zaPnYZ&uIMJBvDEeDjb5{a@$&q*D}ip`
zbXx7l{%)j;W#Ol0t|BUr$1?<dNw;sWOszcy-F0k<+VC_lf#vtZ`Uy9lc-A?KDB|0H
z<3tzn(3iPhB<4qGUC?Y6pBnN-@QjvWlMmYX2>OOQt$cgU^CkM5Ce-`Q6jAJNu!*I~
zxb59t1s(q3kF(QZZzmC5*7U=d_h}vkTyk^esB<}P0wZ66j{E}b7p3u}u*QSDIsJTH
zg`<e77#-cyLyMp9$c$HekF{g<af7Z|b+&%{)JXzkJ#wnT^j&6f{{fcwvnCPn2PNml
zowm**QMqyDP7Wd}Ki^D&i;pI;i0mxz!RPkj5!2ks4(Ig=_Vyx*{2Yw?*PAl?m5m*%
zm;dbt@bRcmpyPaCdH>Cw{OmYC&3d}1;qzXz1jh40m*+#h$*s}|#|hI!R34va3XFd0
zi4iS_7Tb#GuBBJZR*rEM^pUDPhveLHBhYQ^w?{jgc#yTty1YAM!|FY0k#etToRR-P
zM?UU4g0?#}nZ@__kK^uWxe@T1QM54l9p|dm8Sgrsa3`xogY1t^5z(Aeo$l=1<|Z)u
z70}V&(P_T$nh6^}V@7t~Nj+Brwg|ki<yU8CfxjGVTeEkq6Zw8AYQ<o7KS#8S{ax;I
z7F{T`yRghf(5;@fpV~dlmBb(EcQ0!as}I&3d)>Op9Dxs4XX-agaS>Qv56>iF-4EpV
zX5;1mKQ~KY`R74r3;a2<CfnA@g)ARnF*0p}sNw%3XA2yVDcSqswzI%zbH^vu{9yIo
zv6uo4HeTLubP*W+Z0Iw`y&1XTwhJk-%<S7~9Ls+;1O=H}ItuL7T9y-KWF#>5&vxa4
z=PH)mJ{n`EUA|AEC?DS#$CS_Ly=;t#P8hb*$YOV20><_K<`%}QY!(xKe(?GChgV#a
z3?pFq_dR+Eyv6TUhZ|J^0-ssh-E4&<P~hejR=b{kSVRT|h?69v5pRM8miGgKNzjUi
z(vKrWwED;mtMK8A1irb*@|w@fAb|~(UPfqK4I~aOl45Uj5gj$cDnZqTv)tYm3i{%?
zn%y56EhJH!{M-7E5K;O2f&~J1N_10O;29urNAp&*cFbKsT;90PS-|c`zFz|bmj52O
zpTP3p&-D|oM{VPEWcG6fUS4uNf1S6lz*moN3w|)fj||XVy~N#&)t_Z%?<Ph23oQSC
zg?R$Y{i8oAn(DT(jE$G)Benu}b?lW>P&-#(tZx&A>2;~YM0DN3oA38$8xt_%0XWK@
zL^))8k<<O(#;co(=uN3xYpr6=R_B@+&VTGK=;&vxt*%wSZ6cz`cfj_q=-sjL%wIL=
zc)!zWq`pP*5D{IaXLGLC^2r2@`vqspIv(4(g^>ER{aO}mJp3UzKkoPGycr&X-ekhz
z1%JxC$z89rrDU*(%J-|Uz{t;_<9_0|w{CiL5IcYKK+P$xegr%s^U1zXbNmIC_j~<`
znZbadJVW+=aEJ4<^=Y00%lk#%0?WVO)Jxz`;`7tvjeP}{zyF&n@TGoDv}+#DCF@@_
zmu3xM_SevF1J6G#yOz3e7O`uS+C{rRx6l8^*T;7aZ0c)AZg#(SrZ+nu@_TT0?3ctz
zKCFM-prf9V&Csk$?Z^97;5KEhpKN-25^zjTl9^5>XVkCI(ckggt!AFi?sxo@g+B*s
zy9&pno`QbU$S6zg!#vV<w@s(DeMA)V4}HJcRp*`2eu9pA3*)yLt=rW_;z!IZa|$=J
z<K_9ne1Yxed>r_A$pV4%XSTT4d29etQ9dEss3)R0Ke&UWhxCh!h+Ml_wOg6#^8V8z
zVZ4>^qnGonA_e{Uynb|OrwD;(pB-1<qE9G^ualBxx~!jWq_jt4X0X7H)&(UO{Wx3d
zSfpM`Ur557l{FODc%9>+;-^~!1(xUUB7xf+n*Daql`vwXqj9&smx#KuUn7gNk_w!2
zeNg*3(J=zEAGh{3Gmj?EbVCjWX^Cjbr7$hu<52=9IR=k=pUZW*|Kz&-{g6}`ui5W@
z?=Ke7q-4eK#E(5ibj!)g5y5d>AGUbm8IRZ~LD!BN`0O;{oIkL1ao+hzvTbrZs~Sxf
zUkz#}+la#imitG}8tKcURu7FJvb>Fb{MmT<|LaHumj6Gsgv^R{SmfP9M4OH*TGdJ`
zTwr-Wa<RZ;cAQ$ivA;XX-<IrP-&I6keN-tJk|h!t{Z{Dme0dSss?cl5ZFSbq>3gkq
zwOz2l7l;1SfDRE@q;xC1Yj_9=x-|IhwJzw7v-sA)^4}-ox_h$DjTW1Oh3m`nQ_k{w
zhqL_m>q3ZOi|~#UI<xov302)f*9QwsSLAwCuHkHbN5il8NzQ+dSDn{%+=xi7%l%t0
zX<ia{WvrTrdfoA#tNT4f;A7Gb%GxrnCrokvG2nU-IsaMLy|5#DpYh=6xwof-1s+;a
zweyK*h`{ptH-wCij2NWI#<PER8*#>ov;2KPu%O5Kcvc682a{Zfy`#+8czM5)bFJD;
z*}{pOeeFL)%~;48_lx5(KVYp%Dyg0=LrA~lYknHEXa1+8{NTnT!2;uY&?DYoj=gy;
zm~__c@*qb=L~;KA#+Y9mkNF2bT)#YIR1&}5+ly~k4Cxk3W}Pk@QQTJ4@cU390-x-7
zz@^R0U@}g}v#SNu9kf>kxYux=qT;1sp&=6VRiROR3}%bSo;GLnwApxtm_JIIW{U+@
z-k=*iLOE36ut@iP4yKEV^w!O%8g1}CB~;)$g}c*7>2ki%t)jxXE|g5mN$jVt%=#Pu
z_5(O?_R2oq_WWW&A1k}hegQd*DCjm<Zr_U4>z$2P`elX-ymZ+*<0aOd<=_7xA-8`O
z*()oF8oqCUb3pZx{w>~x33{)oreF2?hm&*GTern3viw9_&EHvtb4fyQmqi6(g1)$I
z-L0~;aI*XCopy?Byh)X6{kB-n)-i8ecCX|tf4><{?55O4)i-DF!yiBIp8GOP;Pbn~
zTOD)fI?ksS8sB-bf{2cF%b8<g5>CMK@2B7_|Nk@z8NEN!S;EfWcC&R!{lEx;^S&fJ
zP4waX?yOebA8DkZzsmc$=K2050@v+-ch1%&O5mc0L0_haMv)u&_eXwgDx!8j#y;3!
z&N-)iaL4@yoZptcTeYk>iX@aRyzSRSL|<IG)YIo{w7_rj&KmTb$hkaq>)9rYrGjo0
z;1s-l7iZ7c^XG{&I4>EgrZ=XP^OuLJpKYr-KMM-<+RS1pu3vHU{>Y-2QsTWmTIT&H
zgcd3!^|EUoBQOnJr$1;P*SCiqsyXk*`P;C?C1LlZWQ5OJOZWN^DzAsRzH-Kd+!LF*
z-fj1^c4w||wtF(<@at45(cYF;T~-%DH?KSKv~9Z>fiWJsceh=yhjoY{<rjxV+y4lm
z^3SJ81;+KDhwTZz<q#z$i@&tlbd8Od=O3IOmETa!-OgG5`4K6Za;%5#<?kU>#qNG}
zpS{rn2b~W;mpULuIN$Lbv$GO6^6?qZ^eZNf<a*iRjDr(&IgiP{n(?W747qF}>e-2%
zzo1h>EjcX}xTJLBY^@Z|SWnT7q(tRfc0d32k75XT=${`KWKB7@t&cRCl`kbGw~wkB
zehQ)TeiUb%AG-YWOHxw%b6QT;hY*@;kW{&1UW~wJ*PDunGv~WM?<;(p%z5zkb?-eo
zbH@7Pe6~?npPW3v&!4I6K=&WxjP=EMVLe^SR`h1~gZ*CKz<3_;zTUBy`%BpVF&XnI
z=VJ)1?-^J+xF2WL6{<dOx^Y$<lONUU5$BJRoNoF}*nVp`9`*#zb1braS0yDU2Lvk|
zeHTKDd;IeSqny+CzV}^uT}l?Y8vAap38C(>it8sI<*Y7JUsvz)KY6^KrS?YlCRP4^
zMM}U;m%qGzxJ8V>SWoEPuPmHg;uJ0D*w4@hjy33F-am#66KT%t#LoZgl6p_?ft=;<
z!=!>9U|hEFz-=ix`0!6(#i|f$sbn0{T`@*r+z<4=c6!x%ule|YKh0CYS^oJ*&KSRH
zTl?~6l_B&~*8R}<2q^)-t!{l`WEN-d4x2AM(w357h2)b_uR|!FAKYxes)1$<*AG^C
zB$tkfAr_AuTS;Dp(8J>|2R1Y04F3mx_)6LD?tW4-biiP{x|bmo_5cnloWFC-2(Dv(
zKlp@&2UYO<0f&6Z(r%G0C1Cio6%M+WE1!qZ_4nT!o-mCeVEOxEslf8jUr9;e(LFo8
z*?8CoSj(&DsSfE}SDOFi@d77)ymU)=z27;`F8#M3*S*F$$zVd&%E3}X*UtOs_Ke#H
z82%I-bM27WU~r5uURGJzY}aRg{DA^}%`SJP<ZX{N9!^g}DC`T|WO|O>*CejPzjbkp
z$aa1jLSZjp#1}B;r|3nhhW+D^hWG1I0-n;#r{%_roX^Pg9be3olGuE^4(^XasHpp$
zNdG>Z;V+=y+8WsZntKe%7||o6f{j<JS?0W;Rw^*A4;?)7)&&2{4?}1|VE8c8*-`?=
z{sixjdB4NXM@mLbh$<b=#^d?Hw>EgRU9^bn@P7ddPOq^p<Ms!>;b)qs{8dW8d+TP;
zKVQ!o_Xpje{pT%<3%QPZvg-DBEAk+OI&E&^J3K^6!18*G^O}xouI&P)WaFHoLX&$T
zbm1JuYh7(Q%lrGB-)UNoX`&WG99GVro_8mN`lXxoxELlCc(k?8l}m%TF8_R9G#M~u
zew#hFL+IBQqil}&N(F}fK$m|Wl<Tr*4=bz`IN#H2?&e&=8TPDtE+b5zoge-jTy)Cg
zcIHDV0Y4pW`sTh&O4h2~&(ydPLgk+)<?MgWJIwHVw4htu{n6AZSxO=n&yjAv9zsWT
zHLz7Il9Ih?X{KrHc-Sv=_&ex$Ua<W01pIjSgF`+ZFyXwRu5Cc^xoF}1$hZ17kN%Q)
zHH7MEzg^%dmJ)D8>$2=6{+y9NOdqw-eB-qcI^@bJ>&xq;1f0b_4ccWGXXG;-eOldA
zVdtNiSe&1|KuW;qUw{k${Q@;9i7$Dxy4mFrs$61Gu*rfm_Uq9W5AU=r38B4fPj#sO
z$#vL2bodjn#y{pfNlNa-@9>Ug$HRYs5ud@ZN8AtM9k{;Fl5cCe#R&JiXf2)i=%kc{
z83y@9T?%RVJQio<-_S8XIG;$TJmo?cem>+w&^I*Gko7twB|n#BZU`z4p*S9l^#pf3
zW>vmtrIg&XESR$3d<ez$!LVmA)<YIuA5vKq((ri~DFLTyOjX+|;tczD8?Q33;w;ZU
zz`wp&NUrRW5-|KrXvOkr-t7GC^mEpn87L)SV&SxJ{%FpBpCA4b=Nrm?jb)Ikl$f^F
zs(gATgu<VLRpWau8>bv2=-3~Vvy+tF+5J9IQ(hgY5<|efHaVHyZO<9;>cu8H^Zu#-
zSKPTr^_2C0oFX&I<PjrJxt9@Ak<i8NJ0ZG9$+vV@M$EUHqjKr;O)AD+4UJL;Medi8
z`x6o#%(y%na*q*;2{DoJoHe`8{+xBzdVbq1-?e^!zSjG_Kl^je_ndw9IcI;)7q8dA
zwf<4@6Fk%e7{)tbI6r}5e*nXHy*IY?rpw2~`BlsQ0*3Js7=Hik;hlmm9u*Ys&j&5O
z;xAsGT9~fCM273{>T@ZB!o>LI4^NNk<d{x?7wzAX`7lGQZ)wqC{%dmnSG}skf&%V$
zfaN-j=hi2O{!$_Ox4rQ2oc@KH0K@ei7>?)9vqxu_9}*NWUj(M_Gt>kaey^VWj%;%h
z<0mEA`mOGyCcrQr1H=3g+Qa-67{+&C7{AW#zSYC-prFWTx_52WPVs)Jg<<{=Y<Ku{
z;_WK&*>Sz;*nI~C1>7$I!~7eVzAsag7_S|DhKPQc&jQ2s2^fyQ7e#m7P4@{3m=6NO
zd=wb2hgM0>Wu^P^eis<d=j=Z$yA2R^IRAm+_XR#cj!fL_pe7I>wjUUdPhhzIRZeTr
z>AhD_baky8w&tFi0K@$nFkH{$Uv^3|+$|_zJO;jcCO^yiu9^UMZ+Gyw#|PA8;f~R*
zJMP5!3^0rbz%YM(?)Pe#?hc`)enU-wO}pLp{wzC<F<noV#^S?#3gT6~$oKeWTsqU?
zdZ67nL%BqZ591Xu>>pq_ey<;z*C~6upn&rS80I6uFrGtuIDdd)e*wdM<5c&y&vnH3
zFrEX$cmWLkWsEIYkXkAzV1EI_^BZ7g^wsuP-iXJ0iyzK6;Jzm_zPDS7`l0+jgMRKW
z9`9TFh5oq}=g+_}J^{n|GVq})D`AVEp!Ftd0u1+$z;M5OEoS*!Rk5Ie`aED5|A7Pl
zh;$4KQIn?~KI_pS`sw@CG{z%SlkXf)N+aNZ_1<F0ltkn`JB(T#et=Bt-PEM~ieXjV
zW<deRH!#dsfZ_f!t$Fv%$W4L*jxXT!)5QUo6l$`~rf6@J7!U40KrgNA^FnI{>To{*
z{$IT<kDVN+CX-K`Fb&%%DB$`JoRl_B_+2ZV=`jC%AF|3!xj|5*Ee<}hrzVvE_p7M<
zYU-o;r1qqdPF0bhSX!y)bNYA+(>H$KZv8sHxlE_)LFX{O5fnM}eqa*w+vl8!vrR#+
z&R)5ETy-MTPi8x<7+;h?uJqe@-$(54^_`I}ojWEm9&_2i?)U}N>Hnb$BzaGTkK1}d
zLEmS`Gd@1}WXhqmII`N)A@QQ9)A?Z>(=RRYecnYK%XC-|0siJXo1mB@vCL1`{~*)j
z3FB>DT|3*cZyYIZAKmJ7zWBV$YyVd(n_?N$`CL3>Iv%5+Uf+=?Pdi;VyB#v<50fmO
z9r*#CPsR~oIzAxN`Aj@n-qt&0-&%NnflSvcA;bC)@YCmGajZRkUJysT2R~^vUn3~!
z`o~#}dlRFBDwpYuZA-V>_j?mVHg7nSZj&e8zm<-&Gno<381@I~v>q*vME*Op+b%Ia
z>|bCyUZ76TuQ-yla8*%puFx{SMyBU;EYoQ{T@3Mb+vxvej-UwkIR18UKrG{~PPe<-
zHz3Du_l{Z=5JNUhzB$8qwb1f?$eE1k`}whqVSNO||5$!kRdGIVmB8xVc<k}u{Vju)
z=;v{Gn$S8|;s>VdjYbe)sP6=(@85%%{`2eF4sTWjFs>-bG&!|7m@KU>B#|qGmihoC
zWBU9ljImk5=mA!<#P!-O`OkZMOjWrkgfV?S8^)OaexYQxeR1}Z<$}U8$YI3e$`Hom
zRVDF-_rn=O{Q>x4y)!VZZwC$us<wG#7fyypIQDF}OknG4fm?-FF5jLwmFcjaC3L+-
zq^_6`tS<(J_3mz3WnX8D@p9V_*qXd4oB-4J2Vsoq^Nny4GCce7-0uX%XD<ILh&Yc7
z^@X5AeWq*PKTbC-7M~ZlKT|TVTO<L7^(nw~{eLXUS~eu7agm^CtDo4`Srx|^#uw0O
zKJiS4@c?xCd<%7#wO4=935h2`zD^zu*?2qxH$E}9Xn)>^>Gb>K_M}Jh&6=nzq2>J`
zGMq1<14BGH)A~&-7N6GV_>o4Z`gM_+f`YC$abXPYL01jBFu||JimW@OZC@+;VSPC;
ztWO4BnY??uZ>*98)~~x1x)Ac8!kDgSoyZva%e#NHFfar6507I?E-IA^(9h$BrdAnl
zY3To74E1*^$Nsm@rlOz6{<?lPRq29aO07$qttplS*vfp2yXRh4#;~3i;?eb{?gW_D
zYmO(Qbw=h^qzH<hZLak6s`Fz^e=mQ=^#9SOkhFKoi1K7{{`me@Zr|fd#<wkvcJ$n4
z$(VjW+KqUw-8@w(ZXeWJ1JmzEPGUN(-}58>Kkho{Ec)sH4NPHN^ksVH^gGCO{T}uo
z{>{LLGctl%|M_}DuRq9fWDLLm*CsFD+Rn%Q4gCA8{O0reLkKYV{mP?y9F_Qi>H0EP
z0!-`8Cz0!&^2hI*Bebj^oy-{4YlBYfx0K}B&d%QsnJdm$|EixwhI(nx>Gv}ONOWuG
zHKvI|%m159VeG!caB5lv>TrDkzqiSj++)3im_Oz5pYQUA2Q#MY3;YSWp;OZ<K|KHd
zTA%FBIHdpKSBtbJljPmsx)+Q6t6p#G_-@N2rqlW-)Zu(>rCpeqC*bh{?O}a0=)VrN
zy*Br*k_>QIcD!J=_&#u)uj;+0Qe1yY+xzYx|76P?52n+4@S%*M{nLp4zJ_9du-+MX
zX?;ikD8umt7=GVtXLecT&cfqC&T>DGa~sB2>c?X|9?zYYHf%{8`g!bazVcaCEc$tD
zzx<#7){*#m++4OdBsCi2^SCytua=?2uW>fAclc9<`P6c_Wb}V7Cwz;3O|wVMrfaGh
z82^9q1mSwqnKzTjh_QqB)<p>lTCZcl`02{?W2){>W(>#g7kXr7?R0^y&j+UUWq}0v
z$h@)h>t6+tCROFQNYM}V1;DXt(+(!LLzoWr0-)3D2kP*B7|`kX8A1+yA9DN7G(q7w
zEulW)0<zxg7=sVxq2y=lUt5QLBe42EVC}0GGy8W$9pXbgx<7(he6bjH&fRc~5A(~2
zzG|<k2th&X0YV8d{ay?*d~c$6@VNx9sW=}1Zr8NTF5tC40jA$CP?BNIiXSeEei(0n
z>GvEaGaY`<dzs-K&V>mIx}M9A0Mq-ANsMWIi!V9<<mqE)(NDiOflTX@kRKV_8|0Zx
zB1;T1Qp!Wb=fQu~(<4KB(Bb-Dw5xf8Qz#yfJcfK|y^1Bv55_~#*A>3-8PwN>>GFIt
za(2cHH+N?`tq*o(`O|u4KgRTU@n#JDg<a1XaWok7=kbX3n;Xi4(64F!BI3Z-eSsLC
z$9=UdF4{=)Ia~PQlKB*D&(r1pzsm)Y9T%GgV1II+HK_M!Q~!_G<^En}U;ku08QaU*
z<%QMzUdoTxd475PPvv30hprb$^5^lryVb6_lW=?FyzAf(xhs4>UXQ(RJxJFF{qpv5
zeTeSG@&yyn&(r08=aMlGbtYna9?Rp)IeJuH&_zi+p5Dsw<tQg_>|fqquHVXiK6IWJ
z`gy!PdS`NiC;EB3=JN1>Mi2CBnnwpIFVwkVd>*UTjO*Osj($yZ+sqeXk**k@$B&!M
zF4ef8pU1~f*e<#=9{oJN;ihdICW+7Et)?d<110f!oRj71R6P#!;W00sT%X}FrTLmO
z#^>?CgvJ$KW6{s!FK^6OT^xgc9`oYKbw%fI_g|LeBWEoK9alF=|2#esvHos_6XvUF
z9(67?zswQi^H}LK-oj3SejY#e-Jri~6#9A0>tC+-H~)N&jU;~_A2Zr}rqluR;V~~?
zxt??HWLmL3#^-U$Xty9!iJ!+;%Lde$OZF#^>sJ}R+-ryV@YuI~VAtLfKaby)m>U_6
z#P~cmtuYQWwne|3ZBtig6i9SA|EBxXo178Yo~O(GmsF#!8c5p9S)M;nm-`Q2I=ySf
zaLkX##nzrn^d){CPxx2N2c2OUpT~XHTDoXiqo2pTc%P~VY}9rt7=romxTgH<ow*V}
zk1v=^IMQT=@iom$-Jg2LTVi}3Th|@-jT(%89tZU+U8k}@znnd1FL+cZiN|AJe{%g!
z!mY~CLD)Z!7i)hQsT_cQ9`AQ}mKrz^{hDT8|8l*saCTs|B!3>u+w*vKWagJuX1KjP
z*7LQBaQh1VJick(u+zC8`gv@#tk*WL{^;j1uYb9|=Vj~ZPNo>2$Gm($Rp<4eb+A((
zVuJbdxJSv6n0>v`uW3Fv^!EMIo*19Uf4BeZHEq_I_rmx*&eJO}FYbYUO>^|+9lvep
zj`4Z?cl+P5rHi+jWPkFQ*S}o1eCIsR*ckKYu~E=3lk<$w&*N)r4O0#NiGCheK5jU-
zq8s{ooMvkKqP-#d<;-he8f-RF|NrPuu74`e%sO!~t1ITq<F1__IHq<%zoyxIcfeGw
zFEKukdHrAU9P~|-0mhU2<@%>GFJHM{(#4^7V<*f{(@fetijL}t@p+tF?SA9;f1qE^
z1Exj0)#`t|F84oK_SyZ=FR(q2<?TO}dHu=tT%!R#N<GY1(_C6slu#{+&tq@DxVe|x
zV?LVZrOTWSdr9K+c;-FZ4!*jW50CqGPq)7KIr@2gRM$M+sU7-xyy}vJJ<&lwk4seh
zgUcm;9`pK_>qF`uOw^a;uW3%UK5clkEpD%zi=Rx&_G*JVk3Bjp3@?-TdHmp=#U67l
zjL+k~S8|Q_X``RVO>2t(vr`hE$8(=tZ}sDcS#13yj}MhQ&M<3@`S6&xeR6$SrniY{
zD~!)$UcPcY^Ig<p<3DkGdF*;}t!shA&*NU%TifKl$M`(Hx7#Vtpc(x<PAsgi&1ynF
zkH2$>(9?a3ejXRyxM{IO;^*;!1fPle?=Zfc!?b5t=t%O_G<PS*>Qdfd|8j1(VeHxW
zuRmU2usb<k>kstH+sk!1zijjKrn!>-czk=BpSr0L`{VJMb9aIgBz`%|+w*juU*2BM
z!3VRq*S)~}d7Rs(eM*$XFX!x+iLZWtiSc;4-2Zo(m#^_nV*^u3zH+}@m$UZ4Qwyt~
z;r8(Ohp}y1DJ6b6FWmCo&1>}-kH@ikT@Lz4{QuuPJ#}y|x2Kptk0;jr)O_{{`guGh
zIzQ)f9r}69iznAt9qK;KOA=qxY__Fxf5l_WpU3k2cznX9orRMmzNUG3jFqR&Z<s%i
z(}N379eIR)O|#N;_xv(RK5|x_=wD<j>7U2E?UCz#MH7mhAK>=!SlfJ7H*z2SJkHrO
z@D~$_pT}Nn&pp^F$%n_hcyfJ4qJ4I+dze3u8yjcLS4sRl=EalizSXB93hrV)!2boX
CJ^VfZ

literal 0
HcmV?d00001

diff --git a/data/Scenario.h5 b/data/Scenario.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5ae7586ff9d88b4f6043167b5a9e858f5ed5c4fb
GIT binary patch
literal 7152
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
V^1S=M)}d5BItqT%^55@Ue*w4SVY>hT

literal 0
HcmV?d00001

diff --git a/data/TrainingData.h5 b/data/TrainingData.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7bde2a1c7c4f4d450f386568c94b3ad92fcd3eef
GIT binary patch
literal 17864
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

literal 0
HcmV?d00001

diff --git a/data/TrainingTarget.h5 b/data/TrainingTarget.h5
new file mode 100644
index 0000000000000000000000000000000000000000..13e1e8f17af2f0806e1a1ca28dc53579a8066356
GIT binary patch
literal 1078792
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
zp`8rfWauG7ybOb6cuR&!GR%}=mJG9HSSrKEGOUqdoeUdg_(FyqGJGvVh71Q~_*RDF
zGMtp*lnke3I4{FB8E(t)iwyT=_)UgKGW;cjo1X~oGI+?~EkiyT3dm4IhGH_5l;K$!
zo|B=143%W4EJHOJf@P>JLme3+WQdd@N``0|T8a=a#{S?ZCgAqIPrT#>0tg_000Iag
zfWW^|Aou4D>+660+`#qukpHpIW7f}i{_gWc-PL~T{P^dI$|autJm;zZ@5tQz)>{id
zaissA=Q*C@o%(qHZ~uQsT+fOAt3KB_$aK-48~mUBIoMC2^8x_`5J2F6oPfN~@AHzi
z+j=hiA9oP!Faii5fB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
y0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0toy+75EqE8&XsN

literal 0
HcmV?d00001

diff --git a/data/seismic_data_full_located.h5 b/data/seismic_data_full_located.h5
new file mode 100644
index 0000000000000000000000000000000000000000..650ad34c6cd55146b1718f0413dd181ce6a40c7b
GIT binary patch
literal 1179552
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
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
Q0t5&UAV7e?|Czvl0l>KrIsgCw

literal 0
HcmV?d00001

diff --git a/hm1d/FlowModel.py b/hm1d/FlowModel.py
new file mode 100644
index 0000000..b48817f
--- /dev/null
+++ b/hm1d/FlowModel.py
@@ -0,0 +1,960 @@
+"""
+Flow Models for the HM0/1 classes
+by V. Clasen, A. P. Rinaldi, F. Ciardo (2024)
+"""
+
+import numpy as np
+from scipy.special import expi
+from scipy.special import erfc
+from scipy.optimize import differential_evolution
+from numba import njit
+
+########################################################################################################################
+########################################## ANALYTICAL FLOW MODEL #######################################################
+########################################################################################################################
+
+def Analytical_LineSource_Solution(InjectionStrategy, t_grid, r_grid, h, nu, S, k):
+    """
+    Args:
+        InjectionStrategy (2xNt array): doublets of each consecutive step:
+                                        duration of step and injection rate
+                                        (only Neumann's b.c. at the well)
+        t_grid (Numpy vector): consecutive time moments
+        r_grid (Numpy vector): radii
+        nu (scalar)          : viscosity [Pa s]
+        k (scalar)           : permeability [m]
+        S (scalar)           : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the analytical solution stimulation factor (Numpy vector) for the
+        input time moments and radii
+    """
+    Nt_end = len(t_grid)
+    sol = np.zeros([Nt_end, len(r_grid)])
+    Qsteps = np.array(InjectionStrategy[:, 1])
+    Qsteps[1:] = np.diff(Qsteps)
+    TimeSteps = np.array(InjectionStrategy[:, 0])
+    NumOfSteps = len(Qsteps)
+
+    for step in range(NumOfSteps):
+        JJ = np.where(t_grid > TimeSteps[step])
+        sol[JJ, :] = np.add(sol[JJ, :],
+                            # StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                            #                              Diff))
+                            StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                                                                    h, nu, S, k))
+    return sol
+
+def Analytical_PointSource_Solution(InjectionStrategy, t_grid, r_grid, A, nu, S, k):
+    """
+    Args:
+        InjectionStrategy (2xNt array): doublets of each consecutive step:
+                                        duration of step and injection rate
+                                        (only Neumann's b.c. at the well)
+        t_grid (Numpy vector): consecutive time moments
+        r_grid (Numpy vector): radii
+        k (scalar)           : permeability [m]
+        S (scalar)           : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the analytical solution stimulation factor (Numpy vector) for the
+        input time moments and radii
+    """
+    Nt_end = len(t_grid)
+    sol = np.zeros([Nt_end, len(r_grid)])
+    Qsteps = np.array(InjectionStrategy[:, 1])
+    Qsteps[1:] = np.diff(Qsteps)
+    TimeSteps = np.array(InjectionStrategy[:, 0])
+    NumOfSteps = len(Qsteps)
+
+    for step in range(NumOfSteps):
+        JJ = np.where(t_grid > TimeSteps[step])
+        sol[JJ, :] = np.add(sol[JJ, :],
+                            # StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                            #                              Diff))
+                            StepInjection_Green_Function_pointsource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                                                                        A, nu, S, k))
+    return sol
+
+def StepInjection_Green_Function_linesource(r, t, Q, h, nu, S, k):
+    # def StepInjection_Green_Function_linesource(r, t, Q, Diff, val):
+    """
+    Args:
+        r (Numpy vector): radius of point(s) in meters
+        t (Numpy vector): time moment(s) in seconds
+        Q (scalar)      : source term [m^3/(s)]
+        nu (scalar)     : viscosity [Pa s]
+        k (scalar)      : permeability [m]
+        S (scalar)      : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the 1D analytical solution (Numpy vector) for continuous line source type of injection
+        REF: Wu and Pruess, 2000, IJRMMS, 37, 51-61 -> Theis solution
+        similar with Diff REF: pag. 261, Eq. (2) - book: “Conduction of Heat in Solids” di Carslaw and Jaeger
+    """
+
+    X = expi(-np.matmul(np.reciprocal(t.reshape((-1, 1))), np.square(r.reshape((1, -1)))) * nu * S / k / 4.)
+
+    return (-Q * nu/ (4. * np.pi * k * h) ) * X
+
+def StepInjection_Green_Function_pointsource(r, t, Q, A, nu, S, k):
+    # def StepInjection_Green_Function_linesource(r, t, Q, Diff, val):
+    """
+    Args:
+        r (Numpy vector): radius of point(s) in meters
+        t (Numpy vector): time moment(s) in seconds
+        Q (scalar)      : source term [m^3/(s)]
+        nu (scalar)     : viscosity [Pa s]
+        k (scalar)      : permeability [m]
+        S (scalar)      : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the 1D analytical solution (Numpy vector) for continuous point source type of injection
+        REF: Wu and Pruess, 2000, IJRMMS, 37, 51-61 -> Theis solution
+    """
+
+    xi = np.matmul(np.reciprocal(np.sqrt(t.reshape((-1, 1)))), r.reshape((1, -1))) / (np.sqrt(4. * k / S / mu))
+
+    X = 1./(np.sqrt(np.pi) * xi)*np.exp(-xi**2) - erfc(xi)
+
+    return (Q * nu * r.reshape((1, -1)) / (k * A)) * X
+
+class FlowModel0:
+    """
+        POINT SOURCE MODEL
+
+        Initialization with radius, numpy array with time and flow, as well as
+        crossectional area, model parameters initial guess, and their bounds when used for fitting
+        Model parameters are the storage coefficient (namely porosity times compressibility)
+        and the intrinsic rock permeability
+
+        Simple usage for forward simulation:
+
+        radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+        time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+        time_out = np.linspace(0, 1e8, 2000) # time vector for output, this can be different than time_Q as long as is larger
+        Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+        QQ = np.vstack((time_Q.T,Q.T))
+        S = 1.e-9 # storage
+        k = 1.e-14 # permeability
+        h = 100 #layer thickness
+        rw = 0.15 #radius well
+        A = 2 * np.pi * h * rw # cross sectional area
+        Model = FlowModel1(radius,A,QQ,iniguess=(S, k))
+        Pressure = Model.predict() # numpy vector of pressure solution at time and radius
+
+        Simple usage for inversion:
+
+        radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+        TrainingTarget = 2xN array with the time moment and the pressure in Pa
+        time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+        Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+        TrainingData = np.vstack((time_Q.T,Q.T))
+        h = 100 #layer thickness
+        rw = 0.15 #radius well
+        A = 2 * np.pi * h * rw # cross sectional area
+        Model = FlowModel1(radius,A,TrainingData,bounds=[(1e-15 1e-5), (1e-20, 1e-12)],iniguess=(1e-9, 1e-14))
+        Model.fit(TrainingTarget) # numpy vector of pressure solution at time and radius
+        Pressure = Model.predict()
+
+        For forecasting future pressure after fitting an injection Plan is needed
+        Q2 = Q*2
+        time2 = np.linspace(0, 1e8, 2000) +time[-1]
+        Plan = np.vstack((time2.T,Q2.T)
+        Prediction = Model.predict(Plan)
+        """
+
+    def __init__(self,
+                 Q,  # TrainingData for fitting
+                 r_grid=np.geomspace(0.1, 2000, 30, endpoint=True),
+                 A=90,
+                 nu=1.e-3,
+                 bounds=[(1e-15, 1e-5), (1e-20, 1e-12)],
+                 iniguess=(1e-9, 1e-14)):
+        self.r = r_grid
+        self.A = A
+        self.nu = nu
+        self.Q = Q
+        # self.bounds = np.log10(bounds)
+        self.bounds = bounds
+        self.params = iniguess
+        self.model = Analytical_PointSource_Solution
+
+    def Cost(self, x):
+        S = np.power(10., x[0])
+        k = np.power(10., x[1])
+        _prediction = self.model(self.Q, self.t_target, self.r_target, self.A, self.nu, S, k) + self.observation[0]
+        # _prediction = self.model(self.Q, self.t_target, self.r_target, self.A, S, k)
+        Coeff_R2 = np.sum(np.square(_prediction / 1.e6 - self.observation / 1.e6)) / len(self.observation)
+
+        return Coeff_R2
+
+    def fit(self, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=True,
+            maxiter=100,
+            seed=22,
+            tol=1e-5):
+        """
+        Args:
+            TrainingData (Numpy array) : 2xN array with the time moment and the injection rate until next measurement
+            TrainingTarget(Numpy array): 2xM array with the time moment and pressure measurement
+        Returns:
+
+        """
+        self.t_target = TrainingTarget[:, 0]
+        self.observation = TrainingTarget[:, 1:]
+        self.r_target = self.r[:len(self.observation[0, :])]
+
+        self.iter_results = []
+        result = differential_evolution(self.Cost, self.bounds, popsize=popsize, polish=polish,
+                                        disp=disp, maxiter=maxiter, seed=seed, tol=tol, callback=self.fm_iteration)
+        self.params = np.power(10., result.x[0]), \
+                      np.power(10., result.x[1])
+
+        self.hidden_mechanism = self.predict()
+
+    def fm_iteration(self, xk, convergence):
+        self.iter_results.append(xk)
+
+    def predict(self, Plan=[], ):
+        """
+        Args:
+            Plan (Numpy array) : 2xNf array with the time moment and the injection rate expected from that moment.
+        Returns:
+            (Numpy array) : 2x(Nf+N) array with the time moment and the pressure due to the plan and the training data
+        """
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            t_grid = Plan[:, 0]
+
+        Prediction = self.model(Q, t_grid, self.r, self.A, self.nu, self.params[0], self.params[1]) + self.observation[0]
+        return Prediction
+
+class FlowModel1:
+    """
+    LINE SOURCE MODEL (Theis' solution)
+
+    Initialization with radius, numpy array with time and flow, as well as
+    reservoir thickness, model parameters initial guess, and their bounds when used for fitting
+    Model parameters are the storage coefficient (namely porosity times compressibility)
+    and the intrinsic rock permeability
+
+    Simple usage for forward simulation:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    time_out = np.linspace(0, 1e8, 2000) # time vector for output, this can be different than time_Q as long as is larger
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    QQ = np.vstack((time_Q.T,Q.T))
+    S = 1.e-9 # storage
+    nu = 1.e-3 # viscosity
+    k = 1.e-14 # permeability
+    h = 100 #layer thickness
+    Model = FlowModel1(radius,h,QQ,iniguess=(S, k))
+    Pressure = Model.predict() # numpy vector of pressure solution at time and radius
+
+    Simple usage for inversion:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    TrainingTarget = 2xN array with the time moment and the pressure in Pa
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    TrainingData = np.vstack((time_Q.T,Q.T))
+    h = 100 #layer thickness
+    Model = FlowModel1(radius,h,TrainingData,bounds=[(1e-15 1e-5), (1e-20, 1e-12)],iniguess=(1e-9, 1e-14))
+    Model.fit(TrainingTarget) # numpy vector of pressure solution at time and radius
+    Pressure = Model.predict()
+
+    For forecasting future pressure after fitting an injection Plan is needed
+    Q2 = Q*2
+    time2 = np.linspace(0, 1e8, 2000) +time[-1]
+    Plan = np.vstack((time2.T,Q2.T)
+    Prediction = Model.predict(Plan)
+    """
+
+    def __init__(self,
+                 Q,
+                 r_grid=np.geomspace(0.1, 2000, 30, endpoint=True),
+                 h=100,
+                 nu=1.e-3,
+                 bounds=[(1e-15, 1e-5), (1e-20, 1e-12)],
+                 iniguess=(1e-9, 1e-14)):
+        self.r = r_grid
+        self.h = h
+        self.nu = nu
+        self.Q = Q
+
+        #self.bounds = np.log10(bounds)
+        self.bounds = bounds
+        self.params = iniguess
+        self.model = Analytical_LineSource_Solution
+        # for callback
+        self.best_x = None
+        self.minf = np.inf
+
+    def save_iteration_step(self, x, convergence):
+        """
+        function to save history of parameters and residual during DEA
+        """
+        # check if equal
+        np.testing.assert_equal(x, self.best_x)
+        self.dea_vals.append([np.power(10., x[0]),
+                              np.power(10., x[1])])
+        self.dea_func.append(self.minf)
+        return
+
+    def Cost(self, x):
+        S = np.power(10., x[0])
+        k = np.power(10., x[1])
+        _prediction = self.model(self.Q, self.t_target, self.r_target, self.h, self.nu, S, k)+self.observation[0]
+        #_prediction = self.model(self.Q, self.t_target, self.r_target, self.h, S, k)
+        Coeff_R2 = np.sum(np.square(_prediction / 1.e6 - self.observation / 1.e6)) / len(self.observation)
+
+        if Coeff_R2 < self.minf:
+            self.minf = Coeff_R2
+            self.best_x = x
+
+        return Coeff_R2
+
+    def fit(self, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=True,
+            maxiter=100,
+            seed=22,
+            tol=1e-5):
+        """
+        Args:
+            TrainingData (Numpy array) : 2xN array with the time moment and the injection rate until next measurement
+            TrainingTarget(Numpy array): 2xM array with the time moment and pressure measurement
+        Returns:
+
+        """
+        self.t_target = TrainingTarget[:, 0]
+        self.observation = TrainingTarget[:, 1:]  # gets rid of the column in index nr. 1 (so the second column)
+        self.r_target = self.r[:len(self.observation[0, :])]
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        result = differential_evolution(self.Cost, self.bounds, popsize=popsize, polish=polish,
+                                        disp=disp, maxiter=maxiter, seed=seed, tol=tol, callback=self.save_iteration_step)
+        self.params = np.power(10., result.x[0]), \
+                      np.power(10., result.x[1])
+
+        self.hidden_mechanism = self.predict()
+
+    def predict(self, Plan=[], ):
+        """
+        Args:
+            Plan (Numpy array) : 2xNf array with the time moment and the injection rate expected from that moment.
+        Returns:
+            (Numpy array) : 2x(Nf+N) array with the time moment and the pressure due to the plan and the training data
+        """
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            t_grid = Plan[:, 0]
+        Prediction = self.model(Q, t_grid, self.r, self.h, self.nu, self.params[0], self.params[1]) + self.observation[0]
+        return Prediction
+
+########################################################################################################################
+##################################### NUMERICAL FLOW MODEL #############################################################
+########################################################################################################################
+"""
+Solving the RADIAL diffusion equation using the implicit finite difference (FD) approach with backward difference in 
+time and second order central difference in space.
+"""
+
+def create_con_matrix(n_el):
+    """
+    builds up the connectivity matrix
+    """
+    con_mat = np.zeros((n_el, 2))
+    for m in range(n_el):
+        con_mat[m, 0] = m
+        con_mat[m, 1] = m + 1
+    return con_mat
+
+def times_step_func(i, t):
+    """
+    creates the time steps in case the time stepping is not the same
+    """
+    return t[i+1] - t[i]
+
+def create_radius(r, dr):
+    """
+    creates the radius taking the radial position and half the distance to the next radial position
+    """
+    return r + 0.5 * dr
+
+def tridiag(nx, diag, diag_above, diag_below):
+    L = np.zeros((nx, nx))
+    for k in range(nx-1):
+        L[k, k] = diag[k]
+        L[k, k+1] = diag_above[k]
+        L[k+1, k] = diag_below[k]
+    L[nx-1, nx-1] = diag[nx-1]
+    return L
+
+def Nonuniform_Tridiag(nr, con_mat, D, dt, dr_array, r):
+    """
+    -> solves for the matrix entries for the 1D linear pressure diffusion solution
+    """
+    L = np.zeros((nr, nr))
+    V = np.zeros((nr, nr))
+    for n in range(nr):
+        elements = np.where(con_mat==n)[0]
+        nod_rep = []
+        el = []
+        for e in elements:
+            el.append(int(e))
+            nodes = con_mat[e,:]
+            for l in nodes:
+                if not l == n:
+                    idx = np.where(nodes==l)
+                    nod_rep.append(int(nodes[idx]))
+        if len(el) == 1:
+            el.append(int(el[0]))
+        nod = sorted(list(set(nod_rep)))
+        beta_md = (2 * D[n] * dt) / (dr_array[el[0]] * dr_array[el[1]])
+        L[n, n] = beta_md
+        gamma_md = 0
+        V[n, n] = gamma_md
+        if len(nod) > 1:
+            beta_ld = (2 * D[nod[0]] * dt) / (dr_array[el[0]] * (dr_array[el[0]] + dr_array[el[1]]))
+            L[n, nod[0]] = - beta_ld
+            gamma_ld = (D[nod[0]] * dt) / (r[n] * (dr_array[el[0]] + dr_array[el[1]]))
+            V[n, nod[0]] = gamma_ld
+            beta_ud = (2 * D[nod[-1]] * dt) / (dr_array[el[1]] * (dr_array[el[0]] + dr_array[el[1]]))
+            L[n, nod[-1]] = - beta_ud
+            gamma_ud = (D[nod[-1]] * dt) / (r[n] * (dr_array[el[0]] + dr_array[el[1]]))
+            V[n, nod[-1]] = - gamma_ud
+        else:
+            beta_l_u_d = (2 * D[nod[0]] * dt) / (dr_array[el[0]]**2)
+            L[n, nod[0]] = - beta_l_u_d
+        del el, nod_rep
+    V[-2, -1] = 0
+    V[-1, -2] = 0
+    V[-1, -1] = 0
+    I = np.identity(nr)
+    return I + L + V
+
+def Numerical_Functions_Kf_change(sigma_n, pn, K_n, ap_0, ap_res, fr_s, dt, S, nu, dr_array, nr, q_f, con_mat, r):
+    """
+    -> solves for the pressure solution for one timestep for the radial problem including changes in permeability
+    """
+    q_inj = np.zeros(nr)
+    sigma_n_eff = sigma_n - pn
+    enc_rev = sigma_n_eff/(K_n + sigma_n_eff/(ap_0 - ap_res))
+    wh = ap_0 - enc_rev
+    kf = (wh**3)/(12*fr_s)
+    kf_max = (ap_0**3)/(12 * fr_s)
+    if np.any(sigma_n_eff < 0.):
+        idx = np.where(sigma_n_eff < 0.)
+        kf[idx] = kf_max
+    q_inj[0] = q_f / (wh[0] * np.min(r)**2 * np.pi * S)
+    b = q_inj * dt + pn
+    D = kf / (S * nu)
+    L = Nonuniform_Tridiag(nr, con_mat, D, dt, dr_array, r)
+    pres = np.linalg.solve(L, b)
+    return pres
+
+def Numerical_RadialSolution_Kf_invariable(S, kf, q_f, dt, nu, dr_array, nr, n_el, h, r, nt):
+    """
+    -> final pressure solution for all timesteps for radial problem excluding changes in permeability
+    """
+    q_inj = np.zeros(nr)
+    p0 = np.zeros(nr)
+    p_num = np.zeros((nt,nr))
+    kf = np.full_like(q_inj, kf)
+    pn = p0
+    con_mat = create_con_matrix(n_el)
+    for i in range(nt):
+        q_inj[0] = q_f[i] / (h * np.min(r)**2 * np.pi * S)
+        b = q_inj * dt + pn
+        D = kf / (S * nu)
+        L = Nonuniform_Tridiag(nr, con_mat, D, dt, dr_array, r)
+        p_num_step = np.linalg.solve(L, b)
+        p_num[i] = p_num_step
+        pn = p_num_step
+    return p_num
+
+def Numerical_RadialSolution_Kf_variable(ap_0, ap_res, K_n, S, sigma_n, fr_s, dt, nu, dr_array, nr, n_el, q_f, r, nt):
+    """
+    -> final pressure solution for all timesteps for radial problem including changes in permeability
+    """
+    p0 = np.zeros(nr)
+    p_num = np.zeros((nt, nr))
+    pn = p0
+    con_mat = create_con_matrix(n_el)
+    for i in range(nt):
+        p_num_step = Numerical_Functions_Kf_change(sigma_n, pn, K_n, ap_0, ap_res, fr_s, dt, S, nu, dr_array,
+                                                   nr, q_f[i], con_mat, r)
+        p_num[i] = p_num_step
+        pn = p_num_step
+    return p_num
+
+class FlowModel2:
+    """
+    ADD DESCRIPTION: same as FlowModel3, but without permeability changes (read below)
+    """
+    def __init__(self,
+                 Q,
+                 r_grid,
+                 h,
+                 params_fix,
+                 bounds=[(1e-15, 1e-5), (1e-20, 1e-12)],
+                 iniguess=(1e-9, 1e-14)):
+        self.r = r_grid
+        self.h = h
+        self.params_fix = params_fix
+        self.Q = Q
+
+        #self.bounds = np.log10(bounds)
+        self.bounds = bounds
+        self.params = (params_fix['storage'],
+                       params_fix['permeability'])
+        self.model = Numerical_RadialSolution_Kf_invariable
+
+    def translate_training(self, TrainingData, TrainingTarget, params_fix):
+
+        self.observation = TrainingTarget[:, 1]
+        self.Q = TrainingData[:, :2]
+
+        Q = TrainingData[:, 1]
+        t_grid = TrainingData[:, 0]
+        self.t_grid = t_grid
+        dt = abs(t_grid[0] - t_grid[1])
+        nt = len(t_grid)
+        r_grid = self.r # node positions (radial)
+        dr_array = np.diff(r_grid) # spacing between nodes
+        nr = len(r_grid) # number of nodes
+        n_el = len(dr_array) # number of elements
+
+        nu = np.power(10., params_fix['viscosity'])
+
+        self.args = (Q, dt, nu, dr_array, nr, n_el, self.h, r_grid, nt)
+
+        return
+
+    def Cost(self, x, porosity, Q, dt, nu, dr_array, nr, n_el, h, r, nt):
+        S = np.power(10., x[0])
+        kf = np.power(10., x[1])
+        p_num = self.model(S, kf, porosity, Q, dt, nu, dr_array, nr, n_el, h, r, nt)
+        p_pred = p_num[:,0] + self.observation[0]
+        Coeff = np.sum(np.square(p_pred/1.e6 - self.observation/1.e6))/len(self.observation)
+
+        return Coeff
+
+    def fit(self, TrainingData, TrainingTarget):
+
+        self.translate_training(TrainingData, TrainingTarget, self.params_fix)
+
+        self.result = differential_evolution(func=self.Cost, bounds=self.bounds, args=self.args,
+                                             maxiter=100, popsize=10, polish=True, disp=True)
+        self.params = np.power(10., self.result.x[0]), \
+                      np.power(10., self.result.x[1])
+
+        self.hidden_mechanism = self.predict()
+
+    def predict(self, Plan=[],):
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            #Q = Plan[:,1]
+            t_grid = Q[:,0]
+            self.args = list(self.args)
+            self.args[1] = Q[:,1]
+            self.args[2] = abs(t_grid[0] - t_grid[1])
+            self.args[-1] = len(t_grid)
+        #r_grid = self.r
+        pres_num = self.model(self.params[0], self.params[1], self.args[0], self.args[1], self.args[2], self.args[3],
+                              self.args[4],  self.args[5], self.args[6], self.args[7], self.args[8], self.args[9])
+        if len(self.Q) < len(pres_num):
+            Prediction = pres_num[len(self.Q):,:] + self.observation[0]
+        else:
+            Prediction = pres_num + self.observation[0]
+        return Prediction
+
+class FlowModel3:
+    """
+    ADD DESCRIPTION
+    """
+
+    def __init__(self,
+                 Q,
+                 r_grid,
+                 h,
+                 params_fix,
+                 bounds=[(1e-5, 1e-2), (1e-9, 1e-5), (8, 14), (-11, -7)],
+                 iniguess=(1e-4, 1e-8, 1e11, 1e-8)):
+        self.r = r_grid
+        self.h = h
+        self.params_fix = params_fix
+        self.Q = Q
+
+        #self.bounds = np.log10(bounds)
+        self.bounds = bounds
+        self.params = (params_fix['zero_stress_aperture'],
+                       params_fix['residual_aperture'],
+                       params_fix['frac_normal_stiffness'],
+                       params_fix['storage'])
+        self.model = Numerical_RadialSolution_Kf_variable
+
+    def translate_training(self, TrainingData, TrainingTarget, params_fix):
+
+        self.observation = TrainingTarget[:, 1]
+        self.Q = TrainingData[:, :2]
+
+        Q = TrainingData[:, 1]
+        t_grid = TrainingData[:, 0]
+        self.t_grid = t_grid
+        dt = abs(t_grid[0] - t_grid[1])
+        nt = len(t_grid)
+        r_grid = self.r # node positions (radial)
+        dr_array = np.diff(r_grid) # spacing between nodes
+        nr = len(r_grid) # number of nodes
+        n_el = len(dr_array) # number of elements
+
+        sigma_n = params_fix['fix_normal_stress'] * (1e6)
+        fr_s = np.power(10., params_fix['frac_spacing'])
+        nu = np.power(10., params_fix['viscosity'])
+
+        self.args = (sigma_n, fr_s, dt, nu, dr_array, nr, n_el, Q, r_grid, nt)
+
+        return
+
+    def Cost(self, x, porosity, sigma_n, fr_s, dt, nu, dr_array, nr, n_el, Q, r_grid, nt):
+        # parameters to be calibrated
+        ap_0 = np.power(10., x[0])     # aperture at zero stress
+        ap_res = np.power(10., x[1])   # residual aperture
+        K_n = np.power(10., x[2])      # fracture normal stiffness
+        S = np.power(10., x[3])        # storage
+        p_num = self.model(ap_0, ap_res, K_n, S, porosity, sigma_n, fr_s, dt, nu, dr_array, nr, n_el, Q, r_grid, nt)
+        p_pred = p_num[:,0] + self.observation[0]
+        Coeff_R2 = np.sum(np.square(p_pred/1.e6 - self.observation/1.e6))/len(self.observation)
+
+        return Coeff_R2
+
+    def fit(self, TrainingData, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=True,
+            maxiter=100,
+            seed=22,
+            tol=1e-5):
+
+        self.translate_training(TrainingData, TrainingTarget, self.params_fix)
+
+        self.result = differential_evolution(self.Cost, self.bounds, args=self.args, popsize=popsize, polish=polish,
+                                             disp=disp, maxiter=maxiter, seed=seed, tol=tol)
+        self.params = np.power(10., self.result.x[0]), \
+                      np.power(10., self.result.x[1]), \
+                      np.power(10., self.result.x[2]), \
+                      np.power(10., self.result.x[3])
+
+        self.hidden_mechanism = self.predict()
+
+    def predict(self, Plan=[],):
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            #Q = Plan[:,1]
+            t_grid = Q[:,0]
+            self.args = list(self.args)
+            self.args[-3] = Q[:,1]
+            self.args[3] = abs(t_grid[0] - t_grid[1])
+            self.args[-1] = len(t_grid)
+        #r_grid = self.r
+        pres_num = self.model(self.params[0], self.params[1], self.params[2], self.params[3], self.args[0], self.args[1],
+                              self.args[2], self.args[3], self.args[4], self.args[5], self.args[6], self.args[7],
+                              self.args[8], self.args[9], self.args[10])
+        if len(self.Q) < len(pres_num):
+            Prediction = pres_num[len(self.Q):,:] + self.observation[0]
+        else:
+            Prediction = pres_num + self.observation[0]
+        return Prediction
+
+"""
+Solving the RADIAL diffusion equation using the implicit finite volume (FV) approach.
+"""
+
+@njit(nopython=True) # activate NUMBA
+def flow_model_nonlinear(params, Rw, Np, nu, h, q_f, S, t, dr, x):
+    # Here we unpack the parameters
+    sigma_n = params[0]         # fixed normal stress
+    K_n = params[1]             # fracture normal stiffness
+    a_el_max = params[2]        # maximum or zero-stress fracture aperture
+    a_res = params[3]           # residual fracture aperture
+    fr_s = params[4]            # fracture spacing
+    a_shear_f = params[5]       # constant shearing aperture factor
+    a_shear_max = params[6]     # maximum shearing aperture
+    p_t = params[7]             # threshold pressure
+    alpha = params[8]           # scaling factor for shearing aperture magnitude
+    w = params[9]               # weighting parameter for numerical stability
+    # setting up empty matrix diagonals and the variables to store
+    lwd = np.zeros(Np, dtype=float)
+    md = np.zeros(Np+1, dtype=float)
+    upd = np.zeros(Np, dtype=float)
+    b = np.zeros(Np+1, dtype=float)
+    pres_step = np.zeros(Np+1, dtype=float)
+    kf_var = np.zeros((len(t), Np+1), dtype=float)
+    a_vals_1 = np.zeros((len(t), Np+1), dtype=float)
+    a_vals_2 = np.zeros((len(t), Np+1), dtype=float)
+    phi_vals = np.zeros((len(t), Np+1), dtype=float)
+    pres_cum = np.zeros((len(t), Np+1), dtype=float)
+    pres_total = np.zeros((len(t), Np+1), dtype=float)
+    # # # set an array full of phi:
+    phi = np.full(len(pres_step), 1)
+    phi_ = phi # delete this to include porosity changes
+    # # DETECT SHUT-IN #
+    # v_inj = np.cumsum(np.maximum(q_f[1:], 0) * np.diff(t))
+    # t_shut = t[np.argmax(np.round(v_inj, decimals=5)) + 1]
+    # idx_shut = np.where(t_shut==t)[0][0]
+    # S_shut = S * 100
+    for t_step in range(len(t)):
+        # print(t_step)
+        # dt = times_step_func(t_step, t)
+        dt = abs(t[1] - t[0])
+        if dt==0:
+            continue
+        # PERMEABILITY CHANGES DUE TO FRACTURE APERTURE VARIATION #
+        # Elastic fracture aperture #
+        sigma_n_eff = sigma_n - pres_step # effective normal stress
+        a_el = sigma_n_eff / (K_n + sigma_n_eff/(a_el_max - a_res))  # reversible elastic normal closure
+        # mask for all normal effective stress equal to zero or negative
+        mask1 = sigma_n_eff <= 0
+        a_el[mask1] = 0.0
+        # Shearing fracture aperture #
+        if t_step==0:
+            pres_cum[t_step] = pres_step
+            a_vals_2[t_step] = np.zeros_like(pres_step)
+            # PRESSURE DEPENDENT PROSITY CHANGES #
+            # phi_ = phi.copy()
+            # Cp = S / phi0[0]
+        else:
+            # set new pressure array
+            pres_update = np.copy(pres_cum[t_step-1])
+            # create an array full of zeros
+            sf2 = np.zeros_like(pres_step)
+            # mask if pressure increases w.r.t. the previous time step
+            mask2 = (pres_step - pres_update) / dt > 0
+            # modify the array to mimick the step function with mask2
+            sf2[mask2] = 1
+            # create an array full of zeros
+            sf3 = np.zeros_like(pres_step)
+            # mask if pressure is above the threshold value
+            mask3 = pres_step > p_t
+            # modify the array to mimick the step function with mask3
+            sf3[mask3] = 1
+            a_shear = a_shear_f * sf2 * sf3 * (1 + alpha * (pres_step - pres_update))
+            # mask if new (cumulated) shearing aperture is above threshold
+            mask4 = (a_vals_2[t_step-1] + a_shear) > a_shear_max
+            # modify the array to mimick the step function with mask4
+            a_shear[mask4] = 0
+            # add time step contribution to the shear aperture history
+            a_vals_2[t_step] = a_vals_2[t_step-1] + a_shear
+            # apply the smoothing factor for numerical stability (here only for a_el)
+            a_el = (1 - w) * a_vals_1[t_step - 1] + w * a_el
+            # # PRESSURE DEPENDENT POROSITY CHANGES #
+            # phi_ = phi * S * (pres_step - pres_update)
+            # phi_ = phi + phi_
+        # print(f'{phi_[0], t_step, pres_step[0]/1.e6, S}')
+        # phi_vals[t_step] = phi_
+        # compute the total fracture aperture
+        a = a_el_max - a_el + a_vals_2[t_step]
+        # save the history of the fracture aperture contributions
+        a_vals_1[t_step] = a_el
+        # a_vals_2[t_step] = a_shear
+        kf = (a**3)/(12*fr_s)
+        # save the permeability history
+        kf_var[t_step] = kf
+        # boundary conditions at injection point
+        md[0] = - kf[0] * 2 * np.pi * Rw * h / (nu * dr[0]) + (S * phi_[0])/dt
+        upd[0] = kf[0] * 2 * np.pi * Rw * h / (nu * dr[0])
+        b[0] = - q_f[t_step] + (S * phi_[0]) * pres_step[0] / dt
+        for j in range(1, Np):
+            r = (x[j-1] + 0.5 * dr[j-1]) * dt
+            lwd[j-1] = kf[j-1] * (r - 0.5 * dr[j-1]) / (nu * dr[j-1] * dr[j-1])
+            md[j] = - ((2. * kf[j-1] * r) / (nu * dr[j-1] * dr[j-1]) + (r * (S * phi_[j-1]) / dt))
+            upd[j] = kf[j-1] * (r + 0.5 * dr[j-1]) / (nu * dr[j-1] * dr[j-1])
+            b[j] = - r * (S * phi_[j]) * pres_step[j] / dt
+        # boundary conditions at the far field
+        lwd[Np-1] = 0.
+        md[Np] = 1.
+        upd[Np-1] = 0.
+        b[Np] = 0.
+        # Setting up the matrix and solving the system of linear equations
+        L = np.zeros((Np+1, Np+1))
+        for k in range(Np):
+            L[k, k] = md[k]
+            L[k, k+1] = upd[k]
+            L[k+1, k] = lwd[k]
+        L[Np, Np] = md[Np]
+        # if np.linalg.det(L)==0.0:
+        #     pdb.set_trace()
+        pres_step = np.linalg.solve(L, b)
+        # store the new pressure step
+        pres_total[t_step] = pres_step
+        # print(S)
+
+    return pres_total, kf_var, a_vals_1, a_vals_2, phi_vals
+
+class FlowModel4:
+    """
+    ADD DESCRIPTION
+    """
+
+    def __init__(self,
+                 Q,
+                 r_grid,
+                 h,
+                 params_fix,
+                 # bounds=[(1e-5, 1e-2), (1e-8, 1e-5), (1e-7, 1e-3), (1e-10, 1e-6), (-11, -7)],
+                 bounds=[(1e-5, 1e-2), (1e-8, 1e-5), (1e-8, 1e-4), (1e-6, 1e-4), (1e-12, 1e-7), (-11, -7)],
+                 # iniguess=(1e-5, 1e-6, 5e-6, 1e-8, 1e-9),
+                 iniguess=(4e-5, 1e-5, 5e-7, 2e-5, 3e-10, 1e-9),
+                 forward_model=False):
+        self.r = r_grid
+        self.h = h
+        self.params_fix = params_fix
+        self.Q = Q
+        self.bounds = bounds
+        self.params = iniguess
+        self.model = flow_model_nonlinear
+        # for callback
+        self.best_x = None
+        forward_model_ = forward_model,
+        self.forward_model = forward_model_[0]
+        self.minf = np.inf
+
+    def save_iteration_step(self, x, convergence):
+        """
+        function to save history of parameters and residual during DEA
+        """
+        # check if equal
+        #np.testing.assert_equal(x, self.best_x)
+        self.dea_vals.append([np.power(10., x[0]),
+                              np.power(10., x[1]),
+                              np.power(10., x[2]),
+                              np.power(10., x[3]),
+                              np.power(10., x[4]),
+                              np.power(10., x[5])])
+        self.dea_func.append(self.minf)
+        return
+
+    def translate_training(self, TrainingData, TrainingTarget, params_fix):
+
+        self.observation = TrainingTarget[:, 1]
+        self.Q = TrainingData[:, :2]
+
+        Q = TrainingData[:, 1]
+        t_grid = TrainingData[:, 0]
+        self.t_grid = t_grid
+        # r_grid = self.r # node positions (radial)
+        # dr_array = np.diff(r_grid) # spacing between nodes
+        # nr = len(r_grid) - 1 # number of nodes minus one (which is equal to the number of elements)
+
+        self.damping = params_fix['damping_parameter']
+        pt = params_fix['threshold_pressure'] * (1e6) - self.observation[0]
+        sigma_n = params_fix['fix_normal_stress'] * (1e6)
+        fr_s = params_fix['frac_spacing']
+        nu = np.power(10., params_fix['viscosity'])
+        K_n = np.power(10., params_fix['frac_normal_stiffness'])
+
+        self.args = (sigma_n, fr_s, K_n, t_grid, nu, np.diff(self.r), len(self.r) - 1, Q, self.r, self.h, self.damping, pt)
+
+        return
+
+    def Cost(self, x, sigma_n, fr_s, K_n, t, nu, dr, nr, Q, r, h, w, pt):
+        # parameters to be calibrated
+        a_max = np.power(10., x[0])             # aperture at zero stress
+        a_res = np.power(10., x[1])             # residual aperture
+        # a_shear_init = np.power(10., x[2])      # shear initial aperture
+        # gamma = np.power(10., x[3])             # shearing damping factor
+        a_shear_f = np.power(10., x[2])         # constant shearing aperture factor
+        a_shear_max = np.power(10., x[3])       # maximum threshold for shearing aperture
+        alpha = np.power(10., x[4])             # pressure difference scaling factor on shearing
+        S = np.power(10., x[5])                 # storage
+        # params = (sigma_n, K_n, a_max, a_res, fr_s, a_shear_init, gamma, w)
+        params = (sigma_n, K_n, a_max, a_res, fr_s, a_shear_f, a_shear_max, pt, alpha, w)
+        p_num = self.model(params, r[0], nr, nu, h, Q, S, t, dr, r)[0]
+        p_pred = p_num[:,0] + self.observation[0]
+        Coeff_R2 = np.sum(np.square(p_pred/1.e6 - self.observation/1.e6))/len(self.observation)
+
+        if Coeff_R2 < self.minf:
+            self.minf = Coeff_R2
+            self.best_x = x
+
+        return Coeff_R2
+
+    def fit(self, TrainingData, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=True,
+            maxiter=20,
+            seed=22,
+            tol=1e-5):
+
+        self.translate_training(TrainingData, TrainingTarget, self.params_fix)
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        self.result = differential_evolution(self.Cost, self.bounds, args=self.args, popsize=popsize, polish=polish,
+                                             disp=disp, maxiter=maxiter, seed=seed, tol=tol, updating='immediate', callback=self.save_iteration_step)
+
+        self.params = np.power(10., self.result.x[0]), \
+                      np.power(10., self.result.x[1]), \
+                      np.power(10., self.result.x[2]), \
+                      np.power(10., self.result.x[3]), \
+                      np.power(10., self.result.x[4]), \
+                      np.power(10., self.result.x[5])
+
+        self.hidden_mechanism = self.predict()
+
+    def predict(self, Plan=[],):
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            if self.forward_model==True:
+                if len(Q) <= 1:
+                    Q = Plan
+                else:
+                    Q = np.vstack((Q, Plan))
+            else:
+                Q = np.vstack((Q, Plan))
+            t_grid = Q[:,0]
+            self.args = list(self.args)
+            self.args[3] = t_grid
+            self.args[7] = Q[:,1]
+
+        # params = (self.args[0], self.args[2], self.params[0], self.params[1], self.args[1], self.params[2], self.params[3], self.args[10])
+        # pres_num, self.param_evol_fit_1, self.param_evol_fit_2, self.param_evol_fit_3 = self.model(params, self.args[8][0], self.args[6], self.args[4],
+        #                                                                                self.h, self.args[7], self.params[4], self.args[3],
+        #                                                                                self.args[5], self.args[8])
+
+        params = (self.args[0], self.args[2], self.params[0], self.params[1], self.args[1], self.params[2], self.params[3], self.args[11], self.params[4], self.args[10])
+        pres_num, self.param_evol_fit_1, self.param_evol_fit_2, self.param_evol_fit_3, self.param_evol_fit_4 = self.model(params, self.args[8][0], self.args[6], self.args[4],
+                                                                                       self.h, self.args[7], self.params[5], self.args[3],
+                                                                                       self.args[5], self.args[8])
+
+        self.param_evol_pred_1 = self.param_evol_fit_1[len(self.Q):, :]
+        self.param_evol_pred_2 = self.param_evol_fit_2[len(self.Q):, :]
+        self.param_evol_pred_3 = self.param_evol_fit_3[len(self.Q):, :]
+        self.param_evol_pred_4 = self.param_evol_fit_4[len(self.Q):, :]
+
+        if len(self.Q) < len(pres_num):
+            if self.forward_model==False:
+                Prediction = pres_num[len(self.Q):,:] + self.observation[0] # somehow this was a solution before but now it is wrong! (20.08.2024)
+            else:
+                Prediction = pres_num + self.observation[0]
+        else:
+            Prediction = pres_num + self.observation[0]
+        return Prediction
\ No newline at end of file
diff --git a/hm1d/SeismicityModel.py b/hm1d/SeismicityModel.py
new file mode 100644
index 0000000..d571d2f
--- /dev/null
+++ b/hm1d/SeismicityModel.py
@@ -0,0 +1,305 @@
+"""
+Seismicity Models for the HM0/1 classes
+by V. Clasen, A. P. Rinaldi, D. Karvounis (2024)
+"""
+
+import numpy as np
+from scipy.stats import foldnorm
+import random
+from numba import njit
+
+"""
+CAPS model
+"""
+def Caps_Model_linear(Moments, Edges, MidEdges, max_pressure, CapsSettings, NSim, retriggering=False):
+    # get and rename parameters
+    sigma1_mean = CapsSettings['inter_sigma1']
+    sigma3_mean = CapsSettings['inter_sigma3']
+    sigma1_std = CapsSettings['sigma1_std']
+    sigma3_std = CapsSettings['sigma3_std']
+    cohesion = CapsSettings['cohesion_mean']
+    # cohesion_std = CapsSettings['cohesion_std']
+    mu = CapsSettings['friction_mean']
+    # mu_std = CapsSettings['friction_std']
+    # crit = CapsSettings['criticallity']
+    stressdrop_coeff = CapsSettings['stressdrop_coeff']
+    p_hydro = CapsSettings['phydro']
+    seed_density = CapsSettings['seed_density']
+    dw = CapsSettings['CAPS_sigma_distr']
+
+    # parameter uncertainties
+    if NSim > 1:
+        sigma1 = np.random.normal(loc=sigma1_mean, scale=0.2*sigma1_mean*dw, size=NSim)
+        sigma3 = np.random.normal(loc=sigma3_mean, scale=0.2*sigma3_mean*dw, size=NSim)
+    else:
+        sigma1 = np.array([sigma1_mean])
+        sigma3 = np.array([sigma3_mean])
+
+    total_events_all = np.zeros((NSim, len(Moments)))
+    total_rates_all = np.zeros((NSim, len(Moments) - 1))
+
+    for nrun in range(NSim):
+        theta_opt = np.pi / 4. + np.arctan(mu) / 2.
+
+        sigma_n_eff = (sigma1[nrun] + sigma3[nrun]) / 2. + ((sigma1[nrun] - sigma3[nrun]) / 2.) * np.cos(2 * theta_opt) - p_hydro
+        tau = np.abs(((sigma1[nrun] - sigma3[nrun]) / 2.) * np.sin(2 * theta_opt))
+
+        # if crit!=0:
+        #     # attempt to account for criticallity definition
+        #     min_fail_pres = cohesion / (mu - crit) + sigma_n_eff - tau / (mu - crit)
+        #     min_fail_pres_std = np.sqrt(
+        #        (np.square(sigma1_std) * np.square((1 + np.cos(2 * theta_opt) - np.sin(2 * theta_opt) / (mu - crit)) / 2.))
+        #         + np.square(sigma3_std) * np.square((1 - np.cos(2 * theta_opt) + np.sin(2 * theta_opt) / (mu - crit)) / 2.))
+        #
+        #     crit_check = NormalDist(mu=min_fail_pres, sigma=min_fail_pres_std).cdf(0) <= 0.05
+        #
+        #     n_crit = crit + crit/10
+        #     while crit_check == False:
+        #         tau_temp = tau
+        #         if (sigma_n_eff - min_fail_pres) > 0:
+        #             tau = np.abs(cohesion + (mu - n_crit) * (sigma_n_eff - min_fail_pres))
+        #             sigma_n_eff = min_fail_pres + (tau_temp - cohesion) / (mu - n_crit)
+        #         else:
+        #             tau = np.abs(cohesion + (mu + n_crit) * (sigma_n_eff - min_fail_pres))
+        #             sigma_n_eff = min_fail_pres + (tau_temp - cohesion) / (mu + n_crit)
+        #         min_fail_pres_temp = min_fail_pres
+        #         min_fail_pres = cohesion / (mu - crit) + sigma_n_eff - tau / (mu - crit)
+        #         if (min_fail_pres - min_fail_pres_temp) < 1.e-5:
+        #             # print('Error: tau cannot get lower than cohesion: criticallity criterion is not met.')
+        #             break
+        #         crit_check = NormalDist(mu=min_fail_pres, sigma=min_fail_pres_std).cdf(0) <= 0.05
+        #         n_crit = n_crit + crit / 10
+
+        fail_pres_mean = cohesion / mu + sigma_n_eff - tau / mu
+        # the standard deviation is calculated differently -> check this -> different than for criticallity
+        fail_pres_std = np.sqrt(
+           (np.square(sigma1_std) * np.square((1 + np.cos(2 * theta_opt) - np.sin(2 * theta_opt) / mu) / 2.))
+            + np.square(sigma3_std) * np.square((1 - np.cos(2 * theta_opt) + np.sin(2 * theta_opt) / mu) / 2.))
+
+        # differential stress:
+        #sigma_d = sigma1_eff - sigma3_eff
+
+        # scaling
+        seed_number = int(seed_density * np.max(Edges))
+        seed_spacebin = seed_number / len(MidEdges)
+
+        fn_cdf = np.zeros_like(max_pressure)
+        fn_cdf_rt = np.zeros_like(max_pressure)
+        tau_array = np.zeros((len(max_pressure[:,0])+1))
+        tau_array[0] = tau
+        for tt in range(len(Moments)):
+            fn_cdf[tt,:] += foldnorm.cdf(max_pressure[tt,:], np.abs(fail_pres_mean)/fail_pres_std, loc=0, scale=fail_pres_std)
+            if retriggering==True:
+                stressdrop = stressdrop_coeff * ((tau_array[tt] - cohesion) / mu)
+                if np.max(max_pressure[tt, :]) - fail_pres_mean > 0:
+                    tau_array[tt + 1] = tau_array[tt] - (
+                                stressdrop + mu * (np.max(max_pressure[tt, :]) - fail_pres_mean))
+                else:
+                    tau_array[tt + 1] = tau_array[tt] - stressdrop
+                if tau_array[tt + 1] > tau_array[tt]:
+                    tau_array[tt + 1] = tau_array[tt]
+                elif tau_array[tt + 1] < 0:
+                    tau_array[tt + 1] = 0.
+                else:
+                    continue
+                fail_pres_mean_trig = cohesion / mu + sigma_n_eff - tau_array[tt + 1] / mu
+                n_trig = int(np.sum(fn_cdf[tt, :])) / stressdrop_coeff
+                fn_cdf_rt[tt, :] += foldnorm.cdf(max_pressure[tt, :], np.abs(fail_pres_mean_trig) / fail_pres_std, loc=0, scale=fail_pres_std) * n_trig
+
+        fn_cdf = fn_cdf + fn_cdf_rt
+
+        total_events = np.zeros([len(Moments), len(MidEdges)])
+        for tt in range(len(Moments)):
+            total_events[tt], bins = np.histogram(MidEdges, bins=Edges, weights=fn_cdf[tt,:] * seed_spacebin)
+        total_rates = np.diff(total_events, axis=0)
+        total_events_all[nrun,:] = np.sum(total_events, axis=1)
+        total_rates_all[nrun,:] = np.sum(total_rates, axis=1)
+
+    return total_events_all, total_rates_all
+
+"""
+Seed Model (after Kiraly et al., 2016)
+"""
+@njit(nopython=True)
+def Seed_Model_linear(Moments, Edges, fm_r, fm_t, pres_t, SeedsSettings, NSim, retriggering=True):
+
+    #np.random.default_rng(seed=np.int64(datetime.now().timestamp()*1.e6))
+
+    # create the seed locations
+    max_ext = np.max(Edges)  # furthest distance for the forecast
+    seed_density = SeedsSettings[0]  # seed density
+    seed_number = int(seed_density * max_ext)  # total number of seeds
+    Rcoord = max_ext * np.random.rand(seed_number * NSim)  # placement of seeds
+
+    # get and rename parameters
+    sigma1_mean = SeedsSettings[1]
+    sigma3_mean = SeedsSettings[2]
+    sigma1_std = SeedsSettings[3]
+    sigma3_std = SeedsSettings[4]
+    cohesion = SeedsSettings[5]
+    # cohesion_std = SeedsSettings[5]
+    mu = SeedsSettings[6]
+    # mu_std = SeedsSettings[2]
+    crit = SeedsSettings[7]
+    # theta_std = SeedsSettings[10]
+    stressdrop_coeff = SeedsSettings[8]
+    p_hydro = SeedsSettings[9]
+
+    # b-values and corresponding differential stresses
+    b_min = SeedsSettings[10]
+    b_max = SeedsSettings[11]
+    b_min_diff_stress = SeedsSettings[12]
+    b_max_diff_stress = SeedsSettings[13]
+
+    Mc = SeedsSettings[14]
+
+    # setting arrays to be calculated
+    # optimal orientation of each seed
+    theta_opt = np.pi / 4. + np.arctan(mu) / 2.
+    sigma1 = sigma1_mean + sigma1_std * np.random.randn(seed_number*NSim)
+    sigma3 = sigma3_mean + sigma3_std * np.random.randn(seed_number*NSim)
+
+    sig_check = np.where((sigma3 - p_hydro) > (sigma1 - p_hydro))
+    while len(sig_check[0]):
+        sigma1[sig_check] = sigma1_mean + sigma1_std * np.random.randn(len(sig_check[0]))
+        sigma3[sig_check] = sigma3_mean + sigma3_std * np.random.randn(len(sig_check[0]))
+        sig_check = np.where((sigma3 - p_hydro) > (sigma1 - p_hydro))
+
+    sigma_n_eff = ((sigma1 + sigma3) / 2. + ((sigma1 - sigma3) / 2.) * np.cos(2. * theta_opt)) - p_hydro
+    tau = np.abs((sigma1 - sigma3) / 2. * np.sin(2. * theta_opt))
+
+    crit_check = np.where(cohesion / (mu - crit) + sigma_n_eff - tau / (mu - crit) < 0.)
+    while len(crit_check[0]):
+        tau_temp = tau[crit_check]
+        tau[crit_check] = np.abs(cohesion + (mu - crit) * sigma_n_eff[crit_check])
+        sigma_n_eff[crit_check] = (tau_temp - cohesion) / (mu - crit)
+        crit_check = np.where(cohesion / (mu - crit) + sigma_n_eff - tau / (mu - crit) < 0.)
+
+    fail_pressure = cohesion / mu + sigma_n_eff - tau / mu
+
+    # MidEdges = np.zeros(len(Edges) - 1)
+    # for i in range(len(MidEdges)):
+    #     MidEdges[i] = (Edges[i] + Edges[i + 1]) / 2.
+
+    diff_stress = (sigma1 - sigma3) - p_hydro
+
+    # open lists of parameters:
+    b_val = []
+    mag = []
+    time = []
+    R = []
+    pressure = []
+    trig_index = []
+    differential_stress = []
+    sig1 = []
+    sig3 = []
+    stress_drop = []
+
+    Rind = np.argmin(np.abs(fm_r - np.reshape(Rcoord, (len(Rcoord), 1))).T, axis=0)
+
+    # comment previous and uncomment next 3 lines to make it work in a different environment than in the pycharm setup
+    #loc_dist = np.abs(fm_r - np.reshape(Rcoord, (len(Rcoord), 1)))
+    #Rind = np.empty((len(Rcoord)))
+    #for i in range(len(Rcoord)): Rind[i] = (np.argmin(loc_dist[i]))
+
+    events_map = np.ravel((np.ones((seed_number, NSim)) * np.array(list(range(0, NSim)))))
+
+    pres_map = np.empty((len(Moments), len(Rind)))
+    for j in range(len(Rind)): pres_map[:, j] = pres_t[int(Rind[j]), :]
+
+    # total_events = np.zeros((NSim, len(Moments), len(MidEdges)))
+    total_events = np.zeros((NSim, len(Moments)))
+
+    t_events = 0
+    tt = 0
+
+    for t in range(len(Moments)):
+    # for t in Moments:
+        OverShootPressure = pres_map[t] - fail_pressure
+        # OverShootPressure = pres_func(Rcoord, t) - fail_pressure
+        trig_event_tbin = np.where(OverShootPressure > 0)
+        trig_event_total_array = trig_event_tbin[0]
+
+        if len(trig_event_total_array):
+            # go over all triggered seeds
+            for i in np.nditer(trig_event_total_array):
+                # if differential stress is higher than the differential stress corresponding to b_min
+                if diff_stress[i] > b_min_diff_stress:
+                    b_value = b_min
+                else:
+                    # otherwise find the corresponding b-value
+                    mm = ((b_max - b_min) / (b_max_diff_stress - b_min_diff_stress))
+                    qq = b_max - mm * b_max_diff_stress
+                    b_value = mm * diff_stress[i] + qq
+
+                # idx_pos = np.argmin(np.abs(MidEdges - Rcoord[i]))
+                # total_events[int(event_map[i]), t_events, idx_pos] += 1
+                total_events[int(events_map[i]), t_events] += 1
+
+                # save for each triggered seed into the catalog the...
+                # b-value
+                b_val.append(b_value)
+                # magnitude
+                mag.append(Mc + np.random.exponential(1. / (b_value * np.log(10))))
+                # time
+                time.append(t)
+                # x-location
+                R.append(Rcoord[i])
+                # pressure
+                pressure.append(OverShootPressure[i] + fail_pressure[i])
+                # triggering index
+                trig_index.append(float(i + 1))
+                # differential stress
+                differential_stress.append(diff_stress[i])
+                # maximum effective principal stress
+                sig1.append(sigma1[i] - p_hydro)
+                # minimum effective principal stress
+                sig3.append(sigma3[i] - p_hydro)
+
+                if retriggering == True:
+                    "1)"
+                    # the stress drop is proportional to the normal stress
+                    stressdrop = stressdrop_coeff * (sigma_n_eff[i] - fail_pressure[i])
+                    # stressdrop = stressdrop_coeff * (((tau[i] - cohesion) / mu))
+                    # shear stress on seeds after triggering
+                    tau[i] = tau[i] - (stressdrop + mu * OverShootPressure[i])
+                    # change/reduction in the maximum principal stress
+                    sigma1[i] = sigma1[i] - 2 * (stressdrop + mu * OverShootPressure[i]) / np.abs(np.sin(2 * theta_opt))
+                    # differential stress on seeds after triggering
+                    diff_stress[i] = (sigma1[i] - sigma3[i]) - p_hydro
+                    # normal effective stress on seeds after triggering (no effect for now)
+                    # sigma_n_eff[i] = (sigma1[i] + sigma3[i])/2. + ((sigma1[i] - sigma3[i]) * np.cos(2*theta_opt) / 2.) - p_hydro
+                    fail_pressure[i] = cohesion / mu + sigma_n_eff[i] - tau[i] / mu
+                    # stressdrop
+                    stress_drop.append(stressdrop)
+                else:
+                    fail_pressure[i] = random.random() * np.square(np.max(pres_t))
+                    # The following lines are commented (not really necessary) as they do not work with NUMBA...
+                    # ind = np.where(fail_pressure[i] < np.max(pres_sol))
+                    # while len(ind[0]):
+                    #     fail_pressure[i] = random.random() * np.square(np.max(pres_sol))
+                    #     ind = np.where(fail_pressure[i] < np.max(pres_sol))
+                    stress_drop.append(0)
+
+        t_events = t_events + 1
+        if not t_events >= len(Moments):
+            # total_events[:, t_events, :] = total_events[:, t_events - 1, :]
+            total_events[:, t_events] = total_events[:, t_events - 1]
+        tt = tt + 1
+
+    EQ = (b_val, mag, time, R, pressure, trig_index, differential_stress, sig1, sig3, stress_drop)
+    total_rates = np.diff(total_events)
+    # total_events_noloc = np.sum(total_events, axis=2)
+    # total_rates_noloc = np.diff(total_events_noloc, axis=1)
+
+    return EQ, total_events, total_rates
+
+"""
+COMMENTS:
+1) The version: stressdrop = stressdrop_coeff * (((tau[i] - cohesion) / mu) + fail_pressure[i]),
+is not correct because the stressdrop is related to the normal stress (not effective normal stress and also not to the
+normal stress reduction necessary to reach failure). Then, the stress drop is directly related to the normal stress but
+the magnitude of reduction in the shear stress is actually related also to the amount of overpressure for that given seed.
+If the overpressure is large, tau will experience a larger reduction.
+2)
+"""
diff --git a/hm1d/Worker_HM0_HM1_1D.py b/hm1d/Worker_HM0_HM1_1D.py
new file mode 100644
index 0000000..c27c833
--- /dev/null
+++ b/hm1d/Worker_HM0_HM1_1D.py
@@ -0,0 +1,1322 @@
+import numpy as np
+import copy
+from utils import (Calibrate_Observed_GR, b_value_Lasso_calibration_1D, Refine_An_Edge,
+                                         LL_cost_function_1D, LS_cost_function_1D)
+
+
+from FlowModel import FlowModel0, FlowModel1, FlowModel2, FlowModel3, FlowModel4
+
+from SeismicityModel import Caps_Model_linear as CAPS
+from SeismicityModel import Seed_Model_linear as SEED
+from scipy.optimize import differential_evolution
+from scipy.interpolate import CloughTocher2DInterpolator
+
+import numba as nb
+
+
+class HM01:
+    def __init__(self,
+                 TrainingData,
+                 time_col='time',
+                 flow_col='flow',
+                 press_col='pressure',
+                 source_times_col='ts',
+                 hypocenter_cols=['Rs'],
+                 Mw_cols='mag',
+                 dM = 0.01,
+                 max_iteration = -1,
+                 cost_fun = 'LS',
+                 inv_mod='seq',
+                 seis_model='CAPS',
+                 retriggering = False,
+                 forward_model=False, # True: FWD, False: Inversion mode
+                 flow_model='line_source',
+                 params_method='Chi2crt',
+                 NSim=1,
+                 seed_model_version='1',
+                 workers=1,
+                 opt_algorithm='DE',
+                 max_grid_ext=300,
+                 layer_thick = 100,
+                 cross_area = 94,
+                 sensitivity_analysis=False,
+                 init_params = [],
+                 Settings=[]):
+
+        self.Columns = [time_col, flow_col, press_col]
+
+        self.opt_algorithm = opt_algorithm
+        self.sensitivity_analysis = sensitivity_analysis
+        self.workers = workers
+        self.retriggering = retriggering
+        self.forward_model = forward_model
+
+        # self.TrainingData = None
+        self.TrainingData = TrainingData
+        self.training_catalog = None
+
+        self.ts = source_times_col
+        self.Xs = hypocenter_cols
+        self.Mw = Mw_cols
+        self.mc_bin_size = dM
+
+        self.cost_fun = cost_fun
+        listOfStrings = ['LL' , 'LS']
+        if self.cost_fun not in listOfStrings :
+            print("Cost function '",self.cost_fun,"' not found. Possible values are:", listOfStrings,". Using default mode (LL).")
+            self.cost_fun='LL'
+
+        self.inv_mod = inv_mod
+        listOfStrings = ['seq' , 'joint']
+        if self.inv_mod not in listOfStrings :
+            print("Inversion mode '",self.cost_fun,"' not found. Possible values are:", listOfStrings,". Using default mode (seq).")
+            self.inv_mod='seq'
+
+        self.flw_model = flow_model
+        listOfStrings = ['point_source' , 'line_source', 'num_const_perm', 'num_var_perm', 'num_var_perm_FV']
+        if self.flw_model not in listOfStrings :
+           print("Fluid model '",self.cost_fun,"' not found. Possible values are:", listOfStrings,". Using default mode (line_source).")
+           self.flw_model='line_source'
+
+        self.NSim=NSim
+        self.seed_model_version = seed_model_version
+        self.workers=workers
+        self.seis_model = seis_model
+        self.params_method = params_method
+
+        self.seed_settings = Settings[0]
+        self.seis_bounds = Settings[1]
+        self.flow_bounds = Settings[2]
+        self.ExSolSettings = Settings[3]
+        self.CAPSSettings = Settings[4]
+        self.SEEDSettings = Settings[4]
+
+        self.CostFunction = None
+        self.LL_Edges = None
+        self.LL_Moments = None
+        self.Training_MaxPressure = None
+        self.Training_XYZ = None
+        self.Training_Volume = None
+
+        # input for the flow models
+        self.max_grid_ext = max_grid_ext
+        self.layer_thick = layer_thick
+        self.cross_area = cross_area
+
+        self.maxbval_bounds = [(1., self.seed_settings["b_max"])]  # upper b-value limit
+
+        if self.retriggering == True:
+            if self.seed_settings['criticallity']!=0:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'stressdrop_coeff', 'cohesion_mean', 'friction_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['stressdrop_coeff'][0], self.seis_bounds['stressdrop_coeff'][1]),
+                                   # (self.seis_bounds['criticallity'][0], self.seis_bounds['criticallity'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False, False]
+            else:
+                # self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'stressdrop_coeff', 'friction_mean', 'seed_density']
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'stressdrop_coeff', 'cohesion_mean', 'friction_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['stressdrop_coeff'][0], self.seis_bounds['stressdrop_coeff'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False, False]
+        else:
+            if self.seed_settings['criticallity']!=0:
+                # self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'friction_mean', 'seed_density']
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'friction_mean', 'cohesion_mean', 'seed_density']
+                # self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'criticallity', 'friction_mean', 'cohesion_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   # (self.seis_bounds['criticallity'][0], self.seis_bounds['criticallity'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                # self.logscale = [False, False, False, False]
+                self.logscale = [False, False, False, False, False]
+                # self.logscale = [False, False, False, False, False, False]
+            else:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'cohesion_mean', 'friction_mean', 'seed_density']
+                # self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'friction_mean', 'seed_density']
+                # self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'cohesion_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False]
+                # self.logscale = [False, False, False, False]
+
+        """
+        4 different flow models can be choosen:
+        -> point_source: analytical point source solution. Two parameters, storage coefficient and permeability, are calibrated.
+        -> line_source: Theis' solution. Two parameters, storage coefficient and permeability, are calibrated.
+        -> num_const_perm: numerical solution without permeability changes. Only the permeability is calibrated and is a fixed value.
+        -> num_var_perm: numerical solution with permeability changes. Three parameters are calibrated that control the changes in permeability with pressure.
+        """
+
+        if self.flw_model == 'point_source':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability'] # parameters to calibrate
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel0(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.cross_area,
+                                         bounds=self.FlowBounds)
+
+        elif self.flw_model == 'line_source':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability']
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel1(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         bounds=self.FlowBounds, iniguess=(self.seed_settings['storage'], self.seed_settings['permeability']))
+
+        elif self.flw_model == 'num_const_perm':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability']
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel2(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds)
+
+        elif self.flw_model == 'num_var_perm': # HM1 class with FD
+            self.OptimizeKeys = self.OptimizeKeys + ['zero_stress_aperture', 'residual_aperture','frac_normal_stiffness','storage'] # parameters to calibrate
+            # self.FlowBounds = [(self.seed_settings['zero_stress_aperture'], -2), # zero-stress aperture
+            #                    (self.seed_settings['residual_aperture'], -7),   # residual aperture
+            #                    (self.seed_settings['frac_normal_stiffness'], 14),    # fracture normal stiffness
+            #                    (-9, -7)]  # storage
+            self.FlowBounds = [(self.flow_bounds['zero_stress_aperture'][0], self.flow_bounds['zero_stress_aperture'][1]),
+                               (self.flow_bounds['residual_aperture'][0], self.flow_bounds['residual_aperture'][1]),
+                               (self.flow_bounds['frac_normal_stiffness'][0], self.flow_bounds['frac_normal_stiffness'][1]),
+                               (self.flow_bounds['storage'][0], self.flow_bounds['storage'][1])]
+            self.logscale = self.logscale + [True, True, True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel3(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds)
+
+        else: # HM1 cass with FV
+            # self.OptimizeKeys = self.OptimizeKeys + ['zero_stress_aperture', 'residual_aperture', 'shearing_aperture_factor', 'shear_scaling_factor', 'storage'] # parameters to calibrate
+            self.OptimizeKeys = self.OptimizeKeys + ['zero_stress_aperture', 'residual_aperture', 'shearing_aperture_factor', 'max_shear_frac_aperture', 'shear_scaling_factor', 'storage']
+            self.FlowBounds = [(self.flow_bounds['zero_stress_aperture'][0], self.flow_bounds['zero_stress_aperture'][1]),
+                               (self.flow_bounds['residual_aperture'][0], self.flow_bounds['residual_aperture'][1]),
+                               (self.flow_bounds['shearing_aperture_factor'][0], self.flow_bounds['shearing_aperture_factor'][1]),
+                               (self.flow_bounds['max_shear_frac_aperture'][0], self.flow_bounds['max_shear_frac_aperture'][1]),
+                               (self.flow_bounds['shear_scaling_factor'][0], self.flow_bounds['shear_scaling_factor'][1]),
+                               (self.flow_bounds['storage'][0], self.flow_bounds['storage'][1])]
+            # self.logscale = self.logscale + [True, True, True, True, True]
+            self.logscale = self.logscale + [True, True, True, True, True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel4(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds, forward_model=forward_model,
+                                         iniguess=(self.seed_settings['zero_stress_aperture'], self.seed_settings['residual_aperture'],
+                                                   self.seed_settings['shearing_aperture_factor'], self.seed_settings['max_shear_frac_aperture'],
+                                                   self.seed_settings['shear_scaling_factor'], self.seed_settings['storage']))
+
+        if seis_model=='SEED':
+            self.SEEDmodelKeys = ['seed_density', 'inter_sigma1', 'inter_sigma3', 'sigma1_std', 'sigma3_std',
+                                  'cohesion_mean', 'friction_mean', 'criticallity', 'stressdrop_coeff', 'phydro',
+                                  'b_min', 'b_max', 'b_min_diff_stress', 'b_max_diff_stress', 'Mag_Completeness']
+
+        self.disp = True
+        self.maxiter = max_iteration
+        self.seed = 42
+
+        # for callback
+        self.best_x = None
+        self.minf = np.inf
+
+        # self.init_params = [5, 0.2, 5.2, 0.44]
+
+        # currently not used:
+        # if self.opt_algorithm=='LMFIT':
+        #     params = Parameters()
+        #     for i in range(len(self.OptimizeKeys)-1):
+        #         params.add(self.OptimizeKeys[i], self.init_params[i], min=self.SEISbounds[i][0], max=self.SEISbounds[i][1])
+        #     self.SEISparams = params
+
+    def update_seeds_settings(self):
+        # would you rather the Mc was calculated or gained
+        # from the QuakeMl data?
+        Mc, b_value = Calibrate_Observed_GR(
+            self.training_catalog, self.mc_bin_size, self.Mw)
+        self.seed_settings["Mag_Completeness"] = Mc
+        self.seed_settings["b_value"] = b_value
+        self.training_catalog = self.training_catalog[
+            self.training_catalog[self.Mw] >= Mc]
+
+        if (self.seed_settings["b_vs_depth_range"]):
+            a, m = b_value_Lasso_calibration_1D(
+                np.array(self.training_catalog[self.Xs].values),
+                np.array(self.training_catalog[[self.Mw]])[:, 0],
+                bins=100)
+        else:
+            a, m = b_value, np.zeros(1)
+
+        self.seed_settings["a"] = a
+        self.seed_settings["m"] = m
+
+    def Seed_max_bval_fit(self, x):
+        b_min = self.seed_settings['b_min']
+        # to be optimized
+        b_max = x
+        self.seed_settings['b_max'] = b_max
+        b_max_diff_stress = self.seed_settings['b_max_diff_stress']
+        b_min_diff_stress = self.seed_settings['b_min_diff_stress']
+        # mean differential stress from seeds
+        diff_stress_mean = self.seed_settings['diff_stress_mean']
+        # b-value from observed data
+        b_val_obs = self.seed_settings['b_value']
+
+        mm = ((b_max - b_min)/(b_max_diff_stress - b_min_diff_stress))
+        qq = b_max - mm * b_max_diff_stress
+        b_val_model = mm * diff_stress_mean + qq
+
+        b_val_diff = np.abs(b_val_obs-b_val_model)
+
+        return b_val_diff
+
+    def ll_score(self, x):
+        y = self.CostFunction.y
+        log_factorial_y = self.CostFunction.logyfact
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        y0 = CAPS.Caps_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.], self.Training_R,
+                                    self.Training_MaxPressure, TestSettings, NSim=1, retriggering=self.retriggering)[0]
+
+        LL = np.sum(y * np.log(y0) - y0 - log_factorial_y)/len(self.training_catalog)# Poissonian LL
+        #LL = np.sum(y * np.log10(y1) - y1 - log_factorial_y) / float(len(y1))
+        if np.isfinite(LL):
+            return -LL
+        return 1.e20
+
+    def ls_score(self, x):
+        y = self.CostFunction.y
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        y0 = CAPS.Caps_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.], self.Training_R,
+                                    self.Training_MaxPressure, TestSettings, NSim=1, retriggering=self.retriggering)[0]
+
+        LS = np.sum(np.square(y-y0))/len(y)
+        if np.isfinite(LS):
+            if LS < self.minf:
+                self.minf = LS
+                self.best_x = x
+            return LS
+        return 1.e20
+
+    def ls_score_seed(self, x):
+        y = self.CostFunction.y
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+        SeedsSettings = nb.typed.List()
+        for j in range(len(self.SEEDmodelKeys)):
+            SeedsSettings.append(float(TestSettings[self.SEEDmodelKeys[j]]))
+
+        y0 = SEED.Seed_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.],
+                                                 self.flow_model.r, self.flow_model.Q[:,0],
+                                                 self.pres_t_fit,
+                                                 SeedsSettings, self.Nreal, self.retriggering)[1]
+
+        y1 = np.median(y0, axis=0)
+
+        LS = np.sum(np.square(y - y1)) / len(y)
+
+        if np.isfinite(LS):
+            if LS < self.minf:
+                self.minf = LS
+                self.best_x = x
+            return LS
+        return 1.e20
+
+    def ll_score_joint(self, x):
+
+        TestSettings = copy.deepcopy(self.seed_settings)
+        #print(x)
+        for i in range(len(x)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+        #end_time = time.time()
+
+        #self.flow_model.params = TestSettings[self.OptimizeKeys[4]], TestSettings[self.OptimizeKeys[5]]
+        self.flow_model.params = TestSettings[self.OptimizeKeys[4]]
+
+        self.flow_model.hidden_mechanism = self.flow_model.predict()
+
+        Coeff_R2 = np.sum(np.square(self.flow_model.hidden_mechanism[:,0]/1.e6 -
+                                    self.flow_model.observation.T/1.e6))/len(self.flow_model.observation)
+
+        self.timesteps = self.TrainingData.time.values
+        inipres=self.TrainingData[self.Columns[-1]].values[0]
+        self.PressureFunction = self.create_interpolator(self.timesteps,(self.flow_model.hidden_mechanism-inipres)/1.e6)
+
+        (self.Training_MaxPressure,
+         self.Training_XYZ,
+         self.Training_Volume) = self.Interpolate_1D(self.LL_Moments, self.LL_Edges,
+                                                  self.ExSolSettings, self.CAPSSettings)
+
+
+        y1 = CAPS.Forecast_BinnedRate_only_1D(
+            self.LL_Moments[1:], self.LL_Edges, self.Training_MaxPressure,
+            self.Training_XYZ, self.Training_Volume, TestSettings)
+        #end_time = time.time() - end_time
+        #print("Elapsed time to run Forecast_Binned_rate was %g seconds" % (end_time))
+
+        y0=np.diff(y1,axis=(0))
+        y1=np.zeros(y1.shape)
+        y1[1:,:]=y0
+        y1 = y1.ravel()
+        y1[np.where(y1 <= 0.)] = 1.e-20
+
+        y = self.SeisCostFunction.y
+        log_factorial_y = self.SeisCostFunction.logyfact
+
+        LL = -np.sum(y * np.log(y1) - y1 - log_factorial_y)/len(self.training_catalog)
+        Cost = LL+Coeff_R2
+        #LL = np.sum(y * np.log10(y1) - y1 - log_factorial_y) / float(len(y1))
+        if np.isfinite(Cost):
+            return Cost
+        return 1.e20
+
+    def ls_score_joint(self, x):
+
+        TestSettings = copy.deepcopy(self.seed_settings)
+        #print(x)
+        for i in range(len(x)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+        #end_time = time.time()
+
+        self.flow_model.params = TestSettings[self.OptimizeKeys[4]], TestSettings[self.OptimizeKeys[5]]
+        #self.flow_model.params = TestSettings[self.OptimizeKeys[4]]
+
+        self.flow_model.observation = self.TrainingData[self.Columns[::2]].values[:, 1:]
+
+        self.flow_model.hidden_mechanism = self.flow_model.predict()
+
+        Coeff_R2 = np.sum(np.square(self.flow_model.hidden_mechanism[:,0]/1.e6 -
+                                    self.flow_model.observation.T/1.e6))/np.max(self.flow_model.observation/1.e6)
+
+        self.timesteps = self.TrainingData.time.values
+        inipres=self.TrainingData[self.Columns[-1]].values[0]
+        self.PressureFunction = self.create_interpolator(self.timesteps,(self.flow_model.hidden_mechanism-inipres)/1.e6)
+
+        (self.Training_MaxPressure,
+         self.Training_XYZ,
+         self.Training_Volume) = self.Interpolate_1D(self.LL_Moments, self.LL_Edges,
+                                                     self.ExSolSettings, self.CAPSSettings)
+
+        y0 = CAPS.Forecast_BinnedRate_only_1D(
+            self.LL_Moments[1:], self.LL_Edges, self.Training_MaxPressure,
+            self.Training_XYZ, self.Training_Volume, TestSettings)
+
+        y1 = np.sum(y0, axis=1)
+
+        #end_time = time.time() - end_time
+        #print("Elapsed time to run Forecast_Binned_rate was %g seconds" % (end_time))
+
+        y = self.SeisCostFunction.y
+
+        LS = np.sum(np.square(y-y1))/len(y)
+
+        Cost = LS+Coeff_R2
+        #LL = np.sum(y * np.log10(y1) - y1 - log_factorial_y) / float(len(y1))
+        if np.isfinite(Cost):
+            return Cost
+        return 1.e20
+
+    def save_iteration_step(self, x, convergence):
+        """
+        function to save history of parameters and residual during DEA
+        """
+        # check if equal
+        #np.testing.assert_equal(x, self.best_x)
+        self.dea_vals.append(x)
+        self.dea_func.append(self.minf)
+        return
+
+    def create_interpolator(self, t_grid, solution):
+        if len(self.flow_model.r)==len(solution[0]):
+            mesh = np.meshgrid(self.flow_model.r, t_grid)
+        else:
+            mesh = np.meshgrid(self.flow_model.r[1:], t_grid)
+        interpd = CloughTocher2DInterpolator(np.array([mesh[0].ravel(),mesh[1].ravel()]).T, solution.ravel(), fill_value=0)
+        return interpd
+
+    def mask_for_median(self, events_grid):
+
+        total_events_spacesum = np.sum(events_grid, axis=0)
+        total_events_median_new = np.zeros_like(total_events_spacesum)
+        total_events_median_new_single = np.zeros_like(total_events_spacesum[:,0])
+
+        for i in range(len(total_events_spacesum)):
+            if np.sum(total_events_spacesum[i])==0:
+                total_events_median_new[i] = total_events_spacesum[i]
+                total_events_median_new_single[i] = np.median(total_events_median_new[i], axis=0)
+            else:
+                masked = np.ma.masked_where(total_events_spacesum[i]==0, total_events_spacesum[i])
+                total_events_median_new_single[i] = np.ma.median(masked)
+
+        return total_events_median_new_single
+
+    def Interpolate_1D(self, Forecasts_Moments, Forecasts_Edges, CAPS_KD_Settings):
+        """
+        Same as CAPS.InterpolateMaximumPressure, but using a self.PressureFunction created by the fit
+        """
+        RR=CAPS_KD_Settings["RefinementRatio"]
+        MyR=Refine_An_Edge(Forecasts_Edges, RR)  # for 1D we use directly the cartesian grid as the radius
+        LaterKeepIndices=np.logical_and(np.isfinite(MyR), MyR > 0.)
+        My_Working_R  =MyR[LaterKeepIndices]
+        DT=np.concatenate((self.timesteps, Forecasts_Moments))
+        MyT=np.sort(np.unique(DT))
+        MyPressure, MaxPressureAll =np.zeros([2, len(MyT), len(My_Working_R)])
+        PM=np.zeros(len(My_Working_R))
+        for timeIter in range(len(MyT)):
+            ConsiderTime=MyT[timeIter]
+            MyPressure[timeIter,:]=self.PressureFunction(My_Working_R,ConsiderTime)
+            MaxPressureAll[timeIter,:]=np.maximum(PM, MyPressure[timeIter,:])
+            PM=MaxPressureAll[timeIter,:]
+
+        TimeBinIndeces=np.intersect1d(Forecasts_Moments, MyT, return_indices=True)[2] # discard unecessary time discretization now
+        MaxPressure=MaxPressureAll[TimeBinIndeces]
+        dV = np.unique(np.diff(Forecasts_Edges, axis=0))
+        #dV=np.unique(np.diff(Forecasts_Edges, axis=0), axis=0)
+        #if(len(dV)>1):
+            #print ("Warning: non equidistant edges have been passed in the one direction. Correct array of control distances.")
+        #\todo: assume equidistant edges and refinement
+        My_Cell_Width=np.prod(np.amin(dV,axis=0)/RR)
+        return MaxPressure, My_Working_R, np.ones(len(My_Working_R))*My_Cell_Width
+
+    def ls_params_score(self, percent):
+
+        par_grd_2 = []
+        for p in range(len(self.CAPSbounds)):
+            # par_distr = self.Params_CAPS(forecast_edges, max_pressure_past, working_xyz_past, cells_volume_past, p)
+            par_distr = self.Params_CAPS_2(percent, p)
+            par_grd_2.append(par_distr)
+        cal_val_2 = np.median(par_grd_2, axis=1)
+
+        LS = np.sum(np.square(self.cal_val-cal_val_2))/len(self.cal_val)
+
+        if np.isfinite(LS):
+            return LS
+        return 1.e20
+
+    # def sensitivity_analysis_fun(self, params_distr, z_i, f_z_i, forecast_edges, method='sobol_global'):
+    #
+    #     if method == 'sobol_global':
+    #         """
+    #             GLOBAL SENSITIVITY ANALYSIS
+    #
+    #             Ref. -> E. Qian, B. Peherstorfer, D. O'Malley, V. V. Vesselinov, and K. Willcox.
+    #                     Multifidelity Monte Carlo Estimation of Variance and Sensitivity Indices
+    #                     SIAM/ASA J. Uncertainty Quantification. Vol. 6, No. 2, pp. 683-706
+    #
+    #             Explanation parameters:
+    #             params_distr -> distribution of the input parameters
+    #             z_i -> values of parameters from FIRST random sampling (from NSim Monte Carlo simulations)
+    #             f_z_i -> output of the model from z_i
+    #             z_i_ -> values of input parameters from SECOND random sampling (from NSim Monte Carlo simulations)
+    #             f_z_i_ -> output of the model from z_i_
+    #             y_i_j -> same as z_i_ but fixing the one input parameter of interest from z_i
+    #             f_y_i_j -> output of the model from y_i_j
+    #
+    #             E -> sample mean (mean of the entire output, over all times and space)
+    #             V -> variance of all inputs
+    #             V_j -> variance contributed by the input j
+    #             T_j -> total variance contributed by the input j
+    #             s_j -> Sobol' main sensitivity index for input j (portion of the output that can be attributed to the influence of the input j only, fraction of variance of input j alone)
+    #                     also: first order sensitivity indices
+    #             s_j_t -> Sobol' total effect sensitivity index for input j (additionally takes into account the sum of the contributions)
+    #                     also: total-order sensitivity indices
+    #         """
+    #
+    #         z_i = np.array(z_i).T
+    #
+    #         f_z_i_copy = np.array(f_z_i)
+    #         f_z_i_new = []
+    #         for l in range(len(f_z_i)):
+    #             f_z_i_new.append(np.sum(f_z_i_copy[l][-1]))
+    #         f_z_i = np.array(f_z_i_new)
+    #         del f_z_i_copy, f_z_i_new
+    #         # f_z_i = np.sum(np.sum(np.array(f_z_i), axis=2), axis=1)
+    #
+    #         E = np.sum(f_z_i) / self.NSim
+    #
+    #         V = (np.sum((f_z_i - E) ** 2)) / (self.NSim - 1)
+    #
+    #         pool = mp.Pool(self.nr_cpu)
+    #         result = pool.starmap(self.Parallel_CAPS_fitting,
+    #                               [(nr_sim, self.TrainingData.time.values[1:], forecast_edges, self.par_grd) for nr_sim
+    #                                in range(self.NSim)])
+    #         total_events = [result[a][0] for a in range(len(result))]
+    #         params = [result[a][1] for a in range(len(result))]
+    #
+    #         z_i_ = np.array(params).T
+    #
+    #         total_events_copy = np.array(total_events)
+    #         total_events_new = []
+    #         for l in range(len(total_events)):
+    #             total_events_new.append(np.sum(total_events_copy[l][-1]))
+    #         f_z_i_ = np.array(total_events_new)
+    #         # f_z_i_ = np.sum(np.sum(np.array(total_events), axis=2), axis=1)
+    #
+    #         s_j_array = []
+    #         s_j_t_array = []
+    #
+    #         for p in range(len(self.CAPSbounds)):
+    #             y_i_j = np.copy(z_i_)
+    #             # y_i_j = np.copy(z_i)
+    #             y_i_j[p, :] = z_i[p, :]
+    #             # y_i_j[p,:] = np.full_like(z_i[0], self.seed_settings_optimal[self.OptimizeKeys[p]])
+    #             # y_i_j[p, :] = z_i_[p, :]
+    #             random_method = False
+    #             total_events_array = []
+    #             for i in range(len(y_i_j[0])):
+    #                 for j in range(len(self.CAPSbounds)):
+    #                     self.seed_settings[self.OptimizeKeys[j]] = y_i_j[j, i]
+    #                 total_events = CAPS.Forecast_BinnedRate_only_1D(self.TrainingData.time.values[1:],
+    #                                                                 forecast_edges[0], self.max_pressure_past,
+    #                                                                 self.working_xyz_past, self.cells_volume_past,
+    #                                                                 self.seed_settings)
+    #                 total_events_array.append(total_events)
+    #
+    #             total_events_array_copy = np.array(total_events_array)
+    #             total_events_array_new = []
+    #             for l in range(len(total_events_array)):
+    #                 total_events_array_new.append(np.sum(total_events_array_copy[l][-1]))
+    #             f_y_i_j = np.array(total_events_array_new)
+    #             del total_events_array_copy, total_events_array_new
+    #             # f_y_i_j = np.sum(np.sum(np.array(total_events_array), axis=2), axis=1)
+    #
+    #             del y_i_j
+    #
+    #             V_j = np.sum(f_z_i * f_y_i_j - E ** 2) / self.NSim
+    #
+    #             # Calculate Sobol's main effect sensitivity index for each input
+    #             s_j = np.abs(
+    #                 V_j / V)  # here I take the absolute value (otherwise some of them are negative, negative effect? - not possible)
+    #             s_j_array.append(s_j)
+    #
+    #             T_j = np.sum((f_z_i_ - f_y_i_j) ** 2) / (2 * self.NSim)
+    #
+    #             # Calculate Sobol's total effect sensitivity index for each input
+    #             s_j_t = np.abs(T_j / V)  # same as above for the absolute value
+    #             s_j_t_array.append(s_j_t)
+    #
+    #         result1 = (s_j_array, s_j_t_array)
+    #
+    #         print("Sensitivity analysis (Sobol global) result (paramater's contribution to output):")
+    #         for i in range(len(self.CAPSbounds)):
+    #             print(self.OptimizeKeys[i] + ":", s_j_array[i], )
+    #
+    #         print("Sum of main effect sensitivity indexes:", np.sum(result1[0]), )
+    #         print("Sum of total effect sensitivity indexes:", np.sum(result1[1]), )
+    #
+    #     elif method == 'hoffmann_gardener':
+    #
+    #         """
+    #             Hoffmann and Gardner (1983) calculate the output percent difference when varying one input parameter
+    #             from its minimum value to its maximum value. It was introduced to account for all possible values when
+    #             determining parameter sensitivity.
+    #         """
+    #
+    #         # self.seed_settings = np.copy(self.seed_settings_optimal)
+    #
+    #         min_seed_settings = dict.copy(self.seed_settings_optimal)
+    #         max_seed_settings = dict.copy(min_seed_settings)
+    #         for j in range(len(self.CAPSbounds)):
+    #             min_seed_settings[self.OptimizeKeys[j]] = np.min(params_distr[j])
+    #             max_seed_settings[self.OptimizeKeys[j]] = np.max(params_distr[j])
+    #
+    #         # min values
+    #         Y_min = []
+    #         Y_max = []
+    #         s_j = []
+    #         for j in range(len(self.CAPSbounds)):
+    #             self.seed_settings = dict.copy(self.seed_settings_optimal)
+    #             self.seed_settings[self.OptimizeKeys[j]] = min_seed_settings[self.OptimizeKeys[j]]
+    #             total_events = CAPS.Forecast_BinnedRate_only_1D(self.TrainingData.time.values[1:], forecast_edges[0],
+    #                                                             self.max_pressure_past, self.working_xyz_past,
+    #                                                             self.cells_volume_past, self.seed_settings)
+    #             Y_min.append(np.sum(total_events[-1, :]))
+    #             self.seed_settings = dict.copy(self.seed_settings_optimal)
+    #             self.seed_settings[self.OptimizeKeys[j]] = max_seed_settings[self.OptimizeKeys[j]]
+    #             total_events = CAPS.Forecast_BinnedRate_only_1D(self.TrainingData.time.values[1:], forecast_edges[0],
+    #                                                             self.max_pressure_past, self.working_xyz_past,
+    #                                                             self.cells_volume_past, self.seed_settings)
+    #             Y_max.append(np.sum(total_events[-1, :]))
+    #             s_j.append(abs((Y_max[-1] - Y_min[-1]) / (Y_max[-1])))
+    #
+    #         print("Sensitivity analysis (Hoffmann & Gardener, 1983) result (paramater's contribution to output):")
+    #         for j in range(len(self.CAPSbounds)):
+    #             print(self.OptimizeKeys[j] + ":", s_j[j], )
+    #
+    #         result1 = s_j
+    #
+    #     else:
+    #         """
+    #             Local sensitivity analysis: partial derivatives on parameters (very small changes):
+    #
+    #             Differential sensitivity analysis is based on the partial differentiation of the aggregated model.
+    #             A small change in one parameter's value with respect to their calibrated value is tested while the other
+    #             parameters are set equal to their calibrated value. The corresponding change in the model's output is evaluated
+    #             for that parameter (partial derivative of the dependent variable (input) with respect to the independent variable (output).
+    #             The derivatives are then multiplied by the ratio of the parameter value to the model result (normalized by the mean),
+    #             to normalize the results by removing the effects of units.
+    #         """
+    #         z_i = np.array(z_i).T
+    #
+    #         f_z_i_copy = np.array(f_z_i)
+    #         f_z_i_new = []
+    #         for l in range(len(f_z_i)):
+    #             f_z_i_new.append(np.sum(f_z_i_copy[l][-1]))
+    #         f_z_i = np.array(f_z_i_new)
+    #         del f_z_i_copy, f_z_i_new
+    #         # f_z_i = np.sum(np.sum(np.array(f_z_i), axis=2), axis=1)
+    #
+    #         z_i_ = z_i + (0.00001 * z_i)  # changing all parameter values by 1/10 of 1% (very small change)
+    #
+    #         total_events_array_global = []
+    #         for j in range(len(self.CAPSbounds)):
+    #             z_i_copy = np.copy(z_i)
+    #             # replace the added derivative change for one parameter
+    #             z_i_copy[j] = z_i_[j]
+    #             total_events_array = []
+    #             for i in range(len(z_i[0])):
+    #                 for l in range(len(self.CAPSbounds)):
+    #                     self.seed_settings[self.OptimizeKeys[l]] = z_i_copy[l, i]
+    #                 total_events = CAPS.Forecast_BinnedRate_only_1D(self.TrainingData.time.values[1:],
+    #                                                                 forecast_edges[0],
+    #                                                                 self.max_pressure_past, self.working_xyz_past,
+    #                                                                 self.cells_volume_past, self.seed_settings)
+    #                 total_events_array.append(np.sum(total_events[-1, :]))
+    #             total_events_array_global.append(np.array(total_events_array))
+    #         f_z_i_ = np.array(total_events_array_global)
+    #
+    #         s_j = np.zeros_like(z_i)
+    #         s_j_norm = np.copy(s_j)
+    #         for j in range(len(self.CAPSbounds)):
+    #             for i in range(len(s_j[0])):
+    #                 s_j[j, i] = np.abs((f_z_i[i] - f_z_i_[j, i]) / (z_i[j, i] - z_i_[j, i]))
+    #                 s_j_norm[j, i] = s_j[j, i] * (z_i[j, i] / f_z_i[i])
+    #
+    #         # set all values below 0 and above 1 to NaN
+    #         s_j_norm[s_j_norm < 0] = np.nan
+    #         s_j_norm[s_j_norm > 1] = np.nan
+    #
+    #         print("Sensitivity analysis (local) mean result (paramater's contribution to output):")
+    #         for j in range(len(self.CAPSbounds)):
+    #             print(self.OptimizeKeys[j] + ":", np.nanmean(s_j_norm[j]), )
+    #
+    #         result1 = s_j_norm
+    #
+    #     return result1
+
+    def Calibrate_CAPS(self, forecast_edges):
+        self.update_seeds_settings() # update b-value
+
+        if self.cost_fun=='LL':
+            self.CostFunction = LL_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values[1:],
+                                                   forecast_edges[0]])
+        else:
+            self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values[1:],
+                                                   forecast_edges[0]])
+            # self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+            #                                  bins=[self.TrainingData.time.values[1:],
+            #                                        forecast_edges])
+
+        self.LL_Edges = self.CostFunction.edges_x2 # (radial) spatial bins in negative and positive directions
+        self.LL_Moments = self.CostFunction.edges_x1 # time moments
+
+        (self.Training_MaxPressure,
+         self.Training_R,
+         self.Training_Volume) = self.Interpolate_1D(self.LL_Moments, self.LL_Edges, self.CAPSSettings)
+
+        print("Maximum iterations CAPS:", self.maxiter)
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        if self.cost_fun=='LL':
+            result = differential_evolution(self.ll_score, self.SEISbounds, polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed, popsize=10)
+        else:
+            result = differential_evolution(self.ls_score, self.SEISbounds, polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed, popsize=10,
+                                            updating='immediate', callback=self.save_iteration_step)
+        print("End CAPS differential evolution")
+
+        print('--------------------------------')
+        print('Calibrated geomechanical parameters:')
+        for i in range(len(result.x)):
+            self.seed_settings[self.OptimizeKeys[i]] = result.x[i]
+            if (self.logscale[i]):
+                self.seed_settings[self.OptimizeKeys[i]] = np.power(10., result.x[i])
+            print(str(self.OptimizeKeys[i]) + ': ' + str(self.seed_settings[self.OptimizeKeys[i]]))
+        print('--------------------------------')
+
+        # self.total_events_past_single, self.total_rates_past_single = CAPS.Caps_Model_linear(self.LL_Moments,
+        #                                                                                      self.LL_Edges[self.LL_Edges >= 0.],
+        #                                                                                      self.Training_R,
+        #                                                                                      self.Training_MaxPressure,
+        #                                                                                      self.seed_settings,
+        #                                                                                      NSim=1,
+        #                                                                                      retriggering=self.retriggering)
+        #
+        # print("sum of total events after calibration", self.total_events_past_single[0,-1], )
+
+        # save optimal parameters for single forecast later
+        self.seed_settings_optimal = dict.copy(self.seed_settings)
+
+        print("**************************************************")
+        print("Summary of optimized parameters after calibration:")
+        for i in range(len(self.SEISbounds)):
+            print(self.OptimizeKeys[i] + ': ', self.seed_settings_optimal[self.OptimizeKeys[i]], )
+        j_init = len(self.SEISbounds)
+        for j in range(len(self.FlowBounds)):
+            print(self.OptimizeKeys[j_init+j] + ': ', self.seed_settings_optimal[self.OptimizeKeys[j_init+j]], )
+        print("**************************************************")
+
+        self.total_events_past_grid, self.total_rates_past_grid = CAPS.Caps_Model_linear(self.LL_Moments,
+                                                                                         self.LL_Edges[self.LL_Edges >= 0.],
+                                                                                         self.Training_R,
+                                                                                         self.Training_MaxPressure,
+                                                                                         self.seed_settings,
+                                                                                         NSim=self.NSim,
+                                                                                         retriggering=self.retriggering)
+
+        total_events_median = np.round(np.median(self.total_events_past_grid, axis=0)[-1])
+
+        print("sum of total events after calibration (median from grid)", total_events_median, )
+
+        # if total_events_median==0:
+        #     total_events_median_masked = self.mask_for_median(self.total_events_past_grid[0])
+        #
+        #     print("sum of total events after calibration and mask (median from grid)", total_events_median_masked[-1], )
+
+        return
+
+    def Calibrate_SEED(self, forecast_edges):
+        self.update_seeds_settings() # update b-value
+
+        if self.cost_fun=='LL':
+            self.CostFunction = LL_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values,np.linspace(0,max(self.training_catalog[self.Xs].values),10)[:,0]])
+        else:
+            self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values,np.linspace(0,max(self.training_catalog[self.Xs].values),10)[:,0]])
+
+        self.LL_Edges = self.CostFunction.edges_x2
+        self.LL_Moments = self.CostFunction.edges_x1
+
+        # 1D pressure interpolation (in time only)
+        pres_sol = (self.flow_model.hidden_mechanism - self.TrainingData[self.Columns[-1]].values[0])/(1.e6)
+        self.pres_t_fit = np.array([np.interp(self.LL_Moments[1:], self.flow_model.Q[:,0], ps_row) for ps_row in pres_sol.T])
+        # OR:
+        # Tind = np.argmin(np.abs(self.flow_model.Q[:,0] - self.LL_Moments[1:][:, np.newaxis]), axis=1)
+        # self.pres_t_fit = (pres_sol[Tind,:]).T
+
+        # Decide for the seed model version (implemented since Poster FAM23)
+        if self.seed_model_version=='1':
+            self.Nreal = 100 # self.NSim
+        elif self.seed_model_version=='2':
+            self.Nreal = 1
+        else:
+            self.Nreal = self.NSim
+
+        print("Maximum iterations SEED:", self.maxiter)
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        if self.cost_fun=='LL':
+            result = differential_evolution(self.ll_score_seed, self.SEISbounds,polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed,popsize=10)
+        else:
+            result = differential_evolution(self.ls_score_seed, self.SEISbounds, polish=True,
+                                            disp=self.disp, maxiter=self.maxiter,seed=self.seed, popsize=10,
+                                            updating='immediate', atol=1e-3, callback=self.save_iteration_step)
+        print("End SEED differential evolution")
+
+        print('------------------------------------')
+        print('Calibrated geomechanical parameters:')
+        for i in range(len(result.x)):
+            self.seed_settings[self.OptimizeKeys[i]] = result.x[i]
+            if (self.logscale[i]):
+                self.seed_settings[self.OptimizeKeys[i]] = np.power(10., result.x[i])
+            print(str(self.OptimizeKeys[i]) + ': ' + str(self.seed_settings[self.OptimizeKeys[i]]))
+        print('------------------------------------')
+
+        # save optimal parameters for forecast later
+        self.seed_settings_optimal = dict.copy(self.seed_settings)
+
+        print("**************************************************")
+        print("Summary of optimized parameters after calibration:")
+        for i in range(len(self.SEISbounds)):
+            print(self.OptimizeKeys[i] + ': ', self.seed_settings_optimal[self.OptimizeKeys[i]], )
+        j_init = len(self.SEISbounds)
+        for j in range(len(self.FlowBounds)):
+            print(self.OptimizeKeys[j_init+j] + ': ', self.seed_settings_optimal[self.OptimizeKeys[j_init+j]], )
+        print("**************************************************")
+
+        # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+        SeedsSettings = nb.typed.List()
+        for j in range(len(self.SEEDmodelKeys)):
+            SeedsSettings.append(float(self.seed_settings[self.SEEDmodelKeys[j]]))
+
+        self.training_catalog, self.total_events_past_grid, self.total_rates_past_grid = SEED.Seed_Model_linear(self.LL_Moments[1:],
+                                                                                                                self.LL_Edges[self.LL_Edges >= 0.],
+                                                                                                                self.flow_model.r,
+                                                                                                                self.flow_model.Q[:,0],
+                                                                                                                self.pres_t_fit,
+                                                                                                                SeedsSettings,
+                                                                                                                self.NSim,
+                                                                                                                self.retriggering)
+
+        total_events_median = np.round(np.median(self.total_events_past_grid, axis=0)[-1])
+
+        print("sum of total events after calibration (median from grid)", total_events_median, )
+
+        return
+
+    def _fit_sequential(self, HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep=True):
+        self.TrainingData = HydraulicLogs_coarse_pd.copy(deep)
+        self.training_catalog = catalog_incomplete_df.copy(deep)
+
+        # filepath = '/home/victor/Desktop/pyatls/Data/Bedretto/FlowModels/'
+
+        if self.flw_model == 'point_source':
+            print("HM0: calibrating flow model (point source)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM0_point_source.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        elif self.flw_model == 'line_source':
+            print("HM0: calibrating flow model (line source)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM0_line_source.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        elif self.flw_model == 'num_const_perm':
+            print("HM0: calibrating flow model (numerical linear)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM0_numerical_linear.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        elif self.flw_model == 'num_var_perm':
+            print("HM1: calibrating flow model (numerical non-linear)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM1_2.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        else:
+            print("HM1: calibrating flow model (numerical non-linear with FV)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+
+        print('--------------------------------')
+        print('Calibrated hydraulic parameters:')
+        for i in range(len(self.flow_model.params)):
+            self.seed_settings[self.OptimizeKeys[i-len(self.flow_model.params)]] = self.flow_model.params[i]
+            print(str(self.OptimizeKeys[i-len(self.flow_model.params)]) + ': ' + str(self.flow_model.params[i]))
+        print('--------------------------------')
+
+        self.timesteps = self.TrainingData.time.values
+        inipres=self.TrainingData[self.Columns[-1]].values[0]
+
+        if self.seis_model=='CAPS':
+            print("HM0/1: calibrating CAPS....")
+            self.PressureFunction = self.create_interpolator(self.timesteps, (self.flow_model.hidden_mechanism - inipres) / 1.e6)
+            self.Calibrate_CAPS(forecast_edges)
+        else:
+            print("HM0/1: calibrating SEED....")
+            self.Calibrate_SEED(forecast_edges)
+
+        return
+
+    # def _fit_joint(self, HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep=True):
+    #     self.TrainingData = HydraulicLogs_coarse_pd.copy(deep)
+    #     self.training_catalog = catalog_incomplete_df.copy(deep)
+    #
+    #     self.update_seeds_settings()
+    #
+    #     if self.cost_fun == 'LL':
+    #         self.SeisCostFunction = LL_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+    #                                                     bins=[self.TrainingData.time.values[1:],
+    #                                                           forecast_edges[0]])
+    #     else:
+    #         self.SeisCostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+    #                                                     bins=[self.TrainingData.time.values[1:],
+    #                                                           forecast_edges[0]])
+    #
+    #     self.LL_Edges = self.SeisCostFunction.edges_x2
+    #     self.LL_Moments = self.SeisCostFunction.edges_x1
+    #
+    #     # We need to join the CAPS and the Flow bounds stated previously:
+    #     self.ParamBounds = self.CAPSbounds + self.FlowBounds
+    #
+    #     print("Maximum iterations CAPS:", self.maxiter)
+    #     self.CAPS_iter_results = []
+    #     if self.cost_fun=='LL':
+    #         result = differential_evolution(self.ll_score_joint, self.ParamBounds,polish=True,
+    #                                     disp=self.disp, maxiter=self.maxiter, seed=self.seed,popsize=10, callback=self.caps_iteration)
+    #     else:
+    #         result = differential_evolution(self.ls_score_joint, self.ParamBounds,polish=True,
+    #                                         disp=self.disp, maxiter=100, seed=self.seed,popsize=10, callback=self.caps_iteration)
+    #
+    #     print("End CAPS differential evolution")
+    #
+    #     for i in range(len(result.x)):
+    #         self.seed_settings[self.OptimizeKeys[i]] = result.x[i]
+    #         if (self.logscale[i]):
+    #             self.seed_settings[self.OptimizeKeys[i]] = np.power(10., result.x[i])
+    #
+    #     self.flow_model.params = self.seed_settings[self.OptimizeKeys[4]], self.seed_settings[self.OptimizeKeys[5]]
+    #     #self.flow_model.params = self.seed_settings[self.OptimizeKeys[4]]
+    #
+    #     self.flow_model.hidden_mechanism = self.flow_model.predict()
+    #
+    #     self.timesteps = self.TrainingData.time.values
+    #     inipres=self.TrainingData[self.Columns[-1]].values[0]
+    #     self.PressureFunction = self.create_interpolator(self.timesteps,(self.flow_model.hidden_mechanism-inipres)/1.e6)
+    #
+    #     (max_pressure_past,
+    #      working_xyz_past,
+    #      cells_volume_past) = self.Interpolate_1D(self.TrainingData.time.values[1:], forecast_edges[0],
+    #                                               self.ExSolSettings, self.CAPSSettings)
+    #
+    #     self.total_events_past_single = CAPS.Forecast_BinnedRate_only_1D(
+    #         self.TrainingData.time.values[1:], forecast_edges[0], max_pressure_past, working_xyz_past,
+    #         cells_volume_past, self.seed_settings)
+    #
+    #     print('Poisson Density CAPS:', self.seed_settings["PoissonDensity"])
+    #     print("sum of total events after calibration", np.sum(self.total_events_past_single[-1, :]), )
+    #
+    #     # looking for index in event past corresponsing to time of last event
+    #     index = np.where(self.TrainingData.time.values[1:] <= self.training_catalog.ts.values[-1])
+    #     NewPoisson = (self.seed_settings['PoissonDensity']
+    #                   * len(self.training_catalog) / (
+    #                       np.sum(self.total_events_past_single[index[0][-1] + 1, :])))  # noqa
+    #
+    #     # Only adapting the Poisson Density if it is  a finite number and if the predicted cumulative events
+    #     # are within a specific range from the observed ones:
+    #     events_ratio = self.SeisCostFunction.y[-1]/(np.sum(self.total_events_past_single[index[0][-1]+1, :]))
+    #     if np.isfinite(NewPoisson):
+    #         if 0.85 <= events_ratio <= 1.15:
+    #             self.seed_settings['PoissonDensity'] = NewPoisson
+    #             print('Poisson density CAPS within the range. Corrected.')
+    #         else:
+    #             print('Poisson density CAPS is finite but not within the range. Not corrected.')
+    #     else:
+    #         print('Poisson Density CAPS is not finite. Not corrected.')
+    #
+    #     print('Poisson Density CAPS:', self.seed_settings["PoissonDensity"])
+    #
+    #     self.total_events_past_single = CAPS.Forecast_BinnedRate_only_1D(
+    #         self.TrainingData.time.values[1:], forecast_edges[0], max_pressure_past, working_xyz_past,
+    #         cells_volume_past, self.seed_settings)
+    #
+    #     # save optimal parameters for single forecast later
+    #     self.seed_settings_optimal = self.seed_settings
+    #     # save maximum pressure past for later
+    #     self.max_pressure_past = max_pressure_past
+    #     self.working_xyz_past = working_xyz_past
+    #     self.cells_volume_past = cells_volume_past
+    #
+    #     print("sum of total events after Re-calibration (calibrated params)", np.sum(self.total_events_past_single[-1, :]), )
+    #
+    #     print("Optimized parameters after calibration:")
+    #     for i in range(len(self.CAPSbounds)):
+    #         print(self.OptimizeKeys[i]+":", self.seed_settings[self.OptimizeKeys[i]], )
+    #
+    #     j_init = len(self.CAPSbounds)
+    #     for j in range(len(self.FlowBounds)):
+    #         print(self.OptimizeKeys[j_init+j]+":", self.seed_settings[self.OptimizeKeys[j_init+j]], )
+    #
+    #     #---------------------------------------------------------------------------------------------------------------
+    #
+    #     # get uncertainty range for parameters
+    #     # par_grd_1 = self.Params_flowmodel()
+    #
+    #     cal_val = []
+    #     for i in range(len(self.CAPSbounds)):
+    #         cal_val.append(self.seed_settings[self.OptimizeKeys[i]])
+    #     self.cal_val = np.array(cal_val)
+    #
+    #     # result = differential_evolution(self.ls_params_score, [(90, 100)], polish=True, disp=self.disp,
+    #     #                                 maxiter=self.maxiter, seed=self.seed, popsize=10, callback=self.caps_iteration)
+    #
+    #     # percent = result.x
+    #     percent = 10
+    #
+    #     # print("1sigma for normal trunc. distr. of params: " + str(percent[0]) + " divided by 100 times calib. parameter.")
+    #
+    #     par_grd_2 = []
+    #     for p in range(len(self.CAPSbounds)):
+    #         # par_distr = self.Params_CAPS(forecast_edges, max_pressure_past, working_xyz_past, cells_volume_past, p)
+    #         par_distr = self.Params_CAPS_2(percent, p)
+    #         # par_grd_2.append((par_distr.T)[0])
+    #         par_grd_2.append(par_distr)
+    #
+    #     self.par_grd = np.array(par_grd_2)
+    #     # self.par_grd = np.concatenate((par_grd_2, par_grd_1))
+    #     # self.par_grd = np.vstack((par_grd_2, par_grd_1))
+    #
+    #     # Plotting distributions
+    #     #ATLS.PlotParamDist(self.par_grd, self.cal_val, seis_model='CAPS', filename='Bedretto_params_distr.png')
+    #
+    #     if 1 <= self.workers <= mp.cpu_count():
+    #         nr_cpu = self.workers
+    #     else:
+    #         print('Workers must be between 1 and 16 or -1 to indicate max. nr. of cores, which is 16')
+    #         print('Default: using all 16 cores')
+    #         nr_cpu = mp.cpu_count()
+    #
+    #     self.nr_cpu = nr_cpu
+    #
+    #     pool = mp.Pool(nr_cpu)
+    #     result = pool.starmap(self.Parallel_CAPS_fitting, [(nr_sim, self.TrainingData.time.values[1:], forecast_edges, self.par_grd) for nr_sim in range(self.NSim)])
+    #     pool.close()
+    #
+    #     # total_events = [result[a][0] for a in range(len(result))]
+    #     # press_fit = [result[a][1] for a in range(len(result))]
+    #
+    #     self.total_events_past_grd = (np.array(result)).T
+    #     # self.press_fit = (np.array(press_fit)).T
+    #
+    #     total_events_median = np.round(np.sum(np.median(self.total_events_past_grd, axis=2), axis=0))[-1]
+    #
+    #     print("sum of total events after Re-calibration (median from grid)", total_events_median, )
+    #
+    #     if total_events_median == 0:
+    #         total_events_median_masked = self.mask_for_median(self.total_events_past_grd)
+    #
+    #         print("sum of total events after Re-calibration and mask (median from grid)",
+    #               total_events_median_masked[-1], )
+    #
+    #     return
+
+    def fit(self, HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep=True):
+
+        if self.inv_mod == 'joint':
+            print("Model not available at the moment ... using sequential.")
+            self._fit_sequential(HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep)
+            # self._fit_joint(HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep)
+        else:
+            self._fit_sequential(HydraulicLogs_coarse_pd, catalog_incomplete_df, forecast_edges, deep)
+
+    def predict(self, PlannedStrategy, Forecasts_Moments, Forecasts_Edges):
+
+    # CAPS MODEL #
+
+        if self.seis_model=='CAPS':
+            self.seed_settings = self.seed_settings_optimal
+
+            (self.max_pressure_past,
+             self.Forecast_R,
+             self.Forecast_Volume) = self.Interpolate_1D(Forecasts_Moments, Forecasts_Edges[0], self.CAPSSettings)
+
+            self.press_prediction = self.flow_model.predict(np.array(PlannedStrategy[["time", "flow"]].values))
+
+            self.timesteps = PlannedStrategy.time.values
+            inipres = self.TrainingData[self.Columns[-1]].values[0]
+            self.PressureFunction = self.create_interpolator(self.timesteps, (self.press_prediction - inipres) / 1.e6)
+
+            (self.Forecast_MaxPressure,
+             self.Forecast_R,
+             self.Forecast_Volume) = self.Interpolate_1D(Forecasts_Moments, Forecasts_Edges[0], self.CAPSSettings)
+
+            max_pressure = np.maximum(self.max_pressure_past, self.Forecast_MaxPressure)
+
+            print('Starting CAPS forecast')
+
+            self.total_events_forecast_grid, self.total_rates_forecast_grid = CAPS.Caps_Model_linear(Forecasts_Moments,
+                                                                                                     Forecasts_Edges[0][Forecasts_Edges[0] >= 0.],
+                                                                                                     self.Forecast_R,
+                                                                                                     max_pressure,
+                                                                                                     self.seed_settings,
+                                                                                                     NSim=self.NSim,
+                                                                                                     retriggering=self.retriggering)
+
+            print('Ending CAPS forecast')
+
+            # This is a "trick" and needs to be deleted after the FAM23
+
+            # if np.median(self.total_events_forecast_grid, axis=0)[0]==0:
+            #     if self.flow_model.Q[0, 1] <= 1.e-9:
+            #         # repair events matrix
+            #         last_col = self.total_events_past_grid[:, -1]
+            #         total_events_forecast_grid_copy = np.zeros_like((self.total_events_forecast_grid))
+            #         for i in range(len(self.total_events_forecast_grid[0])):
+            #             total_events_forecast_grid_copy[:, i] = self.total_events_forecast_grid[:, i] + last_col
+            #         del self.total_events_forecast_grid
+            #         self.total_events_forecast_grid = total_events_forecast_grid_copy
+            #         del total_events_forecast_grid_copy
+            #         # repair rates matrix
+            #         # self.total_rates_forecast_grid[:, 0] = self.total_rates_past_grid[:,-1]
+            #         # Replace the first time moment for both events and rates by the last one from training
+            #         self.total_events_forecast_grid[:, 0] = self.total_events_forecast_grid[:, 1]
+            #         diff_col = abs(self.total_events_past_grid[:, -1] - self.total_events_forecast_grid[:, 0])
+            #         total_events_forecast_grid_copy = np.zeros_like((self.total_events_forecast_grid))
+            #         for i in range(len(self.total_events_forecast_grid[0])):
+            #             total_events_forecast_grid_copy[:, i] = self.total_events_forecast_grid[:, i] - diff_col
+            #         del self.total_events_forecast_grid
+            #         self.total_events_forecast_grid = total_events_forecast_grid_copy
+            #     else:
+            #         # Replace the first time moment for both events and rates by the last one from training
+            #         self.total_events_forecast_grid[:, 0] = self.total_events_past_grid[:, -1]
+
+            return
+
+    # SEED MODEL #
+
+        else:
+            self.seed_settings = self.seed_settings_optimal
+
+            self.timesteps = PlannedStrategy.time.values
+            self.press_prediction = self.flow_model.predict(np.array(PlannedStrategy[["time", "flow"]].values))
+
+            # 1D pressure interpolation (in time only)
+            pres_sol = (self.press_prediction - self.TrainingData[self.Columns[-1]].values[0]) / (1.e6)
+            self.pres_t_forecast = np.array([np.interp(Forecasts_Moments, PlannedStrategy['time'].values, ps_row)
+                                             for ps_row in pres_sol.T])
+            # OR:
+            # Tind = np.argmin(np.abs(PlannedStrategy['time'].values - Forecasts_Moments[:, np.newaxis]), axis=1)
+            # self.pres_t_fit = (pres_sol[Tind,:]).T
+
+            # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+            SeedsSettings = nb.typed.List()
+            for j in range(len(self.SEEDmodelKeys)):
+                SeedsSettings.append(float(self.seed_settings[self.SEEDmodelKeys[j]]))
+
+            # self.synthetic_catalog, self.total_events_forecast_grid, self.total_rates_forecast_grid = SEED.Seed_Model_linear(Forecasts_Moments,
+            #                                                                                                                  Forecasts_Edges[0][Forecasts_Edges[0] >= 0.],
+            #                                                                                                                  self.flow_model.r,
+            #                                                                                                                  PlannedStrategy['time'].values,
+            #                                                                                                                  self.pres_t_forecast,
+            #                                                                                                                  SeedsSettings,
+            #                                                                                                                  self.NSim,
+            #                                                                                                                  self.retriggering)
+
+            self.synthetic_catalog, self.total_events_grid, self.total_rates_grid = SEED.Seed_Model_linear(np.concatenate((self.LL_Moments[1:], Forecasts_Moments[1:]), axis=0),
+                                                                                                                             Forecasts_Edges[0][Forecasts_Edges[0] >= 0.],
+                                                                                                                             self.flow_model.r,
+                                                                                                                             np.concatenate((self.flow_model.Q[:,0], PlannedStrategy['time'].values[1:]), axis=0),
+                                                                                                                             np.concatenate((self.pres_t_fit, self.pres_t_forecast[:,1:]), axis=1),
+                                                                                                                             SeedsSettings,
+                                                                                                                             self.NSim,
+                                                                                                                             self.retriggering)
+            self.total_events_past_grid = self.total_events_grid[:, :len(self.LL_Moments[1:])]
+            self.total_events_forecast_grid = self.total_events_grid[:, (len(self.LL_Moments[1:])-1):]
+
+            # self.total_rates_forecast_grid = self.total_rates_grid[:, (len(self.total_rates_past_grid[0])-1):-1]
+
+            # OR:
+
+            # Take the rates of the forecast and sum up to the last events of the training
+            # total_events = np.zeros_like(self.total_events_forecast_grid)
+            # total_events[:,0] = self.total_events_past_grid[:,-1]
+            # for i in range(1, len(total_events[0])):
+            #     total_events[:,i] = total_events[:,i-1] + self.total_rates_forecast_grid[:,i-1]
+            #
+            # self.total_events_forecast_grid = total_events
+
+            return
+
+    def forecast_only(self, PlannedStrategy, Forecasts_Moments, Forecasts_Edges):
+
+    # CAPS MODEL #
+
+        if self.seis_model=='CAPS':
+
+            self.press_prediction = self.flow_model.predict(np.array(PlannedStrategy[["time", "flow"]].values))
+
+            self.timesteps = PlannedStrategy.time.values
+            inipres = self.TrainingData[self.Columns[-1]].values[0]
+            self.PressureFunction = self.create_interpolator(self.timesteps, (self.press_prediction - inipres) / 1.e6)
+
+            (self.Forecast_MaxPressure,
+             self.Forecast_R,
+             self.Forecast_Volume) = self.Interpolate_1D(Forecasts_Moments, Forecasts_Edges[0], self.CAPSSettings)
+
+            print('Starting CAPS forecast')
+
+            self.total_events_forecast_grid, self.total_rates_forecast_grid = CAPS.Caps_Model_linear(Forecasts_Moments,
+                                                                                                     Forecasts_Edges[0][Forecasts_Edges[0] >= 0.],
+                                                                                                     self.Forecast_R,
+                                                                                                     self.Forecast_MaxPressure,
+                                                                                                     self.seed_settings,
+                                                                                                     NSim=self.NSim,
+                                                                                                     retriggering=self.retriggering)
+
+            print('Ending CAPS forecast')
+
+            return
+
+    # SEED MODEL #
+
+        else:
+
+            self.timesteps = PlannedStrategy.time.values
+            self.press_prediction = self.flow_model.predict(np.array(PlannedStrategy[["time", "flow"]].values))
+
+            # 1D pressure interpolation (in time only)
+            pres_sol = (self.press_prediction - self.TrainingData[self.Columns[-1]].values[0]) / (1.e6)
+            self.pres_t_forecast = np.array([np.interp(Forecasts_Moments, PlannedStrategy['time'].values, ps_row) for ps_row in pres_sol.T])
+
+            # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+            SeedsSettings = nb.typed.List()
+            for j in range(len(self.SEEDmodelKeys)):
+                SeedsSettings.append(float(self.seed_settings[self.SEEDmodelKeys[j]]))
+
+            self.synthetic_catalog, self.total_events_grid, self.total_rates_grid = SEED.Seed_Model_linear(Forecasts_Moments,
+                                                                                                           Forecasts_Edges[0][Forecasts_Edges[0] >= 0.],
+                                                                                                           self.flow_model.r,
+                                                                                                           PlannedStrategy['time'].values,
+                                                                                                           self.pres_t_forecast,
+                                                                                                           SeedsSettings,
+                                                                                                           self.NSim,
+                                                                                                           self.retriggering)
+
+            # self.total_events_past_grid = self.total_events_grid[:, :len(self.LL_Moments[1:])]
+            # self.total_events_forecast_grid = self.total_events_grid[:, (len(self.LL_Moments[1:])-1):]
+
+            return
\ No newline at end of file
diff --git a/hm1d/__init__.py b/hm1d/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/hm1d/model.py b/hm1d/model.py
new file mode 100644
index 0000000..6cf2dd0
--- /dev/null
+++ b/hm1d/model.py
@@ -0,0 +1,882 @@
+import logging
+from datetime import timedelta
+
+import numpy as np
+import numba as nb
+import copy
+from hydws.parser import BoreholeHydraulics
+from ramsis_model import ModelInput
+from scipy import stats
+from scipy.interpolate import interp1d
+from seismostats.seismicity.catalog import Catalog
+from seismostats.seismicity.rategrid import ForecastGRRateGrid
+from seismostats.utils.coordinates import CoordinateTransformer
+from shapely import wkt
+from sklearn.linear_model import Lasso
+
+from hm1d.FlowModel import FlowModel0, FlowModel1, FlowModel2, FlowModel3, FlowModel4
+
+from hm1d.SeismicityModel import Caps_Model_linear as CAPS
+from hm1d.SeismicityModel import Seed_Model_linear as SEED
+
+from scipy.optimize import differential_evolution
+from scipy.interpolate import CloughTocher2DInterpolator
+
+from hm1d.utils import (daterange,Calibrate_Observed_GR, b_value_Lasso_calibration_1D, Refine_An_Edge,
+                                         LL_cost_function_1D, LS_cost_function_1D)
+
+
+class HM1D():
+    """ InducedSFM Class for Hydro-mechanical models in 1D
+
+        Available variables after successfull initialization:
+
+        Input Hydraulic and Seismic data is available as DataFrames as:
+        self.hydraulic_df,
+        self.scenario_df,
+        self.seismicity_df
+
+        Variables from input dict are also available as class properties:
+        self.model_parameters
+        self.forecast_start
+        self.forecast_end
+        self.epoch_duration
+        self.proj_string
+
+        Additionally are available:
+        self.forecast_moments
+        self.section_metadata
+        self.observation_start
+        self.observation_end
+
+        A logger is available with self._logger.* (info, warning, error, ...)
+
+    """
+
+    def __init__(self, model_input: ModelInput, **kwargs):
+        """
+        Gets called after the aforementioned variables are instantiated, eg.
+        model setup can live in here.
+        """
+        # set up logger
+        self._logger = logging.getLogger(__name__)
+        self._logger.info('Model Initialized')
+        self.proj_string=self.parameters['local_proj_string']
+
+        self.model_input = model_input
+        self.parameters = model_input.model_parameters
+
+        self.column_flow = "topflow"
+        self.column_pressure = "toppressure"
+
+        self.opt_algorithm = self.parameters['opt_algorithm']
+        self.sensitivity_analysis = self.parameters['sensitivity_analysis']
+
+
+        self.cost_fun = self.parameters['cost_fun']
+        listOfStrings = ['LL' , 'LS']
+        if self.cost_fun not in listOfStrings :
+            print("Cost function '",self.cost_fun,"' not found. Possible values are:", listOfStrings,". Using default mode (LL).")
+            self.cost_fun='LL'
+
+        self.flw_model = self.parameters['flow_model']
+        listOfStrings = ['point_source' , 'line_source', 'num_const_perm', 'num_var_perm']
+        if self.flw_model not in listOfStrings :
+           print("Fluid model '",self.cost_fun,"' not found. Possible values are:", listOfStrings,". Using default mode (line_source).")
+           self.flw_model='line_source'
+
+        self.NSim=self.parameters['NSim']
+        self.seed_model_version = self.parameters['seed_model_version']
+        self.seis_model = self.parameters['seis_model']
+        self.seed_settings =self.parameters['SeisSettings']
+        self.retriggering = self.seed_settings['retriggering']
+        self.SEISbounds = self.parameters.get('SeisBounds',{})
+        self.flow_bounds = self.parameters['Settings'][2]
+        self.ExSolSettings = self.parameters['Settings'][3]
+        self.CAPSSettings = self.parameters['Settings'][4]
+
+        self.CostFunction = None
+        self.LL_Edges = None
+        self.LL_Moments = None
+        self.Training_MaxPressure = None
+        self.Training_XYZ = None
+        self.Training_Volume = None
+
+        # input for the flow models
+        self.flow_settings = self.parameters['FlowSettings']
+        self.max_grid_ext = self.flow_settings.get('max_grid_ext',300)
+        self.layer_thick = self.flow_settings.get('layer_thick',100)
+        self.cross_area = self.flow_settings.get('cross_area',94)
+
+        self.maxbval_bounds = [(1., self.seed_settings["b_max"])]  # upper b-value limit
+        self.dM = self.parameters['dM']
+
+        if self.retriggering == True:
+            if self.seed_settings['criticality']!=0:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'stressdrop_coeff', 'cohesion_mean', 'friction_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['stressdrop_coeff'][0], self.seis_bounds['stressdrop_coeff'][1]),
+                                   # (self.seis_bounds['criticallity'][0], self.seis_bounds['criticallity'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False, False]
+            else:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'stressdrop_coeff', 'cohesion_mean', 'friction_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['stressdrop_coeff'][0], self.seis_bounds['stressdrop_coeff'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False, False]
+        else:
+            if self.seed_settings['criticality']!=0:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'friction_mean', 'cohesion_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False]
+            else:
+                self.OptimizeKeys = ['sigma1_std', 'sigma3_std', 'cohesion_mean', 'friction_mean', 'seed_density']
+                self.SEISbounds = [(self.seis_bounds['sigma1_std'][0], self.seis_bounds['sigma1_std'][1]),
+                                   (self.seis_bounds['sigma3_std'][0], self.seis_bounds['sigma3_std'][1]),
+                                   (self.seis_bounds['cohesion_mean'][0], self.seis_bounds['cohesion_mean'][1]),
+                                   (self.seis_bounds['friction_mean'][0], self.seis_bounds['friction_mean'][1]),
+                                   (self.seis_bounds['seed_density'][0], self.seis_bounds['seed_density'][1])]
+                self.logscale = [False, False, False, False, False]
+
+        """
+        4 different flow models can be choosen:
+        -> point_source: analytical point source solution. Two parameters, storage coefficient and permeability, are calibrated.
+        -> line_source: Theis' solution. Two parameters, storage coefficient and permeability, are calibrated.
+        -> num_const_perm: numerical solution without permeability changes. Storage and permeability are calibrated.
+        -> num_var_perm_FD: NOT WORKING, should be removed
+        -> num_var_perm: numerical with variable fracture permeability. Parameters to be calibrated are:
+                ['zero_stress_aperture', 
+                'residual_aperture', 
+                'shearing_aperture_factor', 
+                'max_shear_frac_aperture', 
+                'shear_scaling_factor', 
+                'storage']
+        """
+
+        if self.flw_model == 'point_source':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability'] # parameters to calibrate
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel0(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True),
+                                         self.cross_area,
+                                         self.seed_settings['viscosity'],
+                                         bounds=self.FlowBounds,
+                                         iniguess=(self.seed_settings['storage'], self.seed_settings['permeability']))
+
+        elif self.flw_model == 'line_source':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability']
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel1(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True),
+                                         self.layer_thick,
+                                         self.seed_settings['viscosity'],
+                                         bounds=self.FlowBounds,
+                                         iniguess=(self.seed_settings['storage'], self.seed_settings['permeability']))
+
+        elif self.flw_model == 'num_const_perm':
+            self.OptimizeKeys = self.OptimizeKeys + ['storage', 'permeability']
+            self.FlowBounds = [(self.flow_bounds['storage'][0], self.flow_bounds['storage'][1]),
+                               (self.flow_bounds['permeability'][0], self.flow_bounds['permeability'][1])]
+            self.logscale = self.logscale + [True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel2(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds)
+
+        elif self.flw_model == 'num_var_perm_FD': # HM1 class with FD
+            self.OptimizeKeys = self.OptimizeKeys + ['zero_stress_aperture', 'residual_aperture','frac_normal_stiffness','storage'] # parameters to calibrate
+            self.FlowBounds = [(self.flow_bounds['zero_stress_aperture'][0], self.flow_bounds['zero_stress_aperture'][1]),
+                               (self.flow_bounds['residual_aperture'][0], self.flow_bounds['residual_aperture'][1]),
+                               (self.flow_bounds['frac_normal_stiffness'][0], self.flow_bounds['frac_normal_stiffness'][1]),
+                               (self.flow_bounds['storage'][0], self.flow_bounds['storage'][1])]
+            self.logscale = self.logscale + [True, True, True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel3(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds)
+
+        elif self.flw_model == 'num_var_perm': # HM1 cass with FV
+            self.OptimizeKeys = self.OptimizeKeys + ['zero_stress_aperture', 'residual_aperture', 'shearing_aperture_factor', 'max_shear_frac_aperture', 'shear_scaling_factor', 'storage']
+            self.FlowBounds = [(self.flow_bounds['zero_stress_aperture'][0], self.flow_bounds['zero_stress_aperture'][1]),
+                               (self.flow_bounds['residual_aperture'][0], self.flow_bounds['residual_aperture'][1]),
+                               (self.flow_bounds['shearing_aperture_factor'][0], self.flow_bounds['shearing_aperture_factor'][1]),
+                               (self.flow_bounds['max_shear_frac_aperture'][0], self.flow_bounds['max_shear_frac_aperture'][1]),
+                               (self.flow_bounds['shear_scaling_factor'][0], self.flow_bounds['shear_scaling_factor'][1]),
+                               (self.flow_bounds['storage'][0], self.flow_bounds['storage'][1])]
+            self.logscale = self.logscale + [True, True, True, True, True, True]
+            # activate the flow model:
+            self.flow_model = FlowModel4(self.TrainingData[self.Columns[:2]].values,
+                                         np.geomspace(0.1, self.max_grid_ext, 30, endpoint=True), self.layer_thick,
+                                         self.seed_settings, bounds=self.FlowBounds, forward_model=self.forward_model,
+                                         iniguess=(self.seed_settings['zero_stress_aperture'], self.seed_settings['residual_aperture'],
+                                                   self.seed_settings['shearing_aperture_factor'], self.seed_settings['max_shear_frac_aperture'],
+                                                   self.seed_settings['shear_scaling_factor'], self.seed_settings['storage']))
+
+
+        if self.seis_model=='SEED':
+            self.SEEDmodelKeys = ['seed_density', 'inter_sigma1', 'inter_sigma3', 'sigma1_std', 'sigma3_std',
+                                  'cohesion_mean', 'friction_mean', 'criticality', 'stressdrop_coeff', 'phydro',
+                                  'b_min', 'b_max', 'b_min_diff_stress', 'b_max_diff_stress', 'Mag_Completeness']
+
+            self.disp = self.parameters.get('verbose',True)
+            self.maxiter = self.parameters.get('maxiter',-1)
+            self.seed = 42
+
+
+        section_id = self.parameters['well_section_publicid']
+
+        self.geometry = model_input.geometry
+
+        self.forecast_start = model_input.forecast_start
+        self.forecast_end = model_input.forecast_end
+
+        self.hydraulics = BoreholeHydraulics(model_input.injection_well[0])
+
+        self.scenario = BoreholeHydraulics(model_input.injection_plan)
+
+        self.seismicity = Catalog.from_quakeml(model_input.seismic_catalog,
+                                               includequality=True)
+
+        # get dataframes from HYDSJONParser
+        self.hydraulic_df = self.hydraulics[section_id].hydraulics
+        self.hydraulic_df = self.hydraulic_df[~self.hydraulic_df['topflow'].isna()]
+        self.hydraulic_df = self.hydraulic_df[~self.hydraulic_df['toppressure'].isna()]
+
+        self.scenario_df = self.scenario[section_id].hydraulics
+
+        self.observation_start = self.hydraulic_df.index.min()
+        self.observation_end = np.array(
+            self.forecast_start).astype('datetime64')
+
+        self.hydraulic_df = self.hydraulic_df[self.hydraulic_df.index
+                                              < self.observation_end]
+        self.seismicity = self.seismicity[self.seismicity['time']
+                                          < self.forecast_start]
+
+        # self.observation_end = self.hydraulic_df.index.max()
+        # self.observation_end = min(self.observation_end, self.forecast_start)
+
+        self.seismicity = self.seismicity[~self.seismicity['magnitude'].isna()]
+
+        if 'associatedphasecount' in self.seismicity.columns:
+            self.seismicity['associatedphasecount'] = \
+                self.seismicity['associatedphasecount'].astype(float)
+            # is this sensible?
+            self.seismicity['associatedphasecount'] = \
+                self.seismicity['associatedphasecount'].fillna(0)
+
+            self.seismicity = \
+                self.seismicity[self.seismicity['associatedphasecount'] >= self.parameters['n_phases']]
+
+        # add ts column to seismicity dataframe
+        self.seismicity['ts'] = self.seismicity.time.map(
+            lambda x: (x - self.forecast_start).total_seconds())
+
+        self.ref_point = self.parameters.get('ref_point',[np.median(self.seismicity['Xs']),
+                                                          np.median(self.seismicity['Ys']),
+                                                          np.median(self.seismicity['Zs']),])
+
+        transformer = CoordinateTransformer(self.proj_string)
+        self.seismicity['Xs'], self.seismicity['Ys'], self.seismicity['Zs'] = \
+            transformer.to_local_coords(self.seismicity['longitude'],
+                                          self.seismicity['latitude'],
+                                          self.seismicity['depth'])
+
+        self.seismicity['Rs'] = np.sqrt((self.seismicity['Xs'] - self.ref_point[0]) ** 2 +
+                                        (self.seismicity['Ys'] - self.ref_point[1]) ** 2 +
+                                        (self.seismicity['Zs'] - self.ref_point[2]) ** 2)
+        # get the forecast times
+        self.forecast_moments = daterange(self.forecast_start,
+                                          self.forecast_end,
+                                          self.parameters['epoch_duration'],
+                                          self.observation_start)
+
+        self.scenario_df = self.scenario_df.resample(str(self.parameters['epoch_duration'])+'s').mean().interpolate(method='linear')
+
+        self.scenario_df = self.scenario_df[(self.scenario_df.index <= self.forecast_end) &
+                                            (self.scenario_df.index > self.forecast_start)]
+
+        sc_all_negative = (self.scenario_df['topflow'] < 0).all()
+        sc_all_identical = self.scenario_df['topflow'].nunique() == 1
+
+        if sc_all_negative and sc_all_identical:
+            self.scenario_df["topflow"]=(-self.scenario_df["topflow"].values[0]*
+                                      np.ones(len(self.scenario_df))*self.hydraulic_df["topflow"].values[-1])
+
+        sc_all_negative = (self.scenario_df['topflow'] < 0).all()
+        sc_all_identical = self.scenario_df['topflow'].nunique() == 1
+
+        if sc_all_negative and sc_all_identical:
+            self.scenario_df["topflow"]=(-self.scenario_df["topflow"].values[0]*
+                                      np.ones(len(self.scenario_df))*self.hydraulic_df["topflow"].values[-1])
+
+        self.training_catalog=self.seismicity.copy(deep=True)
+
+    def update_seeds_settings(self):
+        Mc, b_value = Calibrate_Observed_GR(
+            self.seismicity, self.dM, 'magnitude')
+        self.seed_settings["Mag_Completeness"] = Mc
+        self.seed_settings["b_value"] = b_value
+        self.training_catalog = self.seismicity[
+            self.seismicity['magnitude'] >= Mc]
+
+        if (self.seed_settings["b_vs_depth_range"]):
+            a, m = b_value_Lasso_calibration_1D(
+                np.array(self.training_catalog['Rs'].values),
+                np.array(self.training_catalog['magnitude'])[:, 0],
+                bins=100)
+        else:
+            a, m = b_value, np.zeros(1)
+
+        self.seed_settings["a"] = a
+        self.seed_settings["m"] = m
+
+    def ll_score(self, x):
+        y = self.CostFunction.y
+        log_factorial_y = self.CostFunction.logyfact
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        y0 = CAPS.Caps_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.], self.Training_R,
+                                    self.Training_MaxPressure, TestSettings, NSim=1, retriggering=self.retriggering)[0]
+
+        LL = np.sum(y * np.log(y0) - y0 - log_factorial_y)/len(self.training_catalog)# Poissonian LL
+        if np.isfinite(LL):
+            return -LL
+        return 1.e20
+
+    def ls_score(self, x):
+        y = self.CostFunction.y
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        y0 = CAPS.Caps_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.], self.Training_R,
+                                    self.Training_MaxPressure, TestSettings, NSim=1, retriggering=self.retriggering)[0]
+
+        LS = np.sum(np.square(y-y0))/len(y)
+        if np.isfinite(LS):
+            if LS < self.minf:
+                self.minf = LS
+                self.best_x = x
+            return LS
+        return 1.e20
+
+    def ls_score_seed(self, x):
+        y = self.CostFunction.y
+        TestSettings = copy.deepcopy(self.seed_settings)
+
+        for i in range(len(self.SEISbounds)):
+            TestSettings[self.OptimizeKeys[i]] = x[i]
+            if (self.logscale[i]):
+                TestSettings[self.OptimizeKeys[i]] = np.power(10., x[i])
+
+        # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+        SeedsSettings = nb.typed.List()
+        for j in range(len(self.SEEDmodelKeys)):
+            SeedsSettings.append(float(TestSettings[self.SEEDmodelKeys[j]]))
+
+        y0 = SEED.Seed_Model_linear(self.LL_Moments[1:], self.LL_Edges[self.LL_Edges >= 0.],
+                                                 self.flow_model.r, self.flow_model.Q[:,0],
+                                                 self.pres_t_fit,
+                                                 SeedsSettings, self.Nreal, self.retriggering)[1]
+
+        y1 = np.median(y0, axis=0)
+
+        LS = np.sum(np.square(y - y1)) / len(y)
+
+        if np.isfinite(LS):
+            if LS < self.minf:
+                self.minf = LS
+                self.best_x = x
+            return LS
+        return 1.e20
+
+    def save_iteration_step(self, x, convergence):
+        """
+        function to save history of parameters and residual during DEA
+        """
+        # check if equal
+        #np.testing.assert_equal(x, self.best_x)
+        self.dea_vals.append(x)
+        self.dea_func.append(self.minf)
+        return
+
+    def create_interpolator(self, t_grid, solution):
+        if len(self.flow_model.r)==len(solution[0]):
+            mesh = np.meshgrid(self.flow_model.r, t_grid)
+        else:
+            mesh = np.meshgrid(self.flow_model.r[1:], t_grid)
+        interpd = CloughTocher2DInterpolator(np.array([mesh[0].ravel(),mesh[1].ravel()]).T, solution.ravel(), fill_value=0)
+        return interpd
+
+    def Interpolate_1D(self, Forecasts_Moments, Forecasts_Edges):
+        """
+        Same as CAPS.InterpolateMaximumPressure, but using a self.PressureFunction created by the fit
+        """
+        RR=1#CAPS_KD_Settings["RefinementRatio"]
+        MyR=Refine_An_Edge(Forecasts_Edges, RR)  # for 1D we use directly the cartesian grid as the radius
+        LaterKeepIndices=np.logical_and(np.isfinite(MyR), MyR > 0.)
+        My_Working_R  =MyR[LaterKeepIndices]
+        DT=np.concatenate((self.timesteps, Forecasts_Moments))
+        MyT=np.sort(np.unique(DT))
+        MyPressure, MaxPressureAll =np.zeros([2, len(MyT), len(My_Working_R)])
+        PM=np.zeros(len(My_Working_R))
+        for timeIter in range(len(MyT)):
+            ConsiderTime=MyT[timeIter]
+            MyPressure[timeIter,:]=self.PressureFunction(My_Working_R,ConsiderTime)
+            MaxPressureAll[timeIter,:]=np.maximum(PM, MyPressure[timeIter,:])
+            PM=MaxPressureAll[timeIter,:]
+
+        TimeBinIndeces=np.intersect1d(Forecasts_Moments, MyT, return_indices=True)[2] # discard unecessary time discretization now
+        MaxPressure=MaxPressureAll[TimeBinIndeces]
+        dV = np.unique(np.diff(Forecasts_Edges, axis=0))
+        #dV=np.unique(np.diff(Forecasts_Edges, axis=0), axis=0)
+        #if(len(dV)>1):
+            #print ("Warning: non equidistant edges have been passed in the one direction. Correct array of control distances.")
+        #\todo: assume equidistant edges and refinement
+        My_Cell_Width=np.prod(np.amin(dV,axis=0)/RR)
+        return MaxPressure, My_Working_R, np.ones(len(My_Working_R))*My_Cell_Width
+
+    def Calibrate_CAPS(self, forecast_edges):
+        self.update_seeds_settings() # update b-value
+
+        if self.cost_fun=='LL':
+            self.CostFunction = LL_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values[1:],
+                                                   forecast_edges[0]])
+        else:
+            self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values[1:],
+                                                   forecast_edges[0]])
+            # self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+            #                                  bins=[self.TrainingData.time.values[1:],
+            #                                        forecast_edges])
+
+        self.LL_Edges = self.CostFunction.edges_x2 # (radial) spatial bins in negative and positive directions
+        self.LL_Moments = self.CostFunction.edges_x1 # time moments
+
+        (self.Training_MaxPressure,
+         self.Training_R,
+         self.Training_Volume) = self.Interpolate_1D(self.LL_Moments, self.LL_Edges)
+
+        print("Maximum iterations CAPS:", self.maxiter)
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        if self.cost_fun=='LL':
+            result = differential_evolution(self.ll_score, self.SEISbounds, polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed, popsize=10)
+        else:
+            result = differential_evolution(self.ls_score, self.SEISbounds, polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed, popsize=10,
+                                            updating='immediate', callback=self.save_iteration_step)
+        print("End CAPS differential evolution")
+
+        print('--------------------------------')
+        print('Calibrated geomechanical parameters:')
+        for i in range(len(result.x)):
+            self.seed_settings[self.OptimizeKeys[i]] = result.x[i]
+            if (self.logscale[i]):
+                self.seed_settings[self.OptimizeKeys[i]] = np.power(10., result.x[i])
+            print(str(self.OptimizeKeys[i]) + ': ' + str(self.seed_settings[self.OptimizeKeys[i]]))
+        print('--------------------------------')
+
+        # self.total_events_past_single, self.total_rates_past_single = CAPS.Caps_Model_linear(self.LL_Moments,
+        #                                                                                      self.LL_Edges[self.LL_Edges >= 0.],
+        #                                                                                      self.Training_R,
+        #                                                                                      self.Training_MaxPressure,
+        #                                                                                      self.seed_settings,
+        #                                                                                      NSim=1,
+        #                                                                                      retriggering=self.retriggering)
+        #
+        # print("sum of total events after calibration", self.total_events_past_single[0,-1], )
+
+        # save optimal parameters for single forecast later
+        self.seed_settings_optimal = dict.copy(self.seed_settings)
+
+        print("**************************************************")
+        print("Summary of optimized parameters after calibration:")
+        for i in range(len(self.SEISbounds)):
+            print(self.OptimizeKeys[i] + ': ', self.seed_settings_optimal[self.OptimizeKeys[i]], )
+        j_init = len(self.SEISbounds)
+        for j in range(len(self.FlowBounds)):
+            print(self.OptimizeKeys[j_init+j] + ': ', self.seed_settings_optimal[self.OptimizeKeys[j_init+j]], )
+        print("**************************************************")
+
+        self.total_events_past_grid, self.total_rates_past_grid = CAPS.Caps_Model_linear(self.LL_Moments,
+                                                                                         self.LL_Edges[self.LL_Edges >= 0.],
+                                                                                         self.Training_R,
+                                                                                         self.Training_MaxPressure,
+                                                                                         self.seed_settings,
+                                                                                         NSim=self.NSim,
+                                                                                         retriggering=self.retriggering)
+
+        total_events_median = np.round(np.median(self.total_events_past_grid, axis=0)[-1])
+
+        print("sum of total events after calibration (median from grid)", total_events_median, )
+
+        # if total_events_median==0:
+        #     total_events_median_masked = self.mask_for_median(self.total_events_past_grid[0])
+        #
+        #     print("sum of total events after calibration and mask (median from grid)", total_events_median_masked[-1], )
+
+        return
+
+    def Calibrate_SEED(self, forecast_edges):
+        self.update_seeds_settings() # update b-value
+
+        if self.cost_fun=='LL':
+            self.CostFunction = LL_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values,np.linspace(0,max(self.training_catalog[self.Xs].values),10)[:,0]])
+        else:
+            self.CostFunction = LS_cost_function_1D(np.array(self.training_catalog[np.append(self.ts, self.Xs)]),
+                                             bins=[self.TrainingData.time.values,np.linspace(0,max(self.training_catalog[self.Xs].values),10)[:,0]])
+
+        self.LL_Edges = self.CostFunction.edges_x2
+        self.LL_Moments = self.CostFunction.edges_x1
+
+        # 1D pressure interpolation (in time only)
+        pres_sol = (self.flow_model.hidden_mechanism - self.TrainingData[self.Columns[-1]].values[0])/(1.e6)
+        self.pres_t_fit = np.array([np.interp(self.LL_Moments[1:], self.flow_model.Q[:,0], ps_row) for ps_row in pres_sol.T])
+        # OR:
+        # Tind = np.argmin(np.abs(self.flow_model.Q[:,0] - self.LL_Moments[1:][:, np.newaxis]), axis=1)
+        # self.pres_t_fit = (pres_sol[Tind,:]).T
+
+        # Decide for the seed model version (implemented since Poster FAM23)
+        if self.seed_model_version=='1':
+            self.Nreal = 100 # self.NSim
+        elif self.seed_model_version=='2':
+            self.Nreal = 1
+        else:
+            self.Nreal = self.NSim
+
+        print("Maximum iterations SEED:", self.maxiter)
+
+        # open list to save the progress of the minimization
+        self.dea_vals = []
+        self.dea_func = []
+
+        if self.cost_fun=='LL':
+            result = differential_evolution(self.ll_score_seed, self.SEISbounds,polish=True, disp=self.disp,
+                                            maxiter=self.maxiter, seed=self.seed,popsize=10)
+        else:
+            result = differential_evolution(self.ls_score_seed, self.SEISbounds, polish=True,
+                                            disp=self.disp, maxiter=self.maxiter,seed=self.seed, popsize=10,
+                                            updating='immediate', atol=1e-3, callback=self.save_iteration_step)
+        print("End SEED differential evolution")
+
+        print('------------------------------------')
+        print('Calibrated geomechanical parameters:')
+        for i in range(len(result.x)):
+            self.seed_settings[self.OptimizeKeys[i]] = result.x[i]
+            if (self.logscale[i]):
+                self.seed_settings[self.OptimizeKeys[i]] = np.power(10., result.x[i])
+            print(str(self.OptimizeKeys[i]) + ': ' + str(self.seed_settings[self.OptimizeKeys[i]]))
+        print('------------------------------------')
+
+        # save optimal parameters for forecast later
+        self.seed_settings_optimal = dict.copy(self.seed_settings)
+
+        print("**************************************************")
+        print("Summary of optimized parameters after calibration:")
+        for i in range(len(self.SEISbounds)):
+            print(self.OptimizeKeys[i] + ': ', self.seed_settings_optimal[self.OptimizeKeys[i]], )
+        j_init = len(self.SEISbounds)
+        for j in range(len(self.FlowBounds)):
+            print(self.OptimizeKeys[j_init+j] + ': ', self.seed_settings_optimal[self.OptimizeKeys[j_init+j]], )
+        print("**************************************************")
+
+        # typed.List instance which is a compiled library backed, type-homogeneous list data type that is an improvement over the reflected-list: SeedsSettings = []
+        SeedsSettings = nb.typed.List()
+        for j in range(len(self.SEEDmodelKeys)):
+            SeedsSettings.append(float(self.seed_settings[self.SEEDmodelKeys[j]]))
+
+        self.training_catalog, self.total_events_past_grid, self.total_rates_past_grid = SEED.Seed_Model_linear(self.LL_Moments[1:],
+                                                                                                                self.LL_Edges[self.LL_Edges >= 0.],
+                                                                                                                self.flow_model.r,
+                                                                                                                self.flow_model.Q[:,0],
+                                                                                                                self.pres_t_fit,
+                                                                                                                SeedsSettings,
+                                                                                                                self.NSim,
+                                                                                                                self.retriggering)
+
+        total_events_median = np.round(np.median(self.total_events_past_grid, axis=0)[-1])
+
+        print("sum of total events after calibration (median from grid)", total_events_median, )
+
+        return
+
+    def run(self):
+        """
+        Run the model. Calls self.fit() and returns the result of
+        self.predict().
+        """
+        self.fit()
+        results = self.predict()
+
+        results = self.parse_results(results)
+
+        return results
+
+    def fit(self):
+        self._logger.info('Model Fitting')
+
+        if self.flw_model == 'point_source':
+            self._logger.info('HM0: calibrating flow model (point source)....')
+            self.flow_model.fit(self.hydraulic_df[::2].values)
+        elif self.flw_model == 'line_source':
+            print("HM0: calibrating flow model (line source)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM0_line_source.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        elif self.flw_model == 'num_const_perm':
+            print("HM0: calibrating flow model (numerical linear)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM0_numerical_linear.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        elif self.flw_model == 'num_var_perm':
+            print("HM1: calibrating flow model (numerical non-linear)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+            # or:
+            # with open(filepath + 'HM1_2.pkl', 'rb') as f:
+            #     self.flow_model = pickle.load(f)
+            # self.flow_model = self.flow_model[0]
+        else:
+            print("HM1: calibrating flow model (numerical non-linear with FV)....")
+            self.flow_model.fit(self.TrainingData[self.Columns[:2]].values, self.TrainingData[self.Columns[::2]].values)
+
+        print('--------------------------------')
+        print('Calibrated hydraulic parameters:')
+        for i in range(len(self.flow_model.params)):
+            self.seed_settings[self.OptimizeKeys[i-len(self.flow_model.params)]] = self.flow_model.params[i]
+            print(str(self.OptimizeKeys[i-len(self.flow_model.params)]) + ': ' + str(self.flow_model.params[i]))
+        print('--------------------------------')
+
+        self.timesteps = self.TrainingData.time.values
+        inipres=self.TrainingData[self.Columns[-1]].values[0]
+
+        if self.seis_model=='CAPS':
+            print("HM0/1: calibrating CAPS....")
+            self.PressureFunction = self.create_interpolator(self.timesteps, (self.flow_model.hidden_mechanism - inipres) / 1.e6)
+            self.Calibrate_CAPS(forecast_edges)
+        else:
+            print("HM0/1: calibrating SEED....")
+            self.Calibrate_SEED(forecast_edges)
+
+        return
+
+    def predict(self):
+        self._logger.info('Model Predicting')
+        # **************************************************************
+        # Multi-LASSO model forecast #
+
+        # forecast data
+        plan_t = np.array((self.scenario_df.index.values
+                          - self.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        plan_dV = np.maximum(self.scenario_df[self.column_flow].values, 0)
+
+#        if self.Dtau == self._epoch_duration:
+#        	forecast_moments_hires = self._forecast_moments
+#        else:
+#            taubins = np.arange(self._forecast_moments[0], self._forecast_moments[-1] + self.Dtau, self.Dtau)
+#            forecast_moments_hires = taubins
+
+        forecast_moments_hires = np.arange(
+            self.forecast_moments[0], self.forecast_moments[-1] + self.Dtau, self.Dtau)
+        # forecast_moments_hires =self.forecast_moments
+        if self.m >= len(forecast_moments_hires):
+            self.m = len(forecast_moments_hires) - 1
+
+        forecast_dV = np.interp(forecast_moments_hires, plan_t, plan_dV)
+        planned_flow = np.vstack((forecast_moments_hires, forecast_dV)).T
+        if self.Pmodel == 'FlowModels0-1':
+            forecast_P0 = self.Pcalib0.predict(planned_flow)[:, 0]
+            forecast_P1 = self.Pcalib1.predict(planned_flow)[:, 0]
+        else:
+            forecast_P = self.Pcalib.predict(planned_flow)[:, 0]
+        X_test = self.X_train[-1, :][np.newaxis, :]
+
+        # LASSO prediction
+        y_pred_mLASSO = np.zeros(self.m)
+        for i in range(self.m):
+            X_test[:, 0] = forecast_dV[i]
+            if self.Pmodel == 'FlowModels0-1':
+                X_test[:, 7] = forecast_P0[i]
+                X_test[:, 8] = forecast_P1[i]
+            else:
+                X_test[:, 7] = forecast_P[i]
+            y_pred_mLASSO[i] = self.mLASSO_trained['subLASSO'
+                                                   + str(i + 1)].predict(X_test)
+        # clip to zero in case of unstable result at very high m
+        y_pred_mLASSO[y_pred_mLASSO < 0] = 0
+
+        # filling gaps for tau_i after horizon m with EM1 frequentist (since LASSO tends to EM1 for m -> Inf.)
+        plan_V = np.cumsum(plan_dV * np.diff(np.append(plan_t[0], plan_t)))
+        forecast_V = np.interp(forecast_moments_hires, plan_t, plan_V)
+        # self.y_pred_fill = np.append(np.diff(10 ** (self.af - self.b_value * self.Mc) * forecast_V), 0)
+        self.y_pred_fill = np.diff(
+            10 ** (self.af - self.b_value * self.Mc) * forecast_V)
+        self.y_pred = np.copy(self.y_pred_fill)
+        indLASSO = np.arange(self.m)
+        self.y_pred[indLASSO] = y_pred_mLASSO[indLASSO]
+
+        self.y_pred = self.y_pred.reshape((len(forecast_moments_hires[1:]), 1))
+        self.a_value = (np.log10(self.y_pred + 1e-20) + self.b_value
+                        * self.Mc).reshape((len(forecast_moments_hires[1:]), 1))
+        if self.m > 0:
+            self.y_fit = self.mLASSO_trained['subLASSO1'].predict(self.X_train)
+        else:
+            self.y_fit = np.zeros(self.X_train.shape[0])
+        self.y_fit[self.y_fit <= 0] = 0
+
+        # resampling
+        if self.Dtau < self.parameters['epoch_duration']:
+            self._logger.info('Resampling Output')
+        factor = self.parameters['epoch_duration'] / self.Dtau
+        self.y_pred = factor * interp1d(forecast_moments_hires[1:], self.y_pred[:, 0], kind='linear')(
+            self.forecast_moments[1:])[:, np.newaxis]
+        self.a_value = (np.log10(self.y_pred + 1e-20) + self.b_value
+                        * self.Mc).reshape((len(self.forecast_moments[1:]), 1))
+        self.y_pred_fill = factor * \
+            interp1d(forecast_moments_hires[1:], self.y_pred_fill, kind='linear')(
+                self.forecast_moments[1:])
+
+        NN = ((np.max(self.dt_fit) - np.min(self.dt_fit))
+              / self.parameters['epoch_duration']).astype(int) + 1
+        self._time_fit = np.linspace(
+            np.min(self.dt_fit), np.max(self.dt_fit), NN)
+        self.dt_fit_mids = self._time_fit[1:] - \
+            self.parameters['epoch_duration'] / 2
+        self.rate_fit = factor * \
+            interp1d(self.tmids, self.y_fit, kind='linear')(
+                self.dt_fit_mids)[:, np.newaxis]
+        self.rate_train = factor * \
+            interp1d(self.tmids, self.y_train, kind='linear')(
+                self.dt_fit_mids)[:, np.newaxis]
+
+        # simulations
+        if self.Nsim > 1:
+            mLASSO_pred = np.zeros((self.y_pred.shape[0], self.Nsim))
+            for t in range(self.y_pred.shape[0]):
+                mLASSO_pred[t, :] = np.random.poisson(
+                    self.y_pred[t, 0], self.Nsim)
+
+            bsim = np.zeros(self.Nsim)
+            for sim in range(self.Nsim):
+                msim = self.Mc - \
+                    np.log(1 - np.random.random(self.fit_N)) / \
+                    (self.b_value * np.log(10))
+                bsim[sim] = np.log10(np.exp(1.)) / \
+                    (np.mean(msim) - (self.Mc - self.dM / 2))
+            mLASSO_b = bsim  # np.tile(bsim, (self.y_pred.shape[0], 1))
+
+            mLASSO_a = np.log10(mLASSO_pred + 1e-20) + mLASSO_b * self.Mc
+            mLASSO_afb = mLASSO_b * self.Mc + \
+                np.log10(self.fit_N_shutin) - np.log10(self.fit_Vtot)
+        else:
+            mLASSO_pred = self.y_pred
+            mLASSO_b = self.b_value  # np.full_like(mLASSO_pred, self.b_value)
+            mLASSO_a = self.a_value
+            mLASSO_afb = self.af
+        # mLASSO_Mc = np.full_like(mLASSO_a, self.Mc)
+        ##############################
+
+        # For each volume and timestep generate 5 values of interest
+        # (a, alpha, mc, b, rate) with n_sim samples each.
+        return mLASSO_a, mLASSO_afb, mLASSO_b, self.rate_fit, mLASSO_pred
+
+    def parse_results(self, results):
+        """
+        Parse Results to a ForecastGRRateGrid per timestep.
+        A ForecastGRRateGrid requires at least the following columns:
+            'number_events', 'longitude_min', 'longitude_max',
+            'latitude_min', 'latitude_max', 'depth_min', 'depth_max',
+            'a', 'b', 'mc', 'grid_id'
+
+        """
+        fit_datetimes = [self.observation_start + timedelta(seconds=t)
+                         for t in self._time_fit]
+        forecast_datetimes = [self.observation_start + timedelta(seconds=t)
+                              for t in self.forecast_moments]
+
+        bounds = list(wkt.loads(self.geometry.bounding_polygon).bounds)
+        bounds.insert(2, self.geometry.altitude_min)
+        bounds.insert(5, self.geometry.altitude_max)
+
+        parsed_results = []
+
+        for i in range(len(fit_datetimes) - 1):
+            rate = {'number_events': results[3][i],
+                    'longitude_min': bounds[0],
+                    'longitude_max': bounds[3],
+                    'latitude_min': bounds[1],
+                    'latitude_max': bounds[4],
+                    'depth_min': bounds[2],
+                    'depth_max': bounds[5],
+                    # self.af,
+                    'a': np.log10(len(self.seismicity[self.seismicity['magnitude'] > self.Mc])) + self.b_value * self.Mc,
+                    'alpha': self.af,
+                    'b': self.b_value,
+                    'mc': self.Mc,
+                    'grid_id': 0}
+
+            # Create a ForecastGRRateGrid for each Timestep
+            rategrid = ForecastGRRateGrid(rate,
+                                          starttime=fit_datetimes[i],
+                                          endtime=fit_datetimes[i + 1])
+
+            parsed_results.append(rategrid)
+
+        for i in range(len(forecast_datetimes) - 1):
+            rate = {'number_events': results[4][i],
+                    'longitude_min': [bounds[0]] * self.Nsim,
+                    'longitude_max': [bounds[3]] * self.Nsim,
+                    'latitude_min': [bounds[1]] * self.Nsim,
+                    'latitude_max': [bounds[4]] * self.Nsim,
+                    'depth_min': [bounds[2]] * self.Nsim,
+                    'depth_max': [bounds[5]] * self.Nsim,
+                    'a': results[0][i],
+                    'alpha': results[1],
+                    'b': results[2],
+                    'mc': [self.Mc] * self.Nsim,
+                    'grid_id': list(range(self.Nsim))}
+
+            # Create a ForecastGRRateGrid for each Timestep
+            rategrid = ForecastGRRateGrid(rate,
+                                          starttime=forecast_datetimes[i],
+                                          endtime=forecast_datetimes[i + 1])
+
+            parsed_results.append(rategrid)
+
+        return parsed_results
diff --git a/hm1d/ramsis.py b/hm1d/ramsis.py
new file mode 100644
index 0000000..0a5fa4e
--- /dev/null
+++ b/hm1d/ramsis.py
@@ -0,0 +1,44 @@
+from ramsis_model import ModelInput, validate_entrypoint
+
+from hm1d.model import HM1D
+
+
+def run_hm1d(model_input: dict):
+    """
+    Entry Point for RT-RAMSIS
+
+    This method gets called by the RT-RAMSIS framework. It is responsible for
+    initializing the model and running the model with the given input.
+    """
+
+    model_input = ModelInput(**model_input)
+
+    model = HM1D(model_input)
+
+    model.fit()
+
+    results = model.predict()
+
+    results = model.parse_results(results)
+
+    return results
+
+
+@validate_entrypoint(induced=True)
+def run_hm1d_validated(model_input: ModelInput):
+    """
+    Entry Point for RT-RAMSIS
+
+    This method gets called by the RT-RAMSIS framework. It is responsible for
+    initializing the model and running the model with the given input.
+    """
+
+    model = HM1D(model_input)
+
+    model.fit()
+
+    results = model.predict()
+
+    results = model.parse_results(results)
+
+    return results
diff --git a/hm1d/utils.py b/hm1d/utils.py
new file mode 100644
index 0000000..f9dab85
--- /dev/null
+++ b/hm1d/utils.py
@@ -0,0 +1,237 @@
+# Copyright 2018, ETH Zurich - Swiss Seismological Service SED
+"""
+Miscellaneous HM1 model core facilities.
+"""
+
+import numpy as np
+from scipy import stats, special
+from sklearn import linear_model
+from matplotlib import pyplot as plt
+
+# SEISMOSTATS
+from seismostats.analysis.estimate_beta import estimate_b_tinti, shi_bolt_confidence
+from seismostats.analysis.estimate_mc import mc_max_curvature
+from seismostats.utils.binning import bin_to_precision
+
+def daterange(start_date,
+              end_date,
+              epoch_duration=None,
+              training_start_date=None):
+    """Numpy array returned with forecasting intervals in seconds
+    increasing with constant increment, inclusive of the end_date.
+
+    :param st art_date: Datetime for generator to start with.
+    :param end_date: Datetime for generator to finish with.
+    :param epoch_duration: Number of seconds between returned values.
+
+    :rtype: np.array of seconds from training start time to forecast for
+    """
+    total_seconds = (end_date - start_date).total_seconds()
+    if not epoch_duration:
+        epoch_duration = total_seconds
+
+    # the +1 is required to match the r code which gives the range
+    # including the final variable.
+    daterange_list = [
+        i * epoch_duration for i
+        in range(int(total_seconds / epoch_duration) + 1)]
+    if training_start_date:
+        daterange_list = [i + (
+            start_date - training_start_date).total_seconds()
+            for i in daterange_list]
+    date_range_array = np.array(daterange_list)
+    return date_range_array
+
+
+def Calibrate_Observed_GR(catalog, dM=0.02,col_name='Mw'):
+    """
+     Very similar to ramsis.EM1 mc_mode
+     The Frequency Mass Density (FMD) is found by smoothing
+     observed Magnitudes (M) with Gaussian kernels. Then
+     the completion Magnitude (Mc) is set to the rounded value
+     at the peak of the FMD.
+
+     The slope of the Gutenberg-Richter law is returned with
+     the MLE method, Aki (1965) and for the found Mc.
+
+     NOTE: It returns Nan when less than 4 events are passed.
+      The scientific implications behind it need to be further
+      studied (the same applies for the ramsis.EM1). E.g. binomial
+      is more possible; here the mode with the largest M is chosen.
+
+     :param Magnitudes: magnitudes of incomplete catalog
+     :param dM        : size of binning and of rounding Mc
+
+     :rtype: float for the Mc
+     :rtype: float for the b-value
+     """
+    #print("starting the GR")
+    Magnitudes = np.array(catalog[col_name].values)
+    Mc, b = np.full(2, np.nan)
+    #print("inputs to gr: ", catalog)
+    #print("len magnitudes: ", len(Magnitudes))
+    if (len(Magnitudes) > 4):
+        Magnitudes = Magnitudes[~np.isnan(Magnitudes)]
+        Mrange = np.around(np.arange(np.amax(Magnitudes) + 5 * dM, np.amin(Magnitudes) - 5 * dM, -dM),
+                           decimals=int(-np.log(dM)))
+        argMc = np.argmax(stats.gaussian_kde(Magnitudes)(Mrange))
+        #Mc = round(Mrange[argMc]/dM)*dM
+        Mc = Mrange[argMc]
+        print("mc", Mc)
+        #        b=np.log10(np.exp(1.))/(np.mean(Magnitudes[np.where(Magnitudes>=Mc)])-np.min(Magnitudes[np.where(Magnitudes>=Mc)]))
+        b = np.log10(np.exp(1.)) / (np.mean(Magnitudes[np.where(Magnitudes >= Mc)]) - (Mc - dM / 2))
+        print('b', b)
+    return Mc, b
+
+def b_value_Lasso_calibration_1D(Xs, Mw, bins=100):
+    Xs = Xs[:,0] # this enables the right dimensions for the histogram (1-D)
+    counts, edges = np.histogram(Xs, bins=bins)
+    counts = counts.flatten()  # returns a copy collapsed into one dimension
+    meanMw, edges = np.histogram(Xs, bins=edges, weights=Mw)
+    meanMw = meanMw.flatten()
+
+    BinsGrid = np.meshgrid(edges[:-1] + 0.5 * (edges[1:] - edges[:-1]))
+
+    X = np.array([BinsGrid[0].flatten()])
+
+    Keep = np.where(counts > 0)
+    X = X[:, Keep[0]].transpose()
+    Y = meanMw[Keep] * np.reciprocal(counts[Keep])
+
+    clf = linear_model.Lasso(alpha=0.1)
+    clf.fit(X, Y)
+    return clf.intercept_, clf.coef_
+
+def Refine_An_Edge (Coarse_Edges_1D, RR=5):
+    Coarse_Cells=np.sort(np.unique(Coarse_Edges_1D.ravel()), kind='mergesort')
+    MyFinerCells=np.zeros((len(Coarse_Cells)-1)*RR)
+    for i in range(len(Coarse_Cells)-1):
+        Delta=(Coarse_Cells[i+1]-Coarse_Cells[i])/RR
+        for ii in range(RR):
+            MyFinerCells[RR*i+ii]=Coarse_Cells[i]+Delta*(ii+0.5)
+    return MyFinerCells
+
+def catalogue_statistics_calculation(cat, binning=0.01, corr_factor=0.025):
+    """
+    Routine to calculate the statistics of an input catalogue using Seismostats
+    """
+    magnitudes = bin_to_precision(cat.mag.to_numpy(), delta_x=binning)
+    Mc = mc_max_curvature(sample=magnitudes, delta_m=binning, correction_factor=corr_factor)
+    b_value = estimate_b_tinti(magnitudes=magnitudes[magnitudes>=Mc], mc=Mc, b_parameter='b_value', delta_m=binning)
+    error_b_value = shi_bolt_confidence(magnitudes=magnitudes[magnitudes>=Mc], b=b_value, b_parameter='b_value')
+    return Mc, b_value, error_b_value
+
+class LL_cost_function_1D:
+    def __init__(self, x, bins=10):
+        self.y, self.edges_x1, self.edges_x2 = np.histogram2d(x[:,0],x[:,1], bins=bins, density=False)
+        #self.y = np.cumsum(self.y, axis=0)
+        self.y = self.y.ravel()
+        self.logyfact = np.log(special.factorial(self.y)).ravel()
+
+    def score(self, y1):
+        ll = self.y*np.log(y1.ravel())-y1.ravel()-self.logyfact
+        return np.sum(ll)
+
+class LS_cost_function_1D:
+    def __init__(self, x, bins=(10, 10, 10, 10)):
+        self.y, self.edges_x1, self.edges_x2 = np.histogram2d(x[:,0],x[:,1], bins=bins, density=False)
+        self.y = np.cumsum(np.sum(self.y,axis=1))
+
+
+    def score(self, y1):
+        ls = np.sum(np.square(self.y-y1))
+        return np.nanmean(ls)
+
+def plotting_data(model):
+    fig, ax = plt.subplots(1, 2, figsize=(20, 6))
+
+    ax[0].scatter(model.seismicity.time, (model.seismicity['magnitude'] - np.min(model.seismicity['magnitude'])) / \
+                  (np.max(model.seismicity['magnitude'] - np.min(model.seismicity['magnitude']))) / 4, \
+                  color='lightgrey', alpha=.5, zorder=2, label='seismics')
+    ax[0].step(model.hydraulic_df.index, model.hydraulic_df['topflow'] / \
+               np.max(model.hydraulic_df['topflow']) / 4, color='darkblue', label='hydraulics[topflow]')
+    ax[0].step(model.hydraulic_df.index, model.hydraulic_df['toppressure'] / \
+               np.max(model.hydraulic_df['toppressure']) / 4, color='darkred', label='hydraulics[toppressure]')
+    ax[0].set_xlabel('Date')
+    ax[0].set_ylabel('Normalised inputs')
+    ax[0].set_title('Training data')
+    ax[0].legend(loc='upper left')
+    ax[0].spines['right'].set_visible(False)
+    ax[0].spines['top'].set_visible(False)
+
+    ax[1].plot(model.hydraulic_df.index, model.hydraulic_df['topflow'], color='darkblue', \
+               label='hydraulics[topflow]')
+    ax[1].plot(model.scenario_df.index, model.scenario_df[model.column_flow], color='royalblue', label='scenario')
+    ax[1].set_xlabel('Date')
+    ax[1].set_ylabel('Flow rate [m$^3$/s]')
+    ax[1].set_title('Flow time series')
+    ax[1].legend()
+    ax[1].spines['right'].set_visible(False)
+    ax[1].spines['top'].set_visible(False)
+    fig.tight_layout();
+
+def plotting_results(model,model_output, seism_df=pd.DataFrame()):
+
+    inj_t = np.array((model.hydraulic_df.index.values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+    Dtau = model.model_input.model_parameters['epoch_duration']
+
+    NN = ((inj_t[-1] - inj_t[0])
+          / Dtau).astype(int) + 1
+    time_fit = np.linspace(
+        inj_t[0], inj_t[-1], NN)
+
+    time_fit_mids = time_fit[1:]
+
+    time_forecast_mids = model.forecast_moments[1:]- Dtau/2
+
+    seism = model.seismicity
+    seism = seism[seism['magnitude'] >= model.Mc]
+    seism.sort_values(by='time',inplace=True)
+    seism_t = np.array((seism['time'].values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+
+    # range pred
+
+    y_pred_mean = np.median(model_output[4], axis=1)
+    up = np.percentile(model_output[4],axis=1,q=75)
+    down = np.percentile(model_output[4],axis=1,q=25)
+    down[down < 0] = 0
+
+    if not seism_df.empty:
+        seism_t_all = np.array((seism_df['time'].values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        ind = np.logical_and(seism_t_all > 0, seism_t_all < model.forecast_moments[-1])
+        seism_df_filt = seism_df[ind]
+        seism_t_all = seism_t_all[ind]
+        seism_t_all_aboveMc = seism_t_all[seism_df_filt['magnitude'] >= model.Mc]
+        taubins_all = np.arange(0, model.forecast_moments[-1] + Dtau, Dtau)
+        tmids_all = taubins_all[1:] - Dtau / 2
+        rate_all = np.histogram(seism_t_all_aboveMc, bins=taubins_all)
+
+    ##
+    fig, ax = plt.subplots(1, 2, figsize=(20, 6))
+
+    ax[0].scatter(seism_t, np.arange(1, len(seism_t) + 1), color='darkgrey', label='observations')
+    ax[0].plot(time_fit_mids,np.cumsum(model_output[3]), color='darkgreen', label='model fit')
+    ax[0].set_xlabel('Time increment [s]')
+    ax[0].set_ylabel('Cumulative number of events')
+    ax[0].set_title('Training fit')
+    ax[0].legend()
+    ax[0].spines['right'].set_visible(False)
+    ax[0].spines['top'].set_visible(False)
+
+    # ax[1].plot(model.res_fit_t, model.rate_train, color = 'lightgrey', label = 'observations')
+    ax[1].plot(time_fit_mids, model_output[3], color='darkgreen', label='model fit')
+    ax[1].plot(time_forecast_mids, y_pred_mean, color='darkred', label='model prediction')
+    ax[1].scatter(time_forecast_mids, y_pred_mean, color='darkred')
+    ax[1].fill_between(time_forecast_mids, down, up, facecolor='darkred', alpha=.3)
+    if not seism_df.empty:
+        ax[1].step(tmids_all, rate_all[0], where='mid', label='data', color='darkgrey')
+    # ax[1].fill_between(tmids_all, 0, rate_all[0], color='grey', alpha = .5)
+    #ax[1].set_xlim(0, 50000)
+    #ax[1].set_ylim(0, 150)
+    ax[1].set_xlabel('Time increment [s]')
+    ax[1].set_ylabel('Event rate [time bin]')
+    ax[1].set_title('Event-rate time series')
+    ax[1].legend(loc='upper left')
+    ax[1].spines['right'].set_visible(False)
+    ax[1].spines['top'].set_visible(False)
+    #fig.tight_layout()
\ No newline at end of file
diff --git a/ml1/FlowModel.py b/ml1/FlowModel.py
new file mode 100644
index 0000000..688cd38
--- /dev/null
+++ b/ml1/FlowModel.py
@@ -0,0 +1,330 @@
+import numpy as np
+from scipy.special import expi
+from scipy.special import erfc
+from scipy.optimize import differential_evolution
+import pickle
+
+########################################################################################################################
+########################################## ANALYTICAL FLOW MODEL #######################################################
+########################################################################################################################
+
+def Analytical_LineSource_Solution(InjectionStrategy, t_grid, r_grid, h, S, k):
+    """
+    Args:
+        InjectionStrategy (2xNt array): doublets of each consecutive step:
+                                        duration of step and injection rate
+                                        (only Neumann's b.c. at the well)
+        t_grid (Numpy vector): consecutive time moments
+        r_grid (Numpy vector): radii
+        k (scalar)           : permeability [m]
+        S (scalar)           : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the analytical solution stimulation factor (Numpy vector) for the
+        input time moments and radii
+    """
+    Nt_end = len(t_grid)
+    sol = np.zeros([Nt_end, len(r_grid)])
+    Qsteps = np.array(InjectionStrategy[:, 1])
+    Qsteps[1:] = np.diff(Qsteps)
+    TimeSteps = np.array(InjectionStrategy[:, 0])
+    NumOfSteps = len(Qsteps)
+
+    for step in range(NumOfSteps):
+        JJ = np.where(t_grid > TimeSteps[step])
+        sol[JJ, :] = np.add(sol[JJ, :],
+                            # StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                            #                              Diff))
+                            StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                                                                    h, S, k))
+    return sol
+
+def Analytical_PointSource_Solution(InjectionStrategy, t_grid, r_grid, A, S, k):
+    """
+    Args:
+        InjectionStrategy (2xNt array): doublets of each consecutive step:
+                                        duration of step and injection rate
+                                        (only Neumann's b.c. at the well)
+        t_grid (Numpy vector): consecutive time moments
+        r_grid (Numpy vector): radii
+        k (scalar)           : permeability [m]
+        S (scalar)           : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the analytical solution stimulation factor (Numpy vector) for the
+        input time moments and radii
+    """
+    Nt_end = len(t_grid)
+    sol = np.zeros([Nt_end, len(r_grid)])
+    Qsteps = np.array(InjectionStrategy[:, 1])
+    Qsteps[1:] = np.diff(Qsteps)
+    TimeSteps = np.array(InjectionStrategy[:, 0])
+    NumOfSteps = len(Qsteps)
+
+    for step in range(NumOfSteps):
+        JJ = np.where(t_grid > TimeSteps[step])
+        sol[JJ, :] = np.add(sol[JJ, :],
+                            # StepInjection_Green_Function_linesource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                            #                              Diff))
+                            StepInjection_Green_Function_pointsource(r_grid, (t_grid[JJ] - TimeSteps[step]), Qsteps[step],
+                                                                        A, S, k))
+    return sol
+
+def StepInjection_Green_Function_linesource(r, t, Q, h, S, k):
+    # def StepInjection_Green_Function_linesource(r, t, Q, Diff, val):
+    """
+    Args:
+        r (Numpy vector): radius of point(s) in meters
+        t (Numpy vector): time moment(s) in seconds
+        Q (scalar)      : source term [m^3/(s)]
+        k (scalar)      : permeability [m]
+        S (scalar)      : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the 1D analytical solution (Numpy vector) for continuous line source type of injection
+        REF: Wu and Pruess, 2000, IJRMMS, 37, 51-61 -> Theis solution
+        similar with Diff REF: pag. 261, Eq. (2) - book: “Conduction of Heat in Solids” di Carslaw and Jaeger
+    """
+    mu = 0.0010016 # water visosity at 20 ËšC
+
+    X = expi(-np.matmul(np.reciprocal(t.reshape((-1, 1))), np.square(r.reshape((1, -1)))) * mu * S / k / 4.)
+
+    return (-Q * mu/ (4. * np.pi * k * h) ) * X
+
+def StepInjection_Green_Function_pointsource(r, t, Q, A, S, k):
+    # def StepInjection_Green_Function_linesource(r, t, Q, Diff, val):
+    """
+    Args:
+        r (Numpy vector): radius of point(s) in meters
+        t (Numpy vector): time moment(s) in seconds
+        Q (scalar)      : source term [m^3/(s)]
+        k (scalar)      : permeability [m]
+        S (scalar)      : storage (porosity * compressibility) [Pa^-1]
+    Returns:
+        the 1D analytical solution (Numpy vector) for continuous point source type of injection
+        REF: Wu and Pruess, 2000, IJRMMS, 37, 51-61 -> Theis solution
+    """
+    mu = 0.0010016 # water visosity at 20 ËšC
+
+    xi = np.matmul(np.reciprocal(np.sqrt(t.reshape((-1, 1)))), r.reshape((1, -1))) / (np.sqrt(4. * k / S / mu))
+
+    X = 1./(np.sqrt(np.pi) * xi)*np.exp(-xi**2) - erfc(xi)
+
+    return (Q * mu * r.reshape((1, -1)) / (k * A)) * X
+
+class FlowModel0:
+    """
+    POINT SOURCE MODEL
+
+    Initialization with radius, numpy array with time and flow, as well as
+    crossectional area, model parameters initial guess, and their bounds when used for fitting
+    Model parameters are the storage coefficient (namely porosity times compressibility)
+    and the intrinsic rock permeability
+
+    Simple usage for forward simulation:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    time_out = np.linspace(0, 1e8, 2000) # time vector for output, this can be different than time_Q as long as is larger
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    QQ = np.vstack((time_Q.T,Q.T))
+    S = 1.e-9 # storage
+    k = 1.e-14 # permeability
+    rw = 0.15 #radius well
+    xsection = 2 * np.pi  * rw**2 # cross sectional area
+    Model = FlowModel0(Q = QQ,r_grid = radius,A = xsection, iniguess=(S, k))
+    Pressure = Model.predict() # numpy vector of pressure solution at time and radius
+
+    Simple usage for inversion:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    TrainingTarget = 2xN array with the time moment and the pressure in Pa
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    TrainingData = np.vstack((time_Q.T,Q.T))
+    rw = 0.15 #radius well
+    xsection = 2 * np.pi * h * rw # cross sectional area
+    Model = FlowModel0(Q = TrainingData,r_grid = radius, A= xsection, bounds=[(1e-15 1e-5), (1e-20, 1e-12)], iniguess=(1e-9, 1e-14))
+    Model.fit(TrainingTarget) # numpy vector of pressure solution at time and radius
+    Pressure = Model.predict()
+
+    For forecasting future pressure after fitting an injection Plan is needed
+    Q2 = Q*2
+    time2 = np.linspace(0, 1e8, 2000) +time[-1]
+    Plan = np.vstack((time2.T,Q2.T)
+    Prediction = Model.predict(Plan)
+    """
+    def __init__(self,
+                 Q, #TrainingData for fitting
+                 r_grid=np.geomspace(0.1, 2000, 30, endpoint=True),
+                 A=90,
+                 bounds=[(1e-15, 1e-5), (1e-20, 1e-12)],
+                 iniguess=(1e-9, 1e-14)):
+        self.r = r_grid
+        self.A = A
+        self.Q = Q
+        self.bounds = np.log10(bounds)
+        self.params = iniguess
+        self.observation = np.array([0])
+        self.model = Analytical_PointSource_Solution
+
+    def Cost(self, x):
+        S = np.power(10.,x[0])
+        k = np.power(10.,x[1])
+        _prediction = self.model(self.Q, self.t_target, self.r_target, self.A, S, k)+self.observation[0]
+        #_prediction = self.model(self.Q, self.t_target, self.r_target, self.A, S, k)
+        Coeff_R2 = np.sum(np.square(_prediction/1.e6 - self.observation/1.e6))/len(self.observation)
+
+
+        return Coeff_R2
+
+    def fit(self, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=False,
+            maxiter=100,
+            seed=22,
+            tol = 1e-5):
+        """
+        Args:
+            TrainingData (Numpy array) : 2xN array with the time moment and the injection rate until next measurement
+            TrainingTarget(Numpy array): 2xM array with the time moment and pressure measurement
+        Returns:
+
+        """
+        self.t_target = TrainingTarget[:, 0]
+        self.observation = TrainingTarget[:, 1:]
+        self.r_target = self.r[:len(self.observation[0, :])]
+
+        self.iter_results = []
+        result = differential_evolution(self.Cost, self.bounds,popsize=popsize,polish=polish,
+                                             disp=disp, maxiter=maxiter, seed=seed, tol=tol)
+        self.params = np.power(10., result.x[0]), \
+                      np.power(10., result.x[1])
+
+        self.hidden_mechanism = self.predict()
+
+    def fm_iteration(self, xk, convergence):
+        self.iter_results.append(xk)
+
+    def predict(self, Plan=[],):
+        """
+        Args:
+            Plan (Numpy array) : 2xNf array with the time moment and the injection rate expected from that moment.
+        Returns:
+            (Numpy array) : 2x(Nf+N) array with the time moment and the pressure due to the plan and the training data
+        """
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            t_grid = Plan[:, 0]
+
+        Prediction = self.model(Q, t_grid, self.r, self.A, self.params[0], self.params[1])+self.observation[0]
+        return Prediction
+
+class FlowModel1:
+    """
+    LINE SOURCE MODEL (Theis' solution)
+
+    Initialization with radius, numpy array with time and flow, as well as
+    reservoir thickness, model parameters initial guess, and their bounds when used for fitting
+    Model parameters are the storage coefficient (namely porosity times compressibility)
+    and the intrinsic rock permeability
+
+    Simple usage for forward simulation:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    time_out = np.linspace(0, 1e8, 2000) # time vector for output, this can be different than time_Q as long as is larger
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    QQ = np.vstack((time_Q.T,Q.T))
+    S = 1.e-9 # storage
+    k = 1.e-14 # permeability
+    thick = 100 #layer thickness
+    Model = FlowModel1(Q = QQ,r_grid = radius,h = thick, iniguess=(S, k))
+    Pressure = Model.predict() # numpy vector of pressure solution at time and radius
+
+    Simple usage for inversion:
+
+    radius = np.geomspace(0.1, 2000, 30, endpoint=True) # radius for calculation
+    TrainingTarget = 2xN array with the time moment and the pressure in Pa
+    time_Q= np.linspace(0, 1e8, 2000) # time vector for flow
+    Q = np.ones((2000)*0.01 # volumetric injection rate in m3/s
+    TrainingData = np.vstack((time_Q.T,Q.T))
+    thick = 100 #layer thickness
+    Model = FlowModel1(Q=TrainingData, r_grid=radius, h=thick, bounds=[(1e-15 1e-5), (1e-20, 1e-12)], iniguess=(1e-9, 1e-14))
+    Model.fit(TrainingTarget) # numpy vector of pressure solution at time and radius
+    Pressure = Model.predict()
+
+    For forecasting future pressure after fitting an injection Plan is needed
+    Q2 = Q*2
+    time2 = np.linspace(0, 1e8, 2000) +time[-1]
+    Plan = np.vstack((time2.T,Q2.T)
+    Prediction = Model.predict(Plan)
+    """
+    def __init__(self,
+                 Q,
+                 r_grid=np.geomspace(0.1, 2000, 30, endpoint=True),
+                 h=100,
+                 bounds=[(1e-15, 1e-5), (1e-20, 1e-12)],
+                 iniguess=(1e-9, 1e-14)):
+        self.r = r_grid
+        self.h = h
+        self.Q = Q
+
+        self.bounds = np.log10(bounds)
+        self.params = iniguess
+        self.observation = np.array([0])
+        self.model = Analytical_LineSource_Solution
+
+    def Cost(self, x):
+        S = np.power(10.,x[0])
+        k = np.power(10.,x[1])
+#        _prediction = self.model(self.Q, self.t_target, self.r_target, self.h, S, k)+self.observation[0]
+        _prediction = self.model(self.Q, self.t_target, self.r_target, self.h, S, k)
+        Coeff_R2 = np.sum(np.square(_prediction/1.e6 - self.observation/1.e6))/len(self.observation)
+
+        return Coeff_R2
+
+    def fit(self, TrainingTarget,
+            popsize=10,
+            polish=True,
+            disp=False,
+            maxiter=100,
+            seed=22,
+            tol = 1e-5):
+        """
+        Args:
+            TrainingData (Numpy array) : 2xN array with the time moment and the injection rate until next measurement
+            TrainingTarget(Numpy array): 2xM array with the time moment and pressure measurement
+        Returns:
+
+        """
+        self.t_target = TrainingTarget[:, 0]
+        self.observation = TrainingTarget[:, 1:] # gets rid of the column in index nr. 1 (so the second column)
+        self.r_target = self.r[:len(self.observation[0, :])]
+
+
+        self.iter_results = []
+        result = differential_evolution(self.Cost, self.bounds,popsize=popsize,polish=polish,
+                                        disp=disp, maxiter=maxiter, seed=seed, tol=tol, callback=self.fm_iteration)
+        self.params = np.power(10., result.x[0]), \
+                      np.power(10., result.x[1])
+
+        self.hidden_mechanism = self.predict()
+
+    def fm_iteration(self, xk, convergence):
+        self.iter_results.append(xk)
+
+    def predict(self, Plan=[],):
+        """
+        Args:
+            Plan (Numpy array) : 2xNf array with the time moment and the injection rate expected from that moment.
+        Returns:
+            (Numpy array) : 2x(Nf+N) array with the time moment and the pressure due to the plan and the training data
+        """
+        Q = self.Q
+        t_grid = Q[:, 0]
+        if (len(Plan) > 0):
+            Q = np.vstack((Q, Plan))
+            t_grid = Plan[:, 0]
+        Prediction = self.model(Q, t_grid, self.r, self.h, self.params[0], self.params[1])+self.observation[0]
+        return Prediction
diff --git a/ml1/__init__.py b/ml1/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/ml1/model.py b/ml1/model.py
new file mode 100644
index 0000000..b5c1c6c
--- /dev/null
+++ b/ml1/model.py
@@ -0,0 +1,455 @@
+import logging
+from datetime import timedelta
+
+import numpy as np
+from hydws.parser import BoreholeHydraulics
+from ramsis_model import ModelInput
+from scipy import stats
+from scipy.interpolate import interp1d
+from seismostats.seismicity.catalog import Catalog
+from seismostats.seismicity.rategrid import ForecastGRRateGrid
+from shapely import wkt
+from sklearn.linear_model import Lasso
+
+from hm1d.utils import daterange, def_Xy, detect_shutin
+
+
+class HM1D():
+    """ InducedSFM Class for multi-LASSO model
+
+        Available variables after successfull initialization:
+
+        Input Hydraulic and Seismic data is available as DataFrames as:
+        self._hydraulics,
+        self._scenario,
+        self._seismics
+
+        Variables from input dict are also available as class properties:
+        self._model_parameters
+        self._forecast_start
+        self._forecast_end
+        self._epoch_duration
+        self._proj_string
+
+        Additionally are available:
+        self._forecast_moments
+        self._section_metadata
+        self._observation_start
+        self._observation_end
+
+        A logger is available with self._logger.* (info, warning, error, ...)
+
+    """
+
+    def __init__(self, model_input: ModelInput, **kwargs):
+        """
+        Gets called after the aforementioned variables are instantiated, eg.
+        model setup can live in here.
+        """
+        # set up logger
+        self._logger = logging.getLogger(__name__)
+        self._logger.info('Model Initialized')
+
+        self.model_input = model_input
+        self.parameters = model_input.model_parameters
+
+        self.dM = self.parameters['dM']
+        self.M_dec = self.parameters['M_decimals']
+        self.Mc = self.parameters['Mc']
+        self.column_flow = "topflow"
+        self.column_pressure = "toppressure"
+        self.m = self.parameters['LASSO_m']
+        self.alpha = self.parameters['LASSO_penalty']
+        self.Nmin_fit = self.parameters['LASSO_Nmin_fit']
+        self.Nsim = self.parameters['Nsim']
+        self.Dtau = self.parameters['Delta_tau']
+        self.Pmodel = self.parameters['Pmodel']
+
+        section_id = self.parameters['well_section_publicid']
+
+        self.geometry = model_input.geometry
+
+        self.forecast_start = model_input.forecast_start
+        self.forecast_end = model_input.forecast_end
+
+        self.hydraulics = BoreholeHydraulics(model_input.injection_well[0])
+
+        self.scenario = BoreholeHydraulics(model_input.injection_plan)
+
+        self.seismicity = Catalog.from_quakeml(model_input.seismic_catalog,
+                                               includequality=True)
+
+        # get dataframes from HYDSJONParser
+        self.hydraulic_df = self.hydraulics[section_id].hydraulics
+        self.hydraulic_df = self.hydraulic_df[~self.hydraulic_df['topflow'].isna()]
+        self.hydraulic_df = self.hydraulic_df[~self.hydraulic_df['toppressure'].isna()]
+
+        self.scenario_df = self.scenario[section_id].hydraulics
+
+        self.observation_start = self.hydraulic_df.index.min()
+        self.observation_end = np.array(
+            self.forecast_start).astype('datetime64')
+
+        self.hydraulic_df = self.hydraulic_df[self.hydraulic_df.index
+                                              < self.observation_end]
+        self.seismicity = self.seismicity[self.seismicity['time']
+                                          < self.forecast_start]
+
+        # self.observation_end = self.hydraulic_df.index.max()
+        # self.observation_end = min(self.observation_end, self.forecast_start)
+
+        self.seismicity = self.seismicity[~self.seismicity['magnitude'].isna()]
+
+        if 'associatedphasecount' in self.seismicity.columns:
+            self.seismicity['associatedphasecount'] = \
+                self.seismicity['associatedphasecount'].astype(float)
+            # is this sensible?
+            self.seismicity['associatedphasecount'] = \
+                self.seismicity['associatedphasecount'].fillna(0)
+
+            self.seismicity = \
+                self.seismicity[self.seismicity['associatedphasecount'] >= self.parameters['n_phases']]
+
+        # add ts column to seismicity dataframe
+        self.seismicity['ts'] = self.seismicity.time.map(
+            lambda x: (x - self.forecast_start).total_seconds())
+
+        # get the forecast times
+        self.forecast_moments = daterange(self.forecast_start,
+                                          self.forecast_end,
+                                          self.parameters['epoch_duration'],
+                                          self.observation_start)
+
+        self.scenario_df = self.scenario_df.resample(str(self.parameters['epoch_duration'])+'s').mean().interpolate(method='linear')
+
+        self.scenario_df = self.scenario_df[(self.scenario_df.index <= self.forecast_end) &
+                                            (self.scenario_df.index > self.forecast_start)]
+
+        sc_all_negative = (self.scenario_df['topflow'] < 0).all()
+        sc_all_identical = self.scenario_df['topflow'].nunique() == 1
+
+        if sc_all_negative and sc_all_identical:
+            self.scenario_df["topflow"]=(-self.scenario_df["topflow"].values[0]*
+                                      np.ones(len(self.scenario_df))*self.hydraulic_df["topflow"].values[-1])
+
+        sc_all_negative = (self.scenario_df['topflow'] < 0).all()
+        sc_all_identical = self.scenario_df['topflow'].nunique() == 1
+
+        if sc_all_negative and sc_all_identical:
+            self.scenario_df["topflow"]=(-self.scenario_df["topflow"].values[0]*
+                                      np.ones(len(self.scenario_df))*self.hydraulic_df["topflow"].values[-1])
+
+    def run(self):
+        """
+        Run the model. Calls self.fit() and returns the result of
+        self.predict().
+        """
+        self.fit()
+        results = self.predict()
+
+        results = self.parse_results(results)
+
+        return results
+
+    def fit(self):
+        self._logger.info('Model Fitting')
+
+        # ************************************************************
+        # Multi-LASSO model fitting #
+
+        # raw operational data
+        self.dt_fit = np.array(
+            (self.hydraulic_df.index.values
+             - self.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        inj_dV = np.maximum(self.hydraulic_df[self.column_flow].values, 0)
+        inj_P = self.hydraulic_df[self.column_pressure].values
+
+        # raw seismicity data
+        seism = self.seismicity
+        # Mc estimation if not given as input
+        if self.Mc is None:
+            Mrange = np.around(np.arange(np.amax(seism['magnitude'].values)
+                                         + 5 * self.dM, np.amin(
+                seism['magnitude'].values) - 5 * self.dM, -self.dM),
+                decimals=int(-np.log(self.dM)))
+            argMc = np.argmax(stats.gaussian_kde(
+                seism['magnitude'].values)(Mrange))
+            self.Mc = Mrange[argMc]
+
+        seism = seism[seism['magnitude'] >= self.Mc]
+        seism_t = np.array(
+            (seism['time'].values
+             - self.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        seism_m = seism['magnitude'].values
+
+        # find end of injection in training data, otherwise end of file
+        t_shutin, dV_shutin, Vtot = detect_shutin(self.dt_fit, inj_dV)
+        N_shutin = len(seism_t[seism_t <= t_shutin])
+
+        # Maximum Likelihood estimation b-value
+        self.b_value = np.log10(np.exp(1.)) / \
+            (np.mean(seism_m) - (self.Mc - self.dM / 2))
+
+        # for simulations in predict()
+        self.fit_N = len(seism_m)
+        self.fit_N_shutin = N_shutin
+        self.fit_Vtot = Vtot
+
+        self.af = self.b_value * self.Mc + np.log10(N_shutin) - np.log10(Vtot)
+
+        # features
+        taubins = np.arange(
+            self.dt_fit[0], self.dt_fit[-1] + self.Dtau, self.Dtau)
+        self.tmids = taubins[1:] - self.Dtau / 2
+
+        if self.Pmodel == 'FlowModels0-1':
+            self.X_train, self.y_train, self.Pcalib0, self.Pcalib1 = def_Xy(
+                seism_t, self.dt_fit, inj_dV, inj_P,
+                taubins, self.Dtau, self.Pmodel)
+        else:
+            self.X_train, self.y_train, self.Pcalib = def_Xy(
+                seism_t, self.dt_fit, inj_dV, inj_P,
+                taubins, self.Dtau, self.Pmodel)
+
+        # model training
+        self._logger.info('LASSO m pre:' + str(self.m))
+        mLASSO = {}
+        for i in range(self.m):
+            if i < len(self.y_train) - self.Nmin_fit:
+                y_train_sub = np.append(self.y_train[i:], np.repeat(np.nan, 0))
+                X_train_sub = np.copy(self.X_train)
+                X_train_sub[:, 0] = np.append(
+                    X_train_sub[i:, 0], np.repeat(np.nan, i))
+                subLASSO = Lasso(alpha=self.alpha, positive=True)
+                indnoNA = np.where(~np.isnan(X_train_sub[:, 0]))[0]
+                subLASSO.fit(X_train_sub[indnoNA], y_train_sub[indnoNA])
+                mLASSO['subLASSO' + str(i + 1)] = subLASSO
+        self.mLASSO_trained = mLASSO
+        # updated when horizon too long for training
+        self.m = len(self.mLASSO_trained)
+        self._logger.info('LASSO m:' + str(self.m))
+
+        if self.m > 0:
+            if self.Pmodel == 'FlowModels0-1':
+                self._logger.info('Estimated parameters -> dVplan: '
+                                  + str(mLASSO['subLASSO1'].coef_[0])
+                                  + ', dVmean: '
+                                  + str(mLASSO['subLASSO1'].coef_[1])
+                                  + ', dVdiff: '
+                                  + str(mLASSO['subLASSO1'].coef_[2])
+                                  + ', Pmean: '
+                                  + str(mLASSO['subLASSO1'].coef_[3])
+                                  + ', Pdiff: '
+                                  + str(mLASSO['subLASSO1'].coef_[4])
+                                  + ', tauneg: '
+                                  + str(mLASSO['subLASSO1'].coef_[5])
+                                  + ', yprev:'
+                                  + str(mLASSO['subLASSO1'].coef_[6])
+                                  + ', Pplan0: '
+                                  + str(mLASSO['subLASSO1'].coef_[7])
+                                  + ', Pplan1: '
+                                  + str(mLASSO['subLASSO1'].coef_[8])
+                                  )   # tmp - to access LASSO fit
+            else:
+                self._logger.info('Estimated parameters -> dVplan: '
+                                  + str(mLASSO['subLASSO1'].coef_[0])
+                                  + ', dVmean: '
+                                  + str(mLASSO['subLASSO1'].coef_[1])
+                                  + ', dVdiff: '
+                                  + str(mLASSO['subLASSO1'].coef_[2])
+                                  + ', Pmean: '
+                                  + str(mLASSO['subLASSO1'].coef_[3])
+                                  + ', Pdiff: '
+                                  + str(mLASSO['subLASSO1'].coef_[4])
+                                  + ', tauneg: '
+                                  + str(mLASSO['subLASSO1'].coef_[5])
+                                  + ', yprev:'
+                                  + str(mLASSO['subLASSO1'].coef_[6])
+                                  + ', Pplan: '
+                                  + str(mLASSO['subLASSO1'].coef_[7])
+                                  )   # tmp - to access LASSO fit
+
+    def predict(self):
+        self._logger.info('Model Predicting')
+        # **************************************************************
+        # Multi-LASSO model forecast #
+
+        # forecast data
+        plan_t = np.array((self.scenario_df.index.values
+                          - self.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        plan_dV = np.maximum(self.scenario_df[self.column_flow].values, 0)
+
+#        if self.Dtau == self._epoch_duration:
+#        	forecast_moments_hires = self._forecast_moments
+#        else:
+#            taubins = np.arange(self._forecast_moments[0], self._forecast_moments[-1] + self.Dtau, self.Dtau)
+#            forecast_moments_hires = taubins
+
+        forecast_moments_hires = np.arange(
+            self.forecast_moments[0], self.forecast_moments[-1] + self.Dtau, self.Dtau)
+        # forecast_moments_hires =self.forecast_moments
+        if self.m >= len(forecast_moments_hires):
+            self.m = len(forecast_moments_hires) - 1
+
+        forecast_dV = np.interp(forecast_moments_hires, plan_t, plan_dV)
+        planned_flow = np.vstack((forecast_moments_hires, forecast_dV)).T
+        if self.Pmodel == 'FlowModels0-1':
+            forecast_P0 = self.Pcalib0.predict(planned_flow)[:, 0]
+            forecast_P1 = self.Pcalib1.predict(planned_flow)[:, 0]
+        else:
+            forecast_P = self.Pcalib.predict(planned_flow)[:, 0]
+        X_test = self.X_train[-1, :][np.newaxis, :]
+
+        # LASSO prediction
+        y_pred_mLASSO = np.zeros(self.m)
+        for i in range(self.m):
+            X_test[:, 0] = forecast_dV[i]
+            if self.Pmodel == 'FlowModels0-1':
+                X_test[:, 7] = forecast_P0[i]
+                X_test[:, 8] = forecast_P1[i]
+            else:
+                X_test[:, 7] = forecast_P[i]
+            y_pred_mLASSO[i] = self.mLASSO_trained['subLASSO'
+                                                   + str(i + 1)].predict(X_test)
+        # clip to zero in case of unstable result at very high m
+        y_pred_mLASSO[y_pred_mLASSO < 0] = 0
+
+        # filling gaps for tau_i after horizon m with EM1 frequentist (since LASSO tends to EM1 for m -> Inf.)
+        plan_V = np.cumsum(plan_dV * np.diff(np.append(plan_t[0], plan_t)))
+        forecast_V = np.interp(forecast_moments_hires, plan_t, plan_V)
+        # self.y_pred_fill = np.append(np.diff(10 ** (self.af - self.b_value * self.Mc) * forecast_V), 0)
+        self.y_pred_fill = np.diff(
+            10 ** (self.af - self.b_value * self.Mc) * forecast_V)
+        self.y_pred = np.copy(self.y_pred_fill)
+        indLASSO = np.arange(self.m)
+        self.y_pred[indLASSO] = y_pred_mLASSO[indLASSO]
+
+        self.y_pred = self.y_pred.reshape((len(forecast_moments_hires[1:]), 1))
+        self.a_value = (np.log10(self.y_pred + 1e-20) + self.b_value
+                        * self.Mc).reshape((len(forecast_moments_hires[1:]), 1))
+        if self.m > 0:
+            self.y_fit = self.mLASSO_trained['subLASSO1'].predict(self.X_train)
+        else:
+            self.y_fit = np.zeros(self.X_train.shape[0])
+        self.y_fit[self.y_fit <= 0] = 0
+
+        # resampling
+        if self.Dtau < self.parameters['epoch_duration']:
+            self._logger.info('Resampling Output')
+        factor = self.parameters['epoch_duration'] / self.Dtau
+        self.y_pred = factor * interp1d(forecast_moments_hires[1:], self.y_pred[:, 0], kind='linear')(
+            self.forecast_moments[1:])[:, np.newaxis]
+        self.a_value = (np.log10(self.y_pred + 1e-20) + self.b_value
+                        * self.Mc).reshape((len(self.forecast_moments[1:]), 1))
+        self.y_pred_fill = factor * \
+            interp1d(forecast_moments_hires[1:], self.y_pred_fill, kind='linear')(
+                self.forecast_moments[1:])
+
+        NN = ((np.max(self.dt_fit) - np.min(self.dt_fit))
+              / self.parameters['epoch_duration']).astype(int) + 1
+        self._time_fit = np.linspace(
+            np.min(self.dt_fit), np.max(self.dt_fit), NN)
+        self.dt_fit_mids = self._time_fit[1:] - \
+            self.parameters['epoch_duration'] / 2
+        self.rate_fit = factor * \
+            interp1d(self.tmids, self.y_fit, kind='linear')(
+                self.dt_fit_mids)[:, np.newaxis]
+        self.rate_train = factor * \
+            interp1d(self.tmids, self.y_train, kind='linear')(
+                self.dt_fit_mids)[:, np.newaxis]
+
+        # simulations
+        if self.Nsim > 1:
+            mLASSO_pred = np.zeros((self.y_pred.shape[0], self.Nsim))
+            for t in range(self.y_pred.shape[0]):
+                mLASSO_pred[t, :] = np.random.poisson(
+                    self.y_pred[t, 0], self.Nsim)
+
+            bsim = np.zeros(self.Nsim)
+            for sim in range(self.Nsim):
+                msim = self.Mc - \
+                    np.log(1 - np.random.random(self.fit_N)) / \
+                    (self.b_value * np.log(10))
+                bsim[sim] = np.log10(np.exp(1.)) / \
+                    (np.mean(msim) - (self.Mc - self.dM / 2))
+            mLASSO_b = bsim  # np.tile(bsim, (self.y_pred.shape[0], 1))
+
+            mLASSO_a = np.log10(mLASSO_pred + 1e-20) + mLASSO_b * self.Mc
+            mLASSO_afb = mLASSO_b * self.Mc + \
+                np.log10(self.fit_N_shutin) - np.log10(self.fit_Vtot)
+        else:
+            mLASSO_pred = self.y_pred
+            mLASSO_b = self.b_value  # np.full_like(mLASSO_pred, self.b_value)
+            mLASSO_a = self.a_value
+            mLASSO_afb = self.af
+        # mLASSO_Mc = np.full_like(mLASSO_a, self.Mc)
+        ##############################
+
+        # For each volume and timestep generate 5 values of interest
+        # (a, alpha, mc, b, rate) with n_sim samples each.
+        return mLASSO_a, mLASSO_afb, mLASSO_b, self.rate_fit, mLASSO_pred
+
+    def parse_results(self, results):
+        """
+        Parse Results to a ForecastGRRateGrid per timestep.
+        A ForecastGRRateGrid requires at least the following columns:
+            'number_events', 'longitude_min', 'longitude_max',
+            'latitude_min', 'latitude_max', 'depth_min', 'depth_max',
+            'a', 'b', 'mc', 'grid_id'
+
+        """
+        fit_datetimes = [self.observation_start + timedelta(seconds=t)
+                         for t in self._time_fit]
+        forecast_datetimes = [self.observation_start + timedelta(seconds=t)
+                              for t in self.forecast_moments]
+
+        bounds = list(wkt.loads(self.geometry.bounding_polygon).bounds)
+        bounds.insert(2, self.geometry.altitude_min)
+        bounds.insert(5, self.geometry.altitude_max)
+
+        parsed_results = []
+
+        for i in range(len(fit_datetimes) - 1):
+            rate = {'number_events': results[3][i],
+                    'longitude_min': bounds[0],
+                    'longitude_max': bounds[3],
+                    'latitude_min': bounds[1],
+                    'latitude_max': bounds[4],
+                    'depth_min': bounds[2],
+                    'depth_max': bounds[5],
+                    # self.af,
+                    'a': np.log10(len(self.seismicity[self.seismicity['magnitude'] > self.Mc])) + self.b_value * self.Mc,
+                    'alpha': self.af,
+                    'b': self.b_value,
+                    'mc': self.Mc,
+                    'grid_id': 0}
+
+            # Create a ForecastGRRateGrid for each Timestep
+            rategrid = ForecastGRRateGrid(rate,
+                                          starttime=fit_datetimes[i],
+                                          endtime=fit_datetimes[i + 1])
+
+            parsed_results.append(rategrid)
+
+        for i in range(len(forecast_datetimes) - 1):
+            rate = {'number_events': results[4][i],
+                    'longitude_min': [bounds[0]] * self.Nsim,
+                    'longitude_max': [bounds[3]] * self.Nsim,
+                    'latitude_min': [bounds[1]] * self.Nsim,
+                    'latitude_max': [bounds[4]] * self.Nsim,
+                    'depth_min': [bounds[2]] * self.Nsim,
+                    'depth_max': [bounds[5]] * self.Nsim,
+                    'a': results[0][i],
+                    'alpha': results[1],
+                    'b': results[2],
+                    'mc': [self.Mc] * self.Nsim,
+                    'grid_id': list(range(self.Nsim))}
+
+            # Create a ForecastGRRateGrid for each Timestep
+            rategrid = ForecastGRRateGrid(rate,
+                                          starttime=forecast_datetimes[i],
+                                          endtime=forecast_datetimes[i + 1])
+
+            parsed_results.append(rategrid)
+
+        return parsed_results
diff --git a/ml1/ramsis.py b/ml1/ramsis.py
new file mode 100644
index 0000000..c68c919
--- /dev/null
+++ b/ml1/ramsis.py
@@ -0,0 +1,44 @@
+from ramsis_model import ModelInput, validate_entrypoint
+
+from hm1d.model import HM1D
+
+
+def run_ml1(model_input: dict):
+    """
+    Entry Point for RT-RAMSIS
+
+    This method gets called by the RT-RAMSIS framework. It is responsible for
+    initializing the model and running the model with the given input.
+    """
+
+    model_input = ModelInput(**model_input)
+
+    model = HM1D(model_input)
+
+    model.fit()
+
+    results = model.predict()
+
+    results = model.parse_results(results)
+
+    return results
+
+
+@validate_entrypoint(induced=True)
+def run_ml1_validated(model_input: ModelInput):
+    """
+    Entry Point for RT-RAMSIS
+
+    This method gets called by the RT-RAMSIS framework. It is responsible for
+    initializing the model and running the model with the given input.
+    """
+
+    model = HM1D(model_input)
+
+    model.fit()
+
+    results = model.predict()
+
+    results = model.parse_results(results)
+
+    return results
diff --git a/ml1/utils.py b/ml1/utils.py
new file mode 100644
index 0000000..2e013db
--- /dev/null
+++ b/ml1/utils.py
@@ -0,0 +1,255 @@
+import numpy as np
+import pandas as pd
+from matplotlib import pyplot as plt
+
+from hm1d.FlowModel import FlowModel0, FlowModel1
+
+
+def fmd(m, mbin, decimals):
+    m = np.round(m, decimals = decimals)
+    mmin = np.min(m)
+    mmax = np.max(m)
+    mi = np.arange(np.round(np.floor(mmin / mbin) * mbin, decimals = 1), \
+               np.round(np.ceil(mmax / mbin) * mbin, decimals = 1), mbin)
+    bins = np.arange(np.round(np.floor(mmin / mbin) * mbin, decimals = 1), \
+                 np.round(np.ceil(mmax / mbin) * mbin + mbin, decimals = 1), mbin)-mbin/2
+    ni, _ = np.histogram(m, bins = bins)
+    Ni = [np.sum(ni[i:len(ni)]) for i in range(len(ni))]
+    distr = pd.DataFrame()
+    distr['mi'] = mi
+    distr['ni'] = ni[0:len(mi)]
+    distr['Ni'] = Ni[0:len(mi)]
+    return distr
+
+def detect_shutin(t, dV):    # used for the frequentist EM1 mask (to fill gaps after m)
+    V = np.cumsum(dV[1:] * np.diff(t))
+    t_shutin = t[np.argmax(V) + 1]
+    dV_shutin = dV[np.argmax(V) + 1]
+    Vtot = np.amax(V)
+    return t_shutin, dV_shutin, Vtot
+
+
+def daterange(start_date,
+              end_date,
+              epoch_duration=None,
+              training_start_date=None):
+    """Numpy array returned with forecasting intervals in seconds
+    increasing with constant increment, inclusive of the end_date.
+
+    :param st art_date: Datetime for generator to start with.
+    :param end_date: Datetime for generator to finish with.
+    :param epoch_duration: Number of seconds between returned values.
+
+    :rtype: np.array of seconds from training start time to forecast for
+    """
+    total_seconds = (end_date - start_date).total_seconds()
+    if not epoch_duration:
+        epoch_duration = total_seconds
+
+    # the +1 is required to match the r code which gives the range
+    # including the final variable.
+    daterange_list = [
+        i * epoch_duration for i
+        in range(int(total_seconds / epoch_duration) + 1)]
+    if training_start_date:
+        daterange_list = [i + (
+            start_date - training_start_date).total_seconds()
+            for i in daterange_list]
+    date_range_array = np.array(daterange_list)
+    return date_range_array
+
+
+def def_Xy(seism_t, inj_t, inj_dV, inj_P, tbins, dt, Pmodel):
+    tmids = tbins[1:] - dt / 2
+    x_dVplan = np.interp(tmids, inj_t, inj_dV)  # flow rate at tau_i (known since planned) = X_1
+    y_obs, _ = np.histogram(seism_t, bins=tbins)  # target seismicity rate at tau_i
+    x_yprev = np.insert(y_obs[:-1], 0, 0)
+
+    # define other X_2(tau_{i-1}) features below
+    N = len(tmids)
+    x_dVmean = np.zeros(N)
+    x_dVmin = np.zeros(N)
+    x_dVmax = np.zeros(N)
+    x_dVdiff = np.zeros(N)
+    x_Pmean = np.zeros(N)
+    x_Pmin = np.zeros(N)
+    x_Pmax = np.zeros(N)
+    x_Pdiff = np.zeros(N)
+    x_tauneg = np.zeros(N)
+    for tau in np.arange(1, N):
+        # at tau Minus 1 bin (observed)
+        ind_tauM1 = np.where(np.logical_and(inj_t >= tbins[tau - 1], inj_t < tbins[tau]))[0]
+        if len(ind_tauM1) > 0:
+            x_dVmean[tau] = np.nanmean(inj_dV[ind_tauM1].astype(float))
+            x_dVmin[tau] = np.nanmin(inj_dV[ind_tauM1].astype(float))
+            x_dVmax[tau] = np.nanmax(inj_dV[ind_tauM1].astype(float))
+            x_dVdiff[tau] = x_dVmax[tau] - x_dVmin[tau]
+            x_Pmean[tau] = np.nanmean(inj_P[ind_tauM1].astype(float))
+            x_Pmin[tau] = np.nanmin(inj_P[ind_tauM1].astype(float))
+            x_Pmax[tau] = np.nanmax(inj_P[ind_tauM1].astype(float))
+            x_Pdiff[tau] = x_Pmax[tau] - x_Pmin[tau]
+        else:
+            if tau > 0:  # if no data in bin, considers previous bin as data
+                x_dVmean[tau] = x_dVmean[tau - 1]
+                x_dVmin[tau] = x_dVmin[tau - 1]
+                x_dVmax[tau] = x_dVmax[tau - 1]
+                x_dVdiff[tau] = x_dVdiff[tau - 1]
+                x_Pmean[tau] = x_Pmean[tau - 1]
+                x_Pmin[tau] = x_Pmin[tau - 1]
+                x_Pmax[tau] = x_Pmax[tau - 1]
+                x_Pdiff[tau] = x_Pdiff[tau - 1]
+        x_tauneg[tau] = -tau
+
+    ## pressure model ##
+    iniguess = [1e-09, 1e-14]
+    xsection = 90  # cross-sectional area for point source model (FlowModel0)
+    layer_thick = 30  # thickness for line source model (FlowModel1)
+    max_grid_ext = 2000  # meters
+    recorded_flow = np.vstack((tmids, x_dVmean)).T
+    recorded_pressure = np.vstack((tmids, x_Pmean)).T
+    planned_flow = np.vstack((tmids, x_dVplan)).T
+    if Pmodel == 'FlowModel0':
+        flow_model = FlowModel0(recorded_flow, r_grid=np.geomspace(.1, max_grid_ext, 30, endpoint=True), \
+                                A=xsection, iniguess=iniguess)
+        flow_model.fit(recorded_pressure)
+        P_model = flow_model.predict(planned_flow)  # Ntimes X Mdistances
+        x_Pplan = P_model[:, 0]
+    if Pmodel == 'FlowModel1':
+        flow_model = FlowModel1(recorded_flow, r_grid=np.geomspace(.1, max_grid_ext, 30, endpoint=True), \
+                                h=layer_thick, iniguess=iniguess)
+        flow_model.fit(recorded_pressure)
+        P_model = flow_model.predict(planned_flow)  # Ntimes X Mdistances
+        x_Pplan = P_model[:, 0]
+    if Pmodel == 'FlowModels0-1':
+        flow_model0 = FlowModel0(recorded_flow, r_grid=np.geomspace(.1, max_grid_ext, 30, endpoint=True), \
+                                 A=xsection, iniguess=iniguess)
+        flow_model0.fit(recorded_pressure)
+        P_model0 = flow_model0.predict(planned_flow)  # Ntimes X Mdistances
+        x_Pplan0 = P_model0[:, 0]
+        flow_model1 = FlowModel1(recorded_flow, r_grid=np.geomspace(.1, max_grid_ext, 30, endpoint=True), \
+                                 h=layer_thick, iniguess=iniguess)
+        flow_model1.fit(recorded_pressure)
+        P_model1 = flow_model1.predict(planned_flow)  # Ntimes X Mdistances
+        x_Pplan1 = P_model1[:, 0]
+
+    if Pmodel == 'FlowModels0-1':
+        X = np.concatenate((x_dVplan[:, np.newaxis],
+                            x_dVmean[:, np.newaxis],
+                            x_dVdiff[:, np.newaxis],
+                            x_Pmean[:, np.newaxis],
+                            x_Pdiff[:, np.newaxis],
+                            x_tauneg[:, np.newaxis],
+                            x_yprev[:, np.newaxis],
+                            x_Pplan0[:, np.newaxis],
+                            x_Pplan1[:, np.newaxis]), axis=1)
+        return X, y_obs, flow_model0, flow_model1
+    else:
+        X = np.concatenate((x_dVplan[:, np.newaxis],
+                            x_dVmean[:, np.newaxis],
+                            x_dVdiff[:, np.newaxis],
+                            x_Pmean[:, np.newaxis],
+                            x_Pdiff[:, np.newaxis],
+                            x_tauneg[:, np.newaxis],
+                            x_yprev[:, np.newaxis],
+                            x_Pplan[:, np.newaxis]), axis=1)
+        return X, y_obs, flow_model
+
+# temporary function to log predictions
+def array_to_string(arr):
+    return ', '.join(str(x) for x in arr)
+
+
+
+def plotting_data(model):
+    fig, ax = plt.subplots(1, 2, figsize=(20, 6))
+
+    ax[0].scatter(model.seismicity.time, (model.seismicity['magnitude'] - np.min(model.seismicity['magnitude'])) / \
+                  (np.max(model.seismicity['magnitude'] - np.min(model.seismicity['magnitude']))) / 4, \
+                  color='lightgrey', alpha=.5, zorder=2, label='seismics')
+    ax[0].step(model.hydraulic_df.index, model.hydraulic_df['topflow'] / \
+               np.max(model.hydraulic_df['topflow']) / 4, color='darkblue', label='hydraulics[topflow]')
+    ax[0].step(model.hydraulic_df.index, model.hydraulic_df['toppressure'] / \
+               np.max(model.hydraulic_df['toppressure']) / 4, color='darkred', label='hydraulics[toppressure]')
+    ax[0].set_xlabel('Date')
+    ax[0].set_ylabel('Normalised inputs')
+    ax[0].set_title('Training data')
+    ax[0].legend(loc='upper left')
+    ax[0].spines['right'].set_visible(False)
+    ax[0].spines['top'].set_visible(False)
+
+    ax[1].plot(model.hydraulic_df.index, model.hydraulic_df['topflow'], color='darkblue', \
+               label='hydraulics[topflow]')
+    ax[1].plot(model.scenario_df.index, model.scenario_df[model.column_flow], color='royalblue', label='scenario')
+    ax[1].set_xlabel('Date')
+    ax[1].set_ylabel('Flow rate [m$^3$/s]')
+    ax[1].set_title('Flow time series')
+    ax[1].legend()
+    ax[1].spines['right'].set_visible(False)
+    ax[1].spines['top'].set_visible(False)
+    fig.tight_layout();
+
+def plotting_results(model,model_output, seism_df=pd.DataFrame()):
+
+    inj_t = np.array((model.hydraulic_df.index.values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+    Dtau = model.model_input.model_parameters['epoch_duration']
+
+    NN = ((inj_t[-1] - inj_t[0])
+          / Dtau).astype(int) + 1
+    time_fit = np.linspace(
+        inj_t[0], inj_t[-1], NN)
+
+    time_fit_mids = time_fit[1:]#- Dtau / 2
+
+    time_forecast_mids = model.forecast_moments[1:]- Dtau/2
+
+    seism = model.seismicity
+    seism = seism[seism['magnitude'] >= model.Mc]
+    seism.sort_values(by='time', inplace=True)
+    seism_t = np.array((seism['time'].values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+
+    # range pred
+
+    y_pred_mean = np.median(model_output[4], axis=1)
+    up = np.percentile(model_output[4],axis=1,q=75)
+    down = np.percentile(model_output[4],axis=1,q=25)
+    down[down < 0] = 0
+
+    if not seism_df.empty:
+        seism_t_all = np.array((seism_df['time'].values - model.hydraulic_df.index.values[0]).tolist()) / 1.e9
+        ind = np.logical_and(seism_t_all > 0, seism_t_all < model.forecast_moments[-1])
+        seism_df_filt = seism_df[ind]
+        seism_t_all = seism_t_all[ind]
+        seism_t_all_aboveMc = seism_t_all[seism_df_filt['magnitude'] >= model.Mc]
+        taubins_all = np.arange(0, model.forecast_moments[-1] + Dtau, Dtau)
+        tmids_all = taubins_all[1:] - Dtau / 2
+        rate_all = np.histogram(seism_t_all_aboveMc, bins=taubins_all)
+
+    ##
+    fig, ax = plt.subplots(1, 2, figsize=(20, 6))
+
+    ax[0].scatter(seism_t, np.arange(1, len(seism_t) + 1), color='darkgrey', label='observations')
+    ax[0].plot(time_fit_mids,np.cumsum(model_output[3]), color='darkgreen', label='model fit')
+    ax[0].set_xlabel('Time increment')
+    ax[0].set_ylabel('Cumulative number of events')
+    ax[0].set_title('Training fit')
+    ax[0].legend()
+    ax[0].spines['right'].set_visible(False)
+    ax[0].spines['top'].set_visible(False)
+
+    # ax[1].plot(model.res_fit_t, model.rate_train, color = 'lightgrey', label = 'observations')
+    ax[1].plot(time_fit_mids, model_output[3], color='darkgreen', label='model fit')
+    ax[1].plot(time_forecast_mids, y_pred_mean, color='darkred', label='model prediction')
+    ax[1].scatter(time_forecast_mids, y_pred_mean, color='darkred')
+    ax[1].fill_between(time_forecast_mids, down, up, facecolor='darkred', alpha=.3)
+    if not seism_df.empty:
+        ax[1].step(tmids_all, rate_all[0], where='mid', label='data', color='darkgrey')
+    # ax[1].fill_between(tmids_all, 0, rate_all[0], color='grey', alpha = .5)
+    #ax[1].set_xlim(0, 50000)
+    #ax[1].set_ylim(0, 150)
+    ax[1].set_xlabel('Time increment')
+    ax[1].set_ylabel('Event rate')
+    ax[1].set_title('Event-rate time series')
+    ax[1].legend(loc='upper left')
+    ax[1].spines['right'].set_visible(False)
+    ax[1].spines['top'].set_visible(False)
+    #fig.tight_layout()
\ No newline at end of file
diff --git a/model_plots.py b/model_plots.py
new file mode 100644
index 0000000..9966a00
--- /dev/null
+++ b/model_plots.py
@@ -0,0 +1,201 @@
+import logging
+import os
+from datetime import datetime
+
+import pandas as pd
+import numpy as np
+from hydws.parser import BoreholeHydraulics
+from seismostats.seismicity.catalog import Catalog
+from seismostats.utils.coordinates import CoordinateTransformer
+from shapely import Polygon
+from shapely.wkt import dumps
+
+from hm1d.ramsis import ModelInput, run_ml1, run_ml1_validated  # noqa
+from hm1d.model import HM1D
+from hm1d.utils import plotting_data,plotting_results
+
+
+# Set up logger
+date_strftime_format = "%d-%m-%y %H:%M:%S"
+logging.basicConfig(
+    format='%(asctime)s %(levelname)s  %(message)s',
+    datefmt=date_strftime_format,
+    level=logging.INFO)
+
+
+def main():
+    ############################################################
+    # HYDRAULICS
+    dirpath = os.path.dirname(os.path.abspath(__file__))
+    Data_Path = os.path.join(dirpath, "data/")
+    hydraulics = pd.read_hdf(Data_Path + 'TrainingData.h5')
+
+    hydraulics_plan = pd.read_hdf(Data_Path + 'Scenario.h5')
+
+    # define start and end of forecast
+    forecast_start = datetime.utcfromtimestamp(
+        hydraulics_plan.index.values[0].tolist() / 1e9)
+    forecast_end = datetime.utcfromtimestamp(
+        hydraulics_plan.index.values[-1].tolist() / 1e9)
+
+    # rename columns to match hydws
+    hydraulics = hydraulics.drop('time', axis=1).rename(
+        columns={'pressure': 'toppressure'})
+    hydraulics_plan.index.names = ['datetime']
+    hydraulics_plan["topflow"] = -1 * np.ones((len(hydraulics_plan), 1))
+
+    # generate empty parser and load dataframe to empty section
+    parser = BoreholeHydraulics()
+    section_id = parser.section_from_dataframe(hydraulics)
+    hydjson = parser.to_json()
+
+    # replace hydraulics with scenario hydraulics
+    parser[section_id].hydraulics = hydraulics_plan
+    scenario_hydjson = parser.to_json()
+
+    ############################################################
+    # SEISMICITY
+
+    proj_string = 'epsg:2056'
+
+    # define coordinate transformer, local <-> swiss, external <-> WGS84
+    transformer = CoordinateTransformer(proj_string)
+    top_section_swiss = transformer.to_local_coords(
+        8.47449792444771,
+        46.5098187019071,
+        1271.43402303251
+    )
+
+    # CoordinateTransformer with reference point in epsg:2056
+    transformer = CoordinateTransformer(proj_string, *top_section_swiss)
+
+    # Read seismics, transform to local coordinate system
+    catalog_df = pd.read_hdf(Data_Path + 'TrainingTarget.h5')
+    catalog_df['Xs'], catalog_df['Ys'], catalog_df['Zs'] = \
+        transformer.from_local_coords(catalog_df.Xs.values,
+                                      catalog_df.Ys.values,
+                                      catalog_df.Zs.values)
+
+    catalog_df = catalog_df.reset_index().rename(
+        columns={
+            'Xs': 'longitude',
+            'Ys': 'latitude',
+            'Zs': 'depth',
+            'mag': 'magnitude',
+            'datetime': 'time'})
+
+    catalog = Catalog(catalog_df)
+    catalog['magnitude_type'] = 'mag'
+
+    quakeml = catalog.to_quakeml()
+
+    bounding_polygon = Polygon([[-150, -150], [-150, 150], [150, 150],
+                                [150, -150], [-150, -150]])
+    bounding_polygon = transformer.polygon_from_local_coords(bounding_polygon)
+
+    extent = {
+        'bounding_polygon': dumps(bounding_polygon),
+        'altitude_min': -150 + top_section_swiss[2],
+        'altitude_max': 150 + top_section_swiss[2],
+    }
+
+    data = {
+        'forecast_start': forecast_start,
+        'forecast_end': forecast_end,
+        'injection_well': [hydjson],
+        'injection_plan': scenario_hydjson,
+        'geometry': extent,  # always in WGS84
+        'seismic_catalog': quakeml,
+        'model_parameters': {
+            'seis_model':'SEED',
+            'seed_model_version': 2,
+            'SeisSettings': {
+                    "seed_density": 10, #SEED & CAPS
+                    "inter_sigma1": 22.5, #SEED & CAPS
+                    "inter_sigma3": 10, #SEED & CAPS
+                    "sigma1_std": 20, #SEED & CAPS
+                    "sigma3_std": 10, #SEED & CAPS
+                    "cohesion_mean": 2, #SEED & CAPS
+                    "friction_mean": 0.6, #SEED & CAPS
+                    "criticality": 0, #SEED
+                    "stressdrop_coeff": 7, #SEED & CAPS
+                    "phydro": 11.6, #SEED & CAPS
+                    "b_min": 1.0, #SEED
+                    "b_max": 5.0, #SEED
+                    "b_min_diff_stress": 50, #SEED
+                    "b_max_diff_stress": 0, #SEED
+                    "b_vs_depth_range": True, #SEED
+                    "CAPS_sigma_distr": 0.05, #CAPS
+                    "retriggering": False
+            },
+            'SeisBounds' : {
+                "sigma1_std": (0.01, 10),
+                "sigma3_std": (0.01, 10),
+                "stressdrop_coeff": (1.e-3, 7),
+                "cohesion_mean": (0.2, 2),
+                "friction_mean": (0.1, 1),
+                "seed_density": (1, 1e5),
+            },
+            'flow_model': 'line_source',
+            'FlowSettings': {
+                "permeability": -20,
+                "storage": -10,
+                "viscosity": -3,
+                'max_grid_ext:':300,
+                'layer_thick':100,
+                'cross_area':94
+            },
+            'FlowBounds' : {
+                "storage": (-11, -9),
+                "permeability": (-20, -13),
+            },
+            'cost_fun': 'LS',
+            'NSim':100,
+            'dM': 0.05,
+            'Mc': None,
+            'well_section_publicid': str(section_id),
+            'reference_point': top_section_swiss,  # always in WGS84
+            'local_proj_string': proj_string,
+            'epoch_duration': 600,
+            'n_phases': 8
+        }
+    }
+
+    model_input = ModelInput(**data)
+
+    model = HM1D(model_input)
+
+    plotting_data(model)
+
+    model.fit()
+
+    results = model.predict()
+
+    #results = model.parse_results(results)
+    #catalog_df_full = pd.read_hdf(Data_Path + 'seismic_Data_full_located.h5')
+    catalog_df_full = pd.read_hdf(Data_Path + 'Cat_FORGE22.h5')
+    catalog_df_full.index.names = ['datetime']
+    catalog_df_full = catalog_df_full.reset_index().rename(
+        columns={
+            'Xs': 'longitude',
+            'Ys': 'latitude',
+            'Zs': 'depth',
+            'mag': 'magnitude',
+            'datetime': 'time'})
+
+    #catalog_df_full.rename(columns={"X": "Xs", "Y": "Ys", "Depth": "Zs", "MomMag": "magnitude", "Time(UTC)": "time"}, inplace=True)
+    #catalog_df_full.rename(columns={"mag": "magnitude"}, inplace=True)
+    catalog_df_full = catalog_df_full[catalog_df_full["magnitude"] > -5]
+    catalog_df_full.set_index("time", inplace=True)
+    catalog_df_full = catalog_df_full[catalog_df_full.index >= hydraulics.index.values[0]]
+    catalog_df_full = catalog_df_full[catalog_df_full.index <= forecast_end]
+    catalog_df_full = catalog_df_full.reset_index()
+
+    plotting_results(model,results,catalog_df_full)
+
+    return model
+
+
+if __name__ == "__main__":
+    result = main()
+
diff --git a/model_plots_forge.py b/model_plots_forge.py
new file mode 100644
index 0000000..a6c147f
--- /dev/null
+++ b/model_plots_forge.py
@@ -0,0 +1,183 @@
+import logging
+import os
+from datetime import datetime
+
+import pandas as pd
+import numpy as np
+from hydws.parser import BoreholeHydraulics
+from seismostats.seismicity.catalog import Catalog
+from seismostats.utils.coordinates import CoordinateTransformer
+from shapely import Polygon
+from shapely.wkt import dumps
+
+from ml1.ramsis import ModelInput, run_ml1, run_ml1_validated  # noqa
+from ml1.model import ML1
+from ml1.utils import plotting_data,plotting_results
+
+
+# Set up logger
+date_strftime_format = "%d-%m-%y %H:%M:%S"
+logging.basicConfig(
+    format='%(asctime)s %(levelname)s  %(message)s',
+    datefmt=date_strftime_format,
+    level=logging.INFO)
+
+
+def main():
+    ############################################################
+    # HYDRAULICS
+    dirpath = os.path.dirname(os.path.abspath(__file__))
+    Data_Path = os.path.join(dirpath, "data/")
+    #hydraulics = pd.read_hdf(Data_Path + 'TrainingData.h5')
+    hydraulics = pd.read_hdf(Data_Path + 'Hydr_FORGE22.h5')
+    hydraulics_plan = hydraulics[hydraulics.index.values >= np.array(datetime(2022,4,21,15,0)).astype('datetime64')]
+    hydraulics_plan = hydraulics_plan[hydraulics_plan.index.values < np.array(datetime(2022,4,21,18)).astype('datetime64')]
+
+
+    # define start and end of forecast
+    forecast_start =datetime(2022,4,21,15, 0)#datetime.utcfromtimestamp(hydraulics_plan.index.values[0].tolist() / 1e9)
+    forecast_end = datetime(2022,4,21,18,0)#datetime.utcfromtimestamp(hydraulics_plan.index.values[-1].tolist() / 1e9)
+
+    hydraulics = hydraulics[hydraulics.index.values >= np.array(datetime(2022,4,21,13,00,23)).astype('datetime64')]
+    hydraulics = hydraulics[hydraulics.index.values < np.array(datetime(2022,4,21,15,0)).astype('datetime64')]
+
+    hydraulics_plan["topflow"]=-1*np.ones((len(hydraulics_plan),1))
+    hydraulics_plan.index.values[-1]=np.array(datetime(2022,4,21,18)).astype('datetime64')
+    hydraulics_plan.topflow.values[-1] = hydraulics_plan.topflow.values[-2]
+
+    hydraulics_plan=hydraulics_plan[~hydraulics_plan.index.duplicated(keep='first')]
+
+    #hydraulics_plan = pd.read_hdf(Data_Path + 'Scenario.h5')
+
+
+    observation_start = datetime.utcfromtimestamp(hydraulics.index.values[0].tolist() / 1e9)
+    observation_end = datetime.utcfromtimestamp(hydraulics.index.values[-1].tolist() / 1e9)
+
+    # rename columns to match hydws
+    #hydraulics = hydraulics.drop('time', axis=1).rename(
+    #    columns={'pressure': 'toppressure'})
+    hydraulics_plan.index.names = ['datetime']
+
+    # generate empty parser and load dataframe to empty section
+    parser = BoreholeHydraulics()
+    section_id = parser.section_from_dataframe(hydraulics)
+    hydjson = parser.to_json()
+
+    # replace hydraulics with scenario hydraulics
+    parser[section_id].hydraulics = hydraulics_plan
+    scenario_hydjson = parser.to_json()
+
+
+    ############################################################
+    # SEISMICITY
+
+    proj_string = 'epsg:2056'
+
+    # define coordinate transformer, local <-> swiss, external <-> WGS84
+    transformer = CoordinateTransformer(proj_string)
+    top_section_swiss = transformer.to_local_coords(
+        8.47449792444771,
+        46.5098187019071,
+        1271.43402303251
+    )
+
+    # CoordinateTransformer with reference point in epsg:2056
+    transformer = CoordinateTransformer(proj_string, *top_section_swiss)
+
+    # Read seismics, transform to local coordinate system
+    #catalog_df = pd.read_hdf(Data_Path + 'TrainingTarget.h5')
+    catalog_df = pd.read_hdf(Data_Path + 'Cat_FORGE22.h5')
+    catalog_df = catalog_df[catalog_df.index.values < np.array(observation_end).astype('datetime64')]
+    catalog_df = catalog_df[catalog_df.index.values >= np.array(observation_start).astype('datetime64')]
+    catalog_df['Xs'], catalog_df['Ys'], catalog_df['Zs'] = \
+        transformer.from_local_coords(catalog_df.Xs.values,
+                                      catalog_df.Ys.values,
+                                      catalog_df.Zs.values)
+
+    catalog_df.index.names = ['datetime']
+    catalog_df = catalog_df.reset_index().rename(
+        columns={
+            'Xs': 'longitude',
+            'Ys': 'latitude',
+            'Zs': 'depth',
+            'mag': 'magnitude',
+            'datetime': 'time'})
+
+    catalog = Catalog(catalog_df)
+    catalog['magnitude_type'] = 'mag'
+
+    quakeml = catalog.to_quakeml()
+
+    bounding_polygon = Polygon([[-150, -150], [-150, 150], [150, 150],
+                               [150, -150], [-150, -150]])
+    bounding_polygon = transformer.polygon_from_local_coords(bounding_polygon)
+
+    extent = {
+        'bounding_polygon': dumps(bounding_polygon),
+        'altitude_min': -150 + top_section_swiss[2],
+        'altitude_max': 150 + top_section_swiss[2],
+    }
+
+    data = {
+        'forecast_start': forecast_start,
+        'forecast_end': forecast_end,
+        'injection_well': [hydjson],
+        'injection_plan': scenario_hydjson,
+        'geometry': extent,  # always in WGS84
+        'seismic_catalog': quakeml,
+        'model_parameters': {
+            'M_decimals': 2,
+            'dM': 0.05,
+            'Mc': None,
+            'LASSO_m': 100,
+            'LASSO_penalty': 1,
+            'LASSO_Nmin_fit': 10,
+            'Nsim': 150,
+            'Delta_tau': 600,
+            'Pmodel': 'FlowModels0-1',
+            'well_section_publicid': str(section_id),
+            'reference_point': top_section_swiss,  # always in WGS84
+            'local_proj_string': proj_string,
+            'epoch_duration': 600,
+            'n_phases': 8
+        }
+    }
+
+    model_input = ModelInput(**data)
+
+    model = ML1(model_input)
+
+    plotting_data(model)
+
+    model.fit()
+
+    results = model.predict()
+
+    #results = model.parse_results(results)
+    #catalog_df_full = pd.read_hdf(Data_Path + 'seismic_Data_full_located.h5')
+    catalog_df_full = pd.read_hdf(Data_Path + 'Cat_FORGE22.h5')
+    catalog_df_full.index.names = ['datetime']
+    catalog_df_full = catalog_df_full.reset_index().rename(
+        columns={
+            'Xs': 'longitude',
+            'Ys': 'latitude',
+            'Zs': 'depth',
+            'mag': 'magnitude',
+            'datetime': 'time'})
+
+    #catalog_df_full.rename(columns={"X": "Xs", "Y": "Ys", "Depth": "Zs", "MomMag": "magnitude", "Time(UTC)": "time"}, inplace=True)
+    #catalog_df_full.rename(columns={"mag": "magnitude"}, inplace=True)
+    catalog_df_full = catalog_df_full[catalog_df_full["magnitude"] > -5]
+    catalog_df_full.set_index("time", inplace=True)
+    catalog_df_full = catalog_df_full[catalog_df_full.index >= hydraulics.index.values[0]]
+    catalog_df_full = catalog_df_full[catalog_df_full.index <= forecast_end]
+    catalog_df_full = catalog_df_full.reset_index()
+
+    plotting_results(model,results,catalog_df_full)
+
+    return model
+
+
+if __name__ == "__main__":
+    result = main()
+
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..7fd26b9
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
\ No newline at end of file
diff --git a/run_model.py b/run_model.py
new file mode 100644
index 0000000..ab5f4f3
--- /dev/null
+++ b/run_model.py
@@ -0,0 +1,163 @@
+import logging
+import os
+from datetime import datetime
+
+import pandas as pd
+from hydws.parser import BoreholeHydraulics
+from seismostats.seismicity.catalog import Catalog
+from seismostats.utils.coordinates import CoordinateTransformer
+from shapely import Polygon
+from shapely.wkt import dumps
+
+from hm1d.ramsis import run_hm1d, run_hm1d_validated  # noqa
+
+# Set up logger
+date_strftime_format = "%d-%m-%y %H:%M:%S"
+logging.basicConfig(
+    format='%(asctime)s %(levelname)s  %(message)s',
+    datefmt=date_strftime_format,
+    level=logging.INFO)
+
+
+def main():
+    ############################################################
+    # HYDRAULICS
+    dirpath = os.path.dirname(os.path.abspath(__file__))
+    Data_Path = os.path.join(dirpath, "data/")
+    hydraulics = pd.read_hdf(Data_Path + 'TrainingData.h5')
+
+    hydraulics_plan = pd.read_hdf(Data_Path + 'Scenario.h5')
+
+    # define start and end of forecast
+    forecast_start = datetime.utcfromtimestamp(
+        hydraulics_plan.index.values[0].tolist() / 1e9)
+    forecast_end = datetime.utcfromtimestamp(
+        hydraulics_plan.index.values[-1].tolist() / 1e9)
+
+    # rename columns to match hydws
+    hydraulics = hydraulics.drop('time', axis=1).rename(
+        columns={'pressure': 'toppressure'})
+    hydraulics_plan.index.names = ['datetime']
+
+    # generate empty parser and load dataframe to empty section
+    parser = BoreholeHydraulics()
+    section_id = parser.section_from_dataframe(hydraulics)
+    hydjson = parser.to_json()
+
+    # replace hydraulics with scenario hydraulics
+    parser[section_id].hydraulics = hydraulics_plan
+    scenario_hydjson = parser.to_json()
+
+    ############################################################
+    # SEISMICITY
+
+    proj_string = 'epsg:2056'
+
+    # define coordinate transformer, local <-> swiss, external <-> WGS84
+    transformer = CoordinateTransformer(proj_string)
+    top_section_swiss = transformer.to_local_coords(
+        8.47449792444771,
+        46.5098187019071,
+        1271.43402303251
+    )
+
+    # CoordinateTransformer with reference point in epsg:2056
+    transformer = CoordinateTransformer(proj_string, *top_section_swiss)
+
+    # Read seismics, transform to local coordinate system
+    catalog_df = pd.read_hdf(Data_Path + 'TrainingTarget.h5')
+    catalog_df['Xs'], catalog_df['Ys'], catalog_df['Zs'] = \
+        transformer.from_local_coords(catalog_df.Xs.values,
+                                      catalog_df.Ys.values,
+                                      catalog_df.Zs.values)
+
+    catalog_df = catalog_df.reset_index().rename(
+        columns={
+            'Xs': 'longitude',
+            'Ys': 'latitude',
+            'Zs': 'depth',
+            'mag': 'magnitude',
+            'datetime': 'time'})
+
+    catalog = Catalog(catalog_df)
+    catalog['magnitude_type'] = 'Mw'
+
+    quakeml = catalog.to_quakeml()
+
+    bounding_polygon = Polygon([[-150, -150], [-150, 150], [150, 150],
+                               [150, -150], [-150, -150]])
+    bounding_polygon = transformer.polygon_from_local_coords(bounding_polygon)
+
+    extent = {
+        'bounding_polygon': dumps(bounding_polygon),
+        'altitude_min': -150 + top_section_swiss[2],
+        'altitude_max': 150 + top_section_swiss[2],
+    }
+
+    data = {
+        'forecast_start': forecast_start,
+        'forecast_end': forecast_end,
+        'injection_well': [hydjson],
+        'injection_plan': scenario_hydjson,
+        'geometry': extent,                         # always in WGS84
+        'seismic_catalog': quakeml,
+        'model_parameters': {
+            'M_decimals': 2,
+            'dM': 0.05,
+            'Mc': None,
+            'LASSO_m': 10,
+            'LASSO_penalty': 1,
+            'LASSO_Nmin_fit': 5,
+            'Nsim': 150,
+            'Delta_tau': 600,
+            'Pmodel': 'FlowModels0-1',
+            'well_section_publicid': str(section_id),
+            'reference_point': top_section_swiss,   # always in WGS84
+            'local_proj_string': proj_string,
+            'epoch_duration': 600,
+            'n_phases': 8
+        }
+    }
+
+    # # # initialize the model
+
+    #model_output = run_ml1(data)  # unvalidated input
+    model_output = run_ml1_validated(data)  # validated input
+
+    ############################################################
+    # results are a list of ForecastGRRateGrids, they can for example
+    # be accessed like this:
+    print('\n\n'
+          f'100 Simulations for timestep from {model_output[-1].starttime} '
+          f'until {model_output[-1].endtime}\n',
+          model_output[-1])
+
+    # it is easy to add the datetime index to the dataframe:
+    print('\n\n'
+          'Same dataframe with the datetime index added:\n',
+          model_output[-1].add_time_index())
+
+    # as well as concatenating all the simulations into one dataframe:
+    full_df = pd.concat([x.add_time_index() for x in model_output])
+    print('\n\n'
+          'All simulations concatenated into one dataframe:\n',
+          full_df)
+
+    ############################################################
+    # you have also available here the:
+
+    # input hydraulics (history) as a DataFrame
+    print(hydraulics)
+
+    # input injection plan as a DataFrame
+    print(hydraulics_plan)
+
+    # input seismicity as a seismostats Catalog
+    print(catalog)
+
+    return model_output
+
+
+if __name__ == "__main__":
+    result = main()
+
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..5aece8a
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,57 @@
+[metadata]
+name = ml1
+author =
+    Victor Clasen Repolles
+    Rinaldi Antonio
+    Dimitrios Karvounis
+    Federico Ciardo
+author_email =
+    victor.clasen@sed.ethz.ch
+    antoniopio.rinaldi@sed.ethz.ch
+version = 0.1.0
+description = 
+    !D Hydromechanical models for Induced Seismicity Forecasts
+long_description = file: README.md, LICENSE
+license = AGPL License
+classifiers =
+    Programming Language :: Python :: 3
+
+[options]
+packages = find:
+install_requires = 
+    h5py
+    hydws-client @ git+https://git@gitlab.seismo.ethz.ch/indu/hydws-client.git
+    nbformat
+    numpy
+    scipy
+    pandas
+    pyarrow
+    pydantic
+    ramsis-model[ramsis-final] @ git+https://gitlab.seismo.ethz.ch/indu/ramsis-model.git
+    scikit-learn
+    seismostats @ git+https://github.com/swiss-seismological-service/SeismoStats.git
+    tables
+    numba
+
+python_requires = >= 3.10
+
+[options.extras_require]
+dev =
+    pytest
+    pytest-cov
+    autopep8
+    flake8
+
+[flake8]
+select = E,F,W
+max_line_length = 79
+ignore = E402, W503
+exclude =
+  .git,
+  .tox,
+  .eggs,
+  .config,
+  *.egg-info,
+  __pycache__,
+  .pytest_cache,
+  env,
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..07b4426
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,17 @@
+[tox]
+envlist = py310-tests,flake8
+minversion = 4.0
+
+[testenv]
+usedevelop = true
+download = true
+extras = 
+    tests
+    py310: py310
+deps = 
+    cython
+
+[testenv:flake8]
+skip_install = true
+deps = flake8
+commands = flake8 .
-- 
GitLab