From b965d211538313afe898dc38365b91256bb1e952 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Fri, 24 May 2024 20:58:10 +0200 Subject: [PATCH] Documentation corrections and update --- doc/en/examples.rst | 1 + ...orithm_InterpolationByReducedModelTest.rst | 89 ++++++++++++++++++ doc/en/ref_algorithm_ReducedModelingTest.rst | 20 ++++ doc/en/reference.rst | 1 + .../scripts/simple_ReducedModelingTest1.png | Bin 0 -> 93132 bytes doc/en/scripts/simple_ReducedModelingTest1.py | 24 +++++ .../scripts/simple_ReducedModelingTest1.res | 86 +++++++++++++++++ .../scripts/simple_ReducedModelingTest1.rst | 13 +++ doc/en/snippets/MeasurementLocations.rst | 13 +++ doc/en/snippets/ModuleValidation.rst | 2 +- doc/en/snippets/NoConditionalOutput.rst | 1 + doc/fr/examples.rst | 1 + ...orithm_InterpolationByReducedModelTest.rst | 89 ++++++++++++++++++ doc/fr/ref_algorithm_ReducedModelingTest.rst | 20 ++++ doc/fr/reference.rst | 1 + .../scripts/simple_ReducedModelingTest1.png | Bin 0 -> 93132 bytes doc/fr/scripts/simple_ReducedModelingTest1.py | 24 +++++ .../scripts/simple_ReducedModelingTest1.res | 86 +++++++++++++++++ .../scripts/simple_ReducedModelingTest1.rst | 13 +++ doc/fr/snippets/MeasurementLocations.rst | 13 +++ doc/fr/snippets/ModuleValidation.rst | 2 +- doc/fr/snippets/NoConditionalOutput.rst | 1 + src/daComposant/daAlgorithms/Atoms/ecw2ukf.py | 5 +- src/daComposant/daAlgorithms/Atoms/ecwukf.py | 5 +- .../daAlgorithms/ReducedModelingTest.py | 4 +- src/daComposant/daCore/NumericObjects.py | 5 +- 26 files changed, 506 insertions(+), 13 deletions(-) create mode 100644 doc/en/ref_algorithm_InterpolationByReducedModelTest.rst create mode 100644 doc/en/scripts/simple_ReducedModelingTest1.png create mode 100644 doc/en/scripts/simple_ReducedModelingTest1.py create mode 100644 doc/en/scripts/simple_ReducedModelingTest1.res create mode 100644 doc/en/scripts/simple_ReducedModelingTest1.rst create mode 100644 doc/en/snippets/MeasurementLocations.rst create mode 100644 doc/en/snippets/NoConditionalOutput.rst create mode 100644 doc/fr/ref_algorithm_InterpolationByReducedModelTest.rst create mode 100644 doc/fr/scripts/simple_ReducedModelingTest1.png create mode 100644 doc/fr/scripts/simple_ReducedModelingTest1.py create mode 100644 doc/fr/scripts/simple_ReducedModelingTest1.res create mode 100644 doc/fr/scripts/simple_ReducedModelingTest1.rst create mode 100644 doc/fr/snippets/MeasurementLocations.rst create mode 100644 doc/fr/snippets/NoConditionalOutput.rst diff --git a/doc/en/examples.rst b/doc/en/examples.rst index 196d7d5..6cd8b44 100644 --- a/doc/en/examples.rst +++ b/doc/en/examples.rst @@ -60,6 +60,7 @@ Checking algorithms uses #. :ref:`Examples with the "FunctionTest" check` #. :ref:`Examples with the "ObservationSimulationComparisonTest" check` #. :ref:`Examples with the "ParallelFunctionTest" check` +#. :ref:`Examples with the "ReducedModelingTest" check` Dedicated tasks or study oriented cases uses -------------------------------------------- diff --git a/doc/en/ref_algorithm_InterpolationByReducedModelTest.rst b/doc/en/ref_algorithm_InterpolationByReducedModelTest.rst new file mode 100644 index 0000000..f6c55eb --- /dev/null +++ b/doc/en/ref_algorithm_InterpolationByReducedModelTest.rst @@ -0,0 +1,89 @@ +.. + Copyright (C) 2008-2024 EDF R&D + + This file is part of SALOME ADAO module. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com + + Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +.. index:: single: InterpolationByReducedModelTest +.. _section_ref_algorithm_InterpolationByReducedModelTest: + +Checking algorithm "*InterpolationByReducedModelTest*" +------------------------------------------------------ + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo01.rst + +This algorithm provides a simple way of analyzing the quality of the empirical +state interpolation obtained using a reduced basis, using measurements at +specific points. + +The results displayed by default are simple statistics related to the +normalized errors of interpolation with a reduced basis. The test uses a +reduced base and a set of optimal measurement positions, and uses +pseudo-measurements from each complete state (“*snapshot*”) included in the +given test set. + +Please note: to be consistent, this test must use the same mathematical norm as +that used to construct the reduced basis. As the norm is chosen by the user +when defining the test, the norm used to construct the reduced basis must be +verified. + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo12.rst + +.. include:: snippets/FeaturePropDerivativeFree.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo02.rst + +.. include:: snippets/EnsembleOfSnapshots.rst + +.. include:: snippets/MeasurementLocations.rst + +.. include:: snippets/ReducedBasis.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo03Chck.rst + +.. include:: snippets/ErrorNorm.rst + +.. include:: snippets/NumberOfPrintedDigits.rst + +.. include:: snippets/ShowElementarySummary.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo04.rst + +.. include:: snippets/NoUnconditionalOutput.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo05.rst + +.. include:: snippets/NoConditionalOutput.rst + +.. ------------------------------------ .. +.. _section_ref_algorithm_InterpolationByReducedModelTest_examples: + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo06.rst + +- :ref:`section_ref_algorithm_InterpolationByReducedModelTask` +- :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask` +- :ref:`section_ref_algorithm_ReducedModelingTest` diff --git a/doc/en/ref_algorithm_ReducedModelingTest.rst b/doc/en/ref_algorithm_ReducedModelingTest.rst index a509934..6fcce11 100644 --- a/doc/en/ref_algorithm_ReducedModelingTest.rst +++ b/doc/en/ref_algorithm_ReducedModelingTest.rst @@ -126,6 +126,26 @@ StoreSupplementaryCalculations .. ------------------------------------ .. .. _section_ref_algorithm_ReducedModelingTest_examples: +.. include:: snippets/Header2Algo09.rst + +.. --------- .. +.. include:: scripts/simple_ReducedModelingTest1.rst + +.. literalinclude:: scripts/simple_ReducedModelingTest1.py + +.. include:: snippets/Header2Algo10.rst + +.. literalinclude:: scripts/simple_ReducedModelingTest1.res + :language: none + +.. include:: snippets/Header2Algo11.rst + +.. _simple_ReducedModelingTest1: +.. image:: scripts/simple_ReducedModelingTest1.png + :align: center + :width: 90% + +.. ------------------------------------ .. .. include:: snippets/Header2Algo06.rst - :ref:`section_ref_algorithm_FunctionTest` diff --git a/doc/en/reference.rst b/doc/en/reference.rst index 6b7b673..d0be7a1 100644 --- a/doc/en/reference.rst +++ b/doc/en/reference.rst @@ -142,6 +142,7 @@ providing :ref:`section_theory`. ref_algorithm_FunctionTest ref_algorithm_GradientTest ref_algorithm_InputValuesTest + ref_algorithm_InterpolationByReducedModelTest ref_algorithm_LinearityTest ref_algorithm_LocalSensitivityTest ref_algorithm_ObservationSimulationComparisonTest diff --git a/doc/en/scripts/simple_ReducedModelingTest1.png b/doc/en/scripts/simple_ReducedModelingTest1.png new file mode 100644 index 0000000000000000000000000000000000000000..03662e74d1e04d3a2e0aaae17b8bd7ca59832ac2 GIT binary patch literal 93132 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

-s;=x=mQe_--rRt{{S<^I^OEg}S1Ts*cw7fu`JcsL-Qm5XY ztJb)TW?Uw=hYn%-|0S>J9!EPHZMvk@>7|fgR=1|B8J1z+6&>P|^w@^=PupP7CN&UL>%?zjB2Uz}uyEL-BA8tA@L}p5d1lw8vIfSJ*6{p+uH}P6i zkWFIe)A<%u@AW6?qSRGELl$(J2xLw)dJhsGLzdK3R6tE@`N|u@pBp9HZjvB zhjl*ZyzN&)I2P-Nw{DCvHMUJ-!$nR+n>HP!4nL!bcSPDy$xFpz#Yo@xO%Wr ziUnP)A9u9+@GAu7=xHIOco{v`5HXZ(sNvk6H`E}9i9>fM|H)?0EwK$9r)VIDw{WC) zb+DZl4@1lJVQV_kKL;88hRLFbIHEsQuA>yTIPwEWj8*5c?fL3t;|>ueMCqhItqpcW zV5baGT;Hj|cLQ34tE)EEudV0niIRZ_=d)?hLxiYg;CaPo1m`y`ypO<6JQ3I|m4}qF zz0bvXQ><~69A#?UYe&8-k-~PAm%!pJg`lZ39)7zxg~U6A`0I-BAT+P(49Um<4Rcl2 zD0c5idS?ENc;Tf7cx8l}i1tKp%C_CbjwgL|@h`2R%kJY-cHN1KtaLgt)<-^t=n>1aMfad~94`*%Ju8s*E_7WJhjE_U zZF%3ikDPWsSM1onY%+K!m!CmWY5l1O*{iF6WynY~KNX!UUvtBI)TpP^cBCpL0w?? zBmTpSF8MbiYoNR03L11FzwjspUV#ZBL9{qM7&^kZw$5;}iL-HMVbw&xW*YoJs_%SQ zKa1-u98kkAy(l(!LO8MGyno|jz%C5EOsa7wq29`|va!K#;Gf)K)NgZ$i;nNqs2nfb zPiH%G)7q^0k@{uxOFnMUrcXYutn1hpxNV6i|y-I8lMVN@Vg_s;qtM) ziGgpfBWwg$FDv^8tv@h~xc|`8W{I=hb7^B(%$sZMDV7M^*WM)BqtM%i@R6ewPLDen!>}Q|2$@Av3*C_=u=Y#R(#iJ*Nk!FjoysfWnNR+~ z?6}03Cz3065#advp5j9JO*r}|eY*R~E)+%1?c8N1PG}K7K9gx-Q<1{dJDh~7;8@zTKI{DIu%||1oR8~r& z@>^`?Z!T`7=605I5{*;g8K*@%n}^6O*^JObpI0`@B^Fw-X3ev2f=Wrm#nMs7MlN-4 z_&BG!|Izh)q;Ora9aN=tzQp%UpH|_AZcUruX#hr7My*mcgEj z^SugPT>^GZJc-4{p@;A6?R(|z584IAk|1|d*`mRgV7I~YuY8uB3=HyDVB`M;+i`?< zQ`Bd*yoHGZLKy}{wwE>hpCv)NeEhDa@0+yD#OK_M8Ivmt_J>qDDkRxg@BY)5 zC*Sn4x3TWYu60D(K@E+Z2@(>hef6p)s{*~R2-%a4S>og-5-LTTCgpmvp0~xFXNMwQz6QhD!Zht zI5*&YJ-XBK>QJ>6N{d2qJ1bW^J19_Gt^$1T0A2k6Zyj5gL0nn3XDxc*b}es5M!xY{ zwKr#$w&(8+c-#%|_^{e;DseCJt|G0X3tHX!MPZwbhla+$kkx ze)nf_{;kXH?eTrc#>S^i>yoWr2ghnP1CA-N3IzWoOOk$lm>3!CTKcUzXmI|C$%XR2 z5Nn%!!xo#VtXJi~oLuK2_~Q|L{=%PMTEDft%2HpuIh3))v4liw#kaOj@5&Ift}a)8 zb7WXaS5-|JrU$)#omkV={pAdLX#Z^cBqsKJ;luq0g2>ZRdBbxuuOO6_q7O7y)7=Gl ztSRg4>_`K|H%}o^l{W01u#0cxr31f&M6kfem(HfO=&S;v~#F)|ivif?QskZ{0#n4`-y|$V7fi zJT$CHOs&oM$?_a?X3UKp>|8bB4%?R0=p**1{SJx`mH4-Rn4$buZ^EZ4k$c1KoBNct z3cl&dvC2sq=k5Gmow034l$)CV9nt8PLXI;_>ynrp4GDn(-x42b2<+aDwl(E|xTsl0 zWK7ppRxWnoAKFJ;iHb~qz-u|3W&#S$S?-%BojYY5eO0IrwPyOuKOyK3lj10}f z$M&061qHdGFGQ(Mc6r&&mUecM$`a$+w2DlXGV>%+G&5DU?F^|IXsZvR3KAcgDBPFr zTZ}6qne&k^rEc8)720TlTK(lmlVmw}^O%d;+R9R^jQG3mCrOFi$YW7Y0)y;(qop

XxZ=^7AfxBu`Jkw`@73;baAkPw_Aej>ebx(O< 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 literal 0 HcmV?d00001 diff --git a/doc/en/scripts/simple_ReducedModelingTest1.py b/doc/en/scripts/simple_ReducedModelingTest1.py new file mode 100644 index 0000000..a8f9bda --- /dev/null +++ b/doc/en/scripts/simple_ReducedModelingTest1.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# +import numpy +from adao import adaoBuilder +numpy.random.seed(123456789) +# +dimension = 100 +nbsnapshots = 15 +Ensemble = numpy.empty((dimension,2*nbsnapshots)) +for i in range(nbsnapshots): + Ensemble[:,i] = numpy.sin((i+1)*numpy.arange(dimension)) +Ensemble[:,nbsnapshots:2*nbsnapshots] = Ensemble[:,:nbsnapshots] +# +case = adaoBuilder.New() +case.setAlgorithmParameters( + Algorithm = 'ReducedModelingTest', + Parameters = { + "EnsembleOfSnapshots":Ensemble, + "StoreSupplementaryCalculations":["Residus","SingularValues"], + "PlotAndSave":True, + "ResultFile":"simple_ReducedModelingTest1.png", + } + ) +case.execute() diff --git a/doc/en/scripts/simple_ReducedModelingTest1.res b/doc/en/scripts/simple_ReducedModelingTest1.res new file mode 100644 index 0000000..119f6a7 --- /dev/null +++ b/doc/en/scripts/simple_ReducedModelingTest1.res @@ -0,0 +1,86 @@ + + REDUCEDMODELINGTEST + =================== + + This test allows to analyze the characteristics of the collection of + states from a reduction point of view. Using an SVD, it measures how + the information decreases with the number of singular values, either + as values or, with a statistical point of view, as remaining variance. + +===> Information before launching: + ----------------------------- + + Characteristics of input data: + State dimension................: 100 + Number of snapshots to test....: 30 + +===> Summary of the 5 first singular values: + --------------------------------------- + + Singular values σ: + σ[1] = 1.03513e+01 + σ[2] = 1.03509e+01 + σ[3] = 1.03258e+01 + σ[4] = 1.02436e+01 + σ[5] = 1.02386e+01 + + Singular values σ divided by the first one σ[1]: + σ[1] / σ[1] = 1.00000e+00 + σ[2] / σ[1] = 9.99962e-01 + σ[3] / σ[1] = 9.97533e-01 + σ[4] / σ[1] = 9.89589e-01 + σ[5] / σ[1] = 9.89104e-01 + +===> Ordered singular values and remaining variance: + ----------------------------------------------- + + ------------------------------------------------------------------------- + i | Singular value σ | σ[i]/σ[1] | Variance: part, remaining + ------------------------------------------------------------------------- + 00 | 1.03513e+01 | 1.00000e+00 | 7% , 92.8% + 01 | 1.03509e+01 | 9.99962e-01 | 7% , 85.6% + 02 | 1.03258e+01 | 9.97533e-01 | 7% , 78.5% + 03 | 1.02436e+01 | 9.89589e-01 | 7% , 71.5% + 04 | 1.02386e+01 | 9.89104e-01 | 7% , 64.4% + 05 | 1.01050e+01 | 9.76200e-01 | 6% , 57.6% + 06 | 9.99948e+00 | 9.66009e-01 | 6% , 50.9% + 07 | 9.99643e+00 | 9.65714e-01 | 6% , 44.2% + 08 | 9.98375e+00 | 9.64489e-01 | 6% , 37.5% + 09 | 9.90828e+00 | 9.57198e-01 | 6% , 31.0% + 10 | 9.90691e+00 | 9.57066e-01 | 6% , 24.4% + 11 | 9.64803e+00 | 9.32056e-01 | 6% , 18.1% + 12 | 9.62587e+00 | 9.29916e-01 | 6% , 11.9% + 13 | 9.62344e+00 | 9.29681e-01 | 6% , 5.7% + 14 | 9.25446e+00 | 8.94035e-01 | 5% , 0.0% + 15 | 2.41400e-15 | 2.33206e-16 | 0% , 0.0% + 16 | 1.94612e-15 | 1.88006e-16 | 0% , 0.0% + 17 | 1.61527e-15 | 1.56044e-16 | 0% , 0.0% + 18 | 1.54864e-15 | 1.49608e-16 | 0% , 0.0% + 19 | 1.35243e-15 | 1.30653e-16 | 0% , 0.0% + 20 | 1.11119e-15 | 1.07347e-16 | 0% , 0.0% + 21 | 1.05852e-15 | 1.02260e-16 | 0% , 0.0% + 22 | 9.68764e-16 | 9.35883e-17 | 0% , 0.0% + 23 | 8.82878e-16 | 8.52912e-17 | 0% , 0.0% + 24 | 6.53296e-16 | 6.31122e-17 | 0% , 0.0% + 25 | 5.21872e-16 | 5.04159e-17 | 0% , 0.0% + 26 | 4.98146e-16 | 4.81238e-17 | 0% , 0.0% + 27 | 3.74898e-16 | 3.62173e-17 | 0% , 0.0% + 28 | 2.79953e-16 | 2.70452e-17 | 0% , 0.0% + 29 | 1.99083e-16 | 1.92326e-17 | 0% , 0.0% + ------------------------------------------------------------------------- + +===> Summary of variance cut-off: + ---------------------------- + Representing more than 90% of variance requires at least 14 mode(s). + Representing more than 99% of variance requires at least 15 mode(s). + Representing more than 99.9% of variance requires at least 15 mode(s). + Representing more than 99.99% of variance requires at least 15 mode(s). + + Plot and save results in a file named "simple_ReducedModelingTest1.png" + + --------------------------------------------------------------------------- + + End of the "REDUCEDMODELINGTEST" verification + + --------------------------------------------------------------------------- + diff --git a/doc/en/scripts/simple_ReducedModelingTest1.rst b/doc/en/scripts/simple_ReducedModelingTest1.rst new file mode 100644 index 0000000..0f4ebfb --- /dev/null +++ b/doc/en/scripts/simple_ReducedModelingTest1.rst @@ -0,0 +1,13 @@ +.. index:: single: ReducedModelingTest (exemple) + +First example +............. + +This example describes the reducibility characteristics of the set of states +(“*snapshots*”) under study. The set considered is first composed of 15 sine +calculations on a sequence of integers (so the space generated by the snapshots +is linearly non-decomposable) and these 15 snapshots are then duplicated once +to obtain a reduced space of size exactly 15 (since the last 15 are identical +to the first 15). All the variance is thus explained by the first 15 modes, +numbered from 0 to 14, and the following singular values are close to numerical +zero. diff --git a/doc/en/snippets/MeasurementLocations.rst b/doc/en/snippets/MeasurementLocations.rst new file mode 100644 index 0000000..0fb520f --- /dev/null +++ b/doc/en/snippets/MeasurementLocations.rst @@ -0,0 +1,13 @@ +.. index:: single: MeasurementLocations + +MeasurementLocations + *Integer series*. This series contains the indices of the positions at which + a measurement is required to support a reduced basis interpolation, according + to the order of the variables of a state vector arbitrarily considered in + one-dimensional form, and in the same order as the information contained in + the vectors of the reduced basis. + + This is similar to the set of optimal positions or points resulting from a + :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask`, or the set + of positions required to run a + :ref:`section_ref_algorithm_InterpolationByReducedModelTask`. diff --git a/doc/en/snippets/ModuleValidation.rst b/doc/en/snippets/ModuleValidation.rst index be79221..4ef9258 100644 --- a/doc/en/snippets/ModuleValidation.rst +++ b/doc/en/snippets/ModuleValidation.rst @@ -13,7 +13,7 @@ purposes only, knowing that, in case of doubt, the SALOME version sheet EFICAS, |release| SALOME, |release| Python, 3.9.2 - Numpy, 1.19.5 + Numpy, 1.20.3 Scipy, 1.6.0 MatplotLib, 3.3.4 Gnuplot, 1.8 diff --git a/doc/en/snippets/NoConditionalOutput.rst b/doc/en/snippets/NoConditionalOutput.rst new file mode 100644 index 0000000..6bd824c --- /dev/null +++ b/doc/en/snippets/NoConditionalOutput.rst @@ -0,0 +1 @@ + *None* diff --git a/doc/fr/examples.rst b/doc/fr/examples.rst index f12f2af..076f5f3 100644 --- a/doc/fr/examples.rst +++ b/doc/fr/examples.rst @@ -60,6 +60,7 @@ Utilisations d'algorithmes de vérification #. :ref:`Exemples de vérification avec "FunctionTest"` #. :ref:`Exemples de vérification avec "ObservationSimulationComparisonTest"` #. :ref:`Exemples de vérification avec "ParallelFunctionTest"` +#. :ref:`Exemples de vérification avec "ReducedModelingTest"` Utilisations d'algorithmes orientés tâches ou études dédiées ------------------------------------------------------------ diff --git a/doc/fr/ref_algorithm_InterpolationByReducedModelTest.rst b/doc/fr/ref_algorithm_InterpolationByReducedModelTest.rst new file mode 100644 index 0000000..1b4831e --- /dev/null +++ b/doc/fr/ref_algorithm_InterpolationByReducedModelTest.rst @@ -0,0 +1,89 @@ +.. + Copyright (C) 2008-2024 EDF R&D + + This file is part of SALOME ADAO module. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com + + Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +.. index:: single: InterpolationByReducedModelTest +.. _section_ref_algorithm_InterpolationByReducedModelTest: + +Algorithme de vérification "*InterpolationByReducedModelTest*" +-------------------------------------------------------------- + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo01.rst + +Cet algorithme permet d'analyser de manière simple la qualité de +l'interpolation empirique des états obtenue par une base réduite, en utilisant +des mesures en des points précis. + +Les résultats affichés par défaut sont des statistiques simples liées aux +erreurs normalisées de l'interpolation avec une base réduite. Le test utilise +une base réduite et un ensemble de positions de mesures optimales, et utilise +des pseudo-mesures provenant de chaque état complet ("*snapshot*") inclus dans +l'ensemble de test donné. + +Attention : pour être cohérent, ce test doit utiliser la même norme +mathématique que celle utilisée pour construire la base réduite. La norme étant +choisie par l'utilisateur lors de la définition du test, il faut vérifier la +norme de construction de la base réduite. + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo12.rst + +.. include:: snippets/FeaturePropDerivativeFree.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo02.rst + +.. include:: snippets/EnsembleOfSnapshots.rst + +.. include:: snippets/MeasurementLocations.rst + +.. include:: snippets/ReducedBasis.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo03Chck.rst + +.. include:: snippets/ErrorNorm.rst + +.. include:: snippets/NumberOfPrintedDigits.rst + +.. include:: snippets/ShowElementarySummary.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo04.rst + +.. include:: snippets/NoUnconditionalOutput.rst + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo05.rst + +.. include:: snippets/NoConditionalOutput.rst + +.. ------------------------------------ .. +.. _section_ref_algorithm_InterpolationByReducedModelTest_examples: + +.. ------------------------------------ .. +.. include:: snippets/Header2Algo06.rst + +- :ref:`section_ref_algorithm_InterpolationByReducedModelTask` +- :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask` +- :ref:`section_ref_algorithm_ReducedModelingTest` diff --git a/doc/fr/ref_algorithm_ReducedModelingTest.rst b/doc/fr/ref_algorithm_ReducedModelingTest.rst index de02d18..431e5b1 100644 --- a/doc/fr/ref_algorithm_ReducedModelingTest.rst +++ b/doc/fr/ref_algorithm_ReducedModelingTest.rst @@ -128,6 +128,26 @@ StoreSupplementaryCalculations .. ------------------------------------ .. .. _section_ref_algorithm_ReducedModelingTest_examples: +.. include:: snippets/Header2Algo09.rst + +.. --------- .. +.. include:: scripts/simple_ReducedModelingTest1.rst + +.. literalinclude:: scripts/simple_ReducedModelingTest1.py + +.. include:: snippets/Header2Algo10.rst + +.. literalinclude:: scripts/simple_ReducedModelingTest1.res + :language: none + +.. include:: snippets/Header2Algo11.rst + +.. _simple_ReducedModelingTest1: +.. image:: scripts/simple_ReducedModelingTest1.png + :align: center + :width: 90% + +.. ------------------------------------ .. .. include:: snippets/Header2Algo06.rst - :ref:`section_ref_algorithm_FunctionTest` diff --git a/doc/fr/reference.rst b/doc/fr/reference.rst index a703cfb..4564014 100644 --- a/doc/fr/reference.rst +++ b/doc/fr/reference.rst @@ -144,6 +144,7 @@ section générale donnant :ref:`section_theory`. ref_algorithm_FunctionTest ref_algorithm_GradientTest ref_algorithm_InputValuesTest + ref_algorithm_InterpolationByReducedModelTest ref_algorithm_LinearityTest ref_algorithm_LocalSensitivityTest ref_algorithm_ObservationSimulationComparisonTest diff --git a/doc/fr/scripts/simple_ReducedModelingTest1.png b/doc/fr/scripts/simple_ReducedModelingTest1.png new file mode 100644 index 0000000000000000000000000000000000000000..03662e74d1e04d3a2e0aaae17b8bd7ca59832ac2 GIT binary patch literal 93132 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

-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

XxZ=^7AfxBu`Jkw`@73;baAkPw_Aej>ebx(O< z7fzl#4PkzSOT)(=h?`cMTA!Bcv9|p2V@rwN+Nz_6XP;z~m*=O!mPR6dtphOsy`+je z%qlEQ?STjgLwG?b$H>ycwuD~ zZg7yg^xT~3*45Peb#88|*pm_Zqt1acT50KfSJySJf@1~Um)+h)TK{~AYWLSUftZD& zK)b7=(m$&ncge^o)6PX+$R|V@yoO7}vZnOVM-1C0V~UCj<0-q;7_EYqPL63B;(a$Q zZAnWf*5){{bWFN_qmq){yY#&*>(jJb_7CcZFx-V{`%~+VMd$lp=|0Qt}7Bbxi!IP)C%>OuC8PGkBLM6QQI=lJ{j}6xrf~LG!Rw};Y{m4E<`JHp5P?DaSGDr zuc`*YfKRfpXqQFbYyjz;ei(bIMtGVg+&8rb6ik}El@-t5cPe{(9tk=6q>J{25;%ip za%n^*2RGT#`Ib<>*}ldjY7jL+8ZG@$WIX5&KKo@Q4@CdA8NqLEq0PT5-JBlL23#$7 zA`1;mHdoj7ly6}00}r;kuW+>=?+HdW0OHK$nPb|_IX(axe67KoZ*gZsdb#VBSYs0g z)mDHum3|$wtTH2nwQrMS<@sIhy0bM?m8b-1uk^gJ#ULr&dg`x%DT)1QR6U0W3oYoA zl~~ievj7O$4lhp(g#}#)y1!@?_4cSK1F>4X!I^Zn-q3ODUZVczUyZ_?i6t0!{-KU> z22@P4%2-c9X9mo~WZ5^&M$B5XBgJlJ8 z5p{%QOmJd6EmZMKoqQ*fomDnbB=g5be&2j5rfQYh7Vm!9^B*JSWC4cnsJ_N!fNq*< zrKuv{sErS-p#iKuNS74e!p%>TQLNy>&9&dt)l!r*e$qPoMS+Hf%fnOd6iGkQi3R_8 zc7;+`OP;bqGEN$tiJ3Ea%n87w0%BX&HGI}fgYC0j-G(|Tza*QEXuo(~5be0EB;Q6i zIWZ5>c)e9mX!gR8qw!Q{tE^@0O$+VoOB+m)j=AY^!<}&=SwR@DAPA9@0a#Yb-g)S|BODbK70tkBjB-7Ha!0CG ziz&RxZssnkXEX|^b!)FC-&q!E!3#AeHB0$)W^YX}Jh-`$eZ4skAAtG62-fYLX`Q*& z5}~Js7+FG3S2eJ}pyYQuV=zv;6h)C*a(rcZ5EJtZLK9i`5_gr_&@hKaShI@CVS4AI z)zoWoQwCx8qnwVS(uI+%cGt8@o>uAbm-V|KN{@-X<=1{F0v6)$vfM$k(};kZ5FBBN zo%=2BSlBsDlT#}8Ep^mPjBvDOl->lCm4%O2Kj z#rinP5S%7=30n@}&4i4tk&xHUzv%JAfqGB7fB(Tf7ncL2&#YKo^0IAoz4flJ2$5^- z;63lR#Ue;}q`(2}R{QbLMjc4^S|1jU_k`9hoT;*1V(+7E`d>Qmv>!Ly>N(&P8`wAz z(b5vvMtyBEk?;Cb!C(#YE2G)rL2H9H_wYoC6O*z*191kQ6-&rNRoE?c#;MI{)5(?kTNLjU^d)MX6E1tqEw4sUSF`Yd zofnx{|5fPi<0rAANxNY|6PE~h>v_R*2MhZtyI`_$r9K_I7`40Ky-~MiClS`v%)iX_ z#O6hsgyd8^Z_`f>Uy4|aS1}dF0Hee|$m_pn1a zQ|;H^o-JV1-nbQI6X4suR#90KaQx>fsxzlg%CS~v>4PsF+wQ-X31i9&>SuEtWr`3v z<~a`zK6Bnid)2`Xi`w7SrR{*2+Brr5!hmJ#QYrWxfyOKGQ%|Y$r40;cxf9Nq@k*aM zj1;|~z_yc0Q-*1!)oSyv171efY}OgxH!=va99#QehK_7oaaS_)rqL(Vr4yPU69 ztybNajS&h>l3>BO(`%R*fbKG9&ai zTWY0UvfNURfQt)s8HZH(L~?4feC@3~yo`kfA0Odh?@LW$rbmfliTw{NDww)@FdAb6yJy ztWigJU-P1!zj(3Tvc84C=1hypE|l2%jlBxrSxsSP5q03*ODr@aANZ_iMumZgpINDZ!KVOuO+{pYyE2* z)u?z4o;4BAzV~-7j()GL1t=G3N^R8$KLX1`FR>nXby{wN{Y=JX^&LRs!hF^h#Us-{pqEYt`cHG#yqpK)vyX)RCWa-+FE2(CT9{Aa(( z?V|iJpK}VlGB+&|)+}G7sL9S@FhJ&HbprIv49hU%RkQi;0x2 zRurqD;AeYzx-}Z@Bi6(kRxALhDWtA4cI=tDfT&x`!77;Dh)TLo!T)+7egFFO?ayyx zL%~6D+&}$M?rP|&{xhVryQl&Uh==cq`Znr%NgV|ts1%Z3o^X z{Lg3GM*|gFsKo#)M*C{O&?uI>yN?}AYK2Gdu!Q_M=e5Bt(iGpDGc{_qAaUGz*pnch zEv+fTNUN&!(990&-#e(FwA5A@u3g`j1xicZgCBT z$F9(YNBz}$7K{Y3;>b(pT%jIzk(6ZP0-H3@DGvq5anPSHk94fzG=IzO<&lqtp`)4Y zRu(z7sBxdyqICcwu{FNt?9nL5;5jSA3?ShJ<3Fv_6eMQLek zYA_x=T|aJkrnBXmuPhNtS4`RpH*A0CkZ|g>wQy#)K7!SJ^EY)>Pcmm%$cfkm9B{#7 zRWPH~$I55v%-)!ljVx5j)-@KQ0;}`$6qOt3#&}9Qn6e|IYEDVkh3plnus>jpC^33~ z%V%a!!-eT}g+Dyf_w~ARV4<+6I6_Hsh4umNJv_Xw9<@g(B)Dt8pYHzK6a#MC_`R&x z6kcPc^SRgU$!X?O3*W0mAf3aioSBMTs4+f#==rR0ZTcwE6Ul$-eT9{_WnsAIu)2pA zO8k4__nNa3uC6C0bRx+nG|G1yBQHLjQT-f0g7@Ec5x6T1S z?wb$!ek&bdxPaqzLDCgw!pJlOH-%W&)v);Kga=aVJVDI^t!+SVHA|L!qVB#<xem_DH|V~A$E3pG?e#xB?o^$b+Z&mcxB|d< z)zsI3yu;U!23Ho7Ymy2LB88+&L_!P=;~4%iV^c^;L)}zuk&NiN%0O$-ODtt&=&k4d z`#uu}{IJqFClXM-(?!0cN(+)DW2OvDPsHl(eoSCwE`S0=XF*OZ+rv|4&D}MG^6nQu zG^mtJY(|{=-1jHTTzWI;CyY7V4jaz9muGkpxh5FNRlV?Et=w<3>Al&c%_S@bZiq-SHEH5&EI3KUeSzEG*73tgp|q5*HLu!=#Vu6#i6Q%f7sI z@k}vV{qCjz++^kbW0h5>y(ZHbuO3#@t@F#h6v9r=E6&LsRH)md|MLj5x-4G`&aL%q zrVf9Rgdknw#uD}VPWRAgvC(P@UhZSEbt`en_-RG{--ryq37Es7=Q%w#`NxuEHULX$ zB7BPfB7StUAqLiNeFNC$mxj(L@C=A%phj5F^L0NREwc-kX@PIw{QFF^TR6^~3}|n4 z8sm$mr9t77%j1||r&(WGT6Yb{8_bIoM3#fpnnMhRC88f9&RYH3X51+FXl!2FG)50n zShuWMnccG1*k7ecX$B%%OzLYPGo|==-X|nfx2JUX1`+M?DQ4D@3F44Hby!X zda|~4#luvK5E)vAec)->9Y^Wc?Rnj zloq)j)aNx&up7(=1YYobJp4}d5Zljm%r9Rp_sk8d`b)?qAj8Yo>$-QZ()-#3_xjy0 z?9XErLPGe_4sWYBgSWn+f+**8m#D3ekA71~JeKZw=oyJY)zhpI6sq}W!LLXMv&aDy zYT4^Yysrt+D9SWdbZ|!~t^a-E{K;P!zd+W*ICX4rFQb%h+ZAS+0;;v-D>c z)0!UBRp=?|PQ%y9soBM#uoYWP>GQam7I)*t%`=olW3!BIvCYG1i1Wy(2Ghqs@Y2-nTq}6ne9xG z`ZMHgU5-}`CR(Z6agZDG?j1H*V{gA2F(7%jYo!vs0^jE>XsA^Ykkb_5|$4~CKojOl4+Rcd& zAQ~m~Jw#3}j)RjpsOOzQUYsPF%)|Tg_(BO2ysp z5>l7jO>U&__i$c1cZZMMYJgLMW$Wn8=~YG+_@x+D7Pz~My9u3}nqA?!l+Xy*aAe-C6V?*2R;rb$j?C+n-;TG!grBJs^}d zXbQ-Qggo=umOvZT-j^a13yHC^nMZ$p7D!20!Kf`RD#CT@lthURcZYX zn>xbl0++?bO}uc&&{e1&kDDNPc#mkL#35)wNv;BojZ4M zSH1M=qs}{N5LAeBkawDO2edSSL*N}Da}2l<-(JtZ!4GYI_9wVQk(j8Z)^2|-h4D{1 zl#<#jXB6V00X5gIbNu!z)oGa>KCc5yXm~k>fiSyVdPK_m(5K6N@7dCq3hg^TqEO8> z&|!xW8knv3snwe(tcYLL}XLEVY)HEf)aDTWW&7<*I z0FdOXO2~TEB)*Ms&}Oa+D6{@;MZl=q271yu@9``aYL10k>l~dvYrYaq5X@#1EhU}3 zy0Sezg_U8w519FaFu<7SfUc2MT3)F|MLpm)t(A`1U5l0v$m6%ZxvAaCDDP1f%}2}1 z4lSvtg5a85X&3&FLNRl7g?9h`{ihrpW!t#A+YJqNN(So|eXb4LMg<>qO=D^gjxPSp zdQ^Eq0Jkunk`N`Ghdr>lX-uiJI8Cb>pk6DU>lyvs_YP{KRd{c*4!LujV}d|0vy`Va zxOEM}v$hzhy$N?+sf5YC89-lvnzC^xTAOV~t!auhhIW|x z$KNuK5da8H;QAHQuR+)~uPOmS|9lCb*i`ZD6NOxBaoEAFCgjVQIrFPpUTjTDSbm9{n_D+Hy8?D+W4TCBT^ z+D$@++13osGsb5;HWA8OUepER5!zpSvxLgSCOuKK<&Yd3mZToOcHF5wBw_WeP1TuBAZFyv{rJ0hne4sPl_S?Wty*e-y+ zX$qd0X#bPFn;t6jA)a7&(WAoXwctg2E~((!o}7Mk_g8}kbQc4}%@=XWm!*4ib%_kf z%P!~B%%MqkJ!1xWKnxuZR3q?(-HEVpDKo*NX_|q?!4ibjD81bG9^Nk@qRg0@%$n3j zBApj7o@?F$o8&Z?ze_)7W-IlFinqe)FoG5TtW;+>+kxHWZ`v@d%BWRR5gZwt3#ud8 zU89amvdulN%~BE6|MKPjcENdM13z$;5j7DZEoD!A7DIxO7BFfY*udyVq5rLYR2)IVvN z5W)OpdPHAuANvX1CnY7kwfW)yV;BH7y1MeD%**CZZ%2v>!;h!4RE1=7cX9*olT3rQCLsY7$_;*Gy{btE=_=yj@8lLa(9Kv z+nSQGp?FsBy^!O-UG3l97FKALdo2i}VleSd=IP{6a|~dZfz6p}zea1*u}nP+0;TcU z7IkNhXj3mRh_+xW|B=$M8cvr~?ExD6b3FI)J^+e|LelD;UZ^D>MU8U-y!c5&KGm8` z+DotA_vMdhluxtlHW@FWaP-!zruC80tJjky&P?p=)7^WVa#vNN>Gu|IFwfO*@b*mm zKA^}R1*+es*U*XwNvZ+TK#H1~z0F`t{X0;dulP=Fjh72yX2vkCYbJBmk_~vn(t-`F z*51A6!~ZfD_Q@dhk{yD)y9@gAp!aUJG?5~Zo-Duh?YD=mPM{IYs6Ee=8_XdPhi&Mp zkAs$djZ0C_PX~U2HAFjT=d+atn%31j8IHYNpCs6IwMAHd5=%;-kT3Md{!K$&_gcTX}xJZII3-g+Gzs8*ds0Iva-$R@FOqXGv z?|+%Yfo9fN{F;=M0$R)<403hB{G6e6H4&a@@J(+)N|H_J zUm0bQ($$`puYq4D%|OkzzD+dAewp}}`^%Aom3eh(>9}B8 zza*B8)_zDTmDH~URf@L>()XtIbcZIG+*AgG($C*Jk{VOjOAvp#Bl`Swo>=-_DuH7` z*&U3z-;9rPuzuOY`$z<`QWGV(p>=L7o$Mo!l=&$V;zi zc+HyLOj^|}uI*Sk1>weJVsHkNHSWW4OQ0KOMH116D{J>a62HB1$+BEisJ(XX>Zt^^ zazW13Rqvxu|0pp)S>Mn6GwY(}aANVi`Bn^T&)cW*3|a(#8BO5$;bvW_nA(L5%zIfl zG1;SA@>Q;0h4U*pT6rU=9CY0@6ROLDW$D!?`}9~*f1FF{g~cWAiM~74^t66!^CBI` zL+mU>bEtRZ?ly&(FW|GkgxZYaGBa}YHN1-?qPT1kX&l~SP`7W>243d<`|0041Eoc^ zo2Y*!J?T@w>I>8@SNFd@KsESw1|W3%AzqZpB4j=bhVcCB4G%7_%QVm1y1Bnkl^5+} z+j311NN>pQ3Xl%~fK-LzE&@M%aC}%H#PdR8LjRGtIENz>Xd(k?Z_1<$TE0A}f**b8 zd?0Dp86jT%dAuEb9Buo`_N@Hqqk-ioRN-2VJi&WS297B*pO{p*Gw7_2$sf_N^sl}j z1cRD31S1Y-HhTdgwyqdP1l-VtSV%FhJezN`=l{joSB6#Ht$mUrQUVf6hoDGzBZwlc zNJ_UzceCm4ZVV9Vl1}OF+H`|-=LTkNJm-DRyfbrMGxN#q2iW{$t##kOy8Ft9Uy1eZ zXhZw}0M~>F-n1wwF^*~wcf!jxf4aj5TcM3!gLHqDApf0hen8cCBUjP;F-v}MUaP!A z*ZLA@an_-_On=6BQycoIonhTSV9u1#8idtvo0GW81>T!ueLFkTU!{pAEBXM;n~8S^ z8840IiU^SH{g9Q^yrD_w`i#ft96d&rrj)g})F49TLsd4u-#bXi8S&tosSm>pyCaQz z%A3dp?WP1s>u~+oOFyn3+eJ5YYa)^5mbY^=t)r6%^WLwY?R{yc>SRAO z49ZPgHpc*~0}Va6V4M%Q6d{8L+n ztbs??-0WKWaC^CH5Ni4pcd2KKhGnrJWs0pvLa0t?wgCHmx2QM@>^KJMf*l!eM7OQ& zZfK|ohe2TS8t?`>@B`F!$DTBuH>$VsR(MDFA}5E|{qi|z{HRZ^D7x8dM)HoCHv9x< zW~=rN?_ruLrFAsI0$4mmI%9wL-N)Il0I!aOsA#cWPBr)Cx7U#|$SwZAr!8BUD&fGH z;8?99k|S0X+E$Hmz?zQqVZZ^+rM zasX!4ON`43n&+4v_FMpWYA%MFK4-;Tn;nV*LfFULu1plL()rDYS*aK2P2Q-$IJxE^ ziU?Xz!P`23C%;Agez)FTtc zKUN_J+)LM`5n?D?^5x=9=%z*ra!}IiO23O~=Zi~jSf%4D44OxIRn@;kSei$3=(~T& z`qb`v!`!x(@S+|x&ywXTvK8HtD&pNQvn)mTRCz)VFm80;ZQ@<7AoO6nL(^qvzB*9s^TT#F;StZ?9tDc z9+Nh{AHOyT3T0N0Q3c^Y;kYM!d0+76x@)s+KxdHB_J<>G)Cfarm(UAo3Sw||HoqC% zF7X-Cch8O?_pw}5vh+10%|-H3Cvn_Le+_}^=8##%-$*#U?v?!{Ma5ndaV3NtTe&0fNj zdsuJ?Jhi(Ey~fA}Ad}TP7bbsNL!W?H9JGrI-_W|K$gM(w_2o=vZLLjrWairK)Cfq4 zB9P;QwlT3>j|fPW5P=dCP&I+~kK2Ln7)W~^$Yu3`M4Ra|3LB`hf#y`?O0@0iFEe!0 z@s}CG#l|?>^EjZ2iGDixBMi=qjJ&%;-ji&O4(Kj@&a96PzEX0;2>BFJf03sU6bqI= zb*DqytDY$NVr4QKQ+YdP(6fetUM&M$0YZ}#Ast0#-IEPr=O$P0xwmDPbQJEXIivbs zy0B;3Kbj>`&U&BOjwxkrzty}sW+Z(na+^3`?|SNM*}zs?9};+H?|QDz?dWJGEQ~-5 zg%YE#SKe616sQLmW*2Gp3?&VGIBC3X%a%25db36Wd3bx+qjW^PH_pzV&FPa6V5}ACM>D zF@F*jL%;0W_4KtNT%fkL+_y+izu0&_jlu7smOC2L8Wign`SAS4bz^>hroY?!>#N1< zvw|>b@l;RX{T6R+dt_jwXE_rX7$hI-vqO=V%qlZAw$DH|=|ukloKu z8TBeS`U77?+nB4Z*KQTgnqF>tToarmT)*u8X4xg+uJz3|({Wg%%PbNsai ziT&a{^y<@(2-Ng4lcV$_gI%E=8~%_9PlW*eF`ouT3bF+2)v% z@xe_TGZqY4Zxkt9Z|kri`BUP8kvB9-!zFM1adesJn49SA}(|* zI2ZOL?#3$({=l*4Tq&Ser;BQRq^GHXEj^tY0*I#)V7vydCJkkoHkcXohIl}(f*RQy zKLg_Z?J^L77F0TI;kRzo><3$mijR}dHtA90xnYOZpO{wX0l>(~tS?zq22%?WkrQUW zj7lN@ufC=`54*L!U2M4>Wc0LA@$hPHT|if!K7HjOOs=a$+AY-F{FcR#=VXS)n$%+n z{Ybh}_n}J*7Ex>}GT?ST7%xr$epR|ZT?h~v^)8?a4&BLw&ZK$a*%7U-tq0ULHje2k zsz!)ldEr{!Uay_r)?-=ctX0{u6deitNReQEoIVE#;N?O{JG1o37o^}o&qQLgpr9&O zSDy~QYt#Q|{VhB^5J14;LttxfdRuFv2*02dw}>fE@!mGVZ#SePFG5=&G+j%t#7 zw6wha+i+Q+n4p;V@7emvObftIJNf#l;Xl%O^vG)aWJ2=BK-d`_eN_FBOpD9Z=6E&X zAUK%%JlT{nWJeJIM2$y2+GG{xp4QzCUxh{r86zSyqpKJ10ZP-f(5qL*w&HBAesS8e zZ$(pFqbY}@`URX5A~O6(r9$kJ-r&H5n4oE-rqN+Euy(GZjepbGLYjVV@V?ry#h_NZq(Ye$u&MK>^arrBY3Iy&zc7=B6WltUNr^b5_d6n5 zSQ=jfUfJ&Xr^LoUj6nrc_(eV#9_b1SdOp?9=MigY^Vn4{0cZ zLeV;l;^R}mkmLTp2v^LiyF)@+Kw8EU&!a~=E30vkm&OY~vU%f+iBuONGJ{}=gH31n z@nMuAH*emwDumWnBWd4M^)!}i6-!OVji8SVa|QAQ(7Q^3|M1Su9-I5_UjKxgD6 z*=ieDJ{o`y$R;XP@HuE(;k_xol^V-8Ehn$zI1!(|H?S8)prFLzG8$-alqSk+v0VUc ztf|U@ewWXzYWWdy?eYjK=BI~?@)MUzsSa3zIaOj}y$9-~A0zEGV9-c> z1P?3rc{w~UnOEr6Li1p6d~B1ozuOScj+H2TZ?2eOXUkXb%<6+4Gf`Xyh1+#`wcKR~ z1=vew?C?P&kBkF<+_6avN^*bYJ4?SpQ%Mi;@V|a(`Z@z%z7T4Lejw8DM)FZn*W-P-x6FRltZxAb2M+6{U#9Sw)&T^+O;@yWCD@f`B&(-n<-Nxs1FVZtd&VZx(s`p ziMPM+Svz;gSX!4l{ZcE6htzM(5@GU8D0 zZE2RXv&;~h-rl{rxiXTj1<}8Yi^cXY3=Cen)bO>#?To2n;}zzk7fZH)FaAi@tybO3 zxGNEEj7zqroZ zLEba8ZWIj!na+}uE7@6m8mU1*0s&b#yaziQ5#h5DOhH19HxuqnKer=-(ocmk4HjgW8(X4UIJIM6gE}w%wwu57EUHiD8!LI|zDO?RkJOr=6or54 z0q9sUbit3pVX)5Sq2>HcxCK`3N3!&)FBY>pt5Q`<4{Vp#nNrNFD7Jfd*#>Kp;OiEo zqKZz)?84iLtZ`S{0_?A&;E|%ik!qnQ43CM{hibU;wagu?=PPjzBd&(C6Mj2}d`;tb z2vj8fSO4V!1fFDKIn|2Z*pV?RFU4x0eb)xSqce^|%MA1|s%7^skGUpGq3tD3B!G4H zMjfmy0$=?$=dN_LW>A~1)VCZ&NJ$|9pE9hq_uhncKhG_*1^W8E5mdB9QugRsJPoy=ocOnC@t9=ud}1O_}qs?v)ce+ z|4RPM>|*%@CBp+cInEv}w;?mh3<09LIz}vcaVfpBq=F4J?0-QumI z1Ek7pTmtZ`F7;J7jR2A@I9$XAVC;P>$L%F@phH$LOAz0~XXWX0HYaf!P8O~|WNsw)lWl{rO1IzT zXm7faH`X+o*V?FZ-oj)3b^t>80wbQuCtV1Dd!*}`c)0ZMc(LohAb^c1H~!=iI1TPu z55RB+o^bs<*%jE{oeh}EaF_D1VYeRWr(7D6$j2V=0(X*PerRa(p?H6flFIK0k>)0^ z$XFBz3^7fh1@t#xyx?z26u@ckgo;a#*l%GmANTs&XgEhxN4wViflTk=%^-yDu=n=o z)hbfnD@I^8aOtSgRSuxEnd5ilo{-v`7}yrAHO8^~g9K!6wGMEx$IFAHnG~)vW!9J|w*$@flz zZB2(!fGGGyp{Hz0@4<$UYqI|E)kzu9I}E`K1M2>+xi5&&>B?oLGCH7Ai)J;(=4O$P zUWWv$^Z{C8{fh$q2J($10SU#PECECS{*k+vZ9Th&Sbs2rbU^RYQT@V1LQt*xVl-!I zAXJyhlwQHI;!QMYUwN7+iNg|3s(sF|7#EU-mU5QJ~9dM z5D4XOxDg|LbgecM`Hb$Y`L*q*Ep^{i`i!|ALd zEC7kSf6RAa_iyL(S~*kBhqerr_`MY%#4dv^rUM2+wc=@b5wO0aRhApW*EaxSYsQMi z0PO|x1Cy%l1Sm{2>ZKo`d+jv_kXU%4Vo_9*UyaP39E1xz4_jWklt8GkW_sE=XenQ;X#41Fc=g;dU$=>?*GAp z{;-yATin6Q@OS`{XTEJmN%W%Be`%_z64yxntEg!a;+^~xZToYDY2zvMae|bY4PEs` zc-rh0CsQp~Uc7nOcUPa>(2EV8@jXdept*}m`}TOQfe--=k0VIF?}xe%aG;m`PgZ8m z9Kufykb%ypfRfFhLHZnUQ37NLDS98^wmJ3?6$Uy-$3(84?bDl9d?RQGOES|RP;)rc zmLCLFrG795`7pR3A*ODxL19lFq#-iv(XO|HQX$b7a~HOtQqhscANraF)|biH@uh>- zXn*nYdSjL1vmX*k>$$Saz|JUR+s2tj}cI^Mc>okPbVNy`$>R{i@@{O zwxB|pP0u!4kDqi;x9z$5$Fm5(1y+)?`DHm#udoOa{}zb{=ld~kNL**SezpxKFH=1s z5B)M)FC>;ac?Skm|1F&;0@4Xh=dHvPNY_PFS=nR%_rrB2asB4DJWF8lUXC$s2wO+z< zvo?6ZIM-P29@OD}5I~k`v}$c$`y@2A%qt7WVY$Ox!Wl9vOgKAH(0T>W&jyKOk6uL7 zxH6M_DM?iYC@Ma#ZRR_*R}U3*M5v<<$M@)aGXtcQHuAX7UqBk%gnp};Y-1F@85puu zBMS!_q{pjSq%;nv&p^8K%djW?94Qy$Mty*oMeuYyGE#(GnuO3WhyV-6jjIga(e4IF zeIVmW!2(h7S>>-DPZZ(C5Lp-a%G$YBh z&(EJfF+B1W9EM8|H#pt-w#aKSA$v!zriHg{3pKj;B!jqZmb~}RPi+X@VkE9F4N3Dg zI1S(9wDLD-D+iDX1olg>W^}m^Y!Uy1T~Km!$J3RuOf3$i0LPns<7H`YL`p)WPNAzs z*`iV{H#po4J;E_o+4s(2NXQ~AM~nXF&bSHDuj_Mf#Qn~T*Hu3zrEf)VMCx_SkYs3a z=BW3*qX2>owfZgMzVE$;6E=qrR2zA`Ixcyb9Ryog6N?up$Qw(adpO`6Vqn@F^(8eu z=oltS{XyY7Yti8`tg{mP$X3V+QY#UJUavYZe+AP{nG@3O`)pfqoJc%bIq+s)E1gjb zGvV{=h6k%+n_jBVsF57Do8sf&ycA_VPrs$j{MW_VlxzV$JXl}9sMl#-vzxk9VM-T?pK6k3&sIos$ z-ihELrR<&0`$Sy}fL*mp0k3)e=)^J?77)6DemE3RnV8J!Rc`v#+1B=Il5JxQBc8E@ zn;AF3>QH9);9$Is3gEL*24*vzUbVYM#+AEf<}<#dhCRVMF}#-Kwaj~c74Zd=t|zSQ z9@i(S{ZSd|{d0K%C6=vNnU<4Qzu71}^r+P!*Rp+J=0cS^5N4z?`! z+5dch<;xFD6I<$whCB()Qk$cs^Ao!8f9%tfMXComP{139pz8Az#gzkb(a!9q&DKnq z?}hUL%)X$9(CkDJHCBf5i>PJn9bv%{@^E0@+K#6NXM6*GH#_sVRC zk>J{$ywlr*e3{&N9zp~VG5#odxmF-|j$Rv}UjuEX`Y~4eSRQim*`_XWHDBAV`q2)b z(;MFp5GcDKO>@^&i4U^l?CV)S4C}Kqk-fwb<-*MIY0Jg`0wzyK74>$jj^Lmg+%)%H zckJ6%d9$0^={uZg4x9Uj2X)W3<~8SNy?atpJ^lbQLObM&a|JNM=?A)6rg>WH8xT_vQu z>xzO?n;dCcgi2}Cj54fJMD=G`{yv3if0z=$6^%oCIGVSk)_~jp)a3-!S~wYmeFJ|= z(t3q>t6J4&XOWPs97_!&G>ixx+5TrF5#*qWXDXn}Nqw6d;zhuI{l-S{+2oWbX!iR5 z_jWn4Fcod8FOHT7pi8bOH<2EdX2F}xmLKwvNWY+fs#oG&FQOR>8QmN#PrA8T9UW4i zb>g0e5sS{EVp!o|GoLK;D*@N1q-Krp=aKB?i#@AffTG0~;!gJzcE4YJBeL$kU8#>xhUWOWd)lV~t@c6`)d)cN!B7kf% z=p5*v>9yuFjwogwjv#w6##ZXMx7e8}xv+MRnob|hfZS9a$I3VU3a)e4>< zfW~2Y?T@6E0<~mDKg(3*t~V-?T_J{24!&KVi?a(r2Z=btUv;PdgDHC8Zthk+f5-J? zw{9f0?$C!tXa4>9=8OASOh+SK&NY)KFPTfhkdQkS-TDDv-al{0zg2X_jI}OABvK}^ zE^b+t)7+!iM!L{8Bp?%TP9opa10295s1el2yaPW}pC|{0`kEH`g<{%LS2Jra0M&ql zIS@$Xpva}SU2nYKS^}{vC7u#*S*vPe9HmU1wZy(pON?UyBBI0C6$YH43|QS zd7{Fu@Br*#ZqG}-YSDzCT74)^USdvSw~5ktYXMN6xaOR)DuBRLJxoa;n(IrBYH%oc z1>>umknSC0dzrS%|Kt(65sN?_p$wRb5m6PGAJlm@IEv^ zd(T;JbjPvG0Y{suF;;+KI+1LeRivh07$p|Q`6Ubt8k8tMiqYWU#`uB^XOh%PSyeD!?Z3|#kF<4SR zaY4>B%X(Zt=K^hpBJW?`K8Muxi0M>YgtW0gE$6CFY}4)Zxte-qsqy|p_M7vTyA%eZ zGaLwX;KtXkMzA(@^S3Yphy`oynGFMh3~L1c8B>o){ii;=Wl<}lYs|~&%Z(}`qw?1+~>VEK4&!Q%&{T60! z?Mn|oQYzJ2p^kXCK=z!g%?-(%w(go6eXl|KrZI*wi&^~* z41+}#?*5Y;v`njw$|f?WqA&XLlaY!kWqQrR0F(>>LtLt(rqNxMDtk&sNss1_6OhF5 zn>9a7w$&sD?$&C}X_d{88yut>)vkHO!&3Ck26#fcCeQQyqVC`p*bv!;_4NBf7ke&& zB?Ywxrf?6IYZ(_g@_C^zl8fSU9rF}~%$ySvEXSQRaLR^3f!gN5osUfJ=~jlUFKk_; zty>6G0Rj$}>Ep`qt2h7bx4(0(=?v?U#dI^|0-C%EOPV*1MO$_uBO$ybI58D%yTNXp7$?nkFWu&c#!M|Dx4;Wz)~!O21G}uXm)_{rdIJ3_IeDT}&^W)`(5_ zfvJQok4Ete9+5KAc0J2=<+S`m8t!@<9%ZHWEZW;?ww12rfc0rl9>_pK zXddP8ULFJ2zfKbZuibrzUCs$9?O*q&Dk}jTLl1D~2DWgDfPBXN(+Ylgeoeya?w8ZHnTn<%FgX$mIFq`#36AEQXfguq2gy^rBOEvXfbrAy{H;W4Wk#Dk(vHFOBFh$sUv$t3QbkJmGww3SRJ3 zH1G;nlFKcYCW#yX$$8z$5xD~U5rS&X#eI%=voc=(sNfg8#PN)56B208o_VtA>%g3j zY67K$19`1A?=(2E(EwwUht&F+GUxo3k2r4LwO-OaGgFK^am8l}mC0Nxn+DnKx-(Vy zhQQb*%OmPgVQ(Fz`sPkjWNW0l~=Jbs4U3@*%((+) z`&Xb(r>nj>XSRWpj2S!!x;3TT#OV~CR~_N|6WZhLPZccwLbsg5JZ3rrN$Kb<*jVUio!MH%IOKF2a>aBDH7{$EF7MPSkO7 z0odSSpKPT}2VjdatE|1_s2eHjwd0g4kw|_=J?8 zh9=ZB9W$`E+dHM%F=@BKi+YcD%xZ02yTHpO@$m-;B=0#)HdAKM?`bHncp zQv66owXlfj?0jeYWQ;Gjr60@4P|KeYqK$QD7DYcF> z7vBoFuc-CNw6)KdFsjzm@eM(^K$>GRdhOdRpe+Pd7c1tS_1Ie13%O`z<7gm;h{Cc0 zo8VF8!POpV+5xGk51KkzIx@H!3d{h;j#JTT55+gMY&3U($V&ssV^qiwR?&gJv5!7r zZ4f?y?28KKDd`(Wq(3q+D0W?-Je}vo%iu1^u{qO(6L+gMpfIyH<91rX{i!yxy_OyW zhAW~0S8(OLSSF!jWcSKw(2|%~eh46VTK%AcLP4PZP}*yZ$Y)aj{j3SFi*=tTD)@f^ ztz*dB>e?HZpUPPNm~143kXtf-d-j-<_OOC*xy;bikSdN3qb#iAYv}k9bTmvLW6HD1pbg@u6KFy)%BJXcDtB)Dqy|7 zh4MKMKbCz2rhF#T3@kUrEg*kMIi4bn>>p%k)2FpgGgtkW#&25T5WI#*29)|ax zrO_9BBu(Q^`_59Y$nBMY3$~RE&C;-dEAFM1X@P}59^V9BW!LD!$YTsZZB|&|Vt;;N zyfHB_)8FrZ3qu2h1X!%hlm9GM#dkS9Dhty&G!_jFM0Tkw5h7owMss{4+ygy(m}$VV zai8MqVbq80Xjm7FJ-EUQZkPgY%uqHtdd!HYAC@kcFP4Q4em-v6tAliG$|UOtfnjZR+p{pn#3nE4c$ zWTK`@y?(cYDT<*cB>{grwcZl`)4B9gCpPPmANURvpFqWlkl~Q<(02Wk4GtN@l=0qJ z%OuCAcO}vmGeNfrz_4a;b0csg#nUoggrCb+ZCQtk6>@_7sD8Xv{4R>uJEHh#n`)f z|8+l*gMfnA_y4BNzIupYPv~Ynew2BAPUE3jyJS?Ep^^%&BV)1{`t}B93$i?Z*DAe0 zD80E1nQ4)@|3vV-E*w$<9@C9g;~O|uWCxp%Aby!aq!O*I!&+tk=uC6GX>-3@^RG1z z9tZQhv%8IlC&c>~=i!lH0d|K1k2V@t^TLm)$arkXHBy43KT87wy+&cFOb)psGf+59 zDturIC;j>*Hlz9sTUbEHD z=Pw4zXMQtR9*)|o^>$K(CL!8KXOZtp9e4QmY&9_dI#r&@U*Qi!-Jba&wR}-Kq1;qF zDC5txvEN@11sR@Q{+C$$j*gZ5q_|O11#{`MPOEFtdu#3C_pspjf_SUwM-Sm0#~nsx zVK9S(E<wUoAp7QNFy#D4M$aM>Lk#2aQqydDk+YR4D zu#_1))>f5j&^}03$zZsA-Cz~@?3Y}Iz`wP0yh?SaJ<2g{gGoAv$K|F6CL?Q{ zXVEe6z~O+#ZR4piCgPb(@rf{DS(;CzkDFHfQk<)_X)wOyN0pUK>&^-ORKiGi?PpBk z#=<6LO)$1CS(H?G52vN0q<&BerKKh&e%nd)LF<~Tf#(+p=Bdz|jrO&MyJBXn^&ObZ zCa=hgJpES|jo*6}Qqc0Q1MPc0u10 z3oW&+J=vs|dj&7)6uSOK%BT-i$!`SW`i2v~m&1*dlam2iLG|*d>9b&1aNXuO&GC;Y zr!kwti%xi&=;$}5*AwR4Bu6~tI%EA#Q=^!O3lYeYq;maBn-!o$VMwNWrPKC+nDagm zc*v%F`9Obus{U!L8_?%B_WvZkFf*EueZ~%d>;t+~xPuxKbiXk|$Y}5NPfgDq|LFbA zE^W9Nv<}!=d%xD}dxbxOc>m;x8k`qo)+VduDS;YQ;bgkA{I*@?v$a&*gf;d)EDZpL z0~%bEzk(XC?<{pMH-4s|QwWTgz%JJLE@4MfgFQV!Z(Yidf?M6WIl&WiEb60k?ebRE z4-pweE$NIt1MPD{_MNWChOgEUAGUQ2f~66pHrnc8#(!Ha>p3M@x@^^AI;Mh*$w+CSl{tq?h< zth>xr<2J!-ZEf0yF8nbuaaziqnd#MzTw1zokyUBWr%ZW)LBR&RjU8X6%?x0t0_b4m z?-7SCVA%k0#SibdD)|LuydA_sHsj8t0r5)K z&z0IkfAK)uvy~%6B;-3oQadQK zvW_!un@SBI>J{d8W;#eB}pM0F|nZyS?!IxiRui+$82(~A*v1UL`y|L*3_VA~wR z<7@Okb%1yPWNWeRcaJKOO1m6cyF}X?7ZCdKL!Ae%9ytrRzUn*J(5z`v(H0#@2e<_D z@+eBZDDoZDVJ!-`O0BFBzThb>>pI`z!Jy_B0+w>^YMOLm7FcfvTEqx1dn8EzhFMc4 z3A5bv=B6DGoy@@FV^8(x*;iBWWgUU<7`PKZ-S)CS5jr5db=C(nj}^#v&%m4iEBR0; zE&I9?B){;@RBY_Mn&Ea_ejTQs$^K~=#p42Xs)DOBf+E1n~Y+%FNekXigYc6wZ zK{ES9vHscm_0~&v3d_K+)|t!OibX{;EvaL!NzUfd;2>L%TNQx2iWwnQ^fwMT@#aCm zyNh%1+k6M=%9sY+1|b$Fc@LM?+ki;Gh&QYv|(|GdtkK*L|FeVYP>3FZgM!(||NIhkinxT%1Y7}w1=9;nY2r4~TUQBoG zwI6xS{N%35ivQWTjkf82D@1&+T;w|Tvd4qhTI~Wq%wzWLelZYx{AmI$5s)BMkV-vQ zZdkQ?paiR9?&hQSs1JhYn@@cSes$s1Dzo&V?2m&&^=wNTwtX`kEJcvbMLm??wg#!s zhXcQtK_>h=f!+uJ9z!3cG&5;#YQ!eKX5awW%QBYJS`xltnQ_bD*T{4WO$~*vwA3#h zZE8dTpivJw2n}w|d-F)P!s2)KYg-TuD5uff0x(2%GCejpgmEct%I5KVzLnOiq3w6341x=1es|>f zdkrpAt~v7E-nt3`VXa-kgH<{st?6JmZ0Krwh6|qduRQfZ)^97Q>1AbQUH$#cQ*yFg z9o5-}>ru%{Zr@N!KXe z)9Lr^{8n{9M5KNEfYyJ~>jnI4W&jgtygj@;ht4`*-9l^k_J4GrMJ(@S(#$fY<(KlX z8`8Y`QT0+$(TcKrq9Bmh3K6@>ugb#$5lt?&^C7`Q6cojG6)&ORQ9srg_wPjv4i2&l z$R)dJO^oI74e;@;%N-s6a!fC$^;%!IM51Ko^nCCB#M*X(-_WJN{kfXpNsEgx=};6x zV+@4BcBxpU#VUVDW#gtHtg6wHX8p7WqhhdJl(RvYQ0vP6#gT;la)NA7=#3s$+1?-J zB`z>+xYZXOKRE8p*@Ue@cj&3$tKM{X)6KZ^ z*GcoKg)R$xNVa8Ar|pA`JZ{^a^Njut=YN;5bM}-XC-17$wfob-)UuXsN`{Y%^slKZ z4lmsFZZ45$PKPqiRU_!9Q5}#&Q1b~f8ifaa$XOWmPKAi9w8E^`*(&>0WmUhheDMFp z?9g8j^k;@&pFm`8I*dhm&*&uFV2*e^zIVngS%@zK(s4$^*;F)nBxfc%U+c&M=5pyT zkE47B19&S~G^Cyi31sxg06iv6{eATPgzpv-Ly$+a!$7%j90SuP=0OlRp)P|?>6?aKA2$~L`$FdIztlZpT%B?5qqTm4hb<5@_08sRCx6O1Q>KVO?|H|9OA!ic zZ`dadu16tl&4GpX&iaeWYXt&LYse;{7dA{@9>SPrnsrK7BXPAs4-T>|IXV_59qg&q z8g^JAJ5p=cS?HXhSk_5TwZ!}7!k!cxpdasSP4;(rQN3DNP3Q}g7JR!XZXJMQ3Pk`% zDE_0&AJMSY1lk5pKkwK_2&Lmi^aFi#Rww5XGTgf&!nRisv=K=ufw|e*CW~SxX*_FP zL;~`O9ih#rG?ga&`GVz7%H##hH0K-f;cdcgQc^vOVSeftm;KEBrQ-*-bDDP2`pwMG-1(S#CB(H$m~i=f@n2oIQQX{ zwB45iwLiL_|CMTGXI7#$GVdTLkaA}|qieo0Vsk*q*db7kJmZTtY!i=>m(GCXaxPf! z3fav)(aQPACSv($n!naeoiSc7rYVk=ZnS+b;+R3%Lp#HNW+GcRsr}i~4h*I<#rac{ zB;BR^JqUFwcI5$DM3j5UBpHf&^o4$RR@=;G(p15u{TKIe&lY^lELlw5;yLmUPe8phH+_-5LYpBh85%qdp@a(Jvk3i2hsaICKE~O0##6}f-w3;@5_YOfD z0^%}T&gNhJA{2?Vwbp|}VAKS3SM&CYFLVuGG*+n|;#5z_oPvv*$j3u@*_-TKR(Xx@f{tQFP*V zHd-8#sezr)&3Ouss~soHl>&7#$;-XQ6p{o*u{*^Yo9w3|E!yk(Tiumaz6Xqiho?I< z*4@&+r(32LR`hUTugwGVsit6pLD-}sK>&_GO)cc6y4qUu>0iqsX9h}5$r2|Qmab6h|b!X&)N4*E7XLCN%EPkVkM@!LClnk3rDt|Flg3Tt50h^VU zh~PMii*tNznbc2W;`HlW=$Gx+Ima&6xRy+F?X`{O^jt3}JTJCz_F;9hbU?=$=huc5 zAp~sJ-nS)6B#=vV=BlO=t(vz%Ztf99Lw6=Z0R%KfHv1$-HYh{Zzgk!k71Z;X-)atKt2q+?&A85f@hKdO79W{Y%r z2t#G<{7ide68Gk^XQrw(jKINGUIwLwl?SdQ<%z3z#*l!d%Fe2l{X7~|0ihv}QM0yl zRU@Ol-`Bg zt^O(n*wGXslcm~&MLI=PYZi5*KnCdfQV4DR<&(!RRH934o=O%qNG-)a7oW4!&*|43 zuLFI5L*J6qNy4p@exm-iR~wS+hf*htIXY(kqTDVZ_cbKMM{a~6@yw!Vd!RcA%-ARB z`=1eMA>>WCJz~hVTawxJ(_{g94+dOUWx@)&FmwtxRM)-wqRE?4K3iU16LzHxH}5YM z=8^#Ca=6~(-W<3=Y}_0}d`s;1^o^E9$$ER^nQ+BDtiZaPdk)wX;qq^vc`^03ENy+r zO{6KT!=vFzcx74N_myWJrK#u*R&Ka!bfBn@)W4qEcOstEHIqEv+drrV>(kY1JFDQ? z4gOFjAm5&!+}>wM6{7J0LAGTrk<{BzXOvY#eR=t8N^MgICGMLh`aRKQCnx9J@7p^$ z#SoIZBW#p=X;5cH9KnRA)Xh-y0-bfaPeb2Ym;a5VeB1QAo{Y=`)4~-(LXRq-W|L+W zcp3P^^#WA0waCSlzSjZS1C&eMzZI)5KO^J{Up{**4WYjn83=UO;RKqwbo=hATn$$& zrNa7qp6(GM;o1dDui^%j3423%LeHL>L?T`1_v6?#4U=UOrpg=g$=doDe*(t(7E$0$F(|!RzDl z2Nl(B@>09x5Ddm-^MIX?0Kh5c$0#W4#jcJKn>zapKcrNQCSJ1Zx?k}}2<&f*+i+WC zo_4e)@V}6}S!_9f^E#?b$gBSQoA+m1YN~Ga-_4-{T86lqPsB&Eyd0mdJ`GB_Mg~(# zSp_hkQws@1^v8G@UQBBFqHK&DcJHodEdC&&x}Ma~DgXRCzv#=53IFy_a;IWw8QI7! zvUTNk#3UL8;{ofxO4^*C{KbxYTA&2NBH^xDxknGAHEFPwN6(%$@pN;|ABF`}FAsj@ z5FSXc-Tgtygk`EjIYuYPXm67a*?5SS0ZH#&ebFgmlR5dBL6#?k>@*@ufH;tdXTz8p8qd-4S^EcgIebRe}6ne zLS+Z~id0n{UOGg9SN6hJzqa)dPs7|}>#nZ?8;-Eu^!54~;)CJ)&5Zq(^IrRDTlYYb zrXR>OKB@tbN4IvK@_q+})t{_lBdpBKmyI6#H&<3ISVj``1afy0nSi4LJVasPm5jlU z>5%jL4IrHu1=ZmCg1%hjBGL1QtZc}ljC0>ib61kH@4ZL2g4C^RJyE?&9QT6*WBov$ zb>%#uWjh?S$Y-2rWD?)yJH|QH;NMA+4_FBy5Ts-tdVMH+!eOXk&waCz_ROD6l^@Hc zjv^Akt+fBP*1c zkmuFRWC^?`n-O~2C$Ohg_ao%0fM|5NYj47umnMPvglzUjytzc=`=3;@+kZ!#(%AVD>Q5Q4h21Qs&9aaAxeEKnaPOtG-BpqKN&_S_fs z`6=v-r%R+Q<017RVD4PxFebW~%j|7I<$Uu%D|+r(IC)r9Tw8_5b@4qE&y20An|4S( z>+{m3IyzB`Vd3;tBmqlUP27ZsJ>%1NWm1#_nEVkh28v8o@~i}Sk4ceWZucvk$9jlxd925j-j&gTj2B@1{~B2P0UQH|8=Wk8vk!l;G9p^ zYy<^`uTFTJ_q!)tN3wsp3%`*u9OwtQ>+EVznv-mNa%_A{D<8>)`xX_p@rqt5Ysmbm zWJ2Pjq(G-UmlI&=2acu=nLRZ%t805<@#B1THM%EpW&aK$72=3#CDNw0pA&oltj{}^ zHM;I?X!dyE!XiLff2B}bmF@US@0Iz_Fe&jFQ3G1oF+P|!?{!a!6kSYMo`lo5S-Tp8 z$z(hNzyd?WP2zSO_5JnrpKLP2y@s8ZoBI7f+2Lc=t*=_!$RPP}%rR3elSxDTq$>t} zchc)RLg>xATHq1YBmqYjAIP%x)pkgNQt`v@;%8j1O?C!qiyl3%>~wFQ`7X3PGEZn3 z0PT1y@_#xZ-9ey=Ro>qv4vPM$uJt{^6Z<{%9RVdBBAk?W%gOOe54=Q>!(k&q9!vb% z2!mv@;J{8vtlHm{pwaaW5DVo%bnp2xf{2E0gi4ypgWuSiv0feilWxCF%3|O?a!W3?nVXlftnWV z0rFboGusb=yi+yiN4Vi6JU_kwa895T1cDf1zTxeSmDJY~6p(zl12yUaE|*)?k+oHJ z_-MuvjoQ}uqIMo3qHJ;^kt#a4`o>LIvQYpfwT*JFvft|vok>;zRRiV3?KMt?Wq@%8 zYTg8*88XPEjeeF>=BK)f*Q9N_+ zMBk^Sg9`+P6PfhdAc|Y4yp54X$@Mh7rk)r`CC^@8MrLWmJlSe-Kl7T!&VXRMp7MSi z4>?Vam!jk*DnGf|$FOuiJ=hHF-N z9R7$Q?fk_YuXXGFPuv_TyGx59Go~|Mfo~;u8%O|}3`Cc`GUwNh8#9jqsO*o`7cSSY zIux`N9ewu}#QNN8glR14JFaul5JR9&k=bbJ9c@gxi>BqnU*%}ejx9QUu1St|lIx8C ziD~nOxfavos*g>WOlM13BDw)2xL9|o4c_?-3EDe*^i4AwR?KEUJ3KRPHN`uQ%@}WAUYYxBEP1V`sfL(ovF@ zf-#|q7DMNyn@Ez9>JR5sqaG-&UT*Qhc3p`tE{p8&lp~p z#lx!vaBt1Rp6Fsdu!CwJl~2e7=kpc;dD@Qhz(tkx^(PPKFZ8#&l3$e#So?AVl8BQ6 zJFAb5d>rTfTuv5BI!F!o8gXhJekW-2M>|<_-1U<=?}WeVg6`4Sf%xt&;*SO1&wL}k z@CWA+uC*;;$oJJc3r%9-nW0%Q(WPnu2}ndF9G$Fb{%&WACzAMm@ZH(YTX^RTrEu$A z2!aU3kLz@+Zhgz$kCoovKEmUQ1t4KCDmp4LgFhO`GueF1kIz3+T^2SRB&=f$2(7{C#xDSxuA;bg=odFb4oc0WhfO-eQE?*pSnYmp}gX`LGhF1Z} z@cmiUh^eSau5ul++UR3q6aY?Vs&C&H6SNnSO-ZLgqv6gIN{)q!y4Frdn$acnyz5{M zbjok5;r9Jp;gd(8tw0LNpm<+7Csu$XOnKt6a+;D zK}6|LDFdXt1Qb*d6qW8S>25&@DJf}?Fpvi6?knz~EV$4ohg1T;^T+-UC`qbPW~pCV8*M0= zH1&0SmB1h2T4=a{$Z^d~dkfk#xKH0c7thB$^Ygv{zcZ(aSQoR|xQhg4pF>EP47{n| z`6KH-=Qmw2oT`!g1k>>Qt5q9g$YGnqhC}C(sJkEmg|360=6}k`n2Rv$6>aKeAE)FJ ze;h8~H>%vw|0%K;Y1RJXxRg)Tzgnj&{nx`nRLy?rk4Y`9p{&U30RZwVxQ&WNLrN%xqqZ zReyotj?a^hq|+ND#9N#LKkHH-v%4K^6&NL1Gpt$ghGn4cB{b3evvUbIOJ7L?NH?n5 z&@bL!mz;r?|3Y_HmG??HmEX?OXm{6O4!4p|R-d=s-gw_O<55`>|MVpcvJ#HJB6?8U zmnv!)lr}U3<+ITbLN@l6V`)5rx98$`8QrGl-xHF1Y4z2#Sk#-T_I^J} zs`b&zVZ7IvdZYdyOp_Pda|E!m@aP_t@;XNFXvJ2lho@n#(9Zm8m_{>&69 zu%5>w6hDZZt+F^G1Y6896xJzWr@!a+2f036wJI7`7CQxnt@xbCH5Gnnb^k zcem^E1}jJ)|IU!^>L^j}h^K9N2}2~GEZ!L9lVP(rfc4sa_a*1&Q@QQ$$;6miW2|Kl zk<8S3d!0tn$|L;p{ zlRc}S)M4|}l9wN2z<1J!Z{O8#9#TJ(93 z1N+y7ViVruDtN|p_0btclsMAW(Fk4@I>H9S(8N5q%9L>55{!dm23c1R6_E|3IedQw zqLxOeVlW%nry~(FQ7dUJU8nCTc}!zye6NSWnxmf96u6nQNu1j?DJ!vwcG(;;vf2>& z6tOa#b7SL<*}6tzaC=mdrzhyj(^Vu&$$0qGKCE?L_KK1IHzPH58A4~*l&2)T=EGCr zR0%RGW%wNd=Y93IdwDTp4YEw?x^RmaC1lI z<>e_P_mn)tJvjK}DPiV(I!zC}N7T_V>gPlPUH(9}+26e$UqFV6ndi;ILTw(rRY{al zQ)G)atID^!zcWOqt)?po8~InZ#s}#O+$kQNTknV23BH{k({yQ)Y8WoQrPLG1Jih+B8)J$)HMq`vx z{rgLs2eaCHarO_}pZ3L$!8{YyqE4jZGMzyA_~erDL;@17gJ7CUQocDwN|j42sgl9d z?z+IwDiu>@TFy(~yUd@noCWlqKH;ywl4!cqrJ->MS&Qq#S1jB-83FQk>rJRuCZeO6 zHviNvxOt+_H@^Q{dRirx5HWO8Iel|7d!$9W#15)ppF3@K6fqd_AH~svdT`TWytC=2 zqqvVx4u8JHA!YN`X$Xl9rotOipM5g?_4=mu^&W$1pUAPVA-HoZ^5r9PSckS zmbd3KRnj}-9(NbNrB2`u0FDH4HHN+#h^rB;l%XNDe44t^5m>fc#8_Fw{jTxPs!iFT zAHATJeT5Tc(}&+#F63*aaaWQj__&2J=~O`hB@*uH#V z5v-T*o&9vl?kCyPjyPh(8unsofrZA^-X059pUmLpxqYsK(StZF71UAFLa7VO$O!2$ z%lDCC2kYE?#n1jtl6Wlv5lnWtUtX0V%(eK3>jvx{#=!HmE*InY{8A)u@!S~9`LMsHGsvC!J?@-ka;>Dub>p(oOZJI0987QZ_AkQglk6s&PVPJ%LKo{7avuYn)WK%CJxbAj4^`hWDzvCpfO~`n}copH3 z!&iu;HgJe9_$w91{F>M+EpKe{RJ=N{=+ZPiD@=yIb{D?j+2EA79rLR4ZWSR~e2m)z zG>I9c>x<#1sBU`o!vz~f(ZBJ-d043Y(9R=2cj>}It4Ds{t3yJ=$yYWz10XRS%dR7lzfI{V+rr0E{@w_h1vJHr+5D=_WcEX5J0jl~ zkBdiXQso^ujVDLhDr{`hdbn>mU{zaq+)86}ubl(swZ_r8@3gub@eLzYu6#UZpS41D z3uzL#%jRfE@kv1jOtt9Z+Bkl)zyIan%*IcZjN)voe@{>1s#c$Nr`n#}xlo)__Zant zu~AW!=2EkJNk}p;^<3bnAPF7C9LuCVf5bW)i~fI;+(w7lT#6*5iye`-vI7&%%yb1I z>D?5Hc9;zus8Fe*kLB|%V&vjWHk9v1O>UiBWYxLkOQP0`ULTi%1oUtzkNC=$irC#% zH$nN+sQJ*{+YGfUf+ejSQ5m#zsD@d+?BmH5(e46Tku}+~QY;cBg$&{Fh)dbDcn>`` zMD@Fpa9+az!gpgrM zPh26jZ%6_|4tWnV1Hm{3^qZY3d>rxP9bhl+0vFG%XD z@&=fU=%a36Y3D1G_Z2;`WEpF(w8tBEyBW*@P_(zl?_G9aiK%C~4d2UKr@L<#j7?0G zn8W8s33rBa^e4399ySbLt;ez7AtknjL3Dwn;t8{)O~r5jafm({I%Q&k^9PTt;~3SNsAQhTy~nNu&3^7PqTN!r5pd9Km1+!sfj=(I8m+1ktUTv zK~ZnDiUGaG-8YZUV|ElSY0Nx+bWb7rL7wRi0!m!Z6KK|i;8z&KBD~$YH9sZ;=;g~wyX#I5%YXn-nn8YO)MfbEhDT&ZaUYT4f=`h0B6&Q&y2ifYmUoFZk zr0W}_{um6e;Jh_dMR<6oE9Gxvj=1NlMX&S-ND+q>kkS#!e6H={192WNom!aRBz9Jd z*^qqEyVNsnf4PDN`V^mCek2t~3Azye%$L^&0ui!swSkCuIQ6_Ti~h+DQ9w`4!zalT zSjg{B?U!Sy?jWI2I>Gt#bwb2{U$qW#tVk^XfOPKhZy0a)CX?k@JT>-8Yhz*+3iUHOk*xR| zraqKHiuTy&lkb|S1?0mmph`^KGqZyK>boFQXvK+xw9HZchu&%tH*}(2Wx3M-idiEg zb{S>-Ju$4_P>LuN*}omfvAA(u9E^9wV*|%H1=}NNx!=FUb5!a}4H0_JqP4tA`gxGT zqsGEuMW?3?{j8;cG?nk@M!j&c$lq>QDoZy) z;anx1lGc3pvM(jT-zn;W21x7kpSiU-NL?VHC6E_+WBw!t6&N6JdN3uvgEVY!X>*{* zWqxPo>h!d8A~%@&VBK1n+l)0-V=PEX}!Q=UrkqwdJRLbKfZ>g=$E!+8v9SVL(I zrIoRD^>kJg`CYEt*lecu86mYPw-?qc{$)(YJ+Z+{#3|yZsqC>w&w-ukv~6RAG+pnH zFg;A~EttJ9;nqJ^dhZcn^N8@yKuJir$f9^COrhA)^1fAV_xow544QB zXTILM6={~tcdGaJyp)3}91$_$6|K`@kC^*^2XFFnW1%(TG#@p(K7LdiDkj*RUUQHN zx$P3@Qjm^DrH2nqHq-b>^P5##S8 zh<533xAv^E!w3h0aVs2d3j&`Db*CqJX3=_A_9(bOF}f=xhv2_Q(sx{Ly*u$b(3vfY zd-tyYsjhnZ@&;07f^$O2VNge^SzgZb?o`y!j~=+^FOqo5Rg^iU=M;0^XR(lT;?jCj zGs$9QGRxZk{Fk^FCL8K1m1Y|jwk(8Kb@ zFzTk8ySjABnUf`7#BE?VUS(*~K57b&t6q$f}eUDbK)wzKz(QVUD}37X!u z#k9!ZoT}VG&bFJLuAG2Q!U%lhjUn~InUDUj6|u3|-OKfk4`Vn&l1xAcG*L*XdMMY@ z;r-WtqZPtzqAF~ed9-3bdanKb$7)0FYq`G_$)%)UXCW;;^DrLl%)hSo?4zCodVdWX z@u^q7DLs4hli#rU{vE5%8Khv!;9j1AjE&=(0+I?*7(7Bd21(QLUxnnuoPO!zZKoy1 zQnY5tdXXY$<_%~&ti}G9gu<%WsE+T9%DlM#Cm=4jdWMDVNsso><}~o@FJ3&1qRRQ+ z{^{0t5v`~dKkLmhRI9w;`|OwWEFL)~Ru5;J4NfV$qokP^vzd+?>p4UM2=>3v9~>&n zZE21EwLZDW4!Nbf!7#rKS`GyN5Hyf&txAg8Zba-!cmv`UE+hb;q2ku{! z>3`FLgI~ue$sZ!Ea+Ku$BKHHKAV|)5vid+V!=`;_tqLuQwJ)|myd@FXw8f_s(fB5T z`N3PMye{`P56&b@em3L2tyt%&){AX zCT{^wTPEp=GcVv3&96{iMK3CQw=ag;h@0L+YQ)A8g#z5II!)Aiu#Zju+=(z#!Ubww zUcZD2sY{p+QeSl#dhniR<#FuwD40M!STrP&CKY16v zRgUTQ1bc3{AJ6CpMv={vkV;i;R5PCS-r66tWz#vq%u>;4td{=L@?=a`<74sgNIyAR zx!XhWH*@GNT8ROI#k0Rro$kpeT@!OGa@6BS*v0bYjX`;`dOfYsLI%mX^oyZxchQA8Tg2SsX#w5m8>3+NnXx4S|*yTh0#S zHup!Mt)r)XriNA|16)!W%Dz}rj!jHmJAiu^*S zcZIN-nV}Kc3z?R*u^!mUk`kMJbb7fk-rd2XhK{ntH#66_!B3~laM3P>{wW=M?dqc3 zi;Ci%l)c55ob<2pDr47?G4)VilT{ZocIQ82U4f8w{zQAod}sITZ1m*)eBsT?g+G}6 zc-zZuNwH5Ce!iJon+y$$M-{MbH&b;lCCt|W;T&K7XL^K=FFf+IWW-OMgQHT#Pu~XG z^CV!>xmxL_1ZXfqCVMd3HcQ(9T>F?UyJ4rwN$!j4kKHp#F&Bv!K7bLi$#KhkzvPG7Q2y@UV7_|3Nq(0mk=?6V8u%a!*z)-mkCJTAP734QOO&zXfVEo% z3Jx$Ny_EtK9iNE@OL7Z^p)%){(K9h9s!I`JOJ6>)HaD4kCz$N%+cXsIP9*y12H!Iv z{jTjY5@{GaTm-Wh4h?(D_nnsSLaW}({Wj)2=R$guT$TQ@gNv7KaAT7~7`MK()jan=lN@Q^WvfMOH<7{W%14>yaEq<`0Y{#y_#bY`jx2D6QZp7RNmkT8qkJv{g#{yJGWATN-O z35EwqS{~EEVEJK6-hbL$Ml-krq*_|2Qm4rucc6f`MX^S7u=fSzF8Nqb~cKyw-Xh{U@?u1GDDZY60ovioQU6@d%2YHS!Av8~2)_5)} zgbN&vqlYQWhDtfXq@SVtOcg~2{T8oMonegko`&|5LvDNHcfnV^?NZqGj{|S=kx2zv z1<81BJ>KM*&DAr{+R=&Xd`)r=0qL?F=*dtK`i8B8YS$5TD?K&27c|k0 zO2?@_)&A;RC4l2jM^jeQnv0sZYfWxcA;Xz*s(!cNF$GGI3hv$Wv|?!1{-9A_Lut zL}Vv&G~R33GgiOsyRj*KG6tV}y1RO1*Mzcz%SW}>=Gd*etnfbcqDZ+{`x0xc#Ly&x z8-J%-q`joj^4>bxbN!C%%q3`Oh~d5B?bER}^H{By=K@j_)cLQ#&d5XJVFc5ED-zrr zPG4KBDH73Tp3fYRun@-{pg%_;^yN}d&!jn$SDRt-_MYmO*O_UYrOWd?WQ1xPA;-_N z9|C2skwvBa1FTsGLz#YIiEsZ?F<>V~XEyzJxAFb(aQuvu50tYEM~53|YQsl4KqZ+F zX*GsWLXyS+kkuioq0)KY?xj7VAbOYVO^e9WnLkRc%4OllbNV0yr%^o?Fl1+K2_5;K zXxguuvKJGVr4c|4Vkd`38&%vnl!pKA(HAO16tk>kub0^0rxqo^xxn9?9!jUxyz*6A z%6s6lgV4)m1a>MIx=BdpfB%|qcF>h0M1X@J>mQ3>)#SRtvf^R*m_(TAyzq{AXWp?5 zZ6B1Z{Ghqfh_6({DIf@aib^m{35L+m2D7^sr>%|{(dZ3`om~I<=6)Lf;Q>FXk-Y35 zmUY;l2F4pcL^@kLY0ZIbQzSR8tP4pepcxif&7}D0q(2PDc-Z3Yctb?;?CY}|Ky;94 zy_cr@;C)WHk{qTJ$8x1OZg7^rFlS+4Qea)XDpkR2A<~f*nS8TBd!o+H+tBX^q0?QM z=bD9cno?4yr`JXJ{ddRVh8WBM;VE`mudzYu8{sa#>J-&W5<$Y)YON^Gk&S^#VzPR3 zE+S-P!rkqea~LI$_PAgcdESJ3`RLQ8ZR|KKYEFTx9Kp+8*9YH?`QUXCHqqlI3?&@n zV4}WMM9c-Le`6W0-(K?*NJ#P-w}0z07_wp{2hUU?L*43~Ug9oj>K^XUGz>AxTG=_D z&5=a64fjmMa18TV-ZIf0KhpFR!DEtR zFl}TVrsS!gLB(Cbk4M;m1Mj_>np%uPSut z1?@AvP#U&h%G^&AVih;|>!V8?Q&jA`hGCn0H7XKpPIFwl40S4yf_sM(vb88LGOzrt zYndl77Cdcf?gcS6cA@uNQ2*+3GJLgQ2fq_46&?x8hSG*S*cj3xf-VW;=Kv~{3vfk` zTKoROr`}%J%6!?ddbK-d$gTKnw|2+L`qWU-Tuc_~nxO0Hffl?4b?*V;LYHk;uqMB^ z>8YD>e=`R!QuWwrzgw{}Y(4(sbY(EHvdR^kpHuIGNzJjYjXqLAAi~lc`fJtAx4NSK z>sW0*!30v#crE%r0RTB)H%Gu&Z%PQo1bW>*NIIFHxH;%$v?G{9E@b{F6w*u0J?FDo z%r4C>(V>prx|L#3tZBLgmPd5Cux4u~f3v;ltv_MD$8W~Dm5L@t~=MVZPp{Y62q|HLPw)9QFCw(R8@o|;4U}9N{ooGpU0El zFFC^K0oijaHDV{O+kw^WQJxs%C=#PL${ZZk_schom0hJ-yE9rv1ufinUr|4W@Www< ztOiOACw^rpJ0DrfTDmiz8w_OQw}x zO{)AQK(j1$ZnN8R)CpCxhBY>kCR*ZA0~77r)NKONIxs~;_1p6>Nf$kVA4t}K+3*>FC>stzQU`i? zxB$XV!m2&qyISs#BZ|yAul&528_PgAwNkThH6P!xxVhQ`2_xJo=#)GDb?S9@tFnaq z-L18mvSLYA%0^#K=!JQWPc$`qLue!}Mh>8|oypbb&`t(qyv^aK@&=}KA# zW|JQJ*%~rMM#(%vvSgZ|mfZI-v9eMdpT2x>dhdgpKryd~4tBNMrt7(rIHl}fC!3wM ztWnoUA(zr_%HeDs0?&2Xh4x~eClD1)M6wVx+`M%+5t6;b)^~hzPsbXF(CRNzwm$kl z8QI?PA=9$6bEXreR#4C$J&Cu}f5RnxhF?HSN(|Km2FJ_qfvE)i z*|)018wv)dOIV-Eo;c%IE8d@dU?$b#@{&=LnVH!Sa-^vJzBFm<;c`8`C4s~F-Q_uT zeM3}4vWx#&@fyROS~CxxdEB3P6W_O-H|P1R&Z-m#Ps|wk$c8T$maKCLadV8Uo+hkj|zlyBE-NZR{(4nPje>TFvRfP=+Lg&^$uFBDUks zP95ml(w+BaWHJshs%@RD?6*=Sa`alSG+2>pK*D^;@#oqYdVYBv3K@PEE8cLa`sEK2 z_FgB_g{7$e8kOzM55vz6{Oy0IKb4JPPfy@z0+4LueQ z?pfjy(WWbAtIm6-T>hLK^WO910@guGi(dYSKQxp^qzUrCTF=t^4Ck>G4eMJ6@-qKs ze~?~3n{jO}G;}~hK{Z6?FlARgRq|ucRXYayXeG~+P&SK|&baZre*y`=t>@>uRfyN8 z5X8M^J;iPu&ex+5artE{Bqo*|OvQJNjxKay`OT}VrB%?@10^`kzE`L&Ub({akFj|7 zKdP^f2e2!~yX$=LKw$fMnMT8F2O-j$*}J(-rcIP{9uas!VK5@XvIT2! z_31RG$n~)1@o0>jLC59LmdT-ZXP$bMa-M*|ZXwZA_oYF}-M5NvacAE>lzUh;Ruou; zKNVGkhAV0Fqvy$n@8(f8CE;inj^vG~lbq&gRDABs{8SJb7k3$?$9XQ|-#^s}biy0J z`8TH?CP{zH!buvoS=T3Dr4k~|tkF}>7vYP>nQhjCB3FT|1+&~(VvPVGEa`qfNIF+h zH&+(l+J1kky65zpsWKL9yyp4rpYhlFq0_=(m(0vqh2Fckh(6}9#bW=fK1WvC3R_$F zS@;wFgf>VTV;j@Z)fK1Pky^;ID7T!OER>ap=h<pqghx20Lzio_P^Sn1{7_G2t=;^+% zJ?6OL{MMK%t7T9)my)*jeMkJxRP>qlPSN)7Pl~t)CLiU&$pIjg7+`+RE%d%{;mswN zlvZtNGQY-O<`W0@_mi{#b}blPh`H8*B#9+ag3RM|Q>cbqJr~mZHDK>@)~4#lUsitV zGSnL@wQlld@OOME0<6=2S9DX8w1NE@ZRP5%5X1ScImZ>{?a5ni*-$Q^k{mBMq_f%qFMZH2bb zhHEF-b~Ft(8+qMmo2@8i8;e9B^NhD|-&pV62wJuW=@xeE@K`JyjQ{ht+j6uuSNH4w zn4<(yMXBC-hpJ`8Rm~Pi`zX9zw+?W}EyxdO<4>q-TXb)=YH=k6V#vijgh>ON<}*zP zej55Q&M%fsddwDdJVgQJ|xshBGR2l<6>(kHxJ_hOm^jS9ayr=?k{LTY-s#~oXuq!Md14QC;_<-GH%p@>Y*0LM zgE}KJx_wGo4QFp@Spcn0)U)`MT%vNm*{fQTI4G3JVLH7M4Pv z>v3SR$FgJF)aNl9)Zd_Kb z0zL8F5h(LG+#j`6DKrcoN%6nLLW)1>wsXbj!j*H>$)A;SH4|T^No{R55aE1^h>%oQ zr|uC!QBIqD{XlN`V-UJ5p62KO(a~i%pf?$Y>2@F3h6RT(`yNlP2dlM2N+B9Ip*fATkml2 z2zzt2#EfF$U!_B7S=5SUJwH{oralhz4-SU$W8SnPE-+572cDUkgR+8L2(8Fv{!;Yzx>eoz1jh+yFSzcvbU`fGHa?zbC()liT}9@KPkIO;s|s2Q{UWu2&TcSE zvx16U+iS-ED*618Si(c4|sn^_OuS+@g`g9bNBwievd>J7EqEC|_8d5&8KhQ)=yR zk-gUDL-d#}(WK{@2tL_^bRd4aZD4_0+Lj+ag{>xhdV0!j-0KB5#sLy$szs(v_j4;# zVWD4nKbSFuTBzYtYkJt%Tte45#K+6+GgOQ2!Ope%Jio9|;IyS%ZnvbXtFQa5!H=lW z6>Tw2ChV_6KIV=dcY_mxtoNU6wIPF=_47#^cJ^NwU{OUI*jwA$`d|?=pu49HmaM@b zT0;sN(x1r6&czxf-QwYiinl0lTkTCxNdNx5(0)Y`a>>QRLTG1MgZ}pFpi@Pn448(<0LW@T_>D(DT~Y*QajX zbc0EX)nF;7VqJHkGu90~?g(Z>P_3=Lq2Uq%L8ET|qUO}JoD$ye{(gJ5O)KQ*a4rzs z6ctSZH!O--mRcmXO_bOi*0ytct`<t` zSRdWT?fRel>X7@6TktgpQyIO^RvpM2F_(g}rC@k^Lt|gQ$|n9K)HgJw1PjNdtE)>O zCMK2!2BrBq-?;wj-=dDyysrdNyQetKzfAfQTHp>x;11#OxzS4nv6~L%ygk5Rs5m${ zq(G7*IN9TPjJ&wk=A553Yc=_Jl(8Ck-q)A`uc@GZ{gYBgFCHUiats0L91~5g0`N4y3 z6|#<>7OsVWJ;7x(C3~KlI6&ZL^a$?y;-{FH*0&|&$QFWih2@PpJ;4;Z9onEcFz5{< zIQ&dfcNv}Mqm*Jq-OERGo}4EaapBHZD`C2ItB!SIXLZ#aZcq-+@#fy1$gI8~fL!Ke zw{Yepr+SrQ>scu#*_hf<%bK;yp~%PMqWwg=78Pr}%R{;H;Fw_538?u$J&)%tqmD>O z=)A%=_Rz_Re|ma)4EkfgdGI?jf%(vD4w{|@EiUNx3*$oO(BqbFx8GN(aA4&!?9}e~ z%<6V_g5F&niJ+Gb;SWU)84PM@ywek`Lq3N>#nVWYT_Pd^-O&0~cHGtuD7M{ z(+f=iq0QlpGVn8L;A{L7K0{~Jmdo9{cUd&bBT-4NA>buG{Vg)l! z&M_uiq!Ds}im(H)2xXh~_?IqUPJNT9_<(gCYoi+TU~6j&_xyP{n@a59PNO|bWtQs& z;gGxRuR8yB5<5N6gO8LpHogNtW3bqp!ob8Nh$eFoN*41J1uNHJSeUQh7Osn00y`Wk zyzMWeqM&dMwi1ha>1I%leQJ35UHL@8C_($>Qb@=027h}Vf9>j3AWfei)SO|&P}O5& z>WCpmtmZ=)BD4HQ2jTrLBwwo(@R~YqnHD| zHm4hcKsOkqZ+4gZ6RrW^#^IabKPdHr=W+v6)(!5M_w8R88~Y?zvkJ_) zKAJf)JA6}x5iArtKMbU4e*BI}Qm-S;V?wLHo?dbR)r;?$ZJ z>Eg6jZpjg|^PSO7! z2Vg?u(PGvf;T-~a8V-Yn5KD1dP6$u9ZioPekVSPTI)l-V6>;T_=d%=Da*l|IDBEhL z%24=v8J3oSoZai}6w^~ylXr@I9b~6myH@|0OrsHuibnUVI9DlnvKr-f)BW;dA|?s9 zZ?8*$5pt>moFE|~aR5N9t*uQU6D7JotQSPV?;9`#`#yn%TtE+2%>3gyvJR3L6S_uOK19Ts4>b8jN_DageaR$m2Ezk$*tA&nCW>X%4EVy`hJ1umcn}B9_{=AYGh_Hf?a;nY;PNh!M#~YP< zgKACXHHLP=KSv#9>^hcK4Q zsGA!6a)UITdn3HN0d9MKyOIp1s{(xA9@6sUa9CAduQ~HT^|Y}QJSdyH1~ac}69jAz zc6!82;K5h9q8*l0pqWXr8kDL5?=-C5o0MfQ#ZwRhT!S{R)M#XtKTMp02( zulbH>5?We0uq=r!V5$N(H?3fC9Ddtgp%YDjbH4-56LEh84O7sK?y&SWEH<_+kgd8E zSybfNLC{XlWf)}ZsWQeTXt(%c1}_Q_KnvveW;1iEIl+4A!t`fy*yJ2w!_BfZDhB7t zYY!IUEeRUfgWkW##bHN|6Y3N&FO^q5c*q8Jf>{I!ArBlgRUhL#o zAN&Y%M@g>h91xHg46p6KYSvn8Ox6jd6$t`+RXZQEzcxxmBzBw!xQxT|)UBbVrDeFv zwZ!&ptjtzpViG;+IcYprnlD2Dvrnb8wZ9;5G8zGQrfat{*tIxbQPNjpIms1L_5x09 zFc|fTvbQCp!7zenwu^6)n;`9=X9#WqjvOx*J>U$`e1m5ghfNOt*q+vQ^lb?Rn44}i z?BX=fv(sh(Fbg(oNVv$DWR_FbOb)RH+}lWz}* z0Cw}sZBt=S=>7d=(!CbG?Be25K8->dArVk_0eCtj z%5H|^vawwWKx)LfGyQ1VyxPnjfyk>DJMV%k)EG_7%K>L^h*C^ z7$v(88V~2`zjgh4DehyjtWu`pmD-W> zZaWKIc8k4r^9Lj)Jxy@1x?mS(XjJf~q@;AOZ&o<0*$Ctq<7+$xw2j!{WRP^gx^(Fh zi&k}lPJ?gaUQzdJfDqt87Cx(4SnsO?lA4Ct#5$yoM%0ZTLXi}(C1ao`biCUyZ{(gx z;!5y3Q?cu?+I*}u3^pg=vgfGN?nI#q>N8ZbCt{DlttN6vNlAq#CawjMO!*LrLZRyE zbZ*V5?$Pej_f-iurhHWv(w~aiF6}zFj0i*ma-e$+Rs!+zPoDV8j0B)Ww(K3($3_I? zAeVl|AR?0ZA0jJ_ul=(KC%l zYP;y7taXZa@7{f<&bfJe=7C!m;loFb8en32ODwgH_SZThIiRAoBC91o-Ln9w!v63(O>IjHo>wu{ zp?&&P3y1y?;4lT`OWcok?+%J!UVp4+n{u**|1%42xfhJCC3v15b`!CEycY*UY$`qj zC6T3gACHjw3!Ek+>e<*v(<0TtCUu3AJ4@8x1vfITXSV=W)ay%q+!S(GFtk2kZ&enC zoPKP6aZq?~$#J8xfW*_YXV1uiH#IdiPnm^*nK`+CNB-CuEK#BJjv*nG4I!b_EWWVUA2Ujrc~ zrf_{+xCXEw0@d3H8xs7 zRcEwkXJB;_Y*^5mtOE;c0;735lz=u!Z29ovgLN0r&?Y>XZCGh8I6}I!em!rH#+@QF zGR*#(?dL@PGOf|#w})`Dfg)lhHG)8D>cGzv*gj!EQ)6yBU5INL5mZ&YO!6_+e(v?& zta-L_e(JCTKzXc|o+&uxumMRi6py5(lXnx~8~}iWb5H;`jdOf*qEc>`QOLr^7K-p{ z5c_bJNtriolMu}a{CqI{%>6>RUVL| zMMR);9S=5jVBa*sn>)oI-w5=Emd7C@Ja1tL8iY|h6Sh4f04e-nGUz6P3jix{Ij*Zm ze@=s-FCXxW=<%i`5`qAu&;p+?=h6*UXL@6!$1Jz18J7MK{?Ykp>3ferGcZNKAGVUn z3)jKBDFp3|GjawBjpW0_!<~S78YzBDWeMZHY*F3z0*1#2TL|1#(scd+gXA{hQEI7Tf3`;s(V1SR@FyMaH!oeX?_oH4o?iQ6>QiC}f9e{nDR`XlbLnwI7 z$$@o20%S&+&!6C+Ap|Huf#E_UA}oYc1B@wrdN3;+%Xz+mU7e};9{v?dZiH=t%EUs0 z4pM|F({x$-$|-aPx6%z>s|VKA2|UCBJSOC$;IU`GtrJjk`ycM03iVnD;SJ4T8#Gsa zzNL20A!whD&TSJL`A@Cb9ER9f13^3+Gxp6pEMmYL_Poq zuv?yCgS-HhD|&q%oEu}39&B%9RpC)bfVs*CaOO)uAp!IOnU)*J)WM7S)W8S2bFE=n zAhdYnz9PHL+>-}Yy9$(iAnWH0chL$Pn?k^b0d|@JTtMCPWDnF_XS3F`4Xk^V3-m96 zJrtTX`{*C@_CL5I~=cw(|ZGYM=|?l{c^Fq6Y4fV(*oNG>rO%0X~FtosKbnmFJv zBcM7u|2u$TQ~+}lG$ha>oI0R0Ygp{0-2@;yWRpb`5jqyufdlZprrTDNZ3r=S+ag5g zOM}@|z_r~QD2n5K+kOTDmJn1~_Ch_4Vvf2Bi%At+%^BiopkM@9Reybfa|0hYK0-+f z0R?P!Y4FKVWi2A)u&UjiAke)&@ztP6^$NZ|1C@8pyk3ZW0h4S4Y>nkfVFJ4?ld^%i^)^?#2JA`fiO{wfa+2+p9EW~XF zkSzOUI`9!8ER2$zzj3ooHsKHn*MdKO8qfRI3C@l4(%0z4$r`b#MMGhTNg&ei2J##5 z4)KttD=XY3ze)50m-__Ika`2+zTncG2%!Qlzic){sD0J`IYiSyriN2ll)eKugFt|V zo@9B5*4tMpKRl>D&;@`7KXzOTlsIA^Ow>%J!P7!80}-8ZMlKx${ZJt^KcBL%%OO% zR9^J(J+N{7e$~IsN5X;8T#Vd8SP(c&$uewJk#Ng;1TxprU#pA|5Cq%ZX5fud z;ug>2N1eJHa=Z_pfLPa9YZyH^g^16Xt#kd~$p&z0j6_J4g(pAVl7w$@1*mx* zq3fZJdjm?a%2c$V#DH{c2(ThvCo&B-d{~j$5V9Ko{Bvha9l~-#0stGKn;HX1q7q~R zG@Yi;N2~0Ab(@=;L-r7|IsbhMJtAszR~m4K4wz@yod`ZzFGJBUcscYUt6v8A; z|9F0WehZFJAEb7UkB<@Qi&PiTviKiCi<`jS9~?Lth1^_t1)qGmqR8*Vhr8mAT+YtU z!0{22l716wh7AA1|D|2I;^kXiPIQGE!cXL7jq|V75P5uKUWo3}zZc(^|NTt=jZr}U z_W$i$bD_XgfYjm{13$w`I)?RgfAXwd3$%M3U{v!DNj=bY4)w(~xi{!mDAZ+<`*_sY za913yfOb3LQ&jsjqJuSMRy4JtCL9a0!n!+!v=|S!(FNOM<@jVGVsQ^>`MpYFO3&0N zWgZjUdebxO*)eoALB-HD5DNR&Q9?C`BK;Jr24G`1Ulp`gnVJ4bng8ettMvOD!o2;s z-RF4E4AK9A3bR*+Ghf%&#=UB%dat1=5RNW+{VGl?TVBK~ZD!^kxttF4x#+bqHz9$; z^DWh*8r3M$;hyOM@pt1lIandxOg)&qFs$vFtlL)6q2xbXkvrhsq+4f-4H+E8JTJ4@ zroO#N(|qmeVaLE(@_*|b_Ufhg`q$H;Dp7dc(AcNyP%-^vMm~JX2zA2>Y8cXYsjt1V zee$fsT3D`w=`O3Er^6y(Ffs$}34-~6<4fuh$)J1*_YIN;_G^Z_104ASw zuf8QDT{J%3uEjys!DFPx>ox(-Dp8X#oJbz!fB8WyQSsT(nkZkkEaE4uh7wc3>3dIr%^#tgCWu)uNlJgSgeSPl(g zx>UaJbiAq-9ldUc;-e{;&B>BF*lTOQ)LK{_7z^GlYpQ4<8@^IZ*RG98A@G=pSuDtX z_K9v!SK)5Yn)L{M{6tRf8<^or@W9-b6JwQMzIL8J z#DKoa!|qJtbp;D(>XGj@8t+nA@7>#JFpoMx)wJ`#>+xTe4B zFNB51wt#X3qvrkL$?s2odkDYFeaZMKj`-apzu{lqmB{6vP=IZLMpAOf?ch8cGa|q6 z>bu;0ehaPM=2RUP!q`C!fZsejhQ?r26X{5=Gp%>yRzJJ>rs3S?z`=i>YGEpFRrr%9PmnNU zcV(zY#jtP$=xIF2-$1&Qu|SpePu8_ZUH8OyjpzO@CuwP;9-8vHMifG2dK2^`?Ozua z-H%d}SP^R-2%-qNBp!H)of*rV%CtiD_bb)$zs7I*Hz&UJ(r--QLs_! zwZB-H`03GA3FH*CM_$`~HUsyJ1(9J{B!vC>0GK00+5TJ1q{MC$v z%zAX%?aAoUt70<}$Hr82iss4V7FHl}Dsoq4Ri@3*GHl~RD3?v3yeeLZ3JO1T=QSz* zBitk68>{kg-M%{B+mgpLqjjf`=v=8OX5{Vi#KccUjkt3rgIsQ|KStCQ9@#&<_ml8P zNEsdDVpM0q*%Xzpb-U*g^Z$%pI0I4z=8JNvl_mW3J`csXDdhMsNPaBgJQAoTz~S7v zB|sK3r_3Kddytf1>n4O!KGiJU9ou>{b^q+ZzQL;VOL9VN%iuMp8KJP`ft&vad+#03 zW!wINf3!5w)UYZk6_QOxX_*PpAmp|so0QQqi#sD_3n^q|g^Y?+va+*^?3GYa>i0gc zPxrIG-{13n{r>%VJY8zciG+qA&X? zqeRS3XK1g2Y(~)R;3?H_r|sj?-;~cO8l=5%Y#Tq#wOWaifp{_`2jH7JwgH`Z7YPfG zxGjYzv%8nLY~|ruV{uHt9DW!{`sYQ4g(+UVxCfs2=A9|d$q#OCMVtwm2LU;#oicGB zn;zrOZ<6CLGIn;{tmhOE+UAnd?fvX*!H46AWIC<%Wxo{0k6bn^4|$w+_guntn7a2*E(b-8<;fWz;Ng3s_+<78n&()%fsKWGetS zBq=?SttUy{`$yw|4Q_(Qay$SIk`zPE4B0I6GxeLGN~fe2FED;HkyBJ%UrapkX2pl= z5oZ);V<*}C2vv)Zru+;wo7gojMD6y*h|h_Y8+oaX*Ou8drn4tF2fn~-8ngbT;wbJa^j)lFm7HdMM}7D3awf5 zzI+Q`vW-H8Iry%P!>YY~H++6P8s|F2#4)zGSZs?Q1n54-t(K~uSzn}8F@CkZX;At7 ztZPcu)t{xV5Y$@YpC`Gv?t$mYgK>B$;xlG*M3L3e2P6ARt9cArno=&fjF zHu^LC+}5-bx8Z`l{uMdh7p!iM9SGpdPfLGdz4XZmTo$>q$Kl+n=b!kq2U@mi=}w?a z;_Jzn9lnFJ3T$i7H@xm?BQD*$CBq-tmEJEIUT{GBf$-8@yL|V&$h)3klQP_Vv#R`{ zLbctf5NbOJKl^iK=Y^M5nR7q2-r{y^4ct#e%lkFMlUvJHa@-#sBh$i)dPKsR?2`-A zXIS2Ak6WbYrmcLnnN{QilzXPF%b3s)bM&#_Morsn)>vct!Bgy8T>qSZ$IRjp1ytPMI%iKl64$^#aYn*j>{J`M=W6Ri}kZ4 z(5s@tgqwEn4YO-eGDepB9=b5`F`@GQ%GDp+a<@wODcFhCn!Od+vwMhB zbo7XbpgNjsV?v3m@@_VOZU!dt^MZPVad(9`$8)Y62oIv6yCzza+Arpqi(#GYhGN)^ zh~M+3L(w7RiC4%(xw#u|>Em=8EHHng3+j@b{GG3~-A6Z)lBJMEhmPN|zH0t~fk=Qg zS`%~Djom9va7p(e(p_i&JsJa%u*F*zpn@s=ko?XjfwaXq;`zj zJK}f_ZpW95DRIfe^P!w;YuG1A6uXsjInF?H{>LNU<A(GR-i$%^T6(;Ej(!r%jpGm3?3-l^ zph^Wx3#h2sM#!Li#pLq=30OtDEBOA+#q^6Sug*vW+7>W?3a#Q#%-QzeO(r$2)sF|GwWg$Z zrk*+Rs%pnB2}mw1f3T3=IyHkOk|i6dLzcT%2ghh{nx38}2s3zyp(Q19gAK{$8b_qB zfr}?4jKUy8s4Vq$BZ%cWh=y-kUDh;A`}js0oJj(Yl1KumR3`9ttDa(<%oh0NXO&!1mQ{UNdB+L%`d z>)1UPu4`kisQ1nsE~!;+SR`;BLP!Jh-}22#Se``Mgvc-j9Kar1EsrxP(iSxRm^$SrNLF_tc#`cb2kC z1_KNPbK2NZ{4(B?5H?6Y{^K>)(=q2KdWi=Ig0UcoTUPl4_f|w}s4sDWAB@D&TY=c{ zR}~e68#Ou7$_mdCAXLzOj>87*;%V|?F2#@7Jc?8dr;B4BRxVTCe*LeadUXvAP=2%! z;?!qb$Sjja@q3vokbcLH%F`yg$LfgeRyiHA#Wt7)fuVxN+uP|n!U>RZ~R(O_o^y0 zC@ScPsYm`MQZct1VbEdF+YrS{_dGHu-WoA~8zBooU!Kp+s8tj0yU0d`%(&7_N~*?2 zgP*TIY#XG|O1ppmVyh!5zFl5@k6M~4)NjZ6>1!jHJ^|^gRwYk)MWP^Cu5`Iy@9-q5 zZe`B>`J^W{(ASv;gsu8n-0AF4F^U=5^#T$moK-JzDBEqy^aXFFuiO-CHWwgI5<*QM zO<_Ue_t2YUc)-L~Hr@v{bNly%(JjKgghu@9i5LA}y|9MV-va23zHuO#YJvs535L{G zJI+CWhualv?NwHQ3fV>9Lmms#|0PW~{~0Xd0t{~cvQ5<0d&22YFa}5LVLw$f+|@$A zFz=a9m-_CBm#+lq_Jdb|et(@>n|`l4JC*Bb;QrUYEm$JedMtBd$i!Gzu6TcuI+UT* zj{b^vCzp^ulcG1+j{YEMMTcGq4qipc3^3C>9ajh>kgNkTeQkNt;0_`Ai@;|A@-ZTU zP^=kWMKyz16m=IcI(z~G81=D!b{t%m+)G0S zEbd6O3=QxwIG}f++U3p2JKP%;eCvwAS^&Rfii3WUAng1}pKuI;`%7H>whQEF8p)A? zMPBl;ADy5BFUvA*-g&K9iB%f^V9ga%`N22{0U#X^d;UWXg__9V%Z5K zfDwgMjz&tGaVBax4EF8E?DU~@>$|2g3Dl7QM{-yt<1dB0hg-1$(T2*=ECGyaH+vuP>P#u0rEH&SET@+zs)6^ekUD ze9rMO83E7Vub6RMwc~OIa)yhq!-3dy;>{wZhjjC^6Kyra2=ccAVfq1f+M95(0FX~> zB4W^$nh^4MKr;leN?)Db!NbNJz$VxxOe!W8+`}_DG{1&l^CgE#Ij|DS6ymDHV zz<=mWdZqSDAIe$kI)SeTr4`Ni0#wL+j+Dahg_rrj?*ebOS=|exK=J3h#I4`cK$O5y zb+gevH*w2Ey3+~U5c(EGb)B4tT04;NB#dmrdYGR2GTL52QhXqayn6lmE;c-p`X!tY zBR4+80|NYuT=FUNa3pSCVKDOS+6GOEz+thlb(}w3dlM-Y3T_zkfW*1FRtA8-cTx8A znThPcpmW+NCPDA2Uv^`{)>r+l8PdBAe;X2Tvy9+(R_|JW2HHssc za54$q&3heqvZng!vujIK@BRNUdcC_7o?EY>hrLYLi}>5G$$%%6dK8`3=%`zUSq|7%CrEN=^-AA9=o z4dGj)>PjI!*}JmItE?~p~_Bqr9B@WiO%mXYHP;7YaN zc7#46d16pbf@Dno9j>eUAKa9e1A`?wdb#7@pPr=&n>R!)*-)-&@2y_-mjslxsGWsE zncC&kikM4;oPt5lEu94s-^lSHI6{xW;t72O76o`&BSA9d#+e40ExsY&r>6%z$L>vb zEWFS0^3@Rhm6!<|Tdkr&AI3UYfTQtGhCBvCzt?ixBnX289~cyL0_9?$Pmxu#PRO_> z-9WwwlW%unBbHLN@9G@{HUq8D2*lYZC^KqvXwo%uVaKf06Wn;9abFX4q6)_W81G3C z6+eUjR9obF0rVv#VhOSO>a}a6`Um9Az}*E};3|-``&uc-okygnR)KYD1pXO_Hz{vY zfh3LcNorCNNuoO5eBHWrm}7HTz>Ei94%P>`>@`0?3NmslB)Mh$KkH5P4vg3pr6qr@ z5GXq))Ppb5_xKZVK*D{^1aZE@Wr&Yd(vS$T%j^u@erD9;A;=}1`So*_b{&dUVEj$I z+8X^HOc!8tmCNA!>{0cIW{zbjf)p|(i8sCr_U1wVw=rP9ANxV9_xAS}rM6g2 z`22KZcv!bh$qZ#x{H@sYvd*?@y~=}i34dnOkFD#Ek00rwT`=OfgnFR31f|>@u;&^0 zHpqLzfsrH50{!&zaxxFlb=`zE{3>t@Nws5&f5twSX;RIRDUY3qIf3p41z~&f_4kL4 z<5(|DX0@kcu|4J%ZswxAi5&?b0SA-41%|pd@dzj3 zF2mw2T)cQU35dqk=sO^3BKX_ON#P2Jy|r)Ql&Wu}@60^t4!quO%CQkxx!Ur%IYU7# z-3{4qNZixy>o}9Iq2zT3{fP5Dl%sc3@qT*vcL25sQK*oOcM0{Z?Xl11NvD;(H`R)w z$Ji&(m5Z^8cAkE68~js}_g^m1{b)^oejbSl=i%}15!7HtVBHC#qz318guNmT*aUH} zKy^rW{SGn!tiM2aV2lMhvT}IJ0wvQy{2J_JQHO?L{z3Jh zSJD%z=U;Zl<`y!7WoJ-@Sds$Azw`>-3-3FMp(cD~sd;$xKEc?ZRrCX2_Ykjbur|(% z+AUdq7cH`uX{4g|YCQcqD!d+9H1XTo+3CIp5y?!Q_zAC`&2b(7nh|(PpS}xt{hK|Z zDz|!`(#`%k#ouN>_5`Lb_EgXYGtZPQo-=pu9kFv9s3wX5cuuN`$Pr7MICjo7D~|%H zf3+k1_hi0x5{?51=Fo>Oio+y0{!k0tU6sxv*F{T~7$UCHv3<40*lQcUoMg@8^xR|f zy1deB^CNoKp^Lhz$a?(eMNb2r=RIgeyM@U7v8KDinPeoe3lb(H?PRW1C79inIC|kc zg5LXD55wpVDY9m`=Ltl4!3S@wFT>hqSSx15MmR{|)I9C%j7IHC_y(wxISbR*!huCD zyvPu|nSKlg3t_FLzOzN~Js&No(2TKWw*@*V)|k^ z7XNgS!9l%rzbKIsNyXBfw0#6V8hF2SPbxy`aw>Js-gXfO8-WDWWE5B;wT!VL$&n*_ z#;=mIY`k;TD5s^5Oji`U@waLvhhV%(0STdo1mR$)<>!vtFQuHKo3B;SUJO+wkrgfV zdqBl^b`%tJc*~k~!vSSo&h$VgBpmbefnvz^g8XV-zMI@3* zoS4X1vF>9v$&69=idWY_J3w^eCO8MY`xrO}YdxQ0Ke>%%;neQHieyupO*!W}()bqR-WoHb?tK1AT~12x)Zuid|WVBEBMGXuD}T*AUxcge;faMYgX z>wXG_dyqv|OO$ihqS43QOl$ac4g+Wb2th&y3A^4;ji=5rq(goOH9<#vo1%oxRuEr~ za3B%p@J&ph-90h%fQVSD^#}zJy>(;9?t^at`Li%#vu9vw4!liRLSx?ZN$!rG6L`$T zuYk>e^ro5*liZJ5EX1fSwI6vG0$)d~c?uP?gzpJ}j33ok%GY!OE42jyd8JlvNXUxG z-TELTit>Hs8Slhs=}$7K3qGPinW_ot>TU=vsh1Ns5}sv znA@*sPhyVoY3ta`myszyrMP(UVvHyZGwQE(zU+O)*AJR3o232W;;U9X|B_Uu=vRFw z8S{(3ZTKEwymIw$weKO9TY4Vqqks9SeT)}OFb-6{thR2CMlL9br zQR293Y6c~{yQgNbXgPG?=BiT$I1ryEp(cphgH8FU7%2u;o$QII?xO)xAl|bE$A#&h zP;E6$e7jO-#pLfxAtSz7MI;7AVGP&@Ey_|L?^14gjJJXX566X}>+ zrZfA(#h8(Bwi2kr#N$6}Tz2yZ=*-+(6*;7igI_t-bFFj{XisnQ1lWCtH-{2Tt5}#2oGP%Hm2`{lh@@`?l19XS-s08&SRv@ucIyH@{Su? zf@cd8Mzvyc%%)Dq>#{C(JY}D&d2yTRsa20wU-CV6-aBTS;*AC8cd>BE^XwA36Y)I& zgwA~n|9m4M)HmT)=q%Xx=9NydUGJ_pVoeUISNiwM$sP#_3CRb^NWKDa)|1r2FDIoZ z-Uw~qv7=7FeOjpyBqbiLg|zhWTOMx1`{PvS-Hu;H^Dvdi7r}Eqs->l6dLC?vd_)`a z6@ZiKP-^>T+cKKI#+#2!G&%dtG0}-ANjY}xm_pzWw_;4%qz})%yrN_shi~ifho0zR zpjqBOvi<8mMjBVx@|x;86hovO;yAw_wU6~+(FR9Eq##hg76sp?fY7N|?wChwUMAg7 zqwNb#<57s3H zh+4JX&(D`kxOeaMfW4>mFHml`i-%ryG6q=JF4U_ z5y8pZ7BvhsZyB8{c(dyrnUp$Vmd41T7X<(i`jdqur ze6aSdt-z%Glnm9nt)^zxuq_7TIuauLp2sdu8T$2@o3Mb(IoxIjjx+6>R0i!ZyplMTTi3aoFK1u zMwyexcP@=z6trvNZrHcz1)|30+mm@>9pq7m0B-LwIsJ`Z;`g+^W zn5O7m87uzwsw~u;qknkci5hGy19FEgrR5Jy9w`Odr_)D(E9TJ6&!27K;wnQ%X0SCk z4MG`gFZrq06I%(W~V0jnuRzSEqY@azxZ9Q;z4cPZG2$hW&$V@7Xdryq+E~JBoV8cDL^% zlC~ecv6h@)jKD-DBaM`Oq8MH%DmiwG0Ubc4E`|GXQO;@6Vf=Hd)ctFjWIhQ=P zZ{IGAvf(_PrSjQ3sAi@o*+#p4`pg&@@1EDQScNmHY4w)7;p4v>`^kCF>o;$>V@@rU zZ;PvOD*mopI5U|14!Dcg2c5t+tK7EH9QpOS{H&bc)|6eC>oY;qwPVt$pQu0l;Q6u} z5gJE5s~N1BVhXAmssx5M#vEGyeAi_An42~bwfgXLMGt=bxR|LlhjzSqAgGi9KKf=1 zI?lX20u-!?$giM^pIzKqF0elC5c8HTTkhzv(@M-wj$YwcU>sV6MRuJ1>)wD(eyjpo zy1J2wXX8*OcZ?~vGACGN#Nz=EkttB7Ni_T3fD3A0gJCJ}rmEGBJ_ zjOSy_?D>=p@XXfna=YJ=c8|xcb_vZRgj#9_uq}+?OWDmng_Bv+zmQr~Yea*jnqueD z^v$RRwKn%8)~^d?2n-BzPj1F?`Tf!H=&aHjL$VkeDJ$nGSW1@nUNYxB1r^w^psr90 zszO<1q4YhNL(&Uq({uIqaYcKPUrtAGX~{ckLGJQ;zI=Ue6^j#%mU4qKCl+}P?`l0g zF5cK1l#C8E*+=gCB0FkZYEH+wGh1l1n9WoR*{BvuQZ2M`RbMF|Ky@E0^)}^&#P~7M zFQn|m@4u5z`>6%~g6a(VuXT*g_w|o&OoiPnc|^5K-06vibf8Y)ZEhwSZ3p%CbNQaP zt?Octd@67$9v7qdxW!s*3H{y49Cz zoeFi|y9hn7nTUwcEwt((ax)&7!gH3p?I)c}KAO{LB?HvA=LzMZIcKS_T}ID)WK&J? zxn)taWk7#+(aIg@{SjjS^jA_X|F=sQ{cR555scWx-2U-9W~0t|-QmB663GO>N+I`Q z^4eVQ=SG=Bj|MVw={Mm&G!JQWHUB~Oxfl_u-`>ug?#IkUn-ZvtmK)pRHS(!uA3iRZ zCTl?E!FzkE?N>R_?J0g99M=F2#bfzx;o(V2PgjGZAY8yrlM6O=T_#Buiv?Ee9Yh_b zUxr&;kW|V(+bRlBQxU5$DK%BJK$s@CifrDrp-s3DA`_wX<&Wv2u zUl~@pJ`FL_PxaLbitPLSrlMaB*oWydDVIoi+_H-)@3au z)r1?>JOeig79*xTdVKog=V{fcKb`k*D5!I>sBy9M7oD-GI@!V8!Fr*4kDOEVTvY`# zpK(dYyGJiDaW(~6I65dvJyuhlJ37d;NK{F)NEpV;dUfH>D7TQ1hH7G_%DM9@Dk|Zpr`DkE=;(c5(+c3rSuzk}jdoFU{z1qqm(a4@J<%$Q#0SH%U9zTBH*LN`#D|oYt?%v&p zI8g@p)o1V%cG^$^IOEOf~Rx8n`w3Vy5^&^!0DvNRJC5{yH!u3&ceDSuc@{^Bv8 z%yImr)5zq<&l+L^@KZ8}%y|49r;+)KpC!a=!H+%znfmzI$<;ADhvkH)!QsF?909LF z-rHZ2lUufI*=OfHws|_np>u<*IXvuW5p&OzY>geGm!X=LoYEw>uVxf@b6#P)JK!< zYkZcbKpy_jZ@%-{h~p6G{z0uHq6MpNdrwfUr}fdq8HfE8U|gv$5Q9nm<$vq5T`frI z^;nBP`>A7Jd%!sKnpGB#B~rP)Yi~){ts%nolPk0)bLdxcKRh5>ydLY?xQMOkT zai*59%8}_uo$Rbec=a`RR4VUEJZ|szAN{v$XP=wwwH$gQQG!2CJ#o%}P*@5&DIqb@ z0+WVhoA*^utkXX-&%R_%YX0DMOcL2i6Nr2mhhDY%IOQUOjK1{jWZj6&FAz*j!3l6d znc@^ObOR_JeT%Vi03Nzf+jrD9$4)K~A$@Op^)-}v9ZKJ4p9|%PA!NksI)8oYlmr>nC>O7BW zX@%)7R(@|So@Lvks1hN5RDI%HMP_EE$b~PKsQ&!!zC}SM`UqC`47{^cC?zzNn%A zA~QRwVPs;mLsnJ~LVbxujV)8@vO-c)l0Aygp?JWbRW;&h0Wm+MGm-AJPpXhCSo=BL;s-`s)oX-H*IKa4AWh&Olsa0)PGyxlo~s4S8NnBaP<IrN0knBGMMh*nRue2kWbR z8$4@`+0Qfu^J?r10O+l$sTmLI*evmkKfVf5Nm<(d0Ttm*$nj1!75~hxw8Jx>->G7d zS#qXxwYE;|>(`3x(k_}P?|p>wom32nS5%)+i5q;xojhB%9Doo{HtGLNrAv!W8h?_V z&FvNu5jpGT$MhX~4AHP--*mk9cFvAEO${cenS=7MewV(SsdV)GFE;n=Vx%vwDUAY8 zLf5gy2=2K0`SW?GfWE8uql@+8g66dh?CEQxs}liL9tI*Hgf$IqOg&az`kz z#x%V&fI_#AuY03;>QplHKtJWN$S-|f1F$|#_QwZi7bK~JqoX;$?1`SAF=p8(cj4Pk zZ&y!)mwglC>+}tm+Au1AnH_W2TgjuWW@VLXZf-vLtvjHid)yRt+{U4vR_c0sX+R{s zZY3urX`VRo016KfIW&hcn;AIbo`jJ%N8u0kcVwjyh%}TY)rLq)GD4C<7`6HBK$js3 z7cKMahu!QaFIi1v<9i?v{BfqCUlI6g^eq9sRFu^pKwKAl8i$a&Y~$rsVDh?BeR-`@ zj$KSqQ5636^*QHHHB2JnM_}WdMEY`icWxpkh-LG+5C>x_L|e*U}RN43}9UHG+S9SITTTR)v(X@#Z3AK%G(+$ufiW z>|h;BZR-Cg2k0NVDy{}%NA*zDb)5+B6fRgr-c^njUVkh=YdI+6Mzk1_-_i0}7^D}k zW@X*M$5%PLoBEY5@CE~jG1MSU5F8oF=k+`m35e_#V^pHQuCCTTbLQ^iB}=ja9KK|w z+&1s~09(>Gq%|c&D5oC^aBtb2+G=~Je+L-Iuiu2U&I3qe+>ejn4_d3Hm6cU!!}v>1 z8MQO!E}?}SHBnf@Bb}^?*;B2nS)D!it(Ey88W5e&#yntDBb+P%{9acRw zVc7SoNBmHQ;i3KvAytD4z>K}oc3IN??5-SHEjd@Br8;MACAwF++q&m>*|E_U_AiHL zb{C2!LNdk3epTKUl!ugDFgGMv)xi59G1;-xr`@VXrZ37&Uo5J5L?En(Ehpl{on|G9 zIjl#!;@{0RW;NJs<1$v`mg%?aM1+0JyWvgwauK4(-DD$X45t!}S#1I}pcmj#|=(>d%I(eT1Sr>I4;V0+c9nhLms=r{;G%7#(xhAk-CAV z%e#Dsm0S zJzbY0J2VvCTAgc#Imo$CcrX%-qwLPdTI1uj-}Q714dXh__pvYg{z7aOCuirA(5+4l zH4nZ%n6{~K**yF$>vZQM%Pf~F)2YjejT;ir+L^mLe^)n5KN=D;X7TdRjkc1JA6laZ zMBde3H2*N^YL;dkY2dnRZGBaMAKq zjZIZeb(WKkgXh%4>YH`BXO}L>hH5c!N_1V8E|Xup-gD`5wR8pZ-Am_(FBMtm8MZXr zh3)6XiZ6Sgt7#;UJg-V~d?z{8c1QM9e%EH`yNQUdGhdqXqdi`(M$J$oX#Ew>IVzrW zp56l$uKx%_vVNJRnKadoTdmVwGUVNHPC#&Y(&F~g=L=8e zBFC&+e5-W?|Fg=J5ff4=ykNIXGGCjErKW2CK$pzG4@Ncy#Bb3&3UdVp4O+X|7tXWS zPqeQrD~y|2n>BpssM|fGubWvGzHHWbaB6``_-R9Yb?`ao;4SyZ;&-!!a|?tvjVzeM z@K7dSBlr5tv0FK4nO5{S&D^$KHIrY3ZXIh9?Vs7&q!74%j^{`~c16#lSwZjkFaBcX zoi2Bs7DTQ^GLtv4Ze8Okeg)zIx-`Hbv*@a~B_7=B?0N$rd`Z&6{xwk5ih1_znP`(2 zTv5|f@8vwl=EDt0{j*C(#5o&acMSVdn}GD08JCfcLa8jBW5*KUf*Sqt$2KuBZ6hNi zsK|u*`uYmP7w6N>*KBBL04d^@&oRWd@Au_(cYnNYx2^e)nk!5(y7ML%wjy5f_4AXj z;9L1vC0a%oYpM>eF!2;23SNnW8wDZ`qfTGj4Vo2OfGjdJ}2x|`%oe)yPP-`g0gHxmP78)?@zOeSb;gwkv5v# z)hv##D&#GI54}+McP1>z(GvGL&9i<7EM>4 zLzs!DRvjIDrO?IgnKyUgAwW`KCU`*JQ6jSfpOu_Hyr_Uxa%CBV_%&dBmlD07?>Vh3@EKln5y*D{C4U#3CiJc6uKs zw7#zqRtC1NP!EZS6!l_S3&N;68FNyla;tPTgVYs-<-cS@oKMCZeB=WbStO zMGSKnkcO=nwLD(XT6IV05LSMyQ9yYdxW;h4lAXpn`f@kRZAG#PsD&v2j{nWyOk{uT z*w|m}q^%gpUo^b9efP`?yCuH6s&Zcr_B-cZPrc^AQlkRI;@Pcb&rLH^H^VU)n9Q-t zJ!O?!Q0Wp{QO3Awljj8AqyOlIn(Q39X**cZGJf!RPI&~bdMDMv=00Q)_;?|bMZt9g zmUX92YiQKn(RRYH*1>)OM$%=+(apm$8V$0!hLteTE8f@)>9=cUpS$mK~3@fKQvfz~*tQyO;YB(X1O z_2mc~rY-ql#hyZ?>~a`n;W3 z&{Mzvb@FSB*f(T!ko>0}qZG@?E+_T72??GmE6PRw{^62nZhxc!Dt~{BB$UUO-?mdp z0hs>Z?)r?!$8e1kZR=k*MH+@S^4qZ9dIrP#j-;_*6|ZB6|Jnf7=AM{a6ZI|g+zKh| zrlc&ka^JoIgJ? z0+IuhQ+<$s)7ZVrvy}2`JaPxx^ zBtx-X7UYGc+6*@fwnOrM@w_>U0j0ga#AuIj>Ne8W#CYFlZ13FmeAh>7aply79xZr< zToZ7sX1;g+N(HuY8cg1!Ukz@9u>s_X*e3wgWXlG2)llGcjsnt4Buw*IU4k~UGtUc& z&@V{qrKzs0Yl_L$!Y+>kBNPb82j#vs1YQpmw(C`P9lOvel$T#+CmD%Sj9c81;x_w` zTOrx=)udIcK^?J{Y@IiW0-D31SRuv3G+##{3`jkWbeZC}F!^sb3}@A|Y(UN+NmdIr znn^Hqb_fY&`XynG$i-jnToUQiMQh#`Loz0^zox52^h-R_r_inSkV3098gVW>y=>j? z{TLzpg6g#68T&vNZ;T6&Ndj$^5PY}u@*YLT+cf;yvwf>qt;(7vfx3cvb(HiJ06kz; ziX?4}A#5<3f^)>R``KJctXE6>W%)pNha}F~^w(_6YaiveNW?}3XvyTF8^Gf*K|@a{ z!IL=?+$}x-T08YX`O9YEu1IZz%K8EH$Q9+bV zA{JB(ZZ*%Nvb(5_YoJP##{P4G8{pVbl>YHxo@+v`Z&)IbK z8^#SQUO5&N@a-s!cKqCMPXKK$;8xHpaJg@_uC4l`@1`r*jU**I_~I-K*mD;3!;HK| zS7zgQ7Kunz5J3pXi6D?OQ+~r<9|m$Aq(V;>u3oby39^ZGXE8S%y*?G_@XN3)7mPS} zv+RHHFQj=lPJY|3mLv5A7d3Q@_kKGSaCS~Uw=VJ~BTQfYgHeJe5m_Z#*z@?glr^0<2XmVoc}E{CHQ4@qR`) z=@I<*=DGm9Ds651dzkS5x<#^%pCnC+T9qp_`M9G=B=P|5?kQzPd!c<}w*?KW-Wlqh zJedSsY~e9t-FGM^py_6mU4sff8i9$ze99d<-*+^ZA;^C}|vd36bpZmMzqF!p7vK zz9QmtglTXn_OO@uD$F9PAp+wuhR`xSqCTc$xozU*gASlH6C$R|AP9?~s5F<`aJOnwVg;;)4|r32J*QAxc+ zI7kYYvnV{UGU?A~>b#$|Kh&pzwk!N>>fW^EDGDnNL9Rek;CZ%J6ImTDHgj4w`kT~Ox&al6**2(%iD0%-WkuPxlQfB zItx>yW&pospg4jG%WBcg$G<*qm92%qP&}-H9+E|I+ymfD`XQSq{Sb2d9|uXJ4n4e3 zlgBDaYn_Y<0MbH+7clDNvn2xk0q#HI_zQ-2pY1HtMS0Y2`ix)!jU~%CoWovWy`=qp zx32}AcPKcQi}&IhC#;0#dyK9_jStDxGo8liNVSmLoFW+qx8lyy*W{7f80VU>vvXz& zzjh=e|F%DHlFV0>zheh&#GZfOi_@+7ujXy_Nj3=-FZp7*vPO3LVeaQ-4 zKadC=#f|-ZeMzEbsQBklahBVxOFML61LI)?5GoL66j@rt5i<_=C_*rGwmttC`m~tn zjuKoaFdjPf3gn!mJd!zYUQX|#)|6!&d&Di*d|gA5j1j6PQnFZrH2bux-^90wcYkCS zB`l@ylQGedh`$TAX^T-r5OgicDH`Fb+p$7ccT& z;Ky&@xw9U*nd%425Da1GCmBO*bFQq%h+iy}wbbUTi0A`BiW2jtl;!JRQ7R$R=R<$? z-JZW9RdA%=VnJm8@oEKD9`_LF^? zq$8uEI!3-D9pI75Did@;O*(Kue(vyVQHDb7bL~^G&uC~q#1ib`aqif>x%=`v90YV! zLE+W9XuWj(OU7?*FAr-w3s%fY98CwMu@qP$g}0a#l9rqC$UsdsHI$w$7(lHLL~V~2 zw9Z^CN>3mAyN59$wIIUlmfdwbzTN*ZCQD@BQlL8jb6iKaqJQeNU-i0wjeKva>FA`u z#ofMk>7eh9)ISZ@&LFt$v6pl}ku-6Zk>Q^i()*Q!W;iH>Dq}_ zL5!CDoz4;ex&p><`I(4~H}bvHOuhg7JC*VJ%j|_%;JK6jzrN%aFN?g$5pW1)Ts6dU zlPCaX8x8Wz((%YZ+bb>mcYHTSBW)bg(*rOa$8>ZeFqhoM{q(@Kl|>b8dhJ}?4h0h1 z`T4a#_pd&8$U_w#deZ&-HDC&R$M%B0)7+Fn`r z6engarNGoY$E%*blft<%RxcJnL zZt+NjI9%ZS8+oYe51@d=^dz?07PRAkXB+=toepm4fqKEO^VxIGGmCd_N-pfK9M9!w zeIs`iC_`9SnCK8Q$DXw_l}F(X_k8_c@X+($eGq--hg*HRwJbaev8|xYVk93_%WQBK zT*3c;SKyQeed-4&tG$}K+#ODm1AgmtY8k49umm*`bT`j{GIV3D;N8}D1i*Ai@T}}o zm17)!BP!n(y7R52F54H5MNX6Zz_G7LD?yRB(09Bjsob`Mx3)z-@Nd8R8{+f^_KnoTU3WwuCG%$tl@%y!W zonG+Pu1;Kei3d2UWtFIOKbS0ySO#|?)i8i!bjgd~(s_gsfCW7n`itOwdIEzz<+isAEn`Uw=qUJ|-1iZrw zeghsdsDzSWV_N4~`@s>0>M2*#cU)7#_F%Nvr)$n$Kq)b8<5ihI=6M`nRmV`6l=ONS z40M`D=Hg-kG^Z!uX6nay8HbWvM;vpOJEwV2@iK9sl$5Kxe!>fPaybP|4v|gz212W) zy$cP)1Qa^Trhf{p`&IpGT6VpZV+s-HZfI%(W(MDkavwr<9q$0qTmNA(@ndt~2MzPy z^LjkimZt$-a@c~&&92{DI~!3}n~Kx+z`h)W4V}TZPUtp}k|&fTRN2xY3VFVuQU&$G zfLDGD1-=6wqqceWsNESN^c9qgBfomk6+|6Lw;zuQg@mj>1W_b2U7(3ZH?PIx|Q8|S|UcfyGu<0EH+l;?W`r^a3R# zU`TL)^&b7<1E-B!0d|sDT{zA60s~jfzGsx(1!$r*+aeUY9qVU;f`j9cO(ryd8jWA> zICDOn`sR?cqgRS>Jdm2)ue#`;@#I-3obR^Bt~3N{k_hfl(B-=WbQNBOq_ngq9HEl} zhDX>blGx@y{D_d@n&GwM6xer2=yMOC&aVk>C$|FD-&1{iw}nMuwv!s3kift*j=cER zW15W(Qv$cJmpy#d;R;a(R~-LAB4Qi`mHh7ANjMRQ1F;c0v>1gtoRIpbe0c5Xr-^^} zVUiz0Qgg4yJ>|R-U(65v`GBBc)LdJPy}uJ{Mxd_?UxsUOKt*hQy{1B?e5VquP73?~ zDRG|4{Qyy=OmtdhHK|7gwIPrjzEf_8ixR4nE`~Oc!JUZD?>=VtrkvZx;|6Rh_8-?@ z-#gD`x`E}R`%V=o)P1KSX~<*OzyuNqN#QNDF|u(IAK&RG$02ZCDY?Heg5W*RpST>2(xkEtU2&&FC-Q0>GcK?O{975y&64j4F(&OiJ^sf_eIQ#!6 zRKItsc!h1c z_Jh+XyX2w3_U-0Q{TG}hT^|P;tnCxN`T)mJU;(5_WZ+k0%sFL`@^xaha@ zKZ9C_%zPHbmKVir?(JNH%!2utv)zw}GB7}8aD|sQ2WCpy7*tOQ%#YZ;pX07n%!t zv`7B|W=Yzq`IBoPNk`wot||cSC(-yM#Fd%O89}fu`at@6@(?!EM5L?8MN40BY_>)E z8;QC}uuF#+WxrjLI6(SxYXY}*xCj+r;#iocj!nPH-G6w2@yhmrbb*I8!eIUI?}+}8 zwL9%LZA9f6Jt`BBI3i^Do4IY^nqkrtZY#8rX}aIgTXesvJ2o_Ck>~H&aP^T@Bo(W({S=NmNmK>N<6B zP-y$ArMs__OinLCPozIeqJU7Pfh9 zdvb`)yKEp-FxT5P=R0d>O-&4vPt&tM)2FU5GK)SSz(-8Wz}J1)SihVJcOQrIQjb_Q z0f(eKZ12lkK;m;_C22my$D!hxOT2@jO*TaK{?^W)_i)-cDMWL@(1`#sB}Gs6*@$5*3w-c#^;Y#-ZdD!!4vsBTqeK_+khE z1X~BPu!>}i>_5HVtMC>FIz2=n7`@N;w9zqGZc{1&$<4evx z^bN?ZY{d*^scRco1vPB`^DXrS>_GJGpA0Y6@^7C4?RM?e6; zOj{JN>DPn&l7(#-=@F&C9Ltus1{=sBxTA$%fvn;p;*3SwoQkeyUGoKGOKx74h1*yb z+FK=hOw`-@+oT>?P%h=@zgKwJE5uwl`PSi_*7ma}24=4Y2ePEamCsH3TGsnjgq|m# z;5Z(D!!w@`Z#on5{6o#_kR2k}KNSKy$F#xI#FwWNxgBfe{U{YUFyQ6Oywyj*o)05t5m zz?jco!r!7<&`=7fVe{e9<+~<#i_V!yL9Y>^;R4jk`x^1fA zJ`|xbUez4YbmwoR0iR0uku@O{kE-Qf?vs1>?x~~^baI$?Sj)lD*UnknHEJ&@;`YPY734Q?XS8#3j{QeQJF2CWQG2Fw^yp0- zd!CBZ>yq;GfzVYBHs+%ZEbPD2>K>8Jn_`qG!%6T4kYw85RY46GC==UBt2;4gLH|CP zV|j-d3&aJL(Xx6tZe1JVky>e|A3k~V#OfhX3|j5RhLNSxsb5h6n!Xadb@Y#qTW64% zOCwo7g0X-U(>$T;aO%>(?E6_TaURVp9G6LAwVZ-AErw9Q7KPk)$5YMM2l#~UGhX@O zNFv-`3-%h+#dku0_kc0{T_Ds43P0E%epH+aSmEP0o&6J zp08qMO+;D74R$FlO!w`edE(ehb4OG>qvpAkL6l(k|NGX(vO=`99mTQ3rO0Lg(yT$S z!>vFdX;`H!$fzNCU#t!zs+>w%ZF(!L#>HD|f}6qdO!&r8l3Rw7&lUw76MY*BCTXN# z16mq2I9mD*ANhhfZ$iV)QPNLkcmUR!WB)h`MjS}UO#=21Fj4@rt=vJ@v#O8Ni&yNN zTlEZ4m7l&2Jy(Yc?jdp#aKTc19&-bnfs6l7d)FBi)wQ+<^jacKiHfM8f*LGXC>Eqd zu?z?(h$tOnL21&Z41*0dMo2(K=^%;-!=Ta;1|wdgNOv4W0TqxklqfTR)cfqgXktu0 zZ~lF2-5)GiaOTVz_BngM@6+}G8)84hL%8Lq2m)tXPlU(3CgDrNhSDfclr0 z+3%)U+YRcH^>E38cFPtK*YWmp*L=#&7Aq=t9{y$kDUy@#3W_=<-GlDS+?cHGd4^NA zCXdsK$Nd7LQQ3Zt#Dwd&ZW*EyJPPlNqo5wsQv12pX0SSHm; z+Y4F4J&2IXF&61a$QlB>kt9$BQ5?u~g5sEm#pA?M?A6jr1{ncD1X>NbLH=zuI-=q7 z(A8C+1W)5cA27SEyZQifDl3V%93OW(ic`acXbg~++ay+r^li*1HUoC$jCQgxk=;H@ z%djNQ$+@}`?=>Iqg~T}pIk_t((ctBhP~%Ihd#5#dKRqiD(s{f;8ia_o0g44pfV<>A z2J>x<(AX-#zV1l%0>Z3MNM=RWpbM>8t-eC3Y+Y3%=UJ-F@daBi#Q^p}r;8ZA8zris zBn;8TPLY%}h9eWcEsr;rW3j5G+{oGeMj?hE^l1Q64@ZM6a*vBv12q__EYR>*4L=_?iWmbi$wG{xU{h`*2 zKf4ZAb%u!~HYN4fF%P99v)qW=DmF^;zn7Mi$;N7gZ^e)7^4*L_v1(QR8&QlWY3WU2 zWA)=FSy2yZ97H=!yX!C;QAHq>@wD4;Z{NBFbKX&XR%zdxhIH)uM}|ylxfbDBFd>%q zo7;VU75D0#TfPPaD=wRWj)a11DqQ#3p8SlFOl|*kmA>OH^RKpDG}{zrp&yC{J~=SZ zv$(}{*C{+ENOZqKN;8DAKOtHvw97;g&gC#U*w#^ALHTiB(&|}(sr&9NuSw?qf^w^r zoBf1DJ$%VpuWax&=Y_cHDV~(C)$e!;bhyaZir*C2K3uPXZG=7r1JV|b)jbg!=eb+$0~K+S=rv8PV2MVUUS4qxDdF1zw9ltn(tnNE zyhr%7J|0gxfL2mK(|{4K6p?FRgXYnC`4N4l$(L6HIVBEtm}vZa;^md;#^S0o-m0i7 zR5U4P&!g0Wz@Y~|#J>eR(9K!r!@7n7b89R}L z#=$%XX>1It5};UJ#{^7@It0+(dCZ?Mk@;hU5~BTX5ULhf^6t<(b3N`Ak^q!zuCR{ zz3L=NgDBj>&A!5pq1EvZ$tTM&P5Cxdo(LzZkK)bY%b80h#Lx!rEV0eDn;yAFl28Xq zi@rjF#c{DYJ?L$K?_3s?5#Gv6o{`j>duq zE~P_*K*`C3IvA>c4LvpnT$u`BxxizOMhpv)Y{WMF^AoaN0Wlz% zq~cAHEC-9N3N}Xt5BIEVz*SEZ@AAG$EyX!`Ld{HTK#{8ES`f7FkeasWZUkPtf z%5}nS(4fl}n2e24yYH*zgeo)0gL7c-UhOPWl*YK424u|)c>F>ZK`n2$x+7}qr^L*DiJTBR^s0LT4dZlsZH_4q@Y-( z>z)bHjQYwSSFCC92lW51+;EC^BR~qISMEJc>_^a#>;m3k(NlvAEUc588oPf*N!h%rih~_(wE@6j-#q64E0QrGpI1INx%j`<-=xu*$g#8)v;Q>!W zeh>`OCKee^AI?05-lJC@1-=E3WW<|yzYFY;Cutp@>Jk*Q0+FNvWymh_!7}stj7fg# zIN7evi%_F7B+7G-LjH%jjrWUO&Qjz7JxcCdj}o(XnBrJG^-L}m#1q{X4d`#jdH2>Pr7VV*gI!<2RMF$z9km&=5(SK4(_oA4jH zbI;=fzF!|x{2Y6lp58f-4)aXUzPC@+{U1>Nnf>ZU`sbXTCMe&3Ja7-nhK|`zfh_*= zvp%an0pU-GdXcAd?W@2bBVY6G30uMb?vYh*X->?~x6JkI5?hMJArUPE>N3KI@7{eG z;V#$W;^tvuGsmXg$gBd16t-^<8>czF0Q9Xw=Mna7aR|_7&Oyu_wi!tRDxCJ*C9)TG z>~w&MdY4yjOixb_)1>G3bk#GD9TR3)=9v-#_X1ig|8LHFuZ-ag9NQl%91~8$@33IH zWla1P%-Kit(pkgj`c%@(`3oi=$|POqRlSMOPfxXfCH6pT2}uP)mdM364V4x)F)E$j zCy>?`{A@Ty|6jauDI3P`kruG+sj268s<-eFxKpSsaQs-?5SA8UbA_W0AZr^;RG4(^ ze>>+x3C{x6(Mj$kn0Dz`rAs=sw!Z)CG+?A?OKy%jigxW<1WGnzR93%)$m$11_4d>L zO)D4r@H0-R@!JWr%t~IB$~%8J;U5mfL{1wGOqt}mrs2Fq{a|{ejN6eLybMtNYNI=?oq6rXDEO!qSxfJO1hoJTH|=y zqAl!M)#D>XI>&g=S4c3qrP%hhRp3qQj4XzFXVMLJ4Ab~j?X{nxUYBXq2VgI zo9qU8{7ATdls3Jc6a2*{moF8xf<){Okwr#{D^w2f0PSl$izQU6P_(2qaaF$NrlO&5 zJJf4p)Hermi{*;=O)mppvx1bFYVG{Yf$o60w5B($i-QcF-3ZFaJqIo7kk5idt1|6< zSLZ+MaCtbp-dDWmL`d%*&7qqEjV^J;i9ehl%cr_7R$`YN_Ia@m7m=KmwF}$VUVBOy zl7e}`QzCMbox&8k;Q(DMt-kvvmG0G;)e|A|>i{>&rG&ig3es$kW|ge4 zCsMmsV~&f5os z>Nrx5kLF0$`0%oNWYuG7n}h7EYMndmynK0CcZMgiIQ>5b_y;PF~`@1QxRn=qjLn4vvQ~5Zx^OY&N=M1fzIX52Icq3JV(a!$i%JjA@@M=TO}j6?cQ-1JYsP1P#KAA z`CjdvXL0oFCZ2q#_kvs!M|Vb1SOZy>L+if0g|6$!9NULkPgGiY3-tGAU8oZsF>)Ds8jiNcKzqrQTEGf$n>uN5ZEt?Sa zK#{*yXIs$TQ12*_F7*&ea#eZ37Ht=TV}3aQx{2JITU;K@DAM*?E-sWevv0_cq#`16 ze@k^gglq?am`)$;C%L6S!O<7y55CnU;}B}@LLC(@T6zZ+$x(^@WvuXY^GW4D{avrW zM>o#sVQcG7eFINh5`nO>AwgO#V;f8;Ybzznr=Ob1+vspygXu6laQ0qFP*A#Lomw%c z`s*+$=IvQxi3fspaqSOv40dd{G!SLQX9kG0Oiq`qcjtA5)4QKE0KQ+Id)l@ci*w4i z^_fo5{k>gGqJ)4Bc7j7MXq6p+bd!OCuoF46KicsSdBQNyHY8Og)-N|0kO-=S)e1F& zgX@sb*-!m|&3Bj>5G{GBfJTS&f&Yrv3Tbo-7Sz3*lJZNl`=Br=YPvP;TXFAIYlk#~18gFy^5%1rcUN`x zBlg7>{8yy+IRsq8W3hyoP>@S?<<+Y_{Lb3ks&q;-9M9L0=mo#ig|i1ub7y~+?$B;m zYVcK?JfW@Sjenc8@LKP6hh3(qu>zwa9(A7P$eMcgHP&0!Cq8&Ps3%5qdmI}SsJg6I z$D>vDt&;L!r3g(uAwiKF5_cp)#iv^Bz29Oi&+$hAke>)k&j|*YeiCe}ZRh+^;y65J zQ{mzKjnn?(n$GfAk!g+EO%WSL9_L>v;y>x!P{Zpr%}XEn@lar-^dfrv+!&6=pbnGP zcR`-0&%Pb1R5_w$U{T9DHBP)GR<}Riw9UH*4(*XT#wq_g(GOg~ACk^;&s-o)Xv+`n zQPlpO+XM5B&&%Cgo|b#f(y2ouK6BVIiACEv(}Om6Mk^#^r!4zP+m%>%7^E%OtW)_O z+ruhD%yo1QFM8Uv!)3j1cf*O-MGx@D=V}|(gC`cFhRGCY9BFNS60ll;W7q-I3YZ(L z8rSgfBwoM1<=!cA4uaK+VzoM$Sm&uNhUvwj z?#^zA!D5>(a_=C1Jq2DSqFukiV6Xw965Nho-qvnYru5+55V|z` zg?QT$+cnp78iX8%2U9f|iQ+>M&DvLXcCC(KtA#bENms8jUggVRI^J2S%W3RMYd_(Z zby!fIQCi038P&E$)_DB``gPIhS(X1b5Pw+JCf#db*Tz4nmv=FFWGezH zrDeoM+*8(~2WN4c~F6ZkceV)l8P>_Z}|twYPWX)i;L*ZkW0t#Rj? z8yD~9x)+V{<`2=x7lJu9ddE*6L+;(|=?dyU?S6S> zvY_~)EJ^mfVHU!i5%Yi}vTaUvd`Yxy#Y|cHRhF;$l`=8!`P6{9c|*Gyb;HR!N8Uah zpVMkba~~)lmiD493rQ-<9xWTS&L3XWfG4(2+V7x~x;J+Y%_G&4na?s{?&vgP$G%SO zbh7_SZzV@g!P4aF{evwP4G*~+m^tjx`f!epMdd={+fF&=;&rRHbZH>&kR!gx`@WUB0PG{aS``kPN)qZsxV_+V|8l8n`Csb!^FjHwG6K)>KG{J zYP-EZaL?)D840fz_uuIIK7Xw#-F(@I7vt&t*pRGyq{*ZdUWdqIW$U^i>CsW9Ecsn< z4Y`~C7=lNB@g?zpe>#aji2&X^BVaC-#PI=GeZZdc1P*HzW#wNQ-e9Jp{KZVwAiz{J z5uM_;NUp$ltXp^@gKtv8UWD6A;TFb7Bs{T)sdGBn-A6Q!lEe*sT!0J_F7r|`nsO0QiQY8j|$?*~Y z$&>XHLR^;~`_vn-B@N;b$IHE6-z?FImh~vFcyq0))D+~NRwj{4JyN{8^OKiYES~N3 zV!gA*W=zuFt3~#YO`QtuASjsYDJg;Vrl^XkzM2$DQq1_;{aE~EeA-uJ*E-(T#i&fX z+dBq0#)q)M4?m1PVxJExnoEba!R`K36I&7~27QQw2m0;;VN(8sjA;$8AH4STDn;uN zoXA^(Nu)C}>A|ZLlAK6ddGIlPBPVx{etoy-52wj!i>j5FkoLeL~tF{Zk8l23~IDBOm4LdB>_btKb#`sPn zJx;_=0k~equg?Z0$g>ZxJ}QrsSz literal 0 HcmV?d00001 diff --git a/doc/fr/scripts/simple_ReducedModelingTest1.py b/doc/fr/scripts/simple_ReducedModelingTest1.py new file mode 100644 index 0000000..a8f9bda --- /dev/null +++ b/doc/fr/scripts/simple_ReducedModelingTest1.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# +import numpy +from adao import adaoBuilder +numpy.random.seed(123456789) +# +dimension = 100 +nbsnapshots = 15 +Ensemble = numpy.empty((dimension,2*nbsnapshots)) +for i in range(nbsnapshots): + Ensemble[:,i] = numpy.sin((i+1)*numpy.arange(dimension)) +Ensemble[:,nbsnapshots:2*nbsnapshots] = Ensemble[:,:nbsnapshots] +# +case = adaoBuilder.New() +case.setAlgorithmParameters( + Algorithm = 'ReducedModelingTest', + Parameters = { + "EnsembleOfSnapshots":Ensemble, + "StoreSupplementaryCalculations":["Residus","SingularValues"], + "PlotAndSave":True, + "ResultFile":"simple_ReducedModelingTest1.png", + } + ) +case.execute() diff --git a/doc/fr/scripts/simple_ReducedModelingTest1.res b/doc/fr/scripts/simple_ReducedModelingTest1.res new file mode 100644 index 0000000..119f6a7 --- /dev/null +++ b/doc/fr/scripts/simple_ReducedModelingTest1.res @@ -0,0 +1,86 @@ + + REDUCEDMODELINGTEST + =================== + + This test allows to analyze the characteristics of the collection of + states from a reduction point of view. Using an SVD, it measures how + the information decreases with the number of singular values, either + as values or, with a statistical point of view, as remaining variance. + +===> Information before launching: + ----------------------------- + + Characteristics of input data: + State dimension................: 100 + Number of snapshots to test....: 30 + +===> Summary of the 5 first singular values: + --------------------------------------- + + Singular values σ: + σ[1] = 1.03513e+01 + σ[2] = 1.03509e+01 + σ[3] = 1.03258e+01 + σ[4] = 1.02436e+01 + σ[5] = 1.02386e+01 + + Singular values σ divided by the first one σ[1]: + σ[1] / σ[1] = 1.00000e+00 + σ[2] / σ[1] = 9.99962e-01 + σ[3] / σ[1] = 9.97533e-01 + σ[4] / σ[1] = 9.89589e-01 + σ[5] / σ[1] = 9.89104e-01 + +===> Ordered singular values and remaining variance: + ----------------------------------------------- + + ------------------------------------------------------------------------- + i | Singular value σ | σ[i]/σ[1] | Variance: part, remaining + ------------------------------------------------------------------------- + 00 | 1.03513e+01 | 1.00000e+00 | 7% , 92.8% + 01 | 1.03509e+01 | 9.99962e-01 | 7% , 85.6% + 02 | 1.03258e+01 | 9.97533e-01 | 7% , 78.5% + 03 | 1.02436e+01 | 9.89589e-01 | 7% , 71.5% + 04 | 1.02386e+01 | 9.89104e-01 | 7% , 64.4% + 05 | 1.01050e+01 | 9.76200e-01 | 6% , 57.6% + 06 | 9.99948e+00 | 9.66009e-01 | 6% , 50.9% + 07 | 9.99643e+00 | 9.65714e-01 | 6% , 44.2% + 08 | 9.98375e+00 | 9.64489e-01 | 6% , 37.5% + 09 | 9.90828e+00 | 9.57198e-01 | 6% , 31.0% + 10 | 9.90691e+00 | 9.57066e-01 | 6% , 24.4% + 11 | 9.64803e+00 | 9.32056e-01 | 6% , 18.1% + 12 | 9.62587e+00 | 9.29916e-01 | 6% , 11.9% + 13 | 9.62344e+00 | 9.29681e-01 | 6% , 5.7% + 14 | 9.25446e+00 | 8.94035e-01 | 5% , 0.0% + 15 | 2.41400e-15 | 2.33206e-16 | 0% , 0.0% + 16 | 1.94612e-15 | 1.88006e-16 | 0% , 0.0% + 17 | 1.61527e-15 | 1.56044e-16 | 0% , 0.0% + 18 | 1.54864e-15 | 1.49608e-16 | 0% , 0.0% + 19 | 1.35243e-15 | 1.30653e-16 | 0% , 0.0% + 20 | 1.11119e-15 | 1.07347e-16 | 0% , 0.0% + 21 | 1.05852e-15 | 1.02260e-16 | 0% , 0.0% + 22 | 9.68764e-16 | 9.35883e-17 | 0% , 0.0% + 23 | 8.82878e-16 | 8.52912e-17 | 0% , 0.0% + 24 | 6.53296e-16 | 6.31122e-17 | 0% , 0.0% + 25 | 5.21872e-16 | 5.04159e-17 | 0% , 0.0% + 26 | 4.98146e-16 | 4.81238e-17 | 0% , 0.0% + 27 | 3.74898e-16 | 3.62173e-17 | 0% , 0.0% + 28 | 2.79953e-16 | 2.70452e-17 | 0% , 0.0% + 29 | 1.99083e-16 | 1.92326e-17 | 0% , 0.0% + ------------------------------------------------------------------------- + +===> Summary of variance cut-off: + ---------------------------- + Representing more than 90% of variance requires at least 14 mode(s). + Representing more than 99% of variance requires at least 15 mode(s). + Representing more than 99.9% of variance requires at least 15 mode(s). + Representing more than 99.99% of variance requires at least 15 mode(s). + + Plot and save results in a file named "simple_ReducedModelingTest1.png" + + --------------------------------------------------------------------------- + + End of the "REDUCEDMODELINGTEST" verification + + --------------------------------------------------------------------------- + diff --git a/doc/fr/scripts/simple_ReducedModelingTest1.rst b/doc/fr/scripts/simple_ReducedModelingTest1.rst new file mode 100644 index 0000000..f07c4eb --- /dev/null +++ b/doc/fr/scripts/simple_ReducedModelingTest1.rst @@ -0,0 +1,13 @@ +.. index:: single: ReducedModelingTest (exemple) + +Premier exemple +............... + +Cet exemple décrit les caractéristiques de réductibilité de l'ensemble d'états +("*snapshots*") étudié. Cet ensemble considéré est d'abord composé de 15 +calculs de sinus sur un suite d'entiers (donc l'espace engendré par les +snapshots est non décomposable linéairement) et ces 15 snapshots sont ensuite +dupliqués une fois pour avoir un espace réduit de taille exactement 15 (puisque +les 15 derniers sont identiques aux 15 premiers). La totalité de la variance +est ainsi expliquée par les 15 premiers modes, numérotés de 0 à 14, et les +valeurs singulières suivantes sont proches du zéro numérique. diff --git a/doc/fr/snippets/MeasurementLocations.rst b/doc/fr/snippets/MeasurementLocations.rst new file mode 100644 index 0000000..8e97457 --- /dev/null +++ b/doc/fr/snippets/MeasurementLocations.rst @@ -0,0 +1,13 @@ +.. index:: single: MeasurementLocations + +MeasurementLocations + *Série d'entiers*. Cette série contient les indices des positions auxquelles + une mesure est requise pour accompagner une interpolation par base réduite, + selon l'ordre des variables d'un vecteur d'état considéré arbitrairement sous + forme unidimensionnelle, et dans le même ordre que les informations contenues + dans les vecteurs de la base réduite. + + Elle est semblable à la série de positions ou points optimaux issue d'un + :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask`, ou la série + de positions nécessaires à exécuter un + :ref:`section_ref_algorithm_InterpolationByReducedModelTask`. diff --git a/doc/fr/snippets/ModuleValidation.rst b/doc/fr/snippets/ModuleValidation.rst index d4dcb08..55e2e02 100644 --- a/doc/fr/snippets/ModuleValidation.rst +++ b/doc/fr/snippets/ModuleValidation.rst @@ -13,7 +13,7 @@ uniquement sachant que, en cas de doute, c'est la fiche de version de SALOME EFICAS, |release| SALOME, |release| Python, 3.9.2 - Numpy, 1.19.5 + Numpy, 1.20.3 Scipy, 1.6.0 MatplotLib, 3.3.4 Gnuplot, 1.8 diff --git a/doc/fr/snippets/NoConditionalOutput.rst b/doc/fr/snippets/NoConditionalOutput.rst new file mode 100644 index 0000000..7edf811 --- /dev/null +++ b/doc/fr/snippets/NoConditionalOutput.rst @@ -0,0 +1 @@ + *Aucune* diff --git a/src/daComposant/daAlgorithms/Atoms/ecw2ukf.py b/src/daComposant/daAlgorithms/Atoms/ecw2ukf.py index f935804..e5ea58e 100644 --- a/src/daComposant/daAlgorithms/Atoms/ecw2ukf.py +++ b/src/daComposant/daAlgorithms/Atoms/ecw2ukf.py @@ -101,9 +101,6 @@ def ecw2ukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): else: Un = None # - Hm = HO["Direct"].appliedControledFormTo - if selfA._parameters["EstimationOf"] == "State": - Mm = EM["Direct"].appliedControledFormTo if CM is not None and "Tangent" in CM and U is not None: Cm = CM["Tangent"].asMatrix(Xn) else: @@ -118,6 +115,7 @@ def ecw2ukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): Xnmu[:, point] = ApplyBounds( Xnmu[:, point], selfA._parameters["Bounds"] ) # if selfA._parameters["EstimationOf"] == "State": + Mm = EM["Direct"].appliedControledFormTo XEnnmu = Mm( [(Xnmu[:, point].reshape((-1, 1)), Un) for point in range(nbSpts)], argsAsSerie = True, returnSerieAsArrayMatrix = True ) @@ -152,6 +150,7 @@ def ecw2ukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): for point in range(nbSpts): Xnnmu[:, point] = ApplyBounds( Xnnmu[:, point], selfA._parameters["Bounds"] ) # + Hm = HO["Direct"].appliedControledFormTo Ynnmu = Hm( [(Xnnmu[:, point], None) for point in range(nbSpts)], argsAsSerie = True, returnSerieAsArrayMatrix = True ) diff --git a/src/daComposant/daAlgorithms/Atoms/ecwukf.py b/src/daComposant/daAlgorithms/Atoms/ecwukf.py index 465168d..a100e8e 100644 --- a/src/daComposant/daAlgorithms/Atoms/ecwukf.py +++ b/src/daComposant/daAlgorithms/Atoms/ecwukf.py @@ -99,9 +99,6 @@ def ecwukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): else: Un = None # - Hm = HO["Direct"].appliedControledFormTo - if selfA._parameters["EstimationOf"] == "State": - Mm = EM["Direct"].appliedControledFormTo if CM is not None and "Tangent" in CM and U is not None: Cm = CM["Tangent"].asMatrix(Xn) else: @@ -112,6 +109,7 @@ def ecwukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): nbSpts = SC.shape[1] # if selfA._parameters["EstimationOf"] == "State": + Mm = EM["Direct"].appliedControledFormTo XEnnmu = Mm( [(Xnmu[:, point].reshape((-1, 1)), Un) for point in range(nbSpts)], argsAsSerie = True, returnSerieAsArrayMatrix = True ) @@ -135,6 +133,7 @@ def ecwukf(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, VariantM="UKF"): Pmndemi = numpy.real(scipy.linalg.sqrtm(Pmn)) Xnnmu = Xhmn.reshape((-1, 1)) + Pmndemi @ SC # + Hm = HO["Direct"].appliedControledFormTo Ynnmu = Hm( [(Xnnmu[:, point], None) for point in range(nbSpts)], argsAsSerie = True, returnSerieAsArrayMatrix = True ) diff --git a/src/daComposant/daAlgorithms/ReducedModelingTest.py b/src/daComposant/daAlgorithms/ReducedModelingTest.py index 14536e0..d94faf4 100644 --- a/src/daComposant/daAlgorithms/ReducedModelingTest.py +++ b/src/daComposant/daAlgorithms/ReducedModelingTest.py @@ -276,7 +276,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): msgs += ("\n") msgs += (__flech + "Ordered singular values and remaining variance:\n") msgs += (__marge + "-----------------------------------------------\n") - __entete = (" %" + str(__ordre) + "s | %22s | %22s | Variance: part, remaining")%("i", "Singular value σ", "σ[i]/σ[1]") # noqa: E501 + __entete = (" %" + str(__ordre) + "s | %16s | %16s | Variance: part, remaining")%("i", "Singular value σ", "σ[i]/σ[1]") # noqa: E501 # __nbtirets = len(__entete) + 2 msgs += "\n" + __marge + "-" * __nbtirets @@ -291,7 +291,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): vsinfo = 100 * __tisv[ns] rsinfo = max(100 * __qisv[ns], 0.) if __s: - msgs += (__marge + " %0" + str(__ordre) + "i | %22." + str(__p) + "e | %22." + str(__p) + "e | %2i%s , %4.1f%s\n")%(ns, svalue, rvalue, vsinfo, "%", rsinfo, "%") # noqa: E501 + msgs += (__marge + " %0" + str(__ordre) + "i | %16." + str(__p) + "e | %16." + str(__p) + "e | %2i%s , %4.1f%s\n")%(ns, svalue, rvalue, vsinfo, "%", rsinfo, "%") # noqa: E501 if rsinfo > 10: cut1pd = ns + 2 # 10% if rsinfo > 1: diff --git a/src/daComposant/daCore/NumericObjects.py b/src/daComposant/daCore/NumericObjects.py index cafe15d..dc72f85 100644 --- a/src/daComposant/daCore/NumericObjects.py +++ b/src/daComposant/daCore/NumericObjects.py @@ -1503,12 +1503,11 @@ def multiXOsteps( if __CovForecast: Mt = EM["Tangent"].asMatrix(Xn) Mt = Mt.reshape(Xn.size, Xn.size) # ADAO & check shape - if __CovForecast: Ma = EM["Adjoint"].asMatrix(Xn) Ma = Ma.reshape(Xn.size, Xn.size) # ADAO & check shape Pn_predicted = Q + Mt @ (Pn @ Ma) - M = EM["Direct"].appliedControledFormTo - Xn_predicted = M( (Xn, Un) ).reshape((-1, 1)) + Mm = EM["Direct"].appliedControledFormTo + Xn_predicted = Mm( (Xn, Un) ).reshape((-1, 1)) if CM is not None and "Tangent" in CM and Un is not None: # Attention : si Cm est aussi dans M, doublon ! Cm = CM["Tangent"].asMatrix(Xn_predicted) Cm = Cm.reshape(Xn.size, Un.size) # ADAO & check shape -- 2.30.2