From 4c6c27dd8663c766fd9ca30ce732d236b25f1401 Mon Sep 17 00:00:00 2001
From: wolf
-In step-18, we saw a need to write
+
+In @ref step_18 "step-18", we saw a need to write
output files in an intermediate format: in a parallel program, it doesn't scale
well if all processors participate in computing a result, and then only a
single processor generates the graphical output. Rather, each of them should
generate output for its share of the domain, and later on merge all these
output files into a single one.
-
+
+
Thus was the beginning of step-19: it is the program that reads a number of
files written in intermediate format, and merges and converts them into the
final format that one would like to use for visualization. It can also be used
@@ -18,9 +18,9 @@ for the following purpose: if you are unsure at the time of a computation what
graphics program you would like to use, write your results in intermediate
format; it can later be converted, using the present program, to any other
format you may want.
-
+
+
While this in itself was not interesting enough to make a tutorial program, we
have used the opportunity to introduce one class that has proven to be
extremely help- and useful in real application programs, but had not been
@@ -31,9 +31,9 @@ files. For example, one may want to specify the geometry, or specifics of the
equation to be solved, at run time. Other typical parameters are the number of
nonlinear iterations, the name of output files, or the names of input files
specifying material properties or boundary conditions.
-
+
+
Working with such parameter files is not rocket science. However, it is rather
tedious to write the parsers for such files, in particular if they should be
extensible, be able to group parameters into subsections, perform some error
@@ -45,9 +45,9 @@ will declare the parameters it expects (or call a function in the library that
declares a number of parameters for you), the
+
+
In order to perform these three steps, the
+
+
Once all parameters have been declared, parameters can be read, using the
+
+
A typical input file will look like this:
-
+
+
Finally, the application program can get the values of declared parameters back
by traversing the subsections of the parameter tree and using the
+
+
Using the
+
+
The rest of the story is probably best told by looking at the source of step-19
itself. Let us, however, end this introduction by pointing the reader at the
extensive class documentation of the
+
With all that above, here is first what we get if we just run the program
without any parameters at all:
-
That's a lot of output for such a little program, but then that's also a lot of
output formats that deal.II supports. You will realize that the output consists
of first entries in the top-level section (sorted alphabetically), then a
@@ -125,17 +122,16 @@ sorted list of subsections. Most of the parameters have been declared by the
+
+
Let us try to run this program on a set of input files generated by a modified
- step-18 run on 32 nodes of a
- cluster. The computation was rather big, with more
+@ref step_18 "step-18" run on 32 nodes of a
+cluster. The computation was rather big, with more
than 350,000 cells and some 1.2M unknowns. That makes for 32 rather big
intermediate files that we will try to merge using the present program. Here is
the list of files, totaling some 245MB of data:
-
So let's see what happens if we attempt to merge all these files into a single
one:
-
-If visualized, the output looks very much like that shown for step-18. But that's not quite as
+
+
+If visualized, the output looks very much like that shown for
+@ref step_18 "step-18". But that's not quite as
important for the moment, rather we are interested in showing how to use the
parameter file. To this end, remember that if no parameter file is given, or if
it is empty, all the default values listed above are used. However, whatever we
specify in the parameter file is used, unless overridden again by
parameters found later on the command line.
-
+
+
For example, let us use a simple parameter file named
We can then visualize this one file with gnuplot, obtaining something like
this:
-
-
-Introduction
-ParameterHandler
class then reads an input file with all these parameters, and the application
program can then get their values back from this class.
-ParameterHandler
offers
three sets of functions: first, the
ParameterHandler::declare_entry
function is used to declare the
@@ -64,9 +64,9 @@ parameter isn't later listed explicitly in the parameter file. In addition to
that, there are optional arguments indicating a pattern that a parameter has to
satisfy, such as being an integer (see the discussion above), and a help text
that might later give an explanation of what the parameter stands for.
-ParameterHandler::read_input
family of functions. There are
versions of this function that can read from a file stream, that take a file
@@ -76,12 +76,11 @@ declared before, and that the values of parameters satisfy the pattern that has
been given to describe the kind of values a parameter can have. Input that uses
undeclared parameters or values for parameters that do not conform to the
pattern are rejected by raising an exception.
-
-
+@endcode
Note that subsections can be nested.
-
+@code
set Output format = dx
set Output file = my_output_file.dx
@@ -91,12 +90,11 @@ subsection Application
set Color of output = blue
set Generate output = false
end
-
-ParameterHandler::get
and related functions. The
@@ -105,19 +103,19 @@ string, whereas ParameterHandler::get_integer
,
ParameterHandler::get_double
, and
ParameterHandler::get_bool
already convert them to the indicated
type.
-ParameterHandler
class therefore provides for a pretty
flexible mechanism to handle all sorts of moderately complex input files without
much effort on the side of the application programmer. We will use this to
provide all sorts of options to the step-19 program in order to convert from
intermediate file format to any other graphical file format.
-ParameterHandler
class for
more information on specific details of that class.
-Results
-
-
+@endcode
-
+@code
examples/step-19> ./step-19
Converter from deal.II intermediate format to other graphics formats.
@@ -114,10 +113,8 @@ subsection UCD output parameters
# creating program
set Write preamble = true
end
-
-DataOutBase
class, but there are also the dummy entries and
sections we have added in the declare_parameters()
function, along
with their default values and documentations.
-
-
+@endcode
-
+@code
examples/step-19> ls -l *d2
-rw-r--r-- 1 bangerth wheeler 7982085 Aug 12 10:11 solution-0005.0000-000.d2
-rw-r--r-- 1 bangerth wheeler 7888316 Aug 12 10:13 solution-0005.0000-001.d2
@@ -169,14 +165,11 @@ examples/step-19> ls -l *d2
-rw-r--r-- 1 bangerth wheeler 7682418 Aug 12 10:08 solution-0005.0000-029.d2
-rw-r--r-- 1 bangerth wheeler 7544141 Aug 12 10:05 solution-0005.0000-030.d2
-rw-r--r-- 1 bangerth wheeler 7348899 Aug 12 10:04 solution-0005.0000-031.d2
-
-
-
+@endcode
So in roughly two minutes we have merged 240MB of data. Counting reading and
writing, that averages a throughput of 3.8MB per second, not so bad.
-
+@code
examples/step-19> time ./step-19 solution-0005.0000-*.d2 -x gmv -o solution-0005.gmv
real 2m08.35s
user 1m26.61s
@@ -184,56 +177,48 @@ system 0m05.74s
examples/step-19> ls -l solution-0005.gmv
-rw-r--r-- 1 bangerth wheeler 240680494 Sep 9 11:53 solution-0005.gmv
-
-solution-0005.prm
that contains only one line:
-
-
+@endcode
If we run step-19 with it again, we obtain this (for simplicity, and because we
don't want to visualize 240MB of data anyway, we only convert the one, the
twelfth, intermediate file to gnuplot format):
-
+@code
set Output format = gnuplot
-
-
-
+@endcode
-
+@code
examples/step-19> ./step-19 solution-0005.0000-012.d2 -p solution-0005.prm -o solution-0005.gnuplot
examples/step-19> ls -l solution-0005.gnuplot
-rw-r--r-- 1 bangerth wheeler 20281669 Sep 9 12:15 solution-0005.gnuplot
-
-
-
+@endcode
If one wanted to, one could write comments into the file using the
same format as used above in the help text, i.e. everything on a line
following a hashmark (
+@code
set Output format = dx
set Output file = my_output_file.dx
@@ -243,17 +228,15 @@ subsection Dummy subsection
set Dummy color of output = blue
set Dummy generate output = false
end
-
-#
) is considered a comment.
-
+
+
If one runs step-19 with this input file, this is what is going to happen:
-
-
+@endcode
Ah, right: valid values for the iteration parameter needed to be within the
range [1...1000]. We would fix that, then go back to run the program with
correct parameters.
-
+@code
examples/step-19> ./step-19 solution-0005.0000-012.d2 -p solution-0005.prm
Line 4:
The entry value
@@ -262,17 +245,16 @@ Line 4:
Dummy iterations
does not match the given pattern
[Integer range 1...1000 (inclusive)]
-
-
+
+
This program should have given some insight into the input parameter file
handling that deal.II provides. The ParameterHandler
class has a
few more goodies beyond what has been shown in this program, for those who want
to use this class, it would be useful to read the documentation of that class
to get the full picture.
-
faSMjrZ$Qb|1F5MlZdkrENDA9S
z8^S>@Q~e^5|5D9>&HdvNUI83?>MJ>1+EJ
+
If we run the program as is, we get this output:
-
Let us start with the pressure: it is highest at the left and lowest at the
right, so flow will be from left to right. In addition, though hardly visible
in the graph, we have chosen the pressure field such that the flow left-right
@@ -38,23 +38,23 @@ the x-velocity has to increase to get the flow through the narrow part,
something that can easily be seen in the left image. The middle image
represents inward flow in y-direction at the left end of the domain, and
outward flow in y-directino at the right end of the domain.
-
+
+
As an additional remark, note how the x-velocity in the left image is only
continuous in x-direction, whereas the y-velocity is continuous in
y-direction. The flow fields are discontinuous in the other directions. This
very obviously reflects the continuity properties of the Raviart-Thomas
elements, which are, in fact, only in the space H(div) and not in the space
-H1. Finally, the pressure field is completely discontinuous, but
+$H^1$. Finally, the pressure field is completely discontinuous, but
that should not surprise given that we have chosen
+
The program offers two obvious places where playing and observing convergence
is in order: the degree of the finite elements used (passed to the constructor
of the
-If one does this, one finds the following pattern for the L2 error
+
+
+If one does this, one finds the following pattern for the $L_2$ error
in the pressure variable:
zJV-zYL+ZcdT(H_UY1l;w-l4z??r5*233@4YiGnnH8S=a2+5A2g
&Glz!~w4Vf-UqD$D*Q{gYuye4#yog|sN_)TOZ1MD)H(v2Z!
zzF*g(o)D|%@B-<;mwFKNpbz(ANrLj`3H==QOyChKXkkj>;JmofebBZ6tdE&8XKE
zaNHK5C4of2qPLT~s5L$^-wp0KhPGNbzCHxFiA3RQNtCRJ$lH_ax!wPZZ!i7&Og@s5
ZQ+ip9=(Yv;zLbc?dE39r{=6FdzW{%_p=
x(bRuNu93){!kA}Mq4
zyYc9qif1n<_x}O)e|3~5bf`Md$tFFNcozvDOyaz$&GokDEX`=dYD+c|$Ja~KmDOi^
zQ)#NrfnpOn{=P1`K_Q@X!Xxzkk<96(fBb=K9u32aN<;L+zPi5Ni8rVtD9pt8wPUys
zVhfFIY}W8MkeRDrY~n))KDd{&4|e1|n(9DTMUiYoQc1b|AB^kD{o9eDe0L1})b1%3
z$i)rP+C$7+8|+*$=32yydbnoWK<6_-=ER(bZqoPGRi(zaBlN3IyjI}rOB6_o@l5J!
zley5zfqLolGD)`kwH`ruv|ks7`}|K=OjthQVzhGq#xt5X-`jA~TzP{lElx8!doNk_
z8EMoUJIGqvgXVAeXiz_|1%-4z=uJ@J9g6co*wWcEaenU5`s$w79y`cfYN^2AuqjF8
z;YjoR;URs|(i@gpLZH_@XBc5np-!y3)eq6?MU@mi1Ci8gr@Fw>NTSUY>0wZ?B{OKR2LDN@dOJ4bH;bvVM=(Ek)&ubYrl(wV9cZIwRKmajo`NaZ)+}DjnzS!f9
zP3AC8smU(&LqsJ)){Htu~c63p!
zR_qgCpcWUI(=)w)0o$pDhCnCbQ`hoIq0=^OSkYf7_QivG#&9ovgT|9VI0=FKJplx1
zhcoMv-#NO-(4)ipTUgY|^Ze2j{j4TQum&t4y>pq~10JD+vLoefLE*MJBju@+EVTq-
zf#|8nE2Q-ad7D+}qDh&WEa8s@x#IJr%|!XT4os~pDDgK^=qG~{uLN`Yl99W)$vQxO
z%(o{NqiZPhY)LhZC5-kHHA>d5#)=vr(mJ8-jz~ntTa^+KIfjeo!{Xb|E8ABjeUFqC
z-{3Yzrqg*Jw=w|t^p7TD
+@endcode
+
The fact that the number of iterations is so small, of course, is due to good
(but expensive!) preconditioner we have developed. To get confidence in the
solution, let us take a look at it. The following three images show (from left
to right) the x-velocity, the y-velocity, and the pressure (click on the images
for larger versions):
-
+@image html step-20.u.png
+@image html step-20.v.png
+@image html step-20.p.png
+
+
-
+@code
examples/step-20> make run
============================ Remaking Makefile.dep
==============debug========= step-20.cc
@@ -16,20 +16,20 @@ Total number of cells: 85
Number of degrees of freedom: 208 (144+64)
10 CG Schur complement iterations to obtain convergence.
Errors: ||e_p||_L2 = 0.178055, ||e_u||_L2 = 0.0433435
-
FE_DGQ(0)
as
the finite element for that solution component.
-Convergence
-MixedLaplaceProblem
class from main()
), and
@@ -62,10 +62,10 @@ the refinement level (determined in
MixedLaplaceProblem::make_grid_and_dofs
). What one can do is to
change these values and observe the errors computed later on in the course of
the program run.
-
The theoretically expected convergence orders are very nicely reflected by the
experimentally observed ones indicated in the last row of the table.
-
@@ -109,16 +109,16 @@ in the pressure variable:
-
O(h) O(h2) O(h3)
+ O(h) $O(h^2)$ $O(h^3)$
-One can make the same experiment with the L2 error + + +One can make the same experiment with the $L_2$ error in the velocity variables:
O(h) | O(h2) | O(h3) | +O(h) | $O(h^2)$ | $O(h^3)$ |
+ Realistic flow computations for ground water or oil reservoir simulations will not use a constant permeability. Here's a first, rather simple way to change this situation: we use a permeability that decays very rapidly away from a @@ -182,16 +182,16 @@ homogenous and, while permeably to fluids, not overly so; on the other stone, the stone has cracked, or faulted, along one line, and the fluids flow much easier along this large crask. Here is how we could implement something like this: -
-template <int dim>
+@code
+template
void
-KInverse<dim>::value_list (const std::vector<Point<dim> > &points,
- std::vector<Tensor<2,dim> > &values) const
+KInverse::value_list (const std::vector > &points,
+ std::vector > &values) const
{
Assert (points.size() == values.size(),
ExcDimensionMismatch (points.size(), values.size()));
- for (unsigned int p=0; p<points.size(); ++p)
+ for (unsigned int p=0; p
+@endcode
Remember that the function returns the inverse of the permeability tensor.
-
-+ + With a significantly higher mesh resolution, we can visualize this, here with x- and y-velocity: -
- + +@image html step-20.u-wiggle.png +@image html step-20.v-wiggle.png + It is obvious how fluids flow essentially only along the middle line, and not anywhere else. - -+ + Another possibility would be to use a random permeability field. A simple way to achieve this would be to scatter a number of centers around the domain and then use a permeability field that is the sum of (negative) exponentials for @@ -233,64 +232,63 @@ each of these centers. Flow would then try to hop from one center of high permeability to the next one. This is an entirely unscientific attempt at describing a random medium, but one possibility to implement this behavior would look like this: -
-template <int dim>
-class KInverse : public TensorFunction<2,dim>
+@code
+template
+class KInverse : public TensorFunction<2,dim>
{
public:
KInverse ();
- virtual void value_list (const std::vector<Point<dim> > &points,
- std::vector<Tensor<2,dim> > &values) const;
+ virtual void value_list (const std::vector > &points,
+ std::vector > &values) const;
private:
- std::vector<Point<dim> > centers;
+ std::vector > centers;
};
-template <int dim>
-KInverse<dim>::KInverse ()
+template
+KInverse::KInverse ()
{
const unsigned int N = 40;
centers.resize (N);
- for (unsigned int i=0; i<N; ++i)
- for (unsigned int d=0; d<dim; ++d)
+ for (unsigned int i=0; i
void
-KInverse<dim>::value_list (const std::vector<Point<dim> > &points,
- std::vector<Tensor<2,dim> > &values) const
+KInverse::value_list (const std::vector > &points,
+ std::vector > &values) const
{
Assert (points.size() == values.size(),
ExcDimensionMismatch (points.size(), values.size()));
- for (unsigned int p=0; p<points.size(); ++p)
+ for (unsigned int p=0; p
+@endcode
+
-With a permeability field like this, we would get x-velocities and pressures as follows: -
- + +@image html step-20.u-random.png +@image html step-20.p-random.png + diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-20.data/step-20.p-random.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-20.data/step-20.p-random.png new file mode 100644 index 0000000000000000000000000000000000000000..af0677e009c44745a39c96c691ba72e76dc520df GIT binary patch literal 21071 zcmV*pKt{ibP)2jvwL1(Gpj46^~$1(u!t*0NZE zV~IlDCHQPu^h6%QU_oGG$Sm4oHL-3I2m3cD;gu1mEbDy7JOc0n0KV``RSie)M{ZsTnH}xT^s%{ns7RM!3EdBoA^UTNs>-5%b25Zu zPS+oH12PIdnc^Kw^u|k9_%OZkOtss6n*#m7Ku9(FF#-0Jd-7EbB`BSM5i&J`c&8Q| zorTR&z@=A)4*AcUx))+c15WUWj?X#a2MA-)gDpk-2z<4FA594#4Xi$v%x4Fs1*vt8 zdXYuth7x>o=%g>F{bD-yL>ABaPhV!`ND%ZQ&snphAdrQY%4yZfKS(E?ema(L)DxBl zV1f`k8k7(f9OXv^;b2#uYupuU0ircz4{#LJruTqL?@9^T49=$S3xUta(g$dMLQN3! zLrliLjJl+W4`^tk7kJ&?69uLn%PHbiT0)nmk_6r*uRy0}o*nn_ckuaKE@N5wiJey} zqpDSk3GOx=<$xHaI|TF?p8WcFSvP bI=JTz4t` zRop*0k|YFwuJs( wrdByMnG9l~oBIY*g?H-))A8@IoP@WL_l$2Ag zoa9^^MS>}J9M3=3(l(-m__r!Itc2cn?vmQsZ14;471$FT?SUP%WIh)qoGqRwJ;-@D zZdyX72${V1V6Ux{VxNSGg#ds_V)NWMfI#n#UgAhd)h!!FBshk-$ zP2yNh%(xYN)%wAjV_12x8ihLM^lC8Bm8w>^DmSczv#_(ivw7fe21g$VeC{EX1~E_n zW|dpKe^OXNltyf9X`=^IYPEJ~u!Psdb2 V}#Nnv3 zFS8PUrR};h)HW@g$xjta{3{m(yAqBLR5;QkDP;JB&qnnF7s{)mpge+07X*FFeLnmu zTtNxDd61?hN@SZkxiXEWgwMbe Xj6fr;@*Bdu{l?aaBL+JJ_H?M^5te@L-M}GP49D^pw)&kWtb*BQf zEFo*7GxY(Hx+`KTPaaFN$zf&NE@&q_yOK~1G^uN#TtODPD4C5qu*9cM^%^n&s(4Tr zH;GU7`HsB9uEQZ?RP=HlHik-zP$>HOQJE}eQq*g~NEKzXHX}}(U-1Os=H-5ru%p}v z%SBR) tV_m`on}Lt&Oc8H5FN z-XZn4Kb4k0WFTnKraTTf9ObCkXW$w7iZoy^=M@Q3smPwa@3qM-Bk5m(+zD;~*P39> zvNe;8{mM5FN^jm0f?iCSOt?7W^D+;dlaH9Ibb}D4f+MM1)7KXuD2QKq)3Qgk8yR*r z&VNS*N9Tis6`FeP)! nW$|lS`!9 zTyv?0qgOugnxqQNep >!QlSiAj^>V?@_74r8tfh)M47n6=rK6- zL5m*cD`L4gKE$WEQ>m6y@!&$rQ5$bqgAKqFumhegbnt13pwBz>8H1v?C?rm9@-bk; zm)dmAZ^-pC0e203#*TiBq^f^m>2!+45{@P21Qi&3&N7z3aw2mvmUQSCJMMdg9b;^c zq%`p1i6=s~{Owd4(xy|f2}*GuWu)R#ayeb|h8}FXHZP!)fj#6;=nk?+KH%XI)9lGn zj21(K(ie}ifU;U|1&w;$$s7-H^GbLpaCDZ6rgSsHsuGZxkP#S5U>T6=xCuvpP_|h* zZT+h)BgMRKc+#~iGjmgsq6`*MSx}$wohXidrb(ZWjyTLTsX`<|!TR#K!mB?|bftWg zau1f!rDc^S(=_%|Gv*9F`oNd2g^Y%{P wgxOL`o) U* zG#()t{qK0p7ywaQFT@%*cpsZC^|AE~fs78b%KHh0xl--~j@IaqUPItolmH}0GHnp2 zytWbREsx09M16myTv-h__ ;C>2S0T5JmOXSgPMdO#Dz9-M6mG z?&3V>^bsa>BhRqzlOd<6^wE307>;Ub2HlD7V4wBy1=s;k(C@$j`T*IZ@9}CmpD5QJ zSGw4#tSC3`WC#Q+7{Kj2J7F&BSVtjjw<>pH2~qmjhchM#3}L{f+n*4V9agNE-UxhT z<>0&Der-Ia^4oBluKaK+(43Sgv>Bku^eTJ!2O0(E48s@53uK_(SGBN*^{0M9{?rf@ zt!G|qpex_Xjme!@!eG&kXFZ&^upX*uUdSHAN|4%onc4u3E0}0alHKv6#EB79PI-SE z(DCi~fwHEV)T~=EIt&eyaWgZ%{BA$|4jh03@>k@;qM>TjNgu`%4Q3vj=J#;}=uk6+ z%-7F}>xRaAh#H;cPLyz#$pDduaO?{5eOysOo=7q-Wft`GF5Ua7qL=EU>ql58?O-Bs z)|Iod`Wmw)^;VeO6&+c^@4z3B9R;#I;9 E}cHmIveg=a9lc?e!SY`um>{aD|EjEvVD1g+AdGIbliJ}zqEAEpYxgk zrN0+0y$2<%K$93s5_=P>MJFEYEwd$@Xj~pj1jL^!D-tLZt l$%#V*$RYL8d7~Z zrXwjKkE%n<5~8GPwufNv24R;WylX@rH@{+EjFcAp9Zk62ru8rqLI4xNQRje1vxjqP z#W!FN*&}^L+N00drR9{F3>wNi)X%x$mSuMP9Y*gni{gXDBK|eo+P)bhmK~p8%f)#& zG!3n<{Qa)I>!#a14AbvJp)Nc|jAiwj@}WSiX{|sY-HqC;ez3(Ydf+=`Uj6PHq{IFz z9`*}OdZHKShVE27XAMWkbsPA%llxIZb~0Okm;|F>w4lY2HcxOk%JfVKrr~Hr7Hwg* z@UONC@34o#!(L-!UDy1Jw_CRX*K~0I^<;l*zS%t%F9u3qkRQ%8X(#7}*cb)Zp%qOa zeC2cAx!i*iDup1**%)fZ5jg773w)P|F!8I`xsXa5`A97ReEJ3_9@f=e0cAI&$r1%_ zDYVCU9mq=Ugy6}L;>C7{HM)?)a5M+JPYa(cUS_6AAF$h_PuSaA$u#BkOM;y8esE~% z-rrgSaUV(uinlNnDm`?EBk&@4)@9fD(LDL=n)h+Gse~6pf*FNwEPHvqG($aW@^;PL za;1n34Pq{KB1oGNIL&K-*invVPo{oz3q376*U6LR`|k1O3sjdlQ+MBoB~U@yxZ$J! zw1mH29LAUpM1pqE?i|Z_s(kJ|pPxlb;G-23MC)D4rSdfemT)h|Wgep$$iikEj5!SD33vpafe!l)j~zx`eh1@4_m&}C`wzyI5$GL~?j|Vn=BpV< z(Rtm`9fpLXE^Y~q`3$rt2VUw56ud_LR-oOrpmYuM>2)addcXgr*`BuGWw^#h!$?)H zQ2mki5I7-?=oLN4gI_H+Bh_s`%GO;BSiKp!2PN$2&GpNUXs3)P!LucM*AZSLjprUR z#iV;UvLQ~*hSiBUC1I_Am6^_1TJM2)-FHj4`??pxp{Bn5o>Kk1Mj^hl<1@Mwz5sjk zDf)ZdEnC?wtg2tTZsm8kh1kox`96O06@ }?Ok+rmN%aLgjs)Xp^L(ml9ieU?sNnuB(-^jp2vf*8e+O9^!VX&^GYb? zz {6;YFIVTNFZRN zJ?iKNe-7rh=DS&lu8hElG@+lCH81w`9{08|RBweJ*^lbZ<*wLKdwI{mi{PjY*fw6m zoIi=;b_z5UQ1 #;KhdSvGpq{3iYHb-9XBj}4^Jf6A>z!w^ zdN`o $$le zA>*VE>G5hURU6V&8rV9T)K?oC%ocUG(p$o$u5QI#)>NwPM1@pJtBa3IinY8TJ)+Yk zl++Qa)2M6-M|yMPr2*BY` >d2HgJgZbRCftot)R6;d{<0`$tm3xp1;e z`rFNA$kN{kpx%QL0uX3ACr@mk&{{Z9@<(JXwh<*13UJgpKi`!Jt)=IiFtxrE-xP0z zU>Yx$E`2~{M)4c$Z|%faV1g(_k$^<$_N 9An`F&y|tq_a=9ugbB!yjH$ W3J~rZ{U7W>=jZcl*hZm9LyPV^FWppK@~3nlePMG%cZ5Fj0ZOS_^pt zJ ~om-@iiMi4xADn1Der=$RDtj`)tm7i~e! z4*@tE8!b(St#+0`$2-)sx%15WcUP=j5yL&LnVbW?9q&u L1rMTMf89dQVEc~7E-oL zXd0ANxLZ}cc_oy}J1(}!+RqfWjoX k0lDrcK5NxyI#|B zUNAW7h_Ew%c~4Bt8Vco23j-YWR^fF*r$#|WWb14^4`kaoCs>SzR6#hQ);cW#>RXrh zxh1)IC1e?qCuEJ-=r5BunZ&01-Zx^%r8b7Hoy*9Sx00fs(Ln2t_P~LXGP}a_)3Agd z%E^VgJqCNG77C3^E0>Oat#IjN+{|PkVSfH&nH~yi#5$?0UjE?b8Pt1HLY)dABMOn9 zjzNN_?D{y%HN@m7EK@&JQcGRmT5}^|D%`z{P!%#g9cf^>Y*w)z6Rx;bh=HA2|58E9 zyVU?aRk(Cp-BlOp;c6p?aE|l)F(v0aSnqNziEwxcV6|Bsl$*M&UP2KAQ-(TS>ea zZFOso0b>v3mC5@sdoUtR=gb98Waz8>B6kmF8V96;qro*lRrWAM6Apkvq(GjXMOviF z66VqphV1{kT~IpfLv!a(CH!&G7>6h$vMf8IvHbWdOg|~UG|VJ3DYFCA&dwal0yg>5 zHSx@n0hpHTy&dpqiG6_-MJqR}>0zmRi)s29f4%~JiAC4jg v&s2!bM>9Ftcu6Fx$Peje#v(~BXQj+v0L!e4 j3l+eW%7~MTABe@HQG~H|{ zZ$OW3Wp>tW9U6{=wAc7jRFCOQjPsR>9q?e*kAY|nKAQ!hx~KJ7moB-yI2yk>mCCVV zo;Y|ejHCW+nVO9E7!4e8?Z>~L{NQ^~LODY#ya3PG9hMIDYQ6KCIiW+9E62y5o%e(a z>IsFU&(GyfiyCJ&IeE1;UPh#`m;~-yGeDjShN^*VU{@W 5Q&Y3nYa=wl&&JTQ*Z$=X?~X3Gt i}wS#Q)TU7@ {-AalosW@PRCIPUL935R86H928F z;xXYBcv8H|;^2jKlbfZ-oN!cvV9hlAL{H?4RiF6NQon9?S#r0PIVZ3)x97HRj~L zAyoY}ZDf}{r;C^}Gn48}^ia<6#u9!A0fWD<+`JO9%h}dkPb2ycyR@ubk}2}OCJj(I z+?z*!>J#{l0tRMal}eN3d@0JPECz0M?B=xiB-{ zmW8bg92$zMjou{p14L)J2PI^f^$I*epU`)BkcD%=%0fxO=IEs(KUM0O&pP`a6<@kD z#T!W{v4Xa2Wu?6_F^`5wgKK`93tdB@?6pU09h&CL6Cgu7ObIV!uTRy&>0$motYG(x za)&{rH?M@V_)-WnB7MTc7o;BFbXgwZScO%Dtm`njxRDH)5Eoi&qo?8T443*5_fnKA z? o+-UHwrn^A51>+eDCL&%eSy$;V`Yh^o0VSkLu-Sf^I)3UX4^1U>)3TnHPG3l}c@M z0#G 5s g~8A{1srlUTy;-d2XF-4bC=2 K^g{eZaKCOTu^9Zj!(g z@ML>8z1nL%kv2}3uxNS B2s3}P{#C9DE`B5!i(s| sqEM-lcM^4t0w>049oO$kR}SoRu$ zZ*w5%^}HyFcUGrrrqT(_13pjwrxKvf60DyCNUR{$?di-~%qRQcxXXvyvbkY)R3Wsl z3cDqk7iHyTjjD&2P~ZA1A^gdUxXoFMU!Y%s-!Oi~%MO1i{t5gOcmn>!qLW99Lv%MN zhtcp0_}eXTSj$~0VdYtx7kAEbX5x1gz(41!4m1-QZ4r~OU@0h2(*dFDCsV0q*FTrH zk*ce%RGrGNfR)vpSTl2pCiTo^NI4126%gG(p?-wxg4S242pG;w^cm?_;5Wz@ymt7f z;!oh8!2bulV3`^E^zTS-mbW?d>`AGx@Vz 1>vC4zMuA4m<%ki$XE6EAuTt5Nu9Mv|7u5sg z5&8xCi02M}2>z+~Qwjs mohV`54Vgx({KP01X+RbG zILkmslC7w~`$q?lf3puXv1RzTo>KZXa~U7PKldl987AUmyuxfaq(Y3SpeCx>iCA;<1yVwZRAjX()-a`hFe*s+>8b=3_{_JBD9!bEi>IN-w1!*$qbYX!_L zXq!Eb9W5=mMv9_rQ}$D8>npyFt6#S8fJex0(0_saC!D_E|5p45@Q2_@@hl4yb0Qna z;FAj%VZBevH*o0&Gk$w=CrVh0cPG=BnzjpsCtEx}C#YyWq~=Wql@aenT)Ni5nm^ap zZ>Q>`jnnxF0vt_ru~b_6P{Dwd`R6FvS9gjWpkIK0!SMlqCVT_F0nflu77CQtLJi<^ zs&3UJMZ+uEmOF_k2W7)3Pgt2$(hZb6uG1x6Gizu2$nxY264b zCp0-#sT50TKE*N5#*Xp_H0HQ{3+zk1xD($nk;eM@yb_g1@615-3*=vbe*^v}eEW)j z&-i~7{}g;P=fufI5t>9q6e{JTg75~)swoYt^`lb{xeGS+PLwc}%i~#3kc>fa6dY{} z`x>ff6)EbWGwiGnQ6x3_>0R4Tmdd3*mV@ }d0}>@*Ar{Dcxzv!%CvT86pBaS5%Le59`T}h z0*- e=O6p9?~X9CtDjN@Jwz0H+41USMaVn@aBho-98R$*IKIIxfxhbCkLYqCh9Q?8%N( zDuPg?XfSu~Qtw;9vX&+;6>1f?f$W($0AGQBh5iFCJNyZJ6Fl31;gbZOo{cnCx!Y38 zBith13bkQm(=O$Uyr1~eyHY|P&^w^Rgf}3T@Mc5w@l<}5E91sUbt=0GQ$fLfC8f4c zB`&?_te=0*-nCO{RP<~|-QtA>W_Yc8xAD1k+olm=KE@+s@|lvsm*sQp&K%5Oh}oYZ zIGHZKHKiY3uS@AJ<7w_q3H{RnyK{uon#a86Cmn2o#?6{Ron;~u=RfD6IrQ0q3jUQV z^Hi!OTF&~wh)%Y!&MT#Gl~}Z+=~+ixP55VTn^ULKrq#mda6<-5=vRIOz5u@gzeE0k z*M5mgJCZ+8=`r|KH9as*W!s=h>sOwyNCmz bCtRt{3&Fq-h@ln zZsdhbXw%_Xz@=#MF^*tQ>z^YqBHL 6skAdAT sQ zK-R#qGj ed; gHn>(VHS}-mGCEtmLKa0 zoM2O@y#uj_l)rAA6S98!MK=*?m@cxj9%W~6rQ-Abgo!48ujH41jV3XZ0o+wU^r77T zC6nScee~f`7{jeu!k~oXc|+_sg}G>J5YQ5H`kBGA?+0u1%W*R|FZZT|QyIV9o!^Cb zD<;F8wN`p@%x8upwcorpgEbA#k)ohkROn#gj(&^5_{t*%h@J?GGUtB+1|&UC_8b`o zEZSV?Db&KNpUUBd9jGCLsRntnto+)i^F~>3dZ9e=3$deq2N27OE0p|xuqf_83AGh` zXpZWnNV0UXFtbW%aHmZOs_S>gN(NJantsIDJ5ZFDQW8eZqvq0dZ#*soR7xZ2Dmt_) z=WMAoPc>7~48@aH 1P8^pMUM5BNv>orxyoFt51O0)T z4=U^D1ZXPdNMe=EdXA;Zo0G$)^85%*iaRrXL2h0NXQ}DJBjkks0XxM6jEYR%hMnxq zjCdwR>mzt0-jT8#f?&j2*~3bM66SKSkTT|ZD03!e1VH;>_pQ&aTHh&G#<-Snj*~Ra zG<+D8o`4BDo>$yY<&g6xc?V6p24e3=?nDWdD2w47q2B?Wpfga)$wV6&@p9=_D8c8N zgeXwZ`A*4 PUMpF>|1aY 4bS^U zH!@Z{5K20Uipuo_;yODVR=uelbDXL ^Zo;;hePI z1_Vd-h&(Nx%djO#Q%rf!WmL*`4NZ#jhxaKruY^kAY}UXYGH+(E1HNPTJ5q;1p^B57 z6|cFVeeGngms nG|d%# z0@5xfiP>et)vw**O-8ib!=(dyfoK7Nv+bx@zgEyVC)Jw>N7#f9< aDBYplgA)4d zJ}yd#C*T{9fiFlqbO-D*P6Aa-a<+RO^O?(Kk(xYbEpKvnd1d9&0L_u2%{z`XGphJt zML|J^NKR)#Q(55Jxoxa_H`hWg*)l$P00!t_+>A{R_<^?@cYC3y>z(!Y2~+Px3Fpx? z0e{-)xQ85}895{UhKEN?8A%`tk!55&Rk=tTJm-(RJ2s3PC&2FLK8#w=wNSZ&BOR9s zA+K^DtYRi0Dt5Oz#2}Rbb*;)5&$0T-2t5L?$RqaoJS?PjT@H|7d!Z+8noynKtRLwL zO{eBf%FQdG5Q2OKzFR}@fB~|D?tu~e1bsx8FexU52vniAIjs8+n%I&@(zjNPP3yRF zLcqW-dF7fy_NC0INVaYE{BbxMf@3(|TB+Lx|2wWQblX}w*Kr2`m>>hvfIb)1S%VoN zacPa`+(x0Hn$9dw1Sjqxzy9Wx(BbIZonHV2I^Yjr0(OuCbb=;y39`q~L4cDkG5uo6 z*4wKvp~5~_%Jr(dfkHtLEUd;d6+Oz0Sf*~?R{*tn?HXaekIoO+f+6z&8PN-pt{TAR z^|qrWwo&LBUn=h!R)3M)gAxw5Ddya!Cu{NNrBlmy=n);z{RTWDcQ_I*9c|wce_!KD z5b3sq>Y_A3DF>>oX`tgQ);f+*FwGRhqP()xjwXcNX5YUOVP1S69u%m=
1f zeEDy=bgO_Tb>)P>h1M}NAtHXdr}^PMD50}tC+lWUlpWMTj}V1+z!7^z`VG4dO1QKa zWZ LS1X`+A#8#j`k^Q(MC zsB2oY<~em8g*K1CK!1Rv_aHZ~gtNF2@lCPkjd?rZ56A@MGcHXT-2o3fjDQed+Lya- z{nSjCYkE2pdo>&l*vgKi&5z4plgi4k5$$ogiyb9bU^ZEO|J!@T64VqC%lk{VFt> zzvg>T#d}afZtGK7R>P%7V1j&u9+4IKH^}eM9v$J*WVqDBsmCke(pzhat8L9xqEI${ zzG_a1t%RtT<|p{yKg8&5h}Ujh;HV7fry`CiOb)}ecr1^*ebd%7Z~L4k9L0Tr(tA)s zlp`p|@;;Rw_a_LT0z4xt9{v@5k4Z5qK)BT1;!Y#};Ba}7CS8*nbCO@aIAZtdHkI%% zmboE20FaqE8leOFTx9dtGFC>9)0FsK^BB@Rhskq>qwY5R*irW9$jvLEmYrHHrN=1- zqi2>)dJm8uIsiMQjP3znA0fc2A_-oNTMcvjRC@6JRzX6zS@`PRYCM%4uVzOlfF^r& zmhG< jEV*@W zg#>)37?~Fcpb0nu8HayEpD`*%L9!6j5VsiogljbEJ6>qhqN3#$ +#e{J5VISO43$Z2u3yUg1WeR1>X_ggmOD{G zt$@CVv&|Oj6@VG3e&JrEhrR*=Nl1_Q@&%G`6g(*=Irp!%jHg+e8TxOkxRgVDFmb11 z9nr>Yu<|Z41Qk+)4{veaN&_XkGH$hp&}tjop35e;8NxxsWQ0{tssXHwF#3d}A1c$b zqRi4IJL;RW-pst`{KEQkL5@p^Wge0D&>pjOoD@kGM`G~n23#7JvG|cE@IpuwthbS# zDx5_UI`xOo2?I*t_!xeg^?bpggd2&4V^u%}L7AlSuR@Yb?H-(L3|WhixFxv *{e+DTKD6+ZJZg*`UI&S zsHt*e%N~w}bK=KabK9;9>EX6ahCQa@{8TQ68fa3VLWW3D9&h;HaL$?~3?Ju9?*WnC zgA#H^;6z B_ZpMJEg`;}dtX44c8W-aAJ(mH5nP?$r${bgBD(k`z z#yOPSaJ*#YxMBeP)w@=YWncjA0E^-dlrT6G0vz>%zr{ooMNgPL01D}sl#5P~d+ZZ3 z06pg#WLcCN^nO{`7ml|h9bFl+*GBW}RG~TPnM#=2M3^5gHd)n@mDxa~JQHY!yo5 zClA$iCK?*`?QiH8$;~U_EIuckrN*UBTXV3sCs5>NO-}*zJM;*gAO}3`(H$@(>}Hdx zNK)8{k^a_vsjm&S)~OkAfv8Siu41BsTSAYB9JV?VQ-t}05aydi%H&34LPeH`4{LUJ z6d)U@;To3)MypwvO8uNluRY3H#0{IoJ5fRhAz^XPL NjL uz&_gpyx3jKtmA1p!|Fu%69 z;?idWrGFaBF#!*NLI+?ED7pva9(fP3Ts={oWXU2<^se0=JFmWhO9$&S6QR(d(n)7T z9g&T+8sd0<5>zBkpj2T_8~3fV!yTpDeS@L7I0Cp 9q!%FBw-AIER>}71@(uv-U+FO|slh4mymnbV7peLjw&|~)nd5_10 zPS6Qn6 }BtlPs%K9CN7ac3bY8fD*w$K$yHBnm#wNy=$V&$uAghS^% zyMMQAkSN`GQG>efV_DyUh~PEwiFKqpRt1hzy9XdT%MB}`OYk7!3S6o*OZ1*LubAlD z8BOL^o|b)P(IaQ%4D=WU ^0BQ}6PAllFB>`zQKTg~xYKu^# zfT{6zJ>>Y+1SDt&>3|GP?Ppk{hIvxA7URNt)%4>})s6nLaN3WMdr(3r)8@*)6_+~Z zIRVcG)_fIS0I$FVnV@^<{0jGYJV1IJ1v^D&xb&IwHwIEdUs93R(pSP 8f?gUAJb`9|a(ln^a;6j$I<$0{B`^GsTLw7#;p+>8B^hoO6<2OJ); z>#^^#7aSGeW!bsqSZa>XK8Dh`z^cqBbfiK6qO5XS!Y%-%k|t9>06SB{)5; 9X69J5j @vzuTJwT371rET7!vl65vfv3gDUvK9;zzSeCsV>B zEu7)C;Ci|0zP79atgjBG ^*o32At_Lj-bigM&`ccwkN9z+3y~0!>RiB(3Y258h{dSfO zyax`3OTR#-Wfmv{(jE^za)(nwr|4u^*WpAHHCP`Ls#hJ8Jygu*P@RKv9GBuz#}bat z>f}?X9ZjG;iiN=gj}lS=hHYG` 4VlAVP7qHD64!6$RZ zpetY%RNSE4gA#6gp#%72rZR*{x{COeeeR0B;Eci1#n>k3VBJ{J36PN#6P6q(l%A@w zN XXC4dZJ^|Fhy3=L$=D?YHz}&^%8Fu3*)Sew(7g_;rmZi z_P2(L?F`^^8<*a^+`JNkShZZ5yX#kTcPjNnhQ|GRodL=NMRSh81le0m@+)*i9+7%r z4;3T@q%hAuB6p-qLQmiX#Kvbnr$y;G^En!=r1S=rv@6-uj+W9lQhqy3+1#NI<63H5 z>cZ=t22!+xTI5==?@B`+0|S4p9EQO>XOsE#a!rA5ZKeZ@f3QK%i65+(r@leA}psG?*-gc_?{ zII=;3Zs5{)bd_HrccO$ph%Um<-54qvk3_h1q6OGw(JkqqJs`+?^ckXOZRqU8)LM5* zOUxNa(Y3GEpMg&Vt))84T z@G9qC8Q7Fy*~Uws;7c0_zS&Uk5dp_CY4T`Q*qfO;T2yBT9Lz9^*-6iS7)h@jjw;0? zC}~}$ABMjI2u^x_c%Fo6g$% N3#zYf|IVdzc*Fyb_`ncLgHzf^cMrv@XTO zshh-PMs2W}l$)7}egen|nji^K>^mgEpo`Htl0u-egi{N7j+YK<9MGN4ABZN+X2-oS zdqSVhB+h>i7G}Lev4>!$rC1YT)X;pK7a0ELC4 tGV9}&=Zi6b+M-1yqF?kwcs>fb5mdZ z_!Y|Q`8Uq!r?QYtmrthAz7k+(1A;9|w^&7x#Y4p`d*iNu)Dohn6&$$c^{DaWHBodM zueffZ+m<^~LRoLhFwiO)L!O_ly;1HlZV%Nm4@cV%cQWXwkY}KSDrAS$A>|@{+ z4tK62piR%B@B(|Ym3~!<6EI8;PGk~0T91DYC78DseX$YcU{7_hh*L(SqoGzeN&aw* zOHp#FggIxaX-U08AA&cyY0Uyn>aEhmx^f4I^iGs;s=#NBn^FlxwJZd2G^-^pRVrjV zCma1Tch1=)3gi_T*mro*^Fk_8B4U&vE1*r!tUuWz7h!U!?Mj0tY+*t0k+jj3>O{)< zg7Y4N52ldLbM9!VfUaVLQ1xp$PYWkG8)lTK62z^(Z@oBOQKt>C`pJ%du+*SJNQFXS zTY`(90V>MC-;=4_ixD3~@zDX&oi_qYRIhMD_P^Hwpk5eC;Hr(P*T^$qFK;X-TAa>t zPs(J2ik2S5o?0R7BN5yM^_xiTcLY+5)S792xP-a*J;==~p eqR%JC^ge<34o*N-aMI_web Kvs~K}sGqSuJ`(#5)@bc4cTEPj8#;*b<&gI!y1)brRgL+j{a= zl15iv@vX|8D $zs>Zj$RfBhTMa;{3N+gCG=Wr%K&Y= z3WH1*M#2DTAiy3tE+#~J=m_o4_2L|%fv$R_lqt7+M>2p+)NevC$DAxu ze#KKkC2Ka)9WqTt-BHj}fGCJ%<+x9uMvq1NI_8v8bHhfaOs{qX7v+t5xcz27Q<*+e zG){~bNkl|Sg+;G?qcvXTuqnoovjd!QBxTEIMUvu;JDJE{cwXY^)fUSL%RSW >BscsI%ecXj4jmps8wK(sM?kYo8rO(qHkwji as6;oo`iXR{G&ns~II%nQ{V$=5&86Zn oZ5}w$Ya)*wOInrurSz!izuoOlA5Q*>1!S*S)E-E*$sCiSfo$ ^Tt3c9(gttFov*cw;P!RCaW(NLXHsUsQev9yZh0Z6Thp9gsR_DqvaszI9W z64IhCO2}Zkhe**{?qurvgL35?Rf^VPVKk{!pvyO%k!uuaSoEohn>PDW_{G``$)6`g zN!KAQx>D1TzG}7(RpS~I+EL)Q2avP8&zm3IG503-poGmp?dyfZlHYe7w>NIKrZ$}- zWB@(;B1|E952ld!R7+)Jucv+e;hVe@3qOpnK{b_VdL-))idJPqN~_CAX%BZqyE^&W zTlDyjk};I1StnO7dY*(jNobf)IQlU%5{7!Wyp;j3#hqkhX-jnL#IYnrnG3z1zNHHv z%aG1%F0j!GT6#55GDjhw(N7r50fcB9*FER1dF!-n%TVnM{La@- o zYLRp9)>raz;=Ql+=2fnin^!^?**y4;7q%9V{ML(*FbW+Bu5rj{@XPaM{9?SE{u^7Q zJ|~#IwQt4hC}y*F_7%?(`|@gbgcT{7nvEql<9f)JaIgk~!2=GQU`^f*B4r1!TWgQ0 zziqi6B}C XvHG{sM7<>t8ZFd`i(N?Tjkb4Qyyz*sp_+j9EzZ$BZ2 zGF$`7nfV+mqvux+&chK I}w^>jXgu&x-< z8y-eVGA38_OkhoGS~Wbx+FM(DxO?DBZ{8BB;UJ;0uo*Ji{H {V_7pcHl*B)l zzS)sXpI308^|*M% tshlk} z!KV~p`g~-=FMfqJSsqN6dOKigLW#bFqhT~)3TsE9a=8jLt?6F3q8A6^n~{4^!n&Yk zMynsch(DD^*^u_O7IonkuUvAPGghzXhHBqA$6tp+@W04)2B3OQRR2nOPJI(UA&{$e z-RozYO=5W^tY8XWj4Bj5dOKcd`tg-MO}qCAM?Xxs1G@RRe(5gm*SYHE!OfLOGkp%T zFL^wl5az B8>tU>iff_LxrBp^f%x3A;OUx#bK` z3$a;nN{9!C@bJ0J`K%YHTceY1Om1EY9h^wH+)0oo6;@l(Ov7h5G9TmxqY`1K9q>Rq ztaM}>GX`1pzk~YqsddAVKvt+S!%-A{X`-cwFE*dEI6{R?1yr$~Af;gkJQKu-l?u0I z7~fUEelF|@XJ#w(mc`*DTqajA%IV^ojI=1^%@d?IuY|K`i+~9ya5(_WH6T_OP#OU5 zL%sd&%ih>B22MCig~Eh-V|b>uf|g|i1lz;ATxtT8II{(^SIa1qsjI %{Bu57dH<5Qx6s-$!LGDCG_q8oBE zO?1R9wBu4IPGRk}-BsSVaK^8bn^!^~%sf&_>0b~j>Jo aH)?fN@Sts~7s-9xx=^EPmn`%ywI^LV_u z*W%Y|D_5VK%Q6qoJ2QP>f!_#-x?S5tI%vj}pfqoD7h`Xy52nSFrSm$^Ihk5|hOA#{ zqR~d}2osINvJzvUX9D5r3Wk;?49}cwnAy?T(^tqk(a$%d2U*!N4WJuvbfn9NBSWhY zB&>50$gW$Jn^(fQ1qbpY;kwBo&+Y=$taYyjWe4C3um`>p9Gwfh#VTrsCJcHGwG8v8 zohjk`J6QDxTS%~ucI1iQNQw%w z+o#q;S^1 n?ZqU0Tf-+JNnTB09$TT=z)>}D=sJ*udxhIV88o%KMcfXz?{uOE|qXky4ROu zONd(VJ2rjyRlD$s0oAT?ssV+vnXgA9B`kU;p!DXIa28*9wkr!P-l@8kfu0LeK7B`D zJ=nIkzX5yT0DQHAQ==V_p?heGyEywG-WjI@3qs!62`4iTYnE^zr0U5Tb!6!ZO)90u z>((2hqk(7UjAlmo(Ez|B@Ms=V*35l_FV#(4+R?zn)vTTM-k@u^bfllxTW~v0;86P8 zmU~b_5kQtTuGQublT}~LxbdLO )>k?b5cAVsi4_(oa1=b2t&pu1d`#jU>UX8?`7ZW5 zn+^7c!XHZvu%jiJn8Gnnyi}dt^(W*)g*jnx)_3-1-7_)S1G^5-ukTo)9uxzWq^0lN zxZJ!FP7_pd8kUyrt&jP(2YuD?m@}^dq8D@dEl;v zMH%HPAkYLPXoBM0^jaz&zm7UCp%$luLq=v;lsK%<=;ae|!jJ&Pbn}T6H?M@d9e)2E zUo&(p9O(OUWbaMEcIL ~_zObfrC lhO}jVoR(xlA=8^FT`&>!7)-kdYN?$qxp=hvi6edG8HT=_+iTgHQ?d1N2F4?H z*M#@|QW4c#h0LlD!SRT1-{LGEXdDS;x$fI$dHXLGAjpLfrn>RBnHF-fuy%`;2fO~6 zW%CNMer5VM%m)46wHmJ#-g^FZg|A<++bzB6Hsywu@KZkJe+;={I69AAs%Q=qzj{>D zUr~qa#>-#SG{2-pVg(u^vh<@*OZX|D@+oaeKYoc%`IJxj5&2ZYPx+KzET2mFDWCF- a<^KnU4SkT*qx4Sz0000 Fyq2=n@G*QtZM`5KIK@Zd3$8 z$_6DwOb`PV1Q7%&MJzgIsF`7U=FO{nPyGIPZvq4b^k;o%e-Or*dAHZy`|Q2;+C(XZ zCTp@L`}>Uk-3QQQP4>TTO(1NtCi|PM34~47WPh_Yfw0M%>~FRv5H?wp{ms?{!X|67 zzuB5V*kn!iH(L`3o2<$HX4C%e1NeuUQi>4Ln8`p0`MVFQ$^M(x1j64kr4*%9aIOGC z2&KWmp$U*p_9t2s2#;U^Hz=i~l)6ka%rNSI)C9;T`_rungoj%Ift+(q)82mb%{fm# zmE5^g=Yaz|b?MS9J15# ;AsM6lO4^P zK-gf71JN @V(7?j!o#YIgWAgh3~=%}dfJ@R_?Y<<#69XfQ( zh>fY=rVxTs+JwU<`weRXVbB@^QO4G7-u!H*jw6MrR6+v+7l;5#0fz$8PN0PJb5#iB z1N(sT=%~o<-COkR)w*-%4jnsY#>Uof{O>-+Ci{n469|JAxDHYXpHf5m^uBQQnka)= zT!7#(^r*&wQ~&{~^N>^q0a*a-1*#$=LwcY3;+!|b!@|&n!zMe5HDyPELj%z% !@xR56nJQ6@EglTM}pZl-4;@08AEz{I>T?j6O5JIRr`@7G($^Jq1 zKOK%X4n#j(wrt*j0XOQjLI`%8foO1Rf&UoQC0 Cw@Yv1+$3BBT+|M)1HT z50owf-)vej{x94AbYdpp12s+CUQ{&ay6dhbsFIQd@+&8_AmjvbAg>E?`3o;*#>D}c zGv|%BrjAZ((Xrzxr*}H3ON(Z?v5_J5pOR8Ysn7(-|84tU_k>c)(yFREFS(@eS6{W( zNsUyX)Kp3;1qDJt6bShpK-Mn>Lp8S16h$}QIPuk20k!exZDWS^y0Up$i3{6HP;3#e zBRxE=Q>R{MrlzHL?9?eMC9ZxWO@RELwf|iZ1`r6~ho67B_m-Qos;a~CcV+plP#_j? z0E~h&YAPjEpeXoTfK&>MQJ*E>Xw!Pm4?l(h9#dX>ey@un*2TtZQYyO+C4|d^q6%y; zMU{mT84;P?t$Bx@t=gZ|u~Vn))cD5R6I`e!K>lyo|7bW`-?OV}+Kw%o!ad&oSsA>2 zho!so(_&*n_7o%(9*A_ik}VkzgaJB*pv0oY3ZzvOC;=K}L?uBu$Q(l-G5xi0LP5!- zNzb-$uS;&BRn~Gw;4=Y$X(Th5w#WdKG|lRwipBX$7k~C4X3OyKtZvOa_DW36>e=hm z-0U<%tG_i$N>JKFeEZMZ|Dq>s+$!)@@@>?RiyAc@;$=L#4xB9Gy^;p5qA(S2nxm zc83)gM-&&vl^l#Uc@hu>=m2G~C^dt4R7xR6*B1DB`in2#F?=|nKK$&<`S+i8!>L-i zn`;z-YfMP+3mN=hVrbN+ff8w&s<;9>OHt;=L1oty+9YImYTdclDZNh3YnINMh;RRC z`yT}%04ao5s%v}qym-U -yyyMpae=OiwlznDXAf$v~48mkW0ce?^B^g))?q7CaVQ9Hk5g9QM-4 zn6juiB&GU8!km?rw~QKj=2>R}cy-1bKRiG9%ATyORs;gk L2 zC~3hhP{>iKV{t;p!k@N8IPIHv?!W(%jw4U1@<>Ucju(Lq2dQ8;SYfePtopw({|ky> zAlkGn{7>5d5N$2M7n4#d#vU4a?HL6Hwh$(d&QPll8VLa b)?sHSPtXU}Hu&TALP+?JrfSBMYTVSuCnRbYe^S6W}RYI*0R=fj-NiO)S7U+`I8 zhUWGOT9*ht&VvLY5E79NI)9_Q`0f{*Wu+=8UDq{DV~i0(q>=#|Y7-{^Gxk5R%xHu_ zwt4TqPw&2SWE86q@_3t->b3?#AP6E9dBf6ge0^q4V*KiFH}3rC>Fc}cB{g*`%)l=n z^Y-fz7!ktOZ{fBs*Is$?d6s1ft{!~&&eY`GE?rJ((V|&=LRkHqQz{`v6UpXZZ~qe@ zL|rUe>$fHhzxmwi3Khd(sUt20e`h-YArJ}?hW1qv&wlWpf!(@p_~GaKhn#hFw!fwp z;RYxJSJdQ6ssR2$>WYNF1rP$Iplh_MTCC$OpBp_ W =F(n7>$ZzhT%$ zj=U)(V_Lh8%v~!2qWi%brVJjft}~krlqu7arN!7+fCB}nsjxeZyrj5JZCds0)w55t z=9xA-K@;)qA8h||5CRZF0A$;a9rrx&AcW=EmmhO*Uxv?>=#z0892&sD2{DxlGRW#9 z#$N$aDHu8{EE8W27&!CO&kag8ZQuXERqaQfTIJyYl+LKm6ooP^RJl;&$AM}b6v>q& zt(L@^B#d%zh*cOuT(LYq)!|PFL9`Qg2Lz~2$a5==u^()1-7K9DvS9ufb3Q)f@?os1 zLNIn{_^N^nNYs@yNC1#_5F({gRTU`OkAhvOC^GD od_q-XR*~B)9brx-LyPvN)RblUUCE|MG5`Txhecq4@IXJ| zp-VUc5~j#h;e7i0pW9@nyFAvYp% b= zYW7r>?C~({RoE96UlNt{jl}ZA9K*8o1AAITIMQoMn@N#CRTu@O@B RKP-ZS37b z-v5;eZL%@}OnmOy#Ii-ryKCjuT&s6h1QbvTTu4g<;bC*otWY#dk&+ixyNhalD5}Ll ze^iM~sMJyljrLo;u3i_lyYkXOmSr)j-}lg^r<}dlZew1rpcMFx_hcZ1uKPQ13{py; z7ak7?sAf=CaoXfbFH0#YZQ`K*6YakV!p5cfO$B=wK5*B_G*&JpbVS%_6jUaZvP!D= zmsk`9HQ3__-(`qhq2WKqq*xwLq^~yFUDeEVx6x!GML2~3n8v;>;%dm?n{T)Qz{<57 zfBAUyh|^ekO(O&zO3o&AB@HR1PX+;Lcao4$l9nKqtn~USOKY}zBtHJ$-s;v7QVLzy zUwL_k&sfm14XZ2@OgldIY5i{!3UEZlk-5|Ozse?!3lF*l!j9>wQ!sKq@JfX+Z&mk<>&c{31Cc zqjg>jLdcd)dp=ln_q8Kfb%i`$1lFB62!Rj?4QK0CiQI${mtAqTWm%f0)kU^V>6w3) z{RctVI1qjAnbC=h7By?Gm3z5HgD_}lhnGqMCW1c8<{-_WnoI8)A@B-MDZ~B<{9?y1 zK1}n%fbs5&FQvss19 UvpbpFd*o)NBN}NGIs%{sLMnr*7glOFO`e =Ts`m6cjlj_Gus}H4Iu&A-1e-|K8lGLU3Kz0SLjRQk2m8`E5;r{3qCd4TOyY z(Ulv%-#q@wTeDfYj~~`mbcmFFT?t-F<*idLWDM~dQVsMBg+++pC!ew$-Fo)}@ZN`? z*KC;Hr9Z2v73}z%m2fCSZP`ZA>f8rUJGC=_$y27<;y%l6#%d~$I}mNWWhG&ElJ{pB z_ulrJ!zqPS+%Kf5j4-V}9u-okCS9q2hW*z-7#MR+2#Tv}p1u71n<99PA`HJ7F$O;v z{JOq_$y6`_OCi=q-!B(;%z7={rvJP(|Gn|UhIS{_9!Y x1L{6 zv$I`X*A6*dI=1W7vQ=JmaztbHem%nmbx>>q k0sS-tFhT4dmZpeD;we~5@Z60f@ z#37riE6qpPwC@V|?yIhQ`L!9A#5I?k)z|nuD~);Uy5>)i|E)-vL8dMb88i3i*3Hs= zet*lnycV7Jbm&6k5@mcc3>yIWeXvYOQ5Q)69w3#3VPi#wV&j)*%zfi?&iyu #iNzbx6-j)k7L`Hcd|QFSh><2pca2-}`LQ zr-RNMmcc44!A{6u1%pzJdR_AU#5NNaFHeXJe|_2urHk$y(2 U2l;W)A8h1J^S?R8)&olCl?z*-cAV4d~is)tYZF9B}fG-Yhp>q(&js4yE9?z$L6e=!oC( zRP{^2Fem$QyU0(tZsH5CYgCn$c&`}N^5PNuLPCk#rOFRt_ZDpa9=kS!TQGElMWA&@ z )}H@T`Ax)yAv+G8GSD^^ zF` #vr+DkZ;%|2>R=Z$( z&ynXiDJ44d CG0!g@DI7@IzIa_K{N^iN|YK7qQW-C^ox z$FM lib%4v<12+|K5#V&^~b@df9c4&bF1Ut6)|hO;kYRduELAoopyGEfGa z9hwfoQC)#OJFxW!?AnZj`{DN@Gz=NJ$ZLy?Tx2z;T*xKwwtaEZin#a?T{jlK_xX^| z&dM9A`O7&uO0Km&l&yD?gc7Dx<{%1^b6HagUkN;g5DOjKmK}&mh>}t^5m5hJ`!9eH z0Oy=i`sK=1m-Oj GF^K=6d3>si6aKJAcM$iAoDz1Se3NocOblmz)Ez?t~-Toni zdR*ROV|XOxTsjOe3QFMiqpSuyit+7E9H_v7a#$RxQD~orcIilsLSh7LI;4c3!{p!s zQDJP^_d<1j?5WX@3t?^Ba$w{`9j_Sa^0_6U4Z=_j*l0x2W&uDN;1+xy6z{{X&Di<_ zw*L%w4Z^}%ZmX~tpZl_Vk4{|hf-U>ce7t-3u!9 K?2%{iCYdhN7k)$KlfSo`A zeg#W`2j2PtCrN@2Trg{*5NFrk-o{(KI{nt`uLtnhV~?pHM)x~Ot90=|VK8vX7==b* z=r9;8fl4=a6k)?|6josOK~%Ys9EoNLXq$?>B&0^cX{UuH^8J0CXDwLkFhGfR#WiQ< z^;?vZ%6vX?H1BdmKvD|bfNp?LcxzEstbMzRn?+|YTC~vT^VxO#`Ge2=x%Z-^3}$)- zIZ?l*6f{O%Zs~l#?Prs|j!BJBQZ>23Ki&S_Yr^`BsIKcTz4khpH~Xdx<`=>xanQmJ zA2zx%y9yqG5P}>V^6bd7BVI!k10^seOa)5?bD &KPX9pB9});BrL&BMx6X=9jSOU-oB9&}bo&>3!iJF&jQzB$;Nep`jtZ}?Wq?$S zKqoK=bb?xeT8V8w{NP3z#~vR5Bx%UCA=idxHpJ@)C_Z^51f|L&r#UlTUb`_hCbFp1 zeZz$ 4!R _z;N+a^DB?`;59t@!@2DV+!3 z(XbReVUB2c1Y5aOB&o-r8uJ*SHm?2Y!byGNhq>UDXcXce&!zzaC18)#c6`Z))5jlu z;xWJJ*O(TN;%}-|{JHk;1|a|`gxeA$2c6S<dGIY!l-4P;Lz`eE!W8C_d70oV?DLuF#Yeq=R1MQq(1RjY4Cia@x;>9X2=DS#o5LZ0@(D?%g0(j-sX(2_Q zwCu~uYlOy*!&x2D-A5rLY#N!h%(&>D>1iqP0LD)ko!n+)Y#ghp5+~MOROfz)W~jw) zhrjadN6ruikf&Z4y{GdJIkB3jl2fgLS$ BN0 zyXI~B^z5D8B3BDF>OT@-*pNCy6CjV%{*|7vaUi;U-M25F-hFr~DlDP>9&@GfoQZ&w z)G2HP8i5Jo_Tedi)Z(rCqC*`&ZZ3FqXs3|_U2aoSaw0)pgOYEk_T{&nbb4a+ +b0b%AI!+w#5`m-qUxTZfvKsXV;fumL}uQi*-lbU({OYKN%iJ@dNs>(w_d zAuc+tVZ5o3Qc2kukZ8i>@7cc+ga86Vc8jZAH=f*TxGEF|3D6yn@pd0JoXk>)cWCc# z clTyFEWVdwUV{xUg%`i>_MJ$x^LdSi`ze@CY`K3M0lk&1H9H8 )Wk!*Sx&EnDhofN~NR_XyTy$p8fm6(STPHLg>2w)V+7~uP8L?SlY*K zjm!5^A Q)@zK?YkToI07g-geu>*Fx-!OFm@C zm2r86j4&fa1S)>qf@MO=;PL!EMLWnlqdvd-_VdhFC(Z!nI@KpVH?i>KpIZ;4wL7J6 zKipez@N JHK@6s?m5M2W{-T9UtX$B&qccvpB^Th |f>y8!rXl`DEeZ%g? -s=6DvrJVin!szMHgOlI)HV{H=ObONzHDfyh2hN zr~#rw`oU}A+k@Jz@D{)-0nuQKgEI%AE#OE43kA_2{g5UU2NaZqGhX}oEk2>mjA6sC z6GFHSR<*ggSK&<|5V}I$tD<346$m9nXVlI(k?{CY;=+y^>{T`w>uhUrN_OWic^$iS zJ}I+JZsR-ncRxq}Ec-WsurW*f=lngR`*pwGR%&X%A7E*7g;+y-Z8tyn{m(8w>&zd2 z**17kuMvIA(h^|TlmdJvOkO|W`dE7=0<+Eb7K# V_ zZ Y7y?a^O-Tv zS={ou%z@YUth)TiFel+c0(DDX0>VITAUX(zaKm>1o*k&&1mT7f07qy`gtmYq6M7_w z4qa#YYsK07Zg_d(G?V*nHrsW#TtBP%m#l5NaQkssuyOdn;X?r_BuZ;g;KCliQKX+_ zH1C<)>AGu%HgC}!P0EXh+P^6r4MZ}45=?t~)Xk@ROGr3Vb(58j%NkhPc5U@;9x?dF zi_SU|z-J%7$K9n*eWYpNISFW)idJbzkA %Ib|h)qO#HqvsD*#a@~ zU>X3J{$T8C*l1~q*z z9I>rcIqV zq5YaA?K0RwuK*xa!}D;AL23O+iPB2Gv1NyePmUwN51V#xSUh#=a8^+(wjaRHd$4Ld z=C6ZILsTeQr=mj^GU5;w0$K;iKzk5ThlGw?ASRr>_Z2_$x=Af^QUR=3wtnr-F_+%L zsw)K3;PVDq+LXbtqfJ+I=n19ZcA=;MyEkFqPW L)Yh<=SbUY%WK^Ydz zbUu2=Yc{(eME~gRg$w+%TXa5@rQJB`QYRLm6r>610~A1^MIkB?V1R^G4YL?lIobZS z`1F-mVv-}d;Jbg?K5YJ7 dUpK zcIr@7;~h2ZoWAkPk`k$9NrwSL0~e^Q#r8rRD96tQ*i!-k2@%LkLB}j)#39@Xoxu|D zTd;VrIv?U-1^dKG_c^oP{)9l36uYjtvDNv*i lF|ZV}g)F%toT`U$YK0f4|B!}e_uSG(?d z=HUsJW$8p4IQYCJ{kE~RMBz1Y0xe;6*P1dWg(qvewegh|;VIEg?9*S{zXOB-q*9Qw z#&6x&uSdUqKNL{1+ap~9Iz_yOW_G085K{+8u3$>YBL$81x)qT&ZOLwK-2dcb4?hgx z;fEh4o1Q+cyH;LZ$I`CrT?n*I5CWGM1qZQZKYrPRf`cG{(?F|Kv`I&^BqT;c*T5yM ztyQzW%bYZ4ZE8|9W7>^34RN-d-J&(~c*Ji!evMVM15Q%Yp&QV2a1&k+%8S@{t3>to zQ`W9qWtyfzjdKPM{H5QL#IzG-Y1aW#(`i+ejDPo}6?4B8hH2==D^p&+CI4}4P)lC! zh4u&3tfXRLnl`)O(@SRdKj*Z7@?zcXXiCon?Oza%*3;88O`9<0(UzMww#jDAOu@q7 zk|;8<+m8)yEU$r15U(TGj%W?32AmWUFzW%Sf*w*S*fd&H&bM_qY1X~>16cO;w>!Ri z=GOBLsYwK=(o&+<+rS8Io`N >ZiAhh?01fSObB5Z#!Hi4SrfOU zMYBJ^(hj_&6qF6F1 m22}>bX zL$)26HYDkX08$V{5c*1~W8~shy*jn8boqu}-2KY-KRQF`Z!kF Y zO%zvR+X4Ktmu=iC&c5u%mtT2RDzW*ef{~AQx_G3^?*_<;OtEiZX-Be^i$%8f)DurW z1gP)6`C-uWed30>;rYWX?P#|3UGZF-S=Ze%*l(K3W1Thf;;;JT)8shmw?K~`*8kq2 zQ(co)RVU4lS^LIPp({f-Di0ovijINa@ah**N)fCd)>Gd8*UA|GbWa$NFl3bOFRy(2 z?ptn7A(fU09CW~4m knd*QpANLIT{yrR}()98FKw7DTR{kiLp1I zazTv}OyNX?Hc+qRYoo=5!nLdG{j=`pg8OUu@MniOuC8Gg<>Ul4f8yOvFk~#0gQj{SzG$j^sGOs -$Z} z3qx)QlI<`k2;i6SO9=HlfDD#jr55Al?{0dr-?;WYJDa8{J>J1%pWJuVx%;A{zumkI z#oI9P>*kVnh>SToE4Op|_N`mDj?2uTb%|36s3SSazxDzAi|n5pjy4WN=YII{msg!X z h?d}E*M~Gzst{TH|vI*1_O9u{LA-zHoWD{8gXzI3Q#B$ z(h5>u8fT(@gZM@W6o)NF+cAUBKJU}B2c4yW-9K#a^jN>zp$Te}M;-8Dmj{JD=oGo3 zh| (Z*grJ1{Czp}`To3{XT=yS$ z=0DZH+YOEiKU4T)EbTbE_Q5XR@ugWq1`h^s^9|RwwC1#K791&Y0#?uD6qcI3E_?DD zYtmC (U;0hYFt?b$8%e{=4fnI9`6Dhq2mU*Al&tnlxE@G5G9 zGY8IG81XRTKn*A!q@f+6sMC1A3LuaIj!13iT7GHKEiX)Y$>J8THP0G#(enQJG&xp6 zK&Ma&E{ O&idXmwQl8K?-z3GXjmk zE3nUpLLYXzali*tAzVkC4SAu+bRyOUoxoD?2o`OKmw#Du$y)<1IGqdbDmvKm=IajL zdJVBeP kFc~Uqr$6ZJF_P*Ta%s;_v5CWPY&-sv`>X8 z6d~$(DcWe1w~P$a*8IQ^CfqW4%1Z#=efz^nZ(W$2tR2|R2}NWKQnC>hhs1P*goA0p z!UMPJx)y$urTxxJV$`Ke&b?p&fS0Gf{BZv8?DLqvQV<5Bf!aYdC= qQp=8?)6_i?x`_8zu#`NU3=pV zbK0b^mU+VC!4cz)BMF31T_c(X!w>}U`A}Sfk}}Ny^sO6jyJF~2F8E=c{{L$G$APeM z!|ulIyPoLTX=Jp!7Lww`J8QW@jKQYoi$NbOxp3fs@=DhY*PMHP=8EQ7)a#c*z-I+Z zf=5KfZ){xCsH;YPxUJKq8OsvlLVx}t|IVkopMOgwW71utytO#68wYm5RRv!yLL(3o zj`U_o%0NU63_FAXH-p8%dQ8@{w7*>?60LimdUBjpa>tLm`#jz$ex#e!Dn;w0Y#I}_ z4G;qWcny37@N9>BD|~yPM*=`d3xv0a9tV3W^ia0*BXMWwnEM}kz_d(JYjqvk_vfoT z)DbG{1-%bB&qn{$ud_7*J40Z`Ks86c2PJ;G&y)paC#!brmaj3v4PAeE%GBX|eq!gI zE~;z5jyc|_e qmm14@{r#2CJQtsqhW{1?{2%u^3DhK@RF&I1arm(FS&g4j z#ZT~65nyRY*w~sqBIdf`7Y-Z%VA?CsAK0{Fe!1@a$%+j}vt*>l!C}B*gT)~v{1&7F zQNU69nCjIf96DZKW4~k4%*6NzVPW*Ro4TA`COLCgD@{je1lo2-`<{>zwN)t0M|C;2 z{fO_s2GbA`jksi_ osB}Lt;qjk4 z>|-&xqS^;`M7_5|{t0HHg+eWFh+5l(5gLwg7CK%`zwIT#Bn931!;klU^%)&GMAp;> zsSn2`5E9%Sg_Kfb`pkEyUpXu>Bjdj}a`>MG!r)SnbKNkWdF0`o)hjyWY2{w7Q}|Ty z)*r2X;YeEp0FBXFm;5FrciQMNkYeMe-5Wli@XYmEQ6(=ph|(G?{~5JD7#b2Hk(-3* zFr>vI+zu%rBzzWx1b*ctg+xRMU9wJeI_I&TUE2YeFmbFcb6KD!q3KWxLcmiSbRoKd z+;(6rs1#aSi1H#F+=m^%fcxPLMSLofG7z1Bs5oK|!N)U0pSo+hW^hWi7bd^BCUIHw zEX`MOsFwC&MD02nYCRx9VM~NP12F?3y)cX6J)jOu#rT!aE23;R+lO=Kk1cvdyRJ1a zJ2raSk%-y=;NmRW!C%|_QvZqVPU&P?ra{ gpnX78$|6`0B~# z9r~Pec3|Yzf2^AS4+=*cF9lzE`K5P8+!`LGhro){kZVV}4NeLNg{2@A{B_h&;J2Jr zpj~iUKEHUu((_O2ZwXv;N&nN6mL(+ywX_2j|0)kEUD#cWUBz(w;I|MHj_gFlg(E#4 z5l(0fR-KBrR8R^|JKM8gta4p2`>h28_-g68Ctm4x#cfBfNi^_6>x%oj0nGrVFn#dU zqVxa`>_T}lJT(XjW96mdw!w3TTz55~*004f?t38-OFe78ye~^h06D- zQh_}tY84EEcmvJsh}Mv1AcR5!Lcy;f)L})kM(u*Tc*)S=lc&B2VC>jus@FbvdN)?- z5{ #f)G1|Bt+r4g<+H5-r6iH zp}f?6%}qT{xoVTc{yP$ejW2d^-~<6>&~3rKK_%F?D@ED*3qJjPfyGU~OY|9Xa@94z zL^vtue?Y=eLNjP(g-o4y^76Usq>XD#yXK}LZ?^u5wM-SB6YY~wfiZ?m32)A9teLtb zJTc19^mU7ubelGj-FCewuY`8uby6ZF2@f@1n6>_{M_TvjMh^9V3J_c aq+P&Q-V2fUF6s1u8gpoA}8Ew}M|GMn|?CaT?NXh+xo3kQ&Mr zB!VpM;&T3T+s>1o7z1F*S8FzW^x&uqSXo_7qFzf|DwrI8D=1PJ?nJj1IHe_|LbV(D z2T|_APX+jT6Qn|<6P=s0@3- WzmzA@v+_pC_O$ zLF{32-%k; | zKVcnO9=T!n7&lD_xTH}UpLXEY!EeW=#tSJul~vcjHG|xEm9luSD%d#bbUZVMX+*gA z;;Y9x_iWpvJLlZ;dv6+XS9W^RsohUXOHFCkrk$o~Kpn|ODj`K )xC`#*er4*zTfy`>- zJnBCakbi$T+L)g9=KKZAE*~^BS1UcVD%g;+Zk!>ffxd853G6qq-H(GDZV8t}ypEHi z^rAv5>G5YCxbJ=d4?J+cW7oJ|oqmU<{i|aO?ljorM`1Il-zyjHJZa1;U&cg*6zz9i zc}vUlZapZifELV&uBrq=!r71Oh4bL8lPA4kam!ud8*o#PnyWX3{$7atJEtIFI9PGM z=)UHHcV{fHq~)*ioO9^~Uw7S3PtB0J3bI~&67p9u{clV61o|YZt55nU=F7<++halv zO~2}{+uqV@w6rw--A|}-qt=VCa3m)pBLxX@h>wNcfDo`a{D+Fn1-=N9#R-uL4qMa< zvo}qADK0yUQM%yWHwQhr%; (=ADRbOk2E%|EA>yMmr%Q>{d^@qqYLXvO?d48eo&PnTgb!%gpxc2&i8NHVzrBc7| z1m#H&A;-L){noS%Q85lp(}#?_YDt^7QgWEjC4!0-b$plK5%6uiWdbURaH4W@_}VF3 zlXBuIp;ryP=B<(iTBU<~O~l)f?L_ksWH=GVU{IJ6rVLKW`As1mB0<8b?fHWBcQ0<0hlUSR0U-k(d>jWt|)4&;B}#7C*1p@ zXl1h)+NEWB*Y {!BpBAS6&EaT$AS#*m;5C;Hsy&EUsw{c5G{F%w z jCE?z56KL7Dv z-P!<{Jn?xmdP!z(P&ww0u(ZSD$a^n}yRM%Wmk T=h>k?FEM%m>;egW)&f)blyPa>|dV!l `2u< zE&SwGnVmbfYtyz(QhM$`3W4~0Jz?Nl1S&tzJ^%cHyGC7*!^-_9E+R?*Nk|yT)H2&$ zE5Gg4uC)Rly#HS3?(sd3GY~z@q=Li7cJCEy+!xNC`vIW7UcPS1JExs7*jrmA1y@1@ z9aO_4Gxa =Qv>2yQ3YFp*s3SlZ10$VEV=`a#tB!Joh z0cjmYPFpo7I|W(V-|(x;MogLXJb)b=wsd;3zh`8Us)3>k28BVOQCJe?77DyL;6s5I z {prLjs=o*)A2$uT-zyjOI6;_+VXS_7Cp_k-d! BE(T1erq@(i0avi717YH5mEAb=%d0!n}Yp$whF(KP}J zaB<{&QEFmSHC9)^#gSx3P6#p`NU yifQzvmD48wSS{DkERhSn^bmsg=a z;y 8Xa-UO-5WDy5VV5T0Orn$Boa7D>q^Au*M!KZuGTqye=52>W|L7(k#DLJCpk z^-sEa=tZ>F)F> K2BWn90 zMBPfK(V?QABQ1$;Co4a2jJsz#(>bNul!;SU#Vu`~!+Zw?(LrqpX@Sr-0D*ABEP}rX zzI||i2I++s4Lu6ZX0T^~IYFIJJlM@dB$0O1yzltn?wOJC;Q$^V_w>r#jaqshukai~ zj;W`ixf@NcY8i^Q1OsB=7C304(1*P~Y_5S%B1}`ABh>e$@8A4ZVor(z)-V71!Hvt= z&_SZI8b@4nAF(nc1Zq7&C&?I+;z>p_2@46CJZDUwbNck}XIYlzbzOJg#M)-pQe~=R zX$ETy$lwbJN-80IRM%zxkG z6~16b6m@yBV+5lLDmW3C>a&pONmE{glGU}|n}-ZCOAapmiAILV^td4Lg$tM*7O%@& z96eRuXep?z+Q>sYjJR&_RRESOUisag@fY1p{XU-44wi|U3KZpI|4!`Pjx~$m3`J}* zQnDKWDLA+Z9-ySw$#@Hah$y=JGcmC9<0p4(1E{sj*FU@Qp{$|Itd!I^oD>QQTPo~X zh-6SEtO|JZVU?ol8;H+AbQp1PG=m-uTPkcxbk~RCzLTG5*P}Inm5WzQ*!LQ{x!K|B zX-8aSD+R9rf(oTbvLVBPo`9)P=GQ7g-p;={=i1ZGJ>BBms&QR6>6zMVPp2kV ej96*hW8er@&iv^bmg#twe+ z?77!pb)^Cxy8j;a(}dJiZR0LpPzs?C6^7(!WW*ye3W0bVwPj(KlAPN26DOQecc) zKKc6EX0OfLkPsWXZ%_Hv!&_c3s+{|wRFFi*G#GX;1|?BjgOYtH%16;2xLrX&CZ;1g z5z+CmIlwtAKe!3qpylOq%V#~`nz2H+!Bgowb!ZpYwVT5ozaqypYAR~zoCvfsQ9yy$ zz^a6IH@v$bYC$aKw~I5v2faIczLc_ZUuoX(?&YJx;XfXF+OL}@0P4`C&oy94^AASP zwud`)O~3cP`^Ja5wVo&Q >pmlra&z$Y?`J4{N%4Lgs-}VMQ (y6O&3#9Ou~H$zG$h-Q zWgydllfp^B75wV=Qss3bqTx1e{a#*n{fKdspJxPbyftsd%a;s0OLuuJn+}Vk)`$J& zC@8_MgD9 zvbG{Eiv3ANFgUmDjwym(;$UQifz MJ3R$9XEy XZsfLSMHgboRt7z{_OYP#zNLE?~l^c0yT+6yGD1rw_UGJ7U$Lb3kN+vmW;YW zR=e;=ia(sw$Z-DZJFgBM5uKc5aiK9f^3h3U8JDrpFi~3(q)IeK;ITF(5<(y?61o4A zmtLJJK@3BG>Z$Ps1$$0CwQZ+PZL_kPg@nYhx}>?3kWv7DwUhj-Jz+pLX2Z4}<9c?# z5!G&{AQdC95$J#dY9uNp@;P>K0K-5$zf=-XikLb;MlyubpjwP65zGY=5(YZ6(su2K ziwB NkV+#-mAwG77JWqDmB2V)sGpErZX3k0Un;EmP4dlleVj zVL`8%?<_ZTRk*+U>ftTV8&N9Ez{ZZLkt*=~D1cIEI&>Qd0R>yTTvU8F=#x+9ODRhC zRrVO!+Bv*bJ9ahuBkoba7S0ORi7U%TP98T^P`UH_t=-3-QGG+4@}WUm;si`8&0+9e zMHj8>K5y1Le$%uW#uX!Od8ch0%gPkB?w~|@@R>S3f~Xc5!B?#tRcV{@+;g0B)9b$C z+F>8B-a*?9lDZSoS+GZf>5v@44=Er6oyW9ccfU>`)CZ!@XtDbBCC^?m;EZzteEs$3 zy?f6B`T;)!C7GGBUAxdOT{63LY1^hv+mw`C)V<-Af|N&al7HaYKdSw8Agq^-5lkCA zp!b<8zfOz^%Ekm9)B4Pu2G|HF;E_032gnLQ5JVZsvLVwzijGhUu3*=-Pj>T&r=ET2 zo_hd{n=qwh$?fO$VwE-Gh%1ysm}mec&@~tuGzu u`RsQ)-;_a4$YAwdY`65qU&JL`otkx^lqre8hmimy7pliY%to)c2D zZ+N*-4_CIC&Ay)gU3h#bF-h+$PW$@YT`Vz91Y~@VJ=xWG(*#5kW#=(3x;9N-6`PsB zD0}kZM<4xpCA)TzFf@dPKuTB~rgaEiyWWoW>`FxqT~=0}ym0-OQ(mz}Me3S%_k9mM zw??w;9I Cz>wYu6TCyLM{Tsv}@D9I1p5oDh)z z2gSF)C>(8Em!C9ca_X|LGn2FmlWU|-`>5`YD+LQM>kyL2kfEVJ;F54F hHvXcSKd-JVFfBA}~r;6$CqSk}NIOL=wGX*K}2z5f!U|BGE16}*qI}I!{ zp -nTX0l zcoGa}os+a6EGP*@0-6X^(^QSCIbZwKBd?hjH*{^}$kAnGXE8=C%Uu^mF-p@3$rXZC zSNp#I-u3 ?mW`)xyWzH#{4=nM+q2UBhUa#p-iBH(Dy6k_fauBw{4A&i7u=54jt5GNQW)< zkmGK>YfQQj65&qv`8pBbZ^FIz+$ALc>HD2`Jl*BukzP-Yr0m3{ZUW?(bzg~W_Q+$8 zjRvrJ-L}3@cTO7Rg*&JmbKKd7M&y_stN4(r+a^w!3}C^#9}K$hBJIo!o}eSgfjA@3 zTGG&eiAMRZqum1n2&siT_`3W%E3bZT?07-cjtv`ojJ?0+)=MOa^7?SF0!5|RQ-p)% zsPRD8k(q+*G$h3#F%~uhoP&$Q>Dqyo`G|0_X!(Tbyu0qZmkU`_vcKi|!%Mr5g!Cyi zNOVE7foh-(eiuwP$_h}r8&$>dd7(KGmV$_Mge4*@0lEW9Kv=NcEF@kme_{Fa*Y+N8 z7Jw;Jp1b|_V#dxAq8ecJk67KQDnbY$j1U{33!#8YpaR$h> up75^;N0pRHNm=Fdk2-VUncuCBji7!mk1 pw&@yt2zo0dsoTyoW^t bmckiX?(o&c%d=q8Vntb!Lm?UgFQvqyc<<6lvG03k&=MsnTU% yDr=X~kjnGtbeP %qQaY~O>;+fh^osSqEFh)}d^f%GI26`>f3 z`efCMFU|@O-zHBOyR1BsHO~^Yl?`?I#@rVY=ztb5-NBzy4e`y8)Dncjbfcyi)x{{^ zs~uRz*Us(HHFxwQ(}j>eU&YX&lilu%C^hRm&S965{OWHdr36gCU*{ylDeXq7!!%2j znqwGD2uV*^2KP|={{>-Vg6N`^tM*TtcyoeQe!>c(f%piB(CFvIqQ`Sj_GsPGvdsO( z)h|4H(Ww5U+9Ur^s$3u@oW1oWzu@NQv(n=MEdG4O`u&exI-FIM2+e@thj08CQ-D$+ zG=i@DT%6tQ$&*fQ1z_1{E0!AbTHm5oZQ%ZIQMnW>1V$3<>98fjNT}nWnT-Hh_tI*- z$W#LMD7O7m{_x48+jMIQ;QiU}Oe~+So!gq1c)>`J^^#yingjh}U`kY4$oC@Oi^XN| z2t;bZwuuZoB6a8lT)`({N*Zk!pKTxA>VZ>E>jhxd=U+Vb^Kv%gDp6K-cvY~z8`|xy zOA|5Vq@iUtD1pz!!E)@{ht0e3=0|YYNo +%O)n1R g@785V!B#zl$Uo4c zDis_$+gT#Mz2uUa@4RRFeTL0`>-Cqlm+xh!v0ASP6xn|rSpEK%C7cenJzs247r*|- z`%tp1wC3bfa&tOYBxfQbMkQq;G!nW2!C{#Yye?JVsEOf-_?HrP2P@bm%GX~qd**vW ziqgFm-EM6eI;z|NA%+6LYvA7x?{4@D!D|3OkA@=`jw~2)b$}F5ekc(*x1f8_ZM3XZ z<}5tri`grQq00A^w7%_>vRlL9qYd(;!TZsuA=*Zv5m*Y977D!B;X$Q^8jcW#Bpb3E z$Z*hjhdfZ$`_t^NW_~7h;wmZYF?`6@Yx)!2kn;CvH-{936bOZ(!O&soaCtOc<6~ZZ ztW~eaUz}obZq` eg9s+0nFnQQ6YeWDPVF)Sr=F}qE3^eY#9L4 zXst_rxxdAWZ%>ngQ>smvIJ*DU<*_kr>kp!E7uJ6PdkCCiNXbQV7Q!MC5& n)N^( zAoUp7)1gHGfHWaZ5J@ M`Hd!`ecqM#$5zN_?fi&2|^d4v-_jH^w65Qa|SI5`3e zsNvY}LxC6TtH~D?h^Dc7_4)73Q8vmHZhG+EE&bcDurT31ijel9=N!1;fvP7^mxC69 zg@*E-`4_k9^7xBW0-_c7KRtG9Xjd&N>JJe_6$m9tve<3&KltzkXg14ldb|}k+%TPx ztEH@|OU9f4W(Xh|3lZYyOD^G;U3Ohy-teE8nEC$#VZDZLwaazGz4uj4pLSmYt+hmK zAVmlG6$EhDn60B-q(B*iE5vDRb}7H`ofona;sH#1dD52ok7uT`X^VscB14fGkIZ-^ zN5N@>p+N-b+9D|CtH=>k<=_I5A>@^> QXPl}HM@W!n7HkC~pbRBcoimWzJ3LY1V z_Mo~P`*&dTS_qENC?sVfDHE~Dusfj}K}BtDK}rySP)LD@81}(5{=o2g=~?jrCXJu8 zIOe_Vmcg1tAnBkKls8CW1%;6STN 64!AZ#x}inEo(V@LY)P=E(k-uv zSI?Z*_T-iT-kbT(d-OBb_9*0-!`IeFYMyB3M5|D6#q2tNa>EPP&WK5i2k_qPH{R2$ zwYI$v=~Ozl=b-V0riLNiwRuZ^oc6*@)3R(f+ww0yo4CA)^*e{V|0qF}hQx>!b6*&B zQA|pvWpTr1Tz$<0TetRMEK~?j9SDyXhjp|YsbXUnzwp8oDZv=~bF23MFX3oog6K_` zU24AfzG-L&CD$opHRR}sp~zqeBOm}*@Zrdsg$ TgP7C zc|?Cdi1hfC$B+Cn qb8eR^E4aw0+k3(W45+mU>z$Ju$pF`BA%Ijo&!$Y(+Kk=%} zJH}6#sFd8lr}CN+EiW2bX8E9kX9E@xCS+h5ytVLpP?V1Y`6w-f&kLIavB^kCM@%AO z5@B~j3YdO4oZ7mtc}(>k6DCXquxb6)e$RAH9_drAx|+nHSvu9|>%el3>L5mN=7d!R zUp~C~@E3vjnO_rU$6fl?>+ed)ZQpI~@$8v3H^wUu6ghr!O#NfPl@@O2>kDr8UOnl_ z@lvVEJ^NdZxVCKMCGcByd5sfXbF-KT@ydH&Uwucfvrgw+R2J>YyKqEh&)Xq=bp+89 zTct>5cZfYZFLi8qclLC@DWvqxo;CTF;iZfX6`}+XfOU8i^zWlF7>H_G9Otv&d8fx^ zmtFVg2BN{s`KN=hab14=q)8=r-g&XZs5MQuLZw2!!Y%?Aftw;yM-)S@hAf6i3IpH@ zCW5ZA;c5{;LDQ(eTF%UB@%p;&Vndu>ujiVJPP;I9ZEQ64_@zccDeM|F29v|%M`0Cq zm!hx=)johCIt)39hzUbREW#Wh0GIGt-~yUPEw7xpvBiuJHbjNn1ZP(b?bmYP^0 8sApr}43MGp g5Al(S-OD+;TlVEj)~`*>Fcy=*02k1H`vWhYf$< z(~+fQ2(P;?7kbRX1oaya{5rKqt(vlB!3(h|nUwnb4!C~#m)ocoFL^YO17rd5fD;e^ z2mCnn5j*<61Y_YstiApAs!5Z^aUN9Q|8qUzpB#=hPKU1BvSsxn50BJnp=A*TMi5Vs z3iJg`g(`^xA4(OzC0N1`q9K$bS4S2@6h#C908#HG39)f9R|~oAwV82Yp#a7{{b(Lv zo0_Oqxwy`P>YeVorftTMlYqQrFanQ>k{T40Vdp;l;D_5pWGJFSk(-3fI7EdKhfZJm z+Hu=cGh?Hi0GaUYL@jxFTIM0-n8vB{da+QiyJ2^!ImpZdW$<}WUX1c$9Nb6NF2 ltoQ>y@45MjnehN7PI+!s z#t&LXb6#<5YW7FEbHSQ~Aw%ZY%)ISAXIwY|CXOGsJW*pAX`-^`1p6cifl|~kcy(3Y zx?NAsc*o?H%`hH&_<{G=?q|LG39kpvNB~d*mJd=u%0tfoXa&>yK-3v6mQ9~OW_WyB z7J$c}cy{@hnJjL&u(m@KfbRnT793C!KoXDxqyP~B0P84#488y<)ugP>%Uk! OEUT@ZI&|p8ZjWE5RH(pu&r&e!7I+SzBLM{n;F8$uN4dgIf^`&} zAW}!BjyQ@;h6svqjm<0KZ6`k2zejffpDkIr{fkK>PS;9n4zCK*x`FaO3tlt$o%nF1 zMx#$lm>gAZ6qKRVg>Sdui|-K=!Th!S)FIFI@7*0x%a*QQ{>vlh4rMh}M<%`<*0x%o zDmQ)bdxOdIm_)>BBJ#jl>u^0oVH^H zADVDy-vNC9Y+3iqBkRVq5m} ZHRHAiLSmx +Qih@3UUs?2} z4tcPw=GM!)U(<5CZX VAsGXgoL592_K2_g!8{ywm=9`Rq4BY z=t%>v+vYGR7sstRU#|%u1#Awsd%Gy#aM|ox?{HyNm(&ipwY&G4?M|Ht`G-VAb%R!x z%k7!DXpF;C>N;)Yd27!tqS2Ak;)e)n9G6K&ZMrNe>-A~&iZ>Ps4X*NvoE|4t zc5Xp3Q&oBbQWFp!0t6Hatww-6dVQuo5RHo93ztodX?Mr{_i`b3{P 5zp2RxK$D; zzXyH~N()fD6SWnnt%B}^Ee!Fwh|NTJ0t_dVfZ*W%U(>ZIqsnLHZJo7#!RyY5nChzH z?mchaUT`gOYJo~v!`hnYfF20tp{gJX!1KY2Alwk)Kormn$ONJQ9pFH%rbTl8^__Rt zKKI ;);>{5023w0b(3fKV+;DAo)L`yD-i{HO> zOH^c}B6Qfbmvr&ZYnH`4$1~&lFz%ZW2oKfPZ{nUdcRcmXMAP&ehV8Dq@2HKQ+^L)9 zs^KTrBVJF)&~2DEHG0mATT;@Z7}YKxddb&a=A|}c{y)$sK?ooS38#h6+m}7Cq4miv zAk^&--8CioZLNDVUgieJZ*kCm^PmX`aUgtJ>6&{#YkpEIO6VQ;+%q}6N{fl*KW)ds z3b?(92t!6PvQm&59|WY3@SEV`2+B@@uN$!abv3Tmr2}67KKLe1L zTsCapdtF$3Ghuq_dYz7>N&p68Zv@Cakfq@Hu&N-OKq8Q#Y3(_$>e1uVFTR*+vqe%$ z2%-N^eT9EoI2s5 YtFm2-SgV?(aLL%kDhi&0Ht8J(V8m0wkB`Jy-!+}X&AQ87B1U#aPmdx zvg(TCQ?swPdJ)lxXgY72cyPr0^vpN_Z_j*Zkuk4%OU+loiC$Om#4+U^8gE$%*rVvS zPsC$Ao@#w^3jp)poi}CPB)xBjReAt%He}clp#?L}ehE=GO0LmOI`XEuVlg)U=GJLv zzns^l4S;0}Kbu_iGd=er?)9NnCM 3m07DB|uwvRn ;uz_>S9zC zqiip>ErH(y&4Gv{M5QA#5n=IKbQ)j#(GwT7>)HPd0PnmrbKZM~7T<=O P`b@ZA)fx%(rh(>Y_t_>hnoAq1sVsbk9(9l!lKp0Iwd zAk+0>mt4|i-n<-xdHD&Bm=CH{GHP=5W?tUQYt|%0L`W%iY~ObK<=yY-U+d%QSlVij zbew^HA`)WIncvulja}OB)UHB^eFYWQj?BCC_A1j0{JL^*%v%-$VG-JfZ+K+QUC%x{ zK|y}~`RXfPIXhugEn`XwRZl|$8a*M$#?sbpw7gihT-tBp>q}v%>f(x1Za-t&nYGv> z PiQVs{C-(peW; &@Uoa8zPXJ-#VG^&u^UnG!uDHrz z I^&d6{C=M#w!wpXo)x`1F`oLZW9`5=^f-fc`RFih;aVPh z)};IHzTNNl*=+V3hhGxYX VG+?ss-cZJr<;k04U-R +nR4+W$GTy7jFML{773Q_5T(}9E-WTzq{iKQfnP1`PCU-b5jSr!+r z@{%4`+`6OvwJ@~bBfcG4p9u=%QD_F3j(~3H&hK+pJp1XAWjW1TQkcE^Ub}krxil(H za{q}8B&|C~LKQ4MHspm(KfV|jpA}eM{eMf&{Lyf