From b30735672200df993bc13d7b4262fd747b4c4e27 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:31:13 +0800 Subject: [PATCH 01/10] Create Transolver-paddle-convert-main --- examples/fsi/Transolver-paddle-convert-main | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/fsi/Transolver-paddle-convert-main diff --git a/examples/fsi/Transolver-paddle-convert-main b/examples/fsi/Transolver-paddle-convert-main new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/examples/fsi/Transolver-paddle-convert-main @@ -0,0 +1 @@ + From 9c082ccc52cec9d470f7f1d6c5a588d03d8b84d3 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:31:33 +0800 Subject: [PATCH 02/10] Delete examples/fsi/Transolver-paddle-convert-main --- examples/fsi/Transolver-paddle-convert-main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 examples/fsi/Transolver-paddle-convert-main diff --git a/examples/fsi/Transolver-paddle-convert-main b/examples/fsi/Transolver-paddle-convert-main deleted file mode 100644 index 8b13789179..0000000000 --- a/examples/fsi/Transolver-paddle-convert-main +++ /dev/null @@ -1 +0,0 @@ - From 08f1bd428313c9e4cc5d4eb2f59047eab5528366 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:32:30 +0800 Subject: [PATCH 03/10] Add files via upload --- examples/fsi/utils/__init__.py | 0 examples/fsi/utils/paddle_aux.py | 91 ++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 examples/fsi/utils/__init__.py create mode 100644 examples/fsi/utils/paddle_aux.py diff --git a/examples/fsi/utils/__init__.py b/examples/fsi/utils/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/fsi/utils/paddle_aux.py b/examples/fsi/utils/paddle_aux.py new file mode 100644 index 0000000000..1bc52d51c3 --- /dev/null +++ b/examples/fsi/utils/paddle_aux.py @@ -0,0 +1,91 @@ + +# This file is generated by PaConvert ToolKit, please Don't edit it! +import paddle + +def reshape(self, *args, **kwargs): + if args: + if len(args)==1 and isinstance(args[0], (tuple, list)): + return paddle.reshape(self, args[0]) + else: + return paddle.reshape(self, list(args)) + elif kwargs: + assert 'shape' in kwargs + return paddle.reshape(self, shape=kwargs['shape']) + +setattr(paddle.Tensor, 'reshape', reshape) + +def min_class_func(self, *args, **kwargs): + if 'other' in kwargs: + kwargs['y'] = kwargs.pop('other') + ret = paddle.minimum(self, *args, **kwargs) + elif len(args)==1 and isinstance(args[0], paddle.Tensor): + ret = paddle.minimum(self, *args, **kwargs) + else: + if 'dim' in kwargs: + kwargs['axis'] = kwargs.pop('dim') + + if 'axis' in kwargs or len(args) >= 1: + ret = paddle.min(self, *args, **kwargs), paddle.argmin(self, *args, **kwargs) + else: + ret = paddle.min(self, *args, **kwargs) + + return ret + +def max_class_func(self, *args, **kwargs): + if 'other' in kwargs: + kwargs['y'] = kwargs.pop('other') + ret = paddle.maximum(self, *args, **kwargs) + elif len(args)==1 and isinstance(args[0], paddle.Tensor): + ret = paddle.maximum(self, *args, **kwargs) + else: + if 'dim' in kwargs: + kwargs['axis'] = kwargs.pop('dim') + + if 'axis' in kwargs or len(args) >= 1: + ret = paddle.max(self, *args, **kwargs), paddle.argmax(self, *args, **kwargs) + else: + ret = paddle.max(self, *args, **kwargs) + + return ret + +setattr(paddle.Tensor, "min", min_class_func) +setattr(paddle.Tensor, "max", max_class_func) + +def transpose_aux_func(dims,dim0, dim1): + perm = list(range(dims)) + perm[dim0], perm[dim1] = perm[dim1], perm[dim0] + return perm + +def add(self, *args, **kwargs): + if 'other' in kwargs: + y = kwargs['other'] + elif 'y' in kwargs: + y = kwargs['y'] + else: + y = args[0] + + if 'alpha' in kwargs: + alpha = kwargs['alpha'] + if alpha != 1: + if not isinstance(y, paddle.Tensor): + y = paddle.to_tensor(alpha * y) + else: + y = alpha * y + else: + if not isinstance(y, paddle.Tensor): + y = paddle.to_tensor(y) + + return paddle.add(self, y) + +setattr(paddle.Tensor, 'add', add) + +def view(self, *args, **kwargs): + if args: + if len(args)==1 and isinstance(args[0], (tuple, list, str)): + return paddle.view(self, args[0]) + else: + return paddle.view(self, list(args)) + elif kwargs: + return paddle.view(self, shape_or_dtype = list(kwargs.values())[0]) + +setattr(paddle.Tensor, 'view', view) From 364dffc95b2777273e1f907573e2fa38bbaa31c0 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:34:56 +0800 Subject: [PATCH 04/10] Delete examples/fsi/utils/__init__.py --- examples/fsi/utils/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/fsi/utils/__init__.py diff --git a/examples/fsi/utils/__init__.py b/examples/fsi/utils/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 From dd561352671593f37285760f24bfe25970c35148 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:35:04 +0800 Subject: [PATCH 05/10] Delete examples/fsi/utils directory --- examples/fsi/utils/paddle_aux.py | 91 -------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 examples/fsi/utils/paddle_aux.py diff --git a/examples/fsi/utils/paddle_aux.py b/examples/fsi/utils/paddle_aux.py deleted file mode 100644 index 1bc52d51c3..0000000000 --- a/examples/fsi/utils/paddle_aux.py +++ /dev/null @@ -1,91 +0,0 @@ - -# This file is generated by PaConvert ToolKit, please Don't edit it! -import paddle - -def reshape(self, *args, **kwargs): - if args: - if len(args)==1 and isinstance(args[0], (tuple, list)): - return paddle.reshape(self, args[0]) - else: - return paddle.reshape(self, list(args)) - elif kwargs: - assert 'shape' in kwargs - return paddle.reshape(self, shape=kwargs['shape']) - -setattr(paddle.Tensor, 'reshape', reshape) - -def min_class_func(self, *args, **kwargs): - if 'other' in kwargs: - kwargs['y'] = kwargs.pop('other') - ret = paddle.minimum(self, *args, **kwargs) - elif len(args)==1 and isinstance(args[0], paddle.Tensor): - ret = paddle.minimum(self, *args, **kwargs) - else: - if 'dim' in kwargs: - kwargs['axis'] = kwargs.pop('dim') - - if 'axis' in kwargs or len(args) >= 1: - ret = paddle.min(self, *args, **kwargs), paddle.argmin(self, *args, **kwargs) - else: - ret = paddle.min(self, *args, **kwargs) - - return ret - -def max_class_func(self, *args, **kwargs): - if 'other' in kwargs: - kwargs['y'] = kwargs.pop('other') - ret = paddle.maximum(self, *args, **kwargs) - elif len(args)==1 and isinstance(args[0], paddle.Tensor): - ret = paddle.maximum(self, *args, **kwargs) - else: - if 'dim' in kwargs: - kwargs['axis'] = kwargs.pop('dim') - - if 'axis' in kwargs or len(args) >= 1: - ret = paddle.max(self, *args, **kwargs), paddle.argmax(self, *args, **kwargs) - else: - ret = paddle.max(self, *args, **kwargs) - - return ret - -setattr(paddle.Tensor, "min", min_class_func) -setattr(paddle.Tensor, "max", max_class_func) - -def transpose_aux_func(dims,dim0, dim1): - perm = list(range(dims)) - perm[dim0], perm[dim1] = perm[dim1], perm[dim0] - return perm - -def add(self, *args, **kwargs): - if 'other' in kwargs: - y = kwargs['other'] - elif 'y' in kwargs: - y = kwargs['y'] - else: - y = args[0] - - if 'alpha' in kwargs: - alpha = kwargs['alpha'] - if alpha != 1: - if not isinstance(y, paddle.Tensor): - y = paddle.to_tensor(alpha * y) - else: - y = alpha * y - else: - if not isinstance(y, paddle.Tensor): - y = paddle.to_tensor(y) - - return paddle.add(self, y) - -setattr(paddle.Tensor, 'add', add) - -def view(self, *args, **kwargs): - if args: - if len(args)==1 and isinstance(args[0], (tuple, list, str)): - return paddle.view(self, args[0]) - else: - return paddle.view(self, list(args)) - elif kwargs: - return paddle.view(self, shape_or_dtype = list(kwargs.values())[0]) - -setattr(paddle.Tensor, 'view', view) From 44ea34177228e0c6d0177c1b3fab7ac97e3483a8 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:35:57 +0800 Subject: [PATCH 06/10] Create ReadME.md --- examples/fsi/Transolver-paddle-convert-main/ReadME.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/fsi/Transolver-paddle-convert-main/ReadME.md diff --git a/examples/fsi/Transolver-paddle-convert-main/ReadME.md b/examples/fsi/Transolver-paddle-convert-main/ReadME.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/examples/fsi/Transolver-paddle-convert-main/ReadME.md @@ -0,0 +1 @@ + From cdb61fd949ce78d3dd8b176057c22183b6d035b8 Mon Sep 17 00:00:00 2001 From: Lil_Ken <98253413+LilaKen@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:36:31 +0800 Subject: [PATCH 07/10] Add files via upload --- .../Car-Design-ShapeNetCar/README.md | 98 ++++ .../Car-Design-ShapeNetCar/Transolver_E.log | 218 +++++++++ .../dataset/__init__.py | 0 .../Car-Design-ShapeNetCar/dataset/dataset.py | 429 ++++++++++++++++++ .../dataset/load_dataset.py | 56 +++ .../Car-Design-ShapeNetCar/dataset/radius.py | 161 +++++++ .../fig/car_slice_surf.png | Bin 0 -> 840428 bytes .../Car-Design-ShapeNetCar/fig/case_study.png | Bin 0 -> 273342 bytes .../Car-Design-ShapeNetCar/fig/results.png | Bin 0 -> 297941 bytes .../Car-Design-ShapeNetCar/fig/task.png | Bin 0 -> 292640 bytes .../Car-Design-ShapeNetCar/main.py | 46 ++ .../Car-Design-ShapeNetCar/main_evaluation.py | 131 ++++++ .../models/Transolver.py | 211 +++++++++ .../scripts/Evaluation.sh | 6 + .../scripts/Transolver.sh | 8 + .../Car-Design-ShapeNetCar/train.py | 146 ++++++ .../Physics_Attention.py | 191 ++++++++ .../utils/__init__.py | 0 .../utils/paddle_aux.py | 91 ++++ 19 files changed, 1792 insertions(+) create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/README.md create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/Transolver_E.log create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/dataset/__init__.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/dataset/dataset.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/dataset/load_dataset.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/dataset/radius.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/fig/car_slice_surf.png create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/fig/case_study.png create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/fig/results.png create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/fig/task.png create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/main.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/main_evaluation.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/models/Transolver.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/scripts/Evaluation.sh create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/scripts/Transolver.sh create mode 100644 examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/train.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/Physics_Attention.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/utils/__init__.py create mode 100644 examples/fsi/Transolver-paddle-convert-main/utils/paddle_aux.py diff --git a/examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/README.md b/examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/README.md new file mode 100644 index 0000000000..565cafdbab --- /dev/null +++ b/examples/fsi/Transolver-paddle-convert-main/Car-Design-ShapeNetCar/README.md @@ -0,0 +1,98 @@ +# Transolver for Car Design + +We test [Transolver](https://arxiv.org/abs/2402.02366) on practical design tasks. The car design task requires the model to estimate the surrounding wind speed and surface pressure for a driving car. + +
+
+
+Figure 1. Car design task.
+
+
+
+Table 1. Model comparisons of the car design task.
+
+
+
+Figure 2. Visualization for Transolver learned physical states.
+
+
+
+Figure 3. Case study of Transolver and other models.
+
X8-!Ptz&)6Vf9Ibc9fz$a*D=4wRdX=iKi0`L^1_!kA>6aELy zN+eVU{Cgs zTq9!#H&;Olihm;dZ}T7NH1o9jpP1}j{xe&j8D#w@gq59zjrG4}f3gDq!2*=5Jk4yi zzgXFQmf2? 69 zKEHII?jQdG3?^+K*bxQ*0}}z0{vxX834YdLkzgV9V=3+Y9OQY~@c_vLT*#vyK)enX zI*P`NQA#LC2uh|4MUsf*@f3~3q9083kmZ;-Ti@6)dRPE!yNZUczS=NhOUF0-9ys)9 zwfX#3`(9NF+byF8HO5l%>*X!4LQ|cU)4*Kg)2w3ATmM2U`!{X#7xF0$ 75TSpH#KsgHC znvVdQ+50_CzFe8w(^kYzg-Xr=oFd);6rZj*@P;#Eppp zs (Q9W5+r9m?z`m*VJ6_s1!$RVt*Ny{E+Hx1PL# zJRyIn_PdEyb}xSlNkwF-Ay1vN KnPdZ)bFO@6!(HhJV z7r87EaNgEg5s@garHvy;dsV^bV*5nz?P|m2^$k{4cJ?c8x49LI!q{+JM^9ycGku`d zhl`});3Ve){fqkXi8G=W^}U31{SOS=18(#@6+Mt9a zZ<@nF|WWbj^2c!PkmHMusS+?q>W&w~PINiLUX@hK3 zOu#TI^>!bj^y;riKBot&*Ec )LhIBZr zI#@OfRS|kG?t_&bZN_hdZqvL=Svg|2+U`=Y5c93*ak%&+w+zC}q8r% L&EHh>Xg0S9N+%Sc3clWWC0qxA)gd}>N*hs7+M ztFRD^Pc_b{{_K0|*^;6o6DhxkIhNp2gXhU~>CSaqZlp!7H$WjzC}nW;qO%e&lbdnj zw=TAhyIs^etouNT9ifS(LZV5k0LokauE^AMpb-WAQK9})svcXitN^t`-A9?lNy8)( z1TtdgGMHyKAEYe|6l_w86AInrT4o6rK~rGp z-*F%1=k8;Phm(;~q` 8MJ{CkqB{g-J?}=|bme!`8Sck<;JJUnC@jjPcO!}VJ zhS`Mth4BcI6YpBhrbfSYx&S;5x`b^W_QAZ&eOt>ZFzzqkPfp8ei-}(1ee_m2ax70^ zzX|wNkofYTDY;`sIeniO_m?2Z3cIP{dBhkxXG4cQDA|%VDa3Soy=&UN$a`nH2-q6o z^9EVokFE%;nk<}&5-Dr+ZwR&-AEvrViwpV*9%&yPCUZ{20~Ow$Ay?`e6luB1U!qiE zf(3Bt!gp H3eTe38{+V?8&Y&p?6`$>aiDp2^GQ)2d{p6B4JVzQF z_t@}d)%V}t=X>4R_Izqd+f7N+7Yz(xRcQBvsWNQW8cxG#WQQv1!JHI~ISampHRhKL zC0=bBx))q!%e?G1Y@p~cY`uE6McNzpKVak~UO2Yl8c(jh{RoH9%>C7sM+D`36ueVh zu!GJUiop}AeEZsR%O16TeAQ#(w5WIyXOZX6f+G0goGswRGAMa86I&ox%!>^J;mXi) z1~UIz$RCm0JL} >**o(0r=w@7j5Pa*!RxgQ^eWcdX|2!@z}_MA?$sku9plw*PTHt~ybog@wg-J}A~ z-w1F?{H|&|_qVS3+zy~*09;TeHYS_v>&PG47^4eJ@yx5dMqHbjt1~IlNwE7&&;seq z;$BAV%#z}WGCyR@e?4>ZC7p2`pHuv_A^H8Hh!3%|q5qAYOicJE##~H{7%v`|fyu$_ zEv!M*A&OB9z?W_VpP!I+DBPr;@VPhQVl0H-oZ$%n>~}DH%)Y8U)+(|UM*#W31WDBR z>Ehu1c$P6LsNQ*G=SV8mjV*sIkTxZ(+{#Px&7HvR>%=#uPK8o@F3MZk%)Cx*R3T0{ zE*NOSttJ)>Vl5YUF`aA+M|UL3-c^ToLMasD*uo?6aD6_aA$>1FeL-I)1ybSA0&A#t z6D+qAEDkxyHW%dQ!~3D1`_Wfyo8MXLIU6t5GM#M`G7viO@SXELV6=6SAaumE8!Z4S zWBX0R8^=0#TbyCvJ%ds)^l&>JkT-WtjuuKMhGg*u4LmOf_#R(HL8p}TvkL7#43d+g zye3LxA+F)m4A^dN >oi?d065HKEe9W*1~x2?RI)1 z8AM;t+!i ;IV4Pln+1G@JZ`VAd?3}1&IJg*N7Zo1q+uVV**PWB@? zs-&uQGNNK!8-Obd4DwDZfcw;Sh06udXLq99+aEC-&Q6n!A7>K25g}mzE)9H} }3db5-qk3iYt(Wf0&T9KTVI>2#nKe z?ZroAWY4aO2T!gK3 zEu%TN>!2O1P0}*FDuvop@}r`rbaz4JH`cv zh%M0deYC3^5-DEHA@1pu+KdP%_2olW9YP_E$8^Y!Xo~M3q}>oeKV$=duG03P{!ndp zce4rc{AG)D<%C8(iG&_K7&>XFFu|_VbHCU`*VKIrO>c^DgcIZ-JW7K_zDz3OK*l)E zB;=q#OhvVNtMAK5`$fU3=8ryum8(Ps`zkGdlLRjYKpqN46~;#ueANQpo*-Ud9Ai4U z2Q9;o$>59g$Qw~Pn9!)fh6U0CNA}^pRbx5Vo00JsLm#U3^9oBR2Zu9UrWa$;0~L&U zCCjL95Bd?1_S>2+Ble?l`@w2$kAG0J!?rA}&yUyL 5{n($>&=NIMG=gW%D`~dN~ zuno#_`|+Tm(J~K2pl)zlki}TV1T6xu9#yZe#N!7Ehc@CKHhqN^I=wg)I@|y>VHxV* zTW8BHMQbv<@qQVp=6oflCr0@8TAZ}3QkRa;?J<(A)ne~;#$U}@`7+~%biypV8_bmi zGm$D)t$#@4R*yKci}+1>TO}oorTef>C T TiGO ZaRn)hpbSwFR)Hi)W^a>R z-%Gi6(AjqLLnZ7^W!7aRufC5!?14%DCRd0eZI;tzOmLYH)jg=OF8K_y`jYD4vpG-0 z?_`=hT07AC)8dy#9P$TJ8=LL`FW5X03zr^{?>W)LrO+q0QDRiy-u(JU46p?}&Zy1? zRoaQYP40uV*&R04wAcbjAUQoR%znF^6zL;_I2+zF^fkGPOBC@SI2UQYIv94^r5Ib8 z$W^t?QaYV2T{pkv`s^l#=NXyzj*gk~qwgMWLG)c^D0?Pyaf6#oHNy+f=&-a|O6%TG zSVe=UIa!8lJuMrZ*~RbMr1tZaR2n>_oSLwc9NeV6cXp<8df11_(A8ldY0Xf?9(wOD zD?7%97Wu>?&zTR2>#s~H)P01AYDVXQ2NE@J=?d&XivzKigOu`Ev9&Y3Wv%hn%e*mI4(@J8DeqT9pq_@2O?bY4CIbN2HN)V?pQI=rgM z=N=_ZmL_0{318i5Y@R`6Q&WoN?D()+A+UiCR>ya|o3Y`fUQGV(n{Q4>!`GgNe;#&U zt$N3E#BuSBN_wa`vj*{(%wRU=wAjDWErRGgsuq4ai9%ATA;kW~?1>Jeos@ue<@32# zvR!E==dsnxV-E>uQ(`t~WWr(6Rf5rH6LMuw*xhns*Dy*R?jhbQ`;zCXDz}fU_{X=* z@OJh!M_LLcA>swz^RM>a(sY_Zw9lnK+r`InAzq<={OpkoX5SRdD}!13GY7~#Li_>x z50Q%jq$Yc-%U(WWfVKRI1i{SERLWqw*WvfSzk9UVZMMmL6?U aF mdq= zI7ex4P^z1&AWyf(`b^hVOiEnb4{ywgW~m*z!^ 0;6D zC}dG4oXV<)x2Wr)&Xil_KbO^R)f4o@j@!v8LbqVQlQC-Hyq<4 GJ)iXUAdGms=+9ys}Z3&p8Z>p}l-OK7_F>~k) z2l+0~PmBypNX69+erwglgjTaezonf=?la;V>ptik1dVw-ZGrX_F;mm5^^jRHdc4o0 z_O{VucB|U4Cxvc}f!9ke*Fes1DC{|pM5 gNEx^z;ej(btU}fuj60^`@=5z zm?+VS;E<`V(CaZx=l~-GMHeKL-Lpk|J;J&z0dJiV%>xvUG7bwPra?ppp czuzxr iRi)+0ZL9CsUGcwM z69TZ;j{^~AU(2-d_+Id}GK6jXnR=)A5lOggEYbA2@WfrhjVX;V798}W h37JH+ z@*G2v6a^CPC`;Q 1 r7SAwwS}= If;XH>BQ3Lq&N-d!GTNLi zwspev6y>v49>f@etdaK3N%4j9CS=MM%B2VqrbV}k$KLgt-0db@kBdop5CNI-?0(>@ z80MZR>@Nf9PZMZ!_Ek06i^FQiWzZ3mo|?$}dF&9@ci0fv5P3{cYV8V`d3Rganp#D> z1)fJjCa;|&7Mm{QoPd`TY0oy-YAX>Xt4z~hc@?Tnh1oWEtS0~pE& pnQfN?@Kb47+mtItE_ zQoz8*QoRkN j5e(P z+I@va$^J_6Xf9Z{j|w40MuDKN0F1pPP*-BuzX0ZzNGUN)?PO#YT)sXl{3SE-3{8a2 zb}9jeMMZ$O7##Ues$ICMc*~u#X{um`o8r&8hrz$|vXSU*EDN=G3vqsg#^YfrHI~~H zf4if9mMCIF+#pzqReeKNb!d+YM}(R1x$vgTwGa$RqMaOSsT(XSH4)yx-tBKAH3?jj zUMpQ;bCo4bqWids;nCxv#-b0up-KP7gxq2jn4jAlU&I~{C?Jj9SIzg+{T4(vL{~an zehH$1&G4Iww@9hEe7VXe$m9%38&k4fZDGF0qz#x|koVe@h~lBN|HYB_&+r-+ z9u9Bh2(*7$ro1j}yNFGTCpP)X4ie2CQ-B#sW+q0dbWcXngWYJBX4xSP25;I{^^Bk0 zCk!5xgh%J@5z|2Fl|!f1%Ed?`_F_J6i0I&QW|(x&hl<>{&CrFD1$-y90;SS$710Vq zQ3!e(-HEDt>zoIse$I=~Ru}$6njzi+FROfyR0}gvHMwNUN?fiAXtkg&?U7Vaw;RfN zpG>_i0Np{?TR^@6BSQp0hG~f?;iRjfoH2qN0RoqON+2OJrf#3Os%Wz7RGbsTQ=;1J z6{01l8No6f|3P {5n*3d1#PP{rI; z#tW)K<4DwjNdq{C8SO~q2s1W_OlW+%F<#@u%PGL_Z9V6FeU>Ri2!}WNKKEjwwR$+v zd^hCr+2II6Fn2&QPqF@p+ak=t8y1-IxF-EBlaH7qnf)sS){$_d!#nzLj(V<8Ic7U- z6i*X2=)l$3D!hsBDoAW#*6cub;-at}#WM~>T|P2 DhbyzA#_z}zvrzu+-Qo-$0RC1972`MKtuN3J@#lS`T4etv$%-B{OMPlB0Jvh zmLs9-;n^q>r=))DA)uEZEXM~#COGY;;0ROwoXE*f9CEz#OoX(T#al^kJG!ydVrMgk zZ_0*x7z6?~<&mM98knt?%F2?e>u@IrV5yxn{4@J8_zG91RMAz|?CZ*a;N}vLjIwT1 z)j@(Pc>i_nW$Nwvb0izelG==HyoLKc(ql;|X&FaxrNYWOD63xW)PbTlz!gDBHM^Cp z&*Ba-ayCfJi+u%;YrNMyUQMVaByjEPI6FI`d%*I9{{8j%?gvByA;IF?Y~K=J%&sfj zd4+ZIw|Zw$CW9s__p@~pgVz~clee(D7KkRq=wytnhjG<>4oH@bOs8+obDI$0>@#5D zeux^-nKO7=&fSm_1IPVUB!W1+uTRM3-Cb`#XCqp|cM6?!C2}Eokfi8T*UuR=lw#`( z7v!%Q)V<^5SB<{3%rsje3DAZ6m~RQE_`zBOVY<+Iu!89Z|7020xkNmXjn0V_-=x$G zmy2J*<35}jB5YF`@sfSP;t_mQThSUWt762dB Gh^ z|Cl?IyATh{?FR+bUqdfC|D2OC{zBT$8#evI7tOR0zzTCCK>9a>*`f1Ef2XC&0Z#3^ zaMU?}a1B^?T=1y$RYXeQ>4YVnBowRy5!&= p0`tIB5K%KDGdB*K zEcc9MYclZiXAHp@@sZ1@8*bTVbFQhh!^AwH<`53>YQgRsVOAq1htcgbsP=>$rPWK$ zSr`@Z!%A;V;2n!EWfpZKYr-{>gsb|A-!U;D9jso;Vj|C?`XR9SyisSj=P gwE(6|#DFN{QCTYY+=&T=}mPn&hQZ2ar3V$%tqXf_z+# ze29YyVt^WTc1D4)_3B40@i`PQkHUeVKG{guMaDbh7-G^G@QNp?9+8Y(rD9n@7~iFh zcf*T8bK)Fx@N$14A3RS44Cf>%qt uVa(pGC^|@>C9j0V`0FQ=WS^oXi%& zofLYJTf3bN-?b3-<3g!pJERLH*7MwG^tdaSB^#xyP?dt{7)jA7JS;#rCp4s*VpJ`K zfVCyImDZ-MjHXDrJKnDV7pro!pew^Iu8A@T2GZ*w%hFs AUK@?k&9R7F%qLc~0x;A(h-4CWw9HKs>DY(9ni?{k#fxm2_g0C(g{u zjTbdA87{=gl-4UcGBo|#YL+(Q%^mXM5vV*|N3dp+t jTtQ7&%4OXMPEL5>X2xMJAo;bGG-38*B4Go zRuIi07aS*7s+cpV{k FsE>3R97Q77Z!Ota{)b%NZIt%6gV!mX1BOXKV1J z5MDb;f>poA{i0e;9J6bv@TMJ)CG$NAJBKhg*cs{1cPql+>smZ&MAQ?tu5f=tg%L#b z$R{o+#1CU)JfsT50}ffEft#iFZ0NbgKhextyt@%%&7?>NPyVC{o1EZE7fqFWBV%oM zkHMdsE{iKNuS;L8f|DcUg#!TK3BO0L!bd(Cwx4%jHcya^5m^PN9+8d^4zjsN=l^6C zRRp!rZXw=>&n4!U5j_%1p-4O2K;G@nsU}#Vbc+yWEc$n?INX2G>wL3@S!=}uI$ceI z6U_3x+UsV(>48qZbmxzf#nIb1#jIBQ%b#u5(;r)clb@N3iZ3YRk)iqwPmVR+$Bb^! zjl6REo&9rk98X--(EYD t4h}x zH})D;smB!zt+mD>sm{eGcl>D#aXNSwoFUIMwkXgB#r01{^K7ZE={t;lJEp#CW#ilTU)u^ri^3nLlnU zSJ<&b8FFE|@g7CJh`C&MG|A@oinH {w9#^E_5un zN5PR?4nCipi@xlY-mjA`L4rGJG_`-z{QL}AW4}A2)oM$QKyexPQ=0&acseyBWVcO0 z)2e`5l$@aGjWfl8H8QB~l|q#qXDGCDBG0T~;DscPbluei=s(%x`F5luE!+|Ei!Pe3 zM3BL%5EgZ_h&cJom?@m3{A-mXa>9-1G5JR=Ck(NpFz+|2`&zR|mE+p2g-)X^`~Akm z!#&j!j<0?4Ro7`C*`e9yK9jlS;HDehk|-8kX}Z|)tesX?1403o)l9^&dvp@(cH}<% zKjcSJ757Z3r1V4MrqQm z$x )8-n<}Z(EIz)2I&Sv9X%kMClpSAwvlYB3!0m3W>rywX$A?XW+{U z?7VY-sp>QbBkxWjd{nbf{W6R)M50_(V&tb%kVgiWcr0Z%#Fj~Dkw>g7lO7ek#NFvj zy!2ZR^G2>jO%@PqtkEtl T);?(IP={zL$UKrXnIi{n(6($R|T&pvPzrh4UqOw2AvM- zB4s;2UwYJ|pHS?h`HEyZ!306Rw>UB9!2DJuPgP7?NpiP~*VzaYP8 ?%ne6QG+T3uw1P71VnQsya~ zqnD>fYfoj>QmDImRyCv`3Sk!z-OHU_D|xZlnyFH)THdYd#P?Y9m0I&16}+B7Ul1p2 zSM`56>At~?jh~^&?R7+jG3o(_juNJm{=jmC5+a7WCNMi`Plnec?3w#1Zc|DICqnY0 zHu~m{N#kQ$Tn|6>p=|bLrYzX&98la%>OvMCBrv=Ey;^u!rTCI;quT|Zv>|GsvZ{a7 z_hW&%2H}b4XpH5DUvNnHO$?2+#E53c@U2}~Z27S +0|5(5}=bCDDQ2!_a8BLFDb&_Ze;Z-R3$P`~%uHXSmESGyofEi^M%2f(g;6V8+6e zCFD1y41f}VlYQ%_?`)xNtIIg8m-K|Sqtardblo%G@=)PV7FfA&AdN@3c@ZC)hZ}NY z9HihQxrxB{xTSi3JEEm_=1!5ZSM_LI3pjxkX0xr3;Q01PPKJ (#E)h2Bnhj+q+%ZnJ(8K?=W^F#zZH7F8T^^j3K@{S=n7m8GlV6T+-oZEa_CfNlKW z$54d~=qV~FQ-b{V(k6Ww_1wGX7>f4aM{=TnUB=~Iu+{U>?V%nlSD%jXt>du?Q~T9_ zSHJC71+X_>Zpe&n_ndjU;{OVM_ 3Zl?bW9uBFlxb@pTgHpHjRYl6_zH7Es zp2zDW?R8&QGdGH`qGvEC9twbsE}yKp_sfOT)|tzWwoXy5o1Q1FR$TpF(3hFm=W3Z` zZ;lSIVFd|A>UbASUbPt~?F1@z8Y}|t;2aq7$|)uU<{TkZ#2&3|H`Vz1-(p{%c)EE^ zGo+;!XwL-{TuCn5%e5Mf?azAqUU~g*ZE7F^1pR#sc|UhEHb8V?Kr{KLtWDY6c~bKH zTH70++sQ(R$67^wXr@^3Hy%|{($352$Buy8%bh2S-1x>iJZ!*oPYP5|67WZHb=sz@ z74g>6QWZ+j5k4@G<2MCsE^UdHu41O$wiIg{jhC*cX;0Q4dN@<1sb?ZGD*2|>)&l$w zCLMe8cNHpLe*4D)m}iA{!&Ez63?Ft!{igv&
}=%*sdnrz9jnn^+!IP%yYe?D)kQ{&z!J&ysi z>lB+RL%>Vs5#?Oiq}g9wYs+#sdin;UMT6;G-oZs5(eKm~uTXaoVJ^dJaQpp+qq0@~ ze|R_WH=phwc9ynxe NwM$ILLv=og3w`igdP_MG8}17l-QOwzk8Ga({- z@GZZ1nYTuuic(9MM+j#oJRu@$YYIS44-#nrcqX-@T9U>-PoHmOaLAccYk#niCq_ N(w_Iz)e7GGUigjM?SOXJUl8$+m)p7_bprz0@agl~kKS_<{arjg*`0 zbW VqjNXKg9fdBXQ7{|KK-hYpZw7(IwKM(Q_Pm4XV+h8Yp zLu@r3U% lW z`F?oyw9V&xH2?ViU>~Vt- s8zn`!=$0&c=`I4ukG{P_gRA*%1AQ lK07ypZ6*Uh2c{3ZYX;?3ji1h#W;aTy)djqQZg)tx zICH>$RI?~O{KBH>N{`~?%LiWfyCA)8;PY-i*5R2=`{2f=`cs9t6Bir>q=BzU=5CMm z=iQ)V7^30OLRiu*CP2g|2~{bqO@VvWer}EC6f7ha5#CfEzZSKRIkM;_OT&!L;2D^v zK!5c)@YqTKPW7rq54yV3P0)wv7s(6qeYMr=0939u(4w4e;1e$XHbZ83F_Yk(?6s7g z02^>O5}uobX8nD<8!qy>1MtfBhg##G3sx# Ql zJ^I%@HgJdH+7q1u1g?%QdJrpvEo40dZ( ab*#=X>iXeCD;81K?*PA zgoSI^=hckKwH$Va-Dt?{|7povj7qpwXR1(_OCmh}R^ozBX%|#Yl7wd*+t6(GQu26b z@Yc|LV`C6e%!rF=(YzVuRaxKI{rNI8v{ff`ff$mdx4a0a65~n^jU+b$H_wZ|^W|_; z>bjMAV?ZZrcpMKa;^UOdnM7q9{CEmkNwUVOj7`w!s*)QkYH)l<5Jf{dj^m#AMeXk& z!4yIPsB{|TK}2Giv|^N$^52NrDxs*RLoB$nyGyU~x?8@eH_e8LgA7TMzlnf}B*RtH z8(k;>Ox3AG7Ump5J0`~lj`tgbCwX&*Gh>1m=VXB{YD6?Kckn2{W&Km8xk&!;;v^ZV z5qHk_?W^TP&zr>3os!E9BGk=Wt@cNdC_tkBM~O?NXzQ^fH>qI4Au2+?1557gFdYn6 za;Zm+r)D`1P0OSGi4B3M0TOjb0r@ILj@cpF$}RazGIAdM%g;TXT$pjL F~exrTHE#7rCJx&*As*1Z)dHx7EF3IR8}0P`=Z;*JXJ@wl*oFPHu~+! z0pA>%Nj-atl{lw~;|njdBVI`TsO(#ID?JakqC@s~7>V#q4RK`x>6g%x!irG6Lws*< zGR0VLNWI4S5Phxb7TeZPvWefQRAJ?|a8bIKVmN#xw88x?qk`RLoyRI>f<7)jH)CAF zd}N~bzs)$$AlUIHBRVraVNU+Vy)|-K)rgqt>Ef} y=#*wbpU z71}5t@L||@<7qB%Th#*O63wX%LtjNj-lUN-CnTc6wLWYLVWZY`?>uzAy?KU!w y)Y2&aOgn%!ysp53IG~ydR>O7iQ;g)j42U-Cbs((0S5zw`y??g|wV+lWA z$ba^p_L00=A+0vq&10%z8DO(kYBODp&}Lm;cU155lt{9gFn-g;Jzl}9Or$H!n_e1T z)A67*?`Kz8x>^bGCtHe#pt!8p^0i^W9@d{(V6FD7Gwxen3!5}{65rn#iba~~*n>K> zBkn~#?5_8`*Kf8Pb?l#4NeMe3J1w@`Bub{uPwuNqAOgcefU@b6?Nbmxo{zH}x(FWx zuPk357ut45EKmmd+lP_sRNDPV`}ms~9JaaKj8H-v{2E*%{w~`ibsExrHszwA)W@Bg z Tc3;_5ovC! h4(@hi5udSzKJhx zvE(`Ht2u(;RcBH>mn)sjl`p;6H4f(`TCLw30>9P&9D3pN!nY5x c zVb%Gu|LDuwgP%c1txi?kHi K`dW@`S<6vTrxYTR~(Bi%9F)6LO_ zx)P{gL}`VZnl$oytUloeOU67YAvnrJxFY`IGhM(_sfFG3qz*bo&N5~WW=Zg=q*X;I z0D`X3tr8B9$rNp#AIX)F_eq82Y$E@4e1is6jhZs88xo6v&}I9p3cYkgKzwcU^J&4` z2=et~up+v7Xt`#RCs-+k0}1jr-aA^tI46U?(CJZC4oj$Z+*xKHAy!@ko#E$Za^(T% zg}gi3*%dZ@WV<+BiJ@G9E`m~l{RxvIZo% _4OQ2-p|^+ z;b(>Mrvw;gUqQ$ec%?GwVVyQI8C?(lsd0G-TWatTa5CTyl9tXq^K8u6kn<{D*KH3` z1wh`ue~-_r9ZBlu3b1p!Uw3gj{Nph|>br}&dn}b3KT;<*eNOO`az9A;hQN^w#V ;{3$97@5Lgj)(c$Evw@zU;Rq_%3u9*tlNP1 z3k%8mobM>VZOSSh<*kO57F^oDvLC^r!IAH*U^&0kIP~i4@h7+389%-6XYtPaCo%+= z>l-j$Qabn9Q3H=;F9vC30zGwQ+!!78N#c)d%r?nSGBgwXr5GUKH7wEydccz$hQZj< zkfev?J2D8`rYuX^z`*WQW#x`kW}adwmrgZaF!0t|3~!R&plx!nE< `0u zn+*fgPR~+mog~&eZe6i-@v_)Y*n_LTurs!9-4Kg0SaoN-U}59nrU27py> iH}0@LQG^3Qyn|TH|7V=UJyRh=b%+(1305g5^!iq;etKCJou@d=?!_R%0s9 z7fxEPcrgni55^B YWgNI>Z+!JHeI<76+8(p#&&uzD zLQ6Z7M@z%4%BCy0#1C3@B(s==ABh+7AQsOOa_-@~9*^&Q>w9q@F{Dqub2?`aVJ6q= zl#qmUTHkgHqb+)}6hnr&PC}7oE&6G|5B-=L+~-NTlGijO8VV|D(tK{M%50xk 4F zKds_QMozq5o^H`od4#g10cl^^Ynf$pR-hiH{e;ulv~5G|ynK6HcJ=<)zK>92OXf#s zuO7r2Q{idQY@H>QV9cMwd4xBx^s@%8;v;d(MRnmLue=sF-gH~seCIv!`a36Mf`vNi zv=n*5eTXGxhB8asIjc_I;R1=4mor+Rrxa>r(%6Y;NgX3YuK1AkvNxQRGO7>(bfhe6 zWKfGxlxK#lkf(Vpzw?%P)A5D9`g4b}jq4gfZI8ONam?)pr18@RqZGFD;x0mK%=8{~ zqj`j6*@Kbu*RT6ZY*@5BhPu&> _Q4eyU#l<}3 zgT7rS;Z`Q3CH}nc`a$YKBfQ%rvb;^tb?$ZX!ixsx#QJ5c;)=byWB2B*v3mAGW`j`- zpNrgff;DNRpKjY()5i{hYAFBML0Su}5U3FNq#!UgLdiNMBCIrWBD)ZR9dQDM>)t!= zk3aeSZ^c8z0ge&6Qd7Nb7|MA-VKkMC_^?NysJxq+4qV0}r?X|gOf7+$6{vBMntNF% z0(4q&N6GOo%OYPYSKLp<2Z8Bd8acVwDCb2fDnc#GrBK7cSbGZeR()BQGTQpo#%PO8 zQ$hD!LEkno8Ov8Kjola*zVxft#im^wW6_F*xr%qz!!s%9DYK>m0sHsqd8t7XYG^|l zdG8Hkw|@85xZ#g~z!Y^BfkA0X HWzyaBZD>+j&1jaOe?AO2ys|BiHRrloi)G zrrjE(Qi-Qsc1~?jhqOpu^V<$P4EAMoW-vqdz(mZMHx!GP&5M1P?TE{-*cF#uzMD=A zUyBAd%ix*JZJRCYQcl1PkR*NtL*hE&G8J#U_ICW_#(UzM|L&Xd^kdK98PXSh9W0cG zk=$?tQ%+;|+x0nd%t0}Bdx9r=PE+@uH58uG@SnUu2g~|0wF K)5cXXf6gqPksgH+JcxYx4%B(6ryMgABzVbb zF!no79)JP!@Qbg+_rCSxxZ%&f8*dUaqjRhyjpQ1c!5&~t#6xqX!!1cjMDFzT&V@9A zd4B#0>jvJ1UleL=@h)y@_?E!@)|GUrr%;->lI}{9({LX;&-~J@_i4&>mMq2V<(~B8 z#%bntc9ZX5IoU>^L|8U4iu>pH#^&7{ N<}GmfPXH| z3E-qZ4T}QVG93I@Pt_Hrq!#eS8Oh&*S83-$D&Mzkje4ldjO7XP@Ic 1W+@+k5R0%sHpftuw>46VDMhLg{!jYr#gCE@ tY$^USqiQlKKt2Cfm$-ig~-x zfpXx5>+1GNkCGnhRVOp(q`wIq57L|5I>5P3C|Mr7MIFv^^^9o4siD88H|ES8ip{H7 z^mD`Z*t=nKteCxkbwt#y$Rka&V0%p;KLo0w{NsmdEwMtNLf{jEfXX~tb1L&GL7C$H z-Ww+}X5x4L_ !tje_{esNSru~2fIc;LNhi`*s{PcJ9)MamNM0{x z(*S9Lq=KhXsA8YSe%oeQY&?J>rxB|d%5AviwRLjOJ+2CKF;uN(akOi$y*&1RVOMP2 zxvJ7oLiWN>^S$y3CbA`g3E}`BKYl#E_50tBn{K!@Ucpe+PyALxFZumy+_BT9Ny|=> z$3CC !PILmw}_bS(bx556DwKJY}mJI12Jdb0VACmLFvHqJ8^IUPM07IRT& zy*5Wi2pvGjJaNUKjA2&fV;RCne!w3X%e`D92miQFUy^I$+m2sjT;K{ckhBTk$c`91 z!w%#WdGs!q0>r;{G=_0suE;Ywo${LI9z-KwGAtDrv%WNzax_64bzQ|K=@hopLG0qa zdN4GsUcDp^?A;Oj_iT-IYgS?~A0(WV@~lO>65=JE8UyDf;Ya+-FB-$a!6y#IH~;;& z;wL}8JKjG2c7}ZFz<90!Aw6`#3*GVjE`3IwsC4KPtEm@F=y}&DE=dalTbO4pI-QrJ z79Qju{`-@QEGC{y{^TtnE}v|kGb_)UW164lnYGGuEJr#lGA^_G2()TFDLbt@`BPTx zO>`pKjXayn!qw|Hua7;fr*OrWF2h53V+>)mYJ;}Sm(OPtIJv}ALr29>uEB3APQH68 zetOHj@n?T{Lp*c;i!pf)egh8>_61+yPF}=?c6A46EBO?#6nAb#zn1s3@beLHPD7@6 zG+B1$EqGTGQu9rOwK8N$TuK?0bSWS5YN3}VuSF)kaj&7TawQ8Y`E78kZfRE9y6_#O zsUOxf83S|sV&jetamBTl#pTx>h&2r0%~>!fJxD7Z6?n=mlN#GEpraG^VLkJSqRw!$1IB-#D2^@0^RF!?Q zf~1H-i^wNKVMs&DE|cfdST4W_y~ <8jNW442BsV`d??dW7Jo-P)* z&(JE+lGmgg9S(Z>SlAw!nN9}iDajkTpN<0<)zitUHRIR;7Cp?RDX%BasmnH6ZzqO! z^}eKk!?;j~gEg}Vy*Jd`ADfr2j_s?~#}!+4#HykBg;o{FHGS+5sD|>79i+9u3V{lN zPYePI6^xtyDL~(O?Y+3^&u)qD{Lv5M^+Rtmg e~j_WtaCPtr| zlmfXqxkUHPfXf8lQ)gJ@?w;EpjDPiyzY)h@c!yaCOx?qiNJFv;l$*+N(h+EBW7@g~ zC6y=X#~cY$aR#kTIPHPG9R$fhT1$f{bg5^0JJSObx#af|X{ZdcfKR+DbCEppPJTP3 z8oX7=Rg|EDtSgHa|CBV2r;cSLE$Hb*Tcv3)lpUR0lt&GueiN2u+jP=O $Tm<6MQmvig(%?t10 z7y|NdjQIR|muqZYiji~E&ULYK-}czDZ&PgFu{{k}83*!0g_rhG;z`4?-{n*sdg- ~Jq5owJw;4>ve3;YI8I`OLamL!)mq2wKG7G@jm{7q4J;cM_Ia4lUVACkvq z9nuUrte PE^EMTEej0?NB z#l9WuWB&X(X{^YXBk!f0%AhasMfMAG>;dt_&z_Dy`kg MRYVLSx`_!hGT zyWj#^$w6BHC_a<-fU{g2&vU-#az`Ay$tx~={})Q)aw{b#(16h53G$0XF88PT5f{p{ z?oFOar7cR$$GHa0m1oNJEL%P%?G_5mlG@?F{z plRk2qXn<7NidzLr@_3}#M^Y(IG->t|H`e@k1}_QQn;4-mRYEu zTV(ZKsmXFZ()eh~b&0%NvRbHTsRwC{MM9gcWrUTs+@yMWlR ycA#7Hm!9Sf_F9f*yP4Fb zeCc9< ;@Eknug6=FAi^uO&^!0be+`++EI(u$xBGlMr8@9&QrORX9f(2QQ^(KAi z*(LrX=s~YM=FL+l;)g%GBffk4jd6m7U?-wCM$S68f+NZV_=HZTa4ax3c|<>W=_$Ax zJCAP8bqv%Nmhr?fbju^el`}ilxQ#t-UtPUCW16@4fVyla25kv14d?Jjof3L_aK__# z`+(VhOZo%vIHq-X_oNI>orvdiphn%uffNks;@H12`)=spUA@Fsr;gFl)5TEU%+^si zC(O$vZL{qYC!{f|?dgdAfxcKcYi?{_xIFePUmsWQ*&lNle5&c=hd?!yfBZ15B~}Pj z2z*iyP`Tny1!?sBSp4LsyW?N~(|;R>o;<>WC<7^gQpr#WLYSp6 $oPRN&cE3)yF#2y_K)3RHxq*HRo}m@L((0P%$P)XEf= zS+9pBZz `xg{>%0r-bW4KlDD!hx?RtQZpy4@2?RxgTO*KN)C!FCcC zu9}}!WV`Zxt)cZ^mR%Z}N9C%@=jSiEfSo#sM&m;VkHo+DNB=s0{N10%f}Z6$g5TDG zha>niyn%|bUYe;Cqp*yDm(mdg<`_U#meLbJg`8*7=%tZ>UR4?#lMYmH+=Mm?chU#6 zKqD+yFH5~ta&a@1ba5^!G%lqP$ug*G63>FH%lrO&ojfL|kfKpi9_3Ce@6t5MJpAiP z?(-gxOE0P9X&`edH2{&0cvntxqnXizQn?V%yp6k-#@B!KSK`_)UKT_W$ucy}_`d0( z*w9fno$Hy(zR*~ t5e>cjKmcAEeMBcw6-hKT<{Nw-rpRxe#t;7LlVIDkP08M_A z(ocTt`8o03mhNQYPW%-kqOcOF1vd%c7MRkz${Xeo=X|?9XZ^{0c(hF0lp{&AToC7( zUtW}l)I)!6!!V(%As#E$*j=|~XUwluFahm%sR4VaNQ{dv4 {14% zD|kv8xA8Qx!)NTx-1FTVlT#AO0h<<2(3qf?x%N;yfN5BuZh4e=cY!l`9-Js~oN+hh z9b$kVNhZCiXlr%=y~p#mX$; >~mZ^G` zT+g~F)@vE!iD#5?hWwCXb#omY>W}q=h1z+=wz&HGD>MG|;2gp~*c{%oK! g&?+A-Sju}` zOdJSBHm|jkrbsELq!wh&PM#vilu=-jt$9j*U`0tw5(($hgLO*};@o6iSyk&gH%neF z=Ai_V$JRmJ-liD88_U*E?)5CERi6CK>K# ^%+Mx;AQYbRf4_1bZ1D#0!1Kkh36%3X z6rt=QYlBab-GQO8&=%!Wis3HgFM9bZqZ&t)q+JL@8tfu|v~+0 ?T&ZwAW4FN!@2+Y&6687?-?*K4dx* za6kEp_i3lPTUS2=MbOvyd1i^T2)i`Y$s)q-)RQ5H&O&>%#WfTRv*KG0Vw7J#e^KmN zza
P z63tGM3eu~GkHzo(%WuTD|HBQ@JIV+$5}|mvs0_2Aw3noKNU_Irs;d4`P9B@1NQ$Dk z&J-lg^IqeR{N}N2jZ$uQ9PMDKR&zP;H+7V!^NCcxyqg9ys>{$CYTIN|A24rrEIc7u zhXrOQGwaQ(t?Rx`c?b0<6@oJ5wLEKUGgd6QG@1^~?vIu0SH!++2+8vGD`Ojr5)BXv zAq}Fo1;JZdU>z6A@S0_R9@Cg`MnO4$`fU90J2%EZ{JXy$Bk#5|HF9YxI};ce3J%m& z3(oBzNm5fNx(R>E5ZB@ hF*-~gIY#GC{i2|y^uPDyK&D^s8rlg zuvEO$!zuB>6DaA~hEimG5ev(|o78Q)Eyz@+U0&~i#Wfg^91>cmN zUGqz0{8^q;OKoc^ioA>U+nKcRE?hf%`rBgJ%B6Uh?~AYfrRxdpvnt^*iVI^mZO)j0 zEm&BlZD{C8L+a-(jXS-cWCzO7DtG+gr}1C^wZ9czXM2H1FW(pV1AGmANHwN320#FI z#)VHBx;RQs0sQn%(ZDk^C9g4e(i?ld{_N=UmxfJnCl%V+bdbetQkqDRX2r8LB%N_o z=)-4=QC&J~_*M&X*`df%;kQZqKE#$qmDW;&b;uX(q*4c!<$_vVp3v|l{qRsX-ZvV| z*Bn?LzwukY8oT%Jj^%5YCB2o-h5WO;gY9fm8UU$7BZd6kdOlA{kdD*A^3CtN_rdsw z|NB3SR}P l_uNlv?1Nv}*#gno z$ukcGk|5Sl;ecNki(eU@DWMM?jpNy;QPD+OP0og}W0wXZ&NT|yL6m10c1pU*Se@{i zEI)~l&ZIoYZ^I6t-d9vxJoPkCwdjTNq$hDN|C6^lPS@SllV0o&{%K5c;ZIW!bq_JU zdBu{2abVAu_#%t!ty{Syy7dM#F1rQ|c`B7jDQ=K&N$#mDx7MZ4!wxL)g%#aIZ}RVd z>&E!U|Jy%}i8tZf6L_|9KL B3OWKfLGG*I%Tg%Gp zO}l72<& Q%97 &eA=rewbkSl-ijX#Rt|2KaWXWy8>31v30)Bs2xfSkNK zX+wzmr)~?3 2E^=ssDRT{U;yJ zuRQbcLjpnko8NZ&{4|aEMBes0Fl$5O7tS*Sx73l$W9u!)lYBq#`Nw$|hO>D~=H^15 zU- +#iD=90_vRfBE7rVrjuZA2ky>s?-{Nat?jc?-x zJki&Q4mpTnv+#Kh%kA* vD{<>7 ct$g?-8;aGZ4E zIRuz!G8cJ_1Fcb8-ltAn99<}bOybY7l?^4%H0{9aJ7-XNpYr%`-9x4zhek&naD;2A zx3_fkqy+LA8{60Rog7S7&mLo-SNY|@bO%OF+v58*{a5qb&Mx{Ba~NP*wP0CXxn);e zzG-``T(mfPl)02@Yg^opXD^%y;R0n2K95NR057$_qi??vzk9=<#4Qg!7_%5u7(S1z zC&a37@9gSLT#aE|b{R7DL;#(G9O@eyp_L8Evw*jHY7STcJaIFHKBSJMo*~}UHRL@x zAOgI*ds%E&`l2mq;O=#%9yrm_00MI6n+EVMu4kW#@MaFqq*D`l%%{QJc=w|tIM<+~ z=$NEoJRPxUpM>a4(+RxZ^(^nkGrW_wjgFp61H5hanXXR0A82Z9lycC~k{S@Bz0i6; zi^Q&*vm$n{*%EtJZi$Tx*Ps&>-Zy0*R0BP9BHfv!oun%-Br$rmrjLR^HI#o8RO+<~ zfeL|NObE!(;qW8FBXP?QZ;jvn2mdUNK6{i=cox?|aaNG2JR{REQWb-?LQip<9&$>A z8QO(;o0Lj*OCU~P%hJe$AWOy9{0L8#I!sde>!l1=q41ocoZAKks&%9>i{})$=AV{U z9A<~WGP1+y3+Ah&V9(~N9NDhy2o}XYV<}n=8N6qqsR)!Sc`YxOTMWEU#jJ$`>Gg6A z#`5dFeod_2urdv9T2~7k8faYDm&RJp=PQk&B&*0Ce&KNZ{r~A7#7}R(F9zEeFcMD; zT*D6luT(Nrj!>S2gM$tlmc|TC0zFJaNj!j~{Np&$jN#NSrvoV}Ic<28U=m}`E)6-Q zOjY2F6U@_zFBCivtkX@JEBNI(j+45%p0r9^G*+2B*Xu>^%cg_ob7>$^>GK`PQw-vE zJj*lIVY~f4Y-`C6eOngyrs)ni*f&t&A0$@imfghaBpl1NU%Da|EoTZlM$rsSLs^uZ z (KH(DPAKdPsVSJlWBb201MY;>m}^RjDIMOd=$6cJ{N*La*l0>&ku7 z75Ai_CY7fO-ldDA^Va=*6CU*0CP^bUI@`;`zK_pIYguYj54kdS_TX5oTDLOxu}I_f zU%NJT6FYd$!r8Qmx*X- @dS9wiT@O|4Ev@EVWec1b$ z#JO1pO3WzVbD(8{IN>?S!?SkU62~AtW0JGiP@q>+hFqcS9GK&}13z7K*fbPKTe%P# zZI-8`cb(604@#i@7%%9Uf_AQ9c;~vjsqiy#UwD?XF$s?M9UCnkTdXsfamwf83A|_9 zhPdj$&bVyPwwO=IG07trDsGX6 5q{aQ*TK7K>y9 *rd?NK8@dnLgwpKf=XXdqh-l9lSue9NPd1-06cS`%cZcCc>mVD$@ zZqr5r73JD3^A^t~6w98t=2x$Z%dXys(Q{5QhVX1jrHnjo;LzM^<@mhpG?eE;gcw&I zy8D6nKmN%-k4Nr)GWsUxFl^Arw+aBJKPKMVQ*dNTEQmhnEOEv);qR}>Y~oBkqq*nQ~ldbeJmflmC(f=XMn?dF%K zlBbcwO&NJDX$yMszVFJ-rVQcG`lRxH*FZ AVAUOamAg_yHqarE}%(1iXm2Co;Usb?C_ z2bb4zJZPO2JEemLhI94r#4oZc^`&HCg|`&waX0Z&U|96k!t2Cq8pib)27hTR1z{Q~ z4TmBfDMNE`jfU8coauy&N*$T@$(NFTEQ|ZnV|pkfucZTJR`xfOz9^4tO&`v-DC>M) z**(c1Zjph;rFNmvGDw}I4G-<;8fUThE<$O{i7hKu$7MTq$G**khnh8ucSPp0`5w}a z&zPnuXZoOA|J?kFAGC^dBWL4|`|pi^^gI7ooCSA-c;I*S4#wDN!mofMvH=?L*GVXr zkqlp{!;!qG7_KM4RWWXhAN9~S26)Ax_< Wxai9x-auqztOHGW%` z{c&kYLwS0c ww0Y DGk$q?dY-i zoqzee@kihIW^|8t<9kPk5CuC&`%%17!Lrk)(yc@zjUjBB4kKc+2*ep}RcNM= MU<{d2U^Osb}&z~EP+gUmNZ~x8zE{0EzMQ__IJcE1FVAP2Rb>c}SLQRa6 zuts^&Stc DEmh z+0jV4mLf 9lJe(QVjxBsjEHoDID#vp@soyLln|M2>0kdlVfRWVXZGr63Q^uu-k3Oytz z5aH7_C$#dL7Nl7o_p(gmB7#q2aZs+b+3+S=m0xf203mOFc~kD$(V-}16}rkgyzeuX zX-1FT^Ph$^8a>Tx$SOVMZQ5!(8s6jkX1r^QupPFGi_&A}p>Y#fI{W5y$GT1H;wlDO zzW5v0#^#+Hau6m599y;LJNT{m=Sy4o=PZ?32W@fq$Sd*J|JvV(mtQ=F*Ys@Ox0g5X z!BYq?A~rit4)n?k+FDb|ComqlSeTdt)B-zUl*TGfHK^;^lm>117Txvq?iP-EQFYjX zqw}P}K+h~Yo85RNd4C+b&PAm-ZU)WljM*Vf@AafvI&B&Qz`q0shO?aw-_al-&gEr= zJ}jE@(#uNh@{Hc%@F~l%EH^_yXnYsjzHbvB-6{FWi}~L29z47cFR4{a=f`FHcE*(l zcE=VLjvegP7%xQ3Rj7!A&uwb>P~ge-NB{nh)4+L_^%44~2Fe1S=tISeyLA5jbj796 zk$U{Tb9Px?5pqdQoS8!?mVF+BzZs{1x5YP-0LphNA1eHaC#WoWn-B5rH*}DOD)||C z^FHNzFKaK=XFZgZ_Y41!!X$H^gDx_0p=odKId97Iev#d@LB7WK;dvTBd?gJMaN?f9 z?pU#5SzLb2fw=zb*Twb&&bULL%-TvDvoSN;W!ay%WDI3_hsLIF{OfPT@BYi*i_>on zM<04o2kWZH=Q9kT-#aPc*aCv!RPKnw#8LyR)_stYcqymlroTRuNkdYr+ypy1kvu=c ziKWgYcFD|tk|6j`T9Rf`Hh|xxG47M!zieMV0{*>6Dy2x1o|SyfJ+GJw9k$9bqh%y* zw(iqtANQK!>ZEmN_KYLfdIq{<^R5jzqFf! @)1MiMW@T#jGj4qz4#n>{ zAx2(3{%ZX5Zx9;uzPqD;2{Y|j{Is3^Qcurd;&50mZFCo~1HV95f_5@wj=F{3+9YYK zI4tP^1i-)r4|BcrlcW=6jQBEj(ti`z87|Iq9R|>)OyVzR9?(bZV%D8TaW`lDslSXd z$kUA>J-H o6(k2KLuc`nGF1D4dIuG9rxqz(sXwM_LT zjqJUIowHoaJAd{}4hnSkQwB2x`|&(qJTO1j4lRrQD_IPE;|?PJ^iZ4i`VwWMiW~s& zQnr_UO&^9pHI#oCCiO~%K!w0BC (V;`BkR3uKME)r?5fDXjRc>&uq#%_X3JvZeMckU}KBE#?YAOb=^ypORd5=xS ztMRUE;tHoiT}n)0Y?&HCvs~KJw8{4Pm&vlYm&$%B=GmfB2iH@1%L2-KH0QZkBLd%2 zG;nlju+>`w?^cyq4Rk8*{lr(?gg4&T|LT|H*Z;Gx#n9ZLd^h1x`k*QiMcFG2`h5MW z*qnIpbo}w}|7rX$|Ks1oxQX&Up+_at-a4IXhu0!XePh@Zo@qn|cT*};*->j0tKzBc zL*h%4F|SHYhAB|F29}9D%RxcX=&Vvjc5tP!N~OA!kR5oN@T>~8G$L(CFB%8ZAj$Ji zC-hpQgf}JIMiu(38=ACy^QlPsK1~_skzQ<)ilR!N1~5Y~*e>yI+++7mJ2gy9;%TZU z5T6)fA0Q(Zt?3)=i;bJt#eeZP|4Qt+d`nIb E@&$I^?| z?SFGGc@uZ?8TRJ)p6}`401PMVNSbOr>q5D5p)tInCzvNYd(o`;!WS=(U;C}E#T8$^ zER9y)w=Q9koga)5IXdNwdGT|U#_$UA9dEtm&iGsZ&Hq3sC^}qt0ULHj KZxZBZd!NtzE#;Q(cf8=6ObkLj{tbyGan+33K4Dt+Txq5Vu zfiwA!5O0HCHKWRh{vY< %Q+`boO9yDi6-Ppwx@&JJS=_iZ59teah^DxD3a1_=05Ia9;Cf` zX}RrKZ}(ZYu4lVE?U1*MW64dv#0Sc4&r=VttO32KFqF(QzEpZ02Ogd!t#c{c;3bDP z#?B7?o8(}t$89^bJpKw6e~;f*hT?@qJ1N_j$vWz{{M>K;83IaJ&F<-zpLx#DmQQ}{ z(;z3yEZ~vF2j(>K)bMs;?%>R4m<9Zw9}R3A&+-QGDbN}iT1IovXDi;MG^qyK;uXU* zyh!;AN=iLu;1bC?Dv$7&^eTOauXsmXNedL7H+RCjXiLiAy1&ie@ScX}n7>(!3lHqk zl=WDqbFNLWjnb0s$PSlqBl?L $QL@Sc& gMnMx>KYdvh7?{w`<)A2pjLKM-k#&|NXf$A-b-1Oll(Ny z9bxXsGTe)Gxce#Nf;ybLTeR2qWl>oCQ pjwsQGd zXO?r1JFax>6EKi$LOM1`IV&yWV?Rro(>RFp3xEBE@`9KBa(Q@uy0j+IQ;{hakzd;w z$~&Vtc>x#oC26Ry7mQmP5f3KssVik+16(<#oom$19PjE`&JRn@Gr&`NYOyF2SqT(X z+G9Z#8AIAq4}t(fTN<=G7_0|}39aH`>V|ExZfS#hV&vxFP4VS{q6_4)ZH@uh2l$j` z vC%A|EX+@3u}68V(J^((nxkw(ib-?YNCpU9hh&Cc zJ6aB3yOjfDPc9c9doD+uG7gaSLNhc9vW%?m*)>$Xn*J3CtQyMy6~L@sUWLFa1ok}$ z%(B&~JJT(H@ZmowuX@pI%KhKIpF>el1jFbRMxFYYB2?6TBWyDVMTo7&Vg(C@X$4&k z15AueYE7!jK1Kr#NxqmoRmS+5Nk~~d#zUS>3`-tG)Zu HV;ltuevu&__kQ;LwtDZ@kfxTX ??5@z;0e6+P64pNg>V)>jzTYGECcfhtXyx#d<>5MCX@2J^detzOqx;#_uB)| z3!YGpb8+Q@VGI0PLlj7}ryh}D4nG*=lp{S`PH3UI)w|}iO??(Yw&dquEzh>_3Ozt` z@|;}hwb8OwDEy4!0;N#nd}{$=-rloNFi$+j1rE*ajN@H?^kL EjGC3Ufn$9uHI=YEoA@E($0-tqSLmRA$%ppU*T&1;NuPJ bMTRjL1S}sO$9xQIttXBiV{4*c+0aG!(9l|NIuZUK#kE|uQlm#c6LwjIyyEH z@3sXB(u1nsSeVRj@)GeIPr1g3%{}KoAC#~7X`FH~tw&V0FMEylH8f<~ B`q23w9ZU{BGuR z7rz|)jd4#X36=2w-q_Z7U=sh%6AkaFGLc3?Xpb`FRT|{$+?i6sui_{GU-0=J+k#3O zd^ngZZMn!3Ud3HF$}-=PMr*6c+VGuTLGqPc<5uX3>uC$^^wSji#r(X(cWFnAo6cpC z3n@jzh_A>+i-d;glp{{uRxZ2w!i3N`@Q?#)zb!_YYd@tS;kCegrhDN(eD!PPWiNh3 z`S|bsQ5ojc?w0Zp7 m{cYu+?*BFh&JhG@coD`t@ji&`+Zi8W z-qL`L=Pog)yDYqh&j1Hu-I9NSL+3XQ-dzmpOAE|v&J}ouOM@Ca2bq&%^aSSa@N+j( zXJm-E2&WTpp|M@8 Dm$%5rJ@cWDIo-ocTfn8m zcsOMJhH~-gXOweJJh^OLyN>J7P}=CET49yK_6z!XtP@M!rLucwSNZ54f2_RdRWB*y z2W}_}$OeeJ$T4HU5t#$e?at`9lR)^z?Cxo<<47cqpbg~-7fF;=qyr7g8N19mGrM+& zuP9@NUZ9yp^j`5g^YAX@rNJ_~W)k_P;!2rae5teLuyORb%m<=DoY6LQI%&=@DSCnH zMeeS?B^=d)Yx2%aPeW(Z$*Tc8xW^z~9ckcX EzV#UMFN0F6%hAP+* zO*xF20dz}cx)!>}o=0| $8QB vgTQ5YZH^2ZHj?`2du-Q73iJOm)k)$RRPLRsl2C=a7z-%G zHZ_XC-b$nG_vvc g8CKb78J< zrEt6i{Vj4DJEk3kA-CL#9~JaY86KJBIfP*ZtT_aI1+F0k^lT4>R`sqyWQX3|_APx> zJS*VEn-qKvAXKXu=$$D&MMww#Q9cmvHIhn0QAj1Qy=crhhmI5#Tgz0SAM6>~RUE9} zIxSa^1t0fcK9Hgo6g+tz+b{{*L=a5ONBX_cKV8Nr+vUWQjw#pObXhrb`w4hPs1%Vk z@!5r69`xb;B55dZVc7iA|N2U~^!&@&9y?n3NyaRmL>#0iEY+XfDPZ@7uZr9Pd@SRW zn^iEbikW~hPcx>&ugIyPAUKZj@3!Dd6FKxSh71pRM3C2HMS&`sBHvf#dGa6 -38?$jOE9i`ZzrExJc5Qk>P{^m-5qzAE;$T|In*@i2-%{D_&pz z>)YPTT%l1)MH{-|`d~lXi-DiYl!kDXH({-zd~pDS#A2P(M2@j8^=2ADc@)pic^a{& zF~)0n?y`%f#iG{aT4Gj`<~V3=4+`A~hVo&RCuqw9(`HrTX@k7Uxi!3pMo1TW#o3-A zlutvesFX_I;>CRC8NypigSj*;pYp!ELO$u6NfKIfu4OF14^3@6`{bXNr=j0C<5?V_ z9twh&R^?ZNDt9t3EpSb*GmR@k%{jUQZEapRQI0?M2oCx@vmAfap=AQ&XP-0%tx+?z zRbHNo_k(|W0y{>&`o(+7GoJFS^3VVD-HbCj8#u9 (y{<491(`Q|9db#?hE6Z`GA614YI4} 8f1#r^n5XuS 0Yeq} F{oQDhz)*c>V-Wq|&Fjr{! z)3D4OAa55HhCvx3_A CB#JT^kRnV0FL&NRlh*7JCT#qABm zy*_gDf#sr8PA_L2b8H!M9tA*DWy_b_#h3jiEzT~L2d5q^@A>e1%bV`{jWW7v4LXR6 zQg&L|kU0oFMWt PZmv(Erj DU9lSfV~6& zJO_{yCN{6f5pTB4J~~C-nKH3{Z5drhz040?y}_YbX+k5sVOMmBG7O4pvhl`EgTv4e zGLHFXr>A5h(54F_&=E2^q(PF;Ajd(&gFNT1I~S2=rlz2w>gb@J=Xmj4DEX_nF7Rj< zT0HDic~GYT` EZf!{TuwjwI1Y?GsjSCw zOI9rlm0o+KZR1wc4?$qnQ2s*zS^c>RfmI0XyAZ(dpv w~Aj#H8oT6yuGG025_|T_&ci_H$1`#+Tts+$!#*>lVAJ z0AP^vIulU@aD;51kD_IZY*c0*XCl7o!Q@;-Lt~(J3gnrz!~0zKU7zxknthai5xRQ! z(xTi**7{ruW)4*m&8%1ZWqJNyLb-DVTn`Nw4!Dpu*`VZMw(J{SDhF-bTmX {5-@ zdT|Rw6*?gi%5lL(0|WRIm*PY?DiCXcY!QB=+r?Y6C}=APTdsoI1osg3=XM7l=2yry zw1VE`3fn59Dp?w+6r9YXK_iJe=BPI`OS@vkf+oeg_1iuOoPV^1dh!!`mFA`IHgCN| zW7sf1@6Ze_jRy>Ev9ApsS-0Nw=9?u%#1!L41Bvk%(_ZK(P2;``3H>b;!`4FCa?qM` z%9%%$D~Mfw%<)HH1hX!^s%x9lu>Ig4oQO4m0S@r|OnLInPr+-0t@^xFkX>LI=1@jD z?q9C+5B^XWGNhwy_jJ65ej4S<5`3o8mAHsfPBx!0{-6T1-ZpdK#IOo_mCKW&pn(&& zE?d7ZOZT5NTL1e4x|84WT29_pYEFCQse0-0k{;lf=9PvlCT02AyXSS^UbjRSV$7Gt zrCz=~!_8`lsPL%9wAxM;Tj62&gJVvAT-kmt+l?>VUbb#MFh&ysz$)|i`08@2SNs=^ zQ+mn${Lj6peDDLm5Aa+FL*c@UXb=UbZ(#&DqkI`k1l(j-Ne^w^zG)11EF5DD7jGKZ z=gHhbxz@9(jUqISaz3lqHTS0RT7m$} solgeQSZDH)l8&zg~??wCkTFGf{X@;F7Ee`O!yZrl~{txAW`yQls0GP!A z;Xk~@B1o^lPW^tbi>y@^a@;w_`5ze}N;B{^kIy?_IER=V$L9B*22S}z?oqJ6m5G=E zL$eS8HCfkVe1l@sk{X(cmN4$+Bj&TN)S+C&v!Na6CD%l_e_XeO<-9!W^S(`y!6+x! ze84wl_^L(Je3oNhVti%3tvUE)j*@o@4R^X6ee#jzoXbxy=Uu%choASiZL3nIhMN6{ zhJ@V$p$!}xpZVnfEVtcuNBP3%z7$VHmsk{ykOt_n{jMo;2y_sdaGvs;xZuSXG67X# z&)ahbgmS`i^z!+Hcx*#6rg&~zPvlhSNMpHAf$|1Jk*|AnBJZfUw<>b-T -iz+CW=KS>$#zAW;DmM9RA zjjtamN1nW`oN>u1iWk8PDX^(Ag#w2` OrfjD}P3u1xQ{%lxRJzAuJyXuL;XVntcT z`$|$8*b}CVHfj(LU5IPwKx3qaTKS5Ly7t3V4}wH@L 1So`*W|D)VXk#Dp-tgQ~Ieg8=vi+!I%DJbWS`IsSYszqp)WWQB|4ECpi{-nI ze7F3@yWdjY^O5(Jv5gZryRk^i91rRNABJLh^#J%)W-#Wv&T%tSI3KWR(S&UiKgySm z^O3Q!(7*!u7ci<%Ke{_I^(@A2d=$!>12@8}Fr+`ar#$+|BP@`PmeIA7rOhIS9^*5_ z8<&R-Q;zzX3#WRGi_09wiG1Y_0gd7=K PkE@t(yQc(gjEc8E@A6gtBuf&8Px(meX(oG{Uo33(ZNJNM*f z%xTc}0$%Jb%3F)U{G4qkmg{$1R1V#;l^qJujE#()UwZuEWCqi}bg$mo-~X=~%J+8+ zul8>h0{amJ6sEs^&%Nc&SHH3R)_Xs|nsODgBaACx^HLbrgR0tn{H`$1WW}p)k3_iY zDM}6RcM?@FH#OUmBM2d4Swe@yLzJQ$0myqQg)veoH1`B1>((f)5L`W(>b)3`D7#TE z6v9;qOe&ggU3DU|9lp5`AuvKaWtx1(d-heM{jvdzx>RnLjcVj=>hXCMTg%Jy)(J4Y z-n2nsbP2EDd5kVYYdYmfjGO12drrCFqVvm dXu0*)SC)tF-^CV34KXTK;1%!hzD0~Vz^D~` szXs(OZj>a7XnJ9YDj$1Vq)>R(ddfFajOQ3a9 zpMI6%iyu&>3L5!%OOH9g209G=b4{Ele8OJexs?2tFGds3m}?r@23=6nAmaEz@bZ3? z27Vh4c^(1YHpZZ3=cF6%g?=#Z=}Do>PZtlO*Kt5A002M$Nkl )*+zZYr zmtJvRIry-(2!i%jLx)~BJkJ;vHjd4eNJfT`KnE=Ed)o)f^Pcy-GTJ|p-stJ8!ZSKQ z9=Hj!7?Ze`MLS?n4MBD6`#rE`NI512#t=Anj90z^9zmSB cv?-{4lC$ z7y$+g7$3$tH1?R|4lbvhesnpV13$NI*oc3%1~m_xUG;dLQ!E$8O~EzW%SmyRY2! z8}BK%-~Q^d`+=$SKo4jY^ wW3JgB(141vghnB=;T_EE!b6xJ*fF3RaelBJK#hX0O z6KT6eE%T}70r?Akv~S@#^v_$$Kfa}@$V&97+0Ej$%yX1yo`$}xPWtuQAo2i|j9rd% z6t;|)W6n6LoOS*gWyghQm#y0l%I=nMAL_E{@-DrxZ7+{6_s23 `b@=3!kF=#^+6D!o5&y3SMkR65Cxy1T*1!w`Uh{3a>&B7KA*c1u_+(4gSO-j zjSR1&?99h7ztDyJ&K&;PA5$KvpVfPww((r*=JN6aaN3D6n9q5fCKd+f%H#oK<>a$Z zD3@N!ymkS*HxDHo3ovr76e>1MTFThrS8b %Ug+`mOh2EoO;@ za1kLQ=BqY_L=BtnU;^miNu5o(qT 4LU2 zG>g&H@mIZznZwwP*=7EUXE}0tM<*K^G(h;7F&rHZTf3>8ar6o0oKsILTky1&O8djl z<>|Cnx`hu(Q9ye|CiR)G-}jC3nm682KK7~qQARh6m%d@-AMoO0xK2gVTZ@GcXRMYx zap}7Y=Znx#^d zVjy#5oP
@UJ{ZxJnRf1E=foc6zBY#U zHT0EGGK`sB^v6XRow5el6+J)00@2RdGQE2a8uGAE<~3+?2>I!VO$U@Kwx3tdIqrnA z4#WRI+c^9#L{+(5-m}DxX!axmLk#mA>ipxHRt@Dpu9#o#_bLQdAOs$M=;89)@BeUl z!)t%F{PVrvi%?m`R}^mq(l%~~3Z_w96oB}y=&7KiB8XVTf4;-`^DV-Y#zmBUgf&yj z<6p!o6)(P5gE$5+74=>&h2waeGtoL3$5YqYg_%5t4U8HZeqs#be)HV|qO>9SSZ}S- zR#Aq+jslVG<}*epgm@lbP73tBM$~%gkv)z9llp(aU`}4^ZOTshlw{eBVh|(0b=y~x z6Z#n57{{J^RJr5{=anmOzO1w-FoIwete&dWr7&ijZ2k&NfBu>OSzh>pUn*bv;$K5E zY)z*x*owi2#vhE (Y-(PK;DO3r*k-Vm<}#2HpzD z3S@fe>nUl{)5*66pkV~EY^6h3550&FzAF$K-`qStzlhMRGCx4Q6mB8lx1l2yeV>EU zxo5lEC?R?nN8pzZXnYL3+*4pwnb3gdGXu0Gp;%B#G=S@=>OGD1Zk1gEKv5zoPt?aK zh4An9S?ZnVjROqj*ay6QXyfSQXgT)8W6Bese119o^keA{f-S-%9pX9Z(zoMb zzxhx1VdQ*%`Sd6M1VNIJ7xZQcL%HL6bbdH}lX|2K`Gw|SlY*!8)fG-zOcAEM#4Cs! z8qiR#q8L!+nH;#sy^$e2NiYhEQ*kUs4&ha cXT*#@SA;6o*8fknGP7EL4z$6@#j{9qAfXbD%K1^JE^ zZ3a+0gZ&L{>HP#_2)^Y*j$_BV2m21Qm3
BQ^Nw@I^5lkf7#C2|XPtvE zIKxNuNOuk~Hl}k-yt8PFabopol1B9GmcCsml=k~E;?H8hH;jsg>mfX{GzKLGy7MsQ z(j^o<4JFLI7!BkthNSZRh#{0;7Zz1+rFFNpi(juxSo1Rk9N7(x0J9O=**3QO3~|?4 zgw)H+14&ukE(>@7x7TpE-qvw;xg1|^IB!QecI!d#MdbqE4f*-`SdtU z2OCR1UO%NjSfo(j+Ts7@Sx#|W%9t^aRdcr z>`HVlXw@H8Mv5`CH(oWA>$xT$YMzq@G>XPaKt6;l)VzeW*B$4XALUFg{Llu+yfmg) zo%fuNq$BA*@(EuoM}A?Sq-U@ATlzLNJSE?`FItyn9G;K&Dc5~IA^G^sd?qbYXJoPP zJk7y%UejB@+t03#!G$t$z&Ihr&M3D$?Z$HQIVY4h#w_Rk@HhGr7<-n2 C!NRX8- zVGKY1ho2~S+;M05@|XS=hN6*LzAhbLoMO>V?Abx-$COVyEL`~|?NrAM@xyNs$UAsr zPLkGqN_cZ8`Nf4ap}doOxg(CC2XHG6MW@DN9t+l`%PazO53?q)HxFf6Us7*u(>6ys zXzI~7&(j9qmSs}bu{~BRjd7FjkCo#$+u*&>CiG%9Q|OC(p*?=vtI%!AG(WK6JCw#< z#uy`Qki$L?h6kN@`HpfSa?!D;91VSWr|uTCN4_%ddi7Y>N=P_8)91zV$DjF3dF>ls zU;g*sd?m7Di?9|6w}Kt8h2cC#%>a?!x y}vT&yBuFfWZT7s|u* z0nd&t k6rmjFyTVD{$nqU^Epc%3n)YZp?(ieZ z c_seVEa7WpNAsO~lI>frSU+O~2 zw4SFjhb-w%vH@h^c^1rdya+)7bwim%?pEFecg`ybmoqVz5G!)Hd1MQ(s~73 ga14R{R3D;I)2*`gsIzJ z&OZKd!qnk$kD;6{Ktl{Y=~P)9N@CC9iln0-MWa^@ x#?*)lqWp%<}$L5Rs0y#tiVR{UnOY;rZ>OwE#-wT{3R4Xy>k^U!LLd$ zf`L>tfT7$)fk72DVMBLS+=N{`FcqftfbyBx62zZ$1WY&-G)lMMfxk2pLpAUfcLAI^ zfnAK{7!x#-3;#B>(mYeWt`Ukrv7UX#LPRPHwA%<#@#;jNx1CLWwoQYmxJf*97ItiZ z8^O~0Y;)+Ib|nrur8$079uSZ6oE{stp?ZQ=ns-@g0R<->>^;Lo^}eHj(ionF3wUx! z9xa4?!*0w2n>j6i{C?bF zbHGmXVt0o98C}#+E^fpbfXTb|Q`Je{Qw=^sH=Kz)pg?})cqLg*a3P2#1Ym9W73}LI zp6U%|OYLwy#_%lEiB0JX9>Xg}1@Ip_3BmF-ykptxTf;1MN(b^A6~$#<1I=2F#sCc$ zmgVp8uh6q)RbFI2 tui-k2E5K8nbuh9I>xmay5}z31X_JO*4IO%5 z=^?tf$hKkeOZ~P(B{b(NWP3F2#Mq!A!M3+GMu5wC+9I7mSe3R=_@Ks0mm0z_2&**q zaX6L79`x~>6}r-ovAiGS@FK?Z1wzRz028 j$Dep;x%TRd z%SlHaS;l|^Afqo5ohCk;qv~A8=n5er7Ch$4?YF(E-1UyT%GASpg#jyHE*LNdhv7rc zVrcTfS$d$KnahMVdHAhFBm^oK5)zVFxED{#H-uAfF6;53c)Vd4CTD2OI+M60k8-h2 zdaiO)vW5S+t42QMrw~tQG3Z_16uu(8(oW-Ii y}|Zy(Ii%c;#9gDv${lG%gIV;|^YQ%qd5eD{r~1TzJ*_ zWz*ITOv#p0`JUr4^izvY`77n$xBl_o@@v2Prt;2rz8hY|xMIOyC@U8^uQ!JBx{Ivx z+A9A!M(rgO#MliF3M~m$UfdM6;zH<%V^e62@4=C@DZZBz@Dz7F{5dD(S$JdSDd~!P z8rk(c??>iJBPhb+<%iZ1I)YY~cR+fd>&{))R*g@U4~7OP(_|a1FPTzi{hjNSCrveU z6M7 6YG=53;@I!I^j?L9$P 71ciT zbH$`CaJ~0i_mwxj^{wRtzw@E82R`4z5a?mj{VayMxYU9t8xOo+kJ-SR-olF=JCSK) z{O+AUp@EY! (M#_oxYZC57nv(}Q z4@#HLlX{PL2u0RnUW;rj0foPi8~Me0bXY-?!*Ge0cMS8iC-S`Gfb4kmnop1P80e{^ zLwVKMsqxzhi!sE!OM+F|n>(c*bev%Ja9Eb--GxN&ESb B! z esgk6yju$x#A0sY^aD6Ub=d;j*PEvTeqYvpYGuWYF@DM%R)eT39y>56r7ZD$M z=n)oaz$XjT9X!Bik$Gll%PeQMnRgHm^1gYz-U&lDJ4MDWlrYC`238mr;OE`%5j=AS z`H3?U`bM~iO6a^cGB#8WIACMB^rVx@HJqiek)4Gu6ZfmTrRDNNI2rKxaZRg+@*h{s zul9Qt0xJ*#fAonzD!0D)w(?gTIMnIGOAVo>sy_%J2wfeNFGb8KX)yLiz*g{7C^n{` zMqmv@QG$9;E1W9UHYr{Q2r&v`K5MEIh00u0W6kYE9OaMlm2&;AFduo#dTj@Slb?D} z**;&%gFt6_3eHg^6dd`j(ZXci3Wq+!zoZD_k>$LX989u^ggj$Eykc4AuVObBDXt23 zC Q;;)OU!%j{Jv^sz47ds~F*hKJW8nAL^Sb2OYerJmD$Vmn*N^ zL5PRy{p=xo!c8y!m6jg<{-b5bS?8AfzIh+sJZvo{IWiVCl!MO^!uN>R0VGoCp$=*2 zfuxbLtD+SCrHM+Y2@A`pFL7%*;)KV8Uun?0jyxCG#0}qgiciXP!AH*$G>7mQi7y5S zaBEo_7C?Gxv99nHX+)e`68KVKT~4--H&vz&DjPO4{DzB`>9gKXyPyS)5T ~#3>bWMK{IsC)lEmPD>py=hH}#rZz$_FuSL+O21yYb5_Yz~ zHinNClHUAZ? eVrXa-@u=ZoVzM3zDtTznkiOl~0>RNf_=E~QNX^a^@FTCWQ|`=37#DDzHc_|p zj 46p=9q?10BN@|NimY+K+Ph9h6cP5r6b#F zc{BruD|WYxmCm8ZuagDAAuYPeSg0H>#kYhMw+ #3HP_Q^+R19apf zvL)4j^;z@Onk^SO4O+BawcWJBLD73g*)RN6nk1P|K4Tl?k-{+Tp+sRQO~>p;{fnH# zvEh()<%TC+TdsfV)n&_Jo3mJ6!)HiCJ$Wr9ubh8>hZp(lU;oDPf%kt1fHG%g!Jqy! zu`8d#bs`&8C<9|&{udW6d? Z*OHbRf<{%U*>xq?wxk z2d~=?lld((e3CErKVcZ8U)t2rcFIVjnX58C(l)}7w8mTIv>m6Er# >K`< zPiaFsh#?m_n*1724O8d=kA~}*$FqEP1}}0J!iR`EZLsV`LhI?J?#`*fdEhq<|6%SE z4t>n!ODs6dvO81n>IvGlk&tN@oOxQgnML3O)(}ryJ`5F^pu~Kxw0|G|#7E2XU+@B) z0r0%%HHbc;_^CwMc;S1YpKv1mEq0&L-GRs~^cOnWvwN!IL_J8ERz3jkq$3>+)LR^q z@*1yeoEG=$$u4TiZ Q;ai&`z_lI{=&K?$Ba6l h7U6{0B&N_PeT~rUz3Ta0^Lf9fY6wzLjzJuu#BeM~yH*r|OHtf5RK<)* zEb*|b!8`(<*{Hzk>wl-lD!5mrf?rJ9wqL Q+OIsnUUldt~I)r$Nf^dQQYM2E3|Bm^7HhGb}~`4d)oD>@PU2@s1G=5$fY{(=({W zgred>zg0vn+ikCw-O{rV`O6r588bXHh(Ni75IaxC5sb&i!C$*&vOM?ao>?xu>@>=D zRJe^*S~YCR%1RG@@8NRHRx1@oJK7v0Lbzvq$sJx ? z3F#pjMwy^6%5-d-Y+tQEKPjJjc}dUW+4fRk?URZHxb~UQE;QNjnI^BlEyMeJm!Abc zX_3?@!{)QyHpsqC^*vhF9kj08@}wKf6Q6x^S%2U 7oEu8t`@$d;h9wu(9MazRQjw`n|-G-m0Q zWN0I?tYW4zID- E>FGj+Hw}&!9ysCj){2UQ-@TylG3h+rph%}U0c5V#jnJe rxjw#^D_iB`6;gf~CgcIW#jhz{z;J~t^6JaE7ob8ll9OvF>WD#Mu zJm-O14;s!`r|!r^{Bmsjthi5zAPt<%tHNAaMF$6!a?5u9syu*#X@o72uJe*U><91E zOMYMGS#FPw<~j5G*ChMHgU!$IDEX6b^Vz q(UD_kPd)zj500WLM}2k^dqeE z>fu5@9N8LL(rY%E#Q<<^cz!dV1l~Q+2;=7ELp?0#ZgV|{`f4}=C(76I3(J+}{GOQR zv?=)GQ`|AAp(*RHbCT^fh5n#LQyd8PqNC7@*C{hEK0^<*O1cc)bKm~>PFe6CpYs_W z3LWKnc_H=qjQ4G47OQL%9mzQY!~Nyt?I)CH|I9PXX&0P~w*-A6bQL+3L@8|LBzG15 z>7W03x$QNtDu4Mme^mwvZK6zSJnp~{meXQak-H-k)7kk!V>$3wHgzFZ{@ry>+cj0a ztHEJpOypN#-RLxWZVOxI5b;#$20Fmm#JS9QC=0IA2XpFxF`6-iE92_fO|dbCyMQYV z8PZ~GauP4zdbUhLf?)A$pEoJCvL=hQy)sSc6|Z*j?PsoJikn#~gF6ebDGSjHj{f zu^f4x<)&= qTHC>ywkq)54@l|@5oGXLK9`yVX-@jpGEongae_w+7e zbnAHy9?bx*207%i58CO|P_D ~nnJ=0~+PUI@!@4|b|++f_z!=H2> zFbrn!C{78l Mh31 zO%qxOk8!QmT|CPB`wdS=U#FR|k&DVMWF7k1o=3Ld$*zfAj1k`Mz#Hjujqr4PW@!gH z7tEaYG3GGN>(ns2ZnUi1I9$#?ds}(t)2}aE))TiJxyuDp#eB>bKelPrQ2t|!`qhrF zLSW@V;PapRe0k+ z;FBeSqV;G9kI-)wN&x(sEXVso)d@1tMd_Z{JXW6YQ@507{p{1q0Fyo15(@CjoIQW{ zw|}oZ``ORMuz>KbP@(Zr;Q`@NifKVx9!e$*2ieZ2gfs}=1T8>|5U$Xhumu=^R1N`R z7BLK&&?M is==taJyp^Vb?_ETAz#RF*3EwM?+e`$`j=02ItEWCm&Is`~N(( zoO0^n^xfxFWLBP`eCLC^%bBO1S?>SV_hUeC0BI fu8LKtz*LHaM(=1&xX4{9?@WD+c=1S$U%O!sDbra>fe} z={JXfB3xUd_=^F9%$62!N*j~5Qb&)krG;FVEYjA!+N>eeep=4FagF4Q(6%r!>8a&+ z6=#$DDW8<&%X(FS9TytdgrM=-7y6++7MTVn`^ry0@2AR*KXGkYvvHE^l!sEHajHTf z#jS{cpZ@e`%TN8}b5OJg%WmRIy2VzM8UiX*f}wn9h@A PKE; zKb#*?-NMJZgg07X$4?*3tIYzC#_ 4@C521R$vD2IHa5N0am1B-P7+OSrfIJ7Gxs^skGr;2~p85>VN%#z*XsTS{ zNCV2uX5f|Rq8iVAyK~ANM=HP?%xer~VO8g@MlN#E06@r!{y)iaT@8f5mkh!yW83_U z+a}fVC?~) SPQKuPdnq4UZ)Bcuh&0N6+RNI;+~<4b zAD%PGUurvR-@ImPoEv>M@(+2fEAyrBp#A9|-vvPP%5y#1$W9<8zd6DSZ9a5Ux#gKR zmTNGUj~{?R4DY-)-i`KsrKMfp-&O9s^Y!H|zw!1s55!%Sv04q~8iC;j%ooBUJ74lC z_A0Dk0GTfwck=kTMR%8pi(oDAY+xc@&9`?7&iA@d=R#Q> ~a<-E&wlxIEfY3z78BD)ski!L^;q@-c@ zFTeDq^2$4ZrTqDqKA&BMvlsxCEroB?4CbCejEs7g8)JIFIe+$~8)6k)F@lsp-g; z37-KFs=T0HLpd%?kjF46%`TH=-oyRs`OO^0d;%hagFfar=|tn^kPE;NLKfKJhjY$H zd@2(=XN_{G;}BuUkmh $qdmG)SAB8#R!}IRsosez(jZ8lFcz@*@qe{m3nY z%)L1z6uvZ#vD0UDQt+&YejH|I*%>uUh!tZ>4`D1Hpg!lmSr!bIcI_!0;*t+AANJ9w zmf<=u6fY7s;}I8nF_aIo8(||l+ErKVC{MoSiZU^zQ %)3CGi&o@F;K zp;^>b^z3FBDi=A%)oY|Lr#*L_GmO2QGf^O)$g$E(c0%Y04!+0MOoj%Gd#|^ yQ7zobc;I&$_x${i#un^2(iXHEV2|F4Z0o( z%BOPSQk)8KKA=B23kKLN^8Mj;z;go0YiNdDo0pZRJ>}Z6j!-h{dBOr_>i-|hv}!2- zu|)f7r&l4cG9mDdfBJfP-5qZ%cfI{Rc&X~irg5+unKaK-L%9Mbf|-hYBUEP+tOBYA zO P4>M z3n7Y|w!`as{J0R{Hb3dKgD@}6FCq}?^`i%;pSG#H 4cmBZ*nCM;|c!xFF%q8&AA;E+R@0+@S6rAS+Hw<@L4IUme8Z5 z%7MVQ6s&i+bOk1 jH%u}lw}x}~1>^%N>;M;_zL=1DtQq@iB%AHFA@ z$Wt>2xGtT?$d6$GJgWrCQvwUxA}yONt4Tg9P0Mc_Pu^>;nJvF*gJsK?2B3Ej8s5FM zvmAhd>L-8p={acFSg+iq{Tf4Q^9oAey7xQfmRp`wzW(*^VDuirFyMT|*g`wW*#j&f zbug40b9 <+^~u94h>JLmE0(>PAI@EoTvv>(d_ z${+pp%@}I UqbNTW-9x9DV44HD)<| z3V_n{mGRGm#cqAk%gQ_6{?4*A#rQ{_&@i|dk8 k)#kJW`5r$rIoMK|6S1f$df9Esh3d7?_M=tcc m@)PxC-0AmFthqdE88@`Ngj<3m0e7i*i`-!!Mt6(Z$^e(wxR}=_sLp z$VWvyTkCNi@n>W!_>S{nY6)HSa&c{$9(;}m(gGSSt)$Id%Yq7ku{~6t_BDCQ2>rTa zRbwbLOFOJr(xSo1YaWCs@&GyJ{n5$ca>3Q-mM1*trn2pXLouuZYZftAQu2`Ld%yLq z@`^iOTYl%`A1lLzqR>#D7}3B$L$vY84O3xQmbP;l-nAfvIZas?Xz&)CF0eYkO+AX? zPhQX5P+ L9KiPPk7D>ZRb9*rL5(d94713Aw}5> z=2Sy$(7q1$hu9gpfVan-hi#Krc{w}+o{)uLcUpn#SweTXkZcGs&+2d?#NSG5eH^@P zy={z~^TsQOR@s_D`*F;{AX=uNU<{dkgjiX`1Gw#B+JqRJ#XvfXNAwb94*|c9^h~)- zX*R_8X=N6J@H~Ah G{XQg-irL@^JY$1%ZJ$Iv`P$eBLiJ&0@s3h|C+7i;v7I%Z)&=ESHx6@$6sTDd_l zZh4dO-W|s?c%Cb-EJANO1-ScF&Y;7Ryx-jpOVC`#Be2gso^>cEj1CJY&YRh>3(C6~ z#)mj~zCD5G`FN*{tsT#yo{Px%ON5f?hrnT<&@*(&T-%|nHt!jB5$s_x#Q6Q~Ar7F0 zyUuW!`5wdYFt%EK6ZDU^dx+;A=zI@kw2QF-z0AYEm-fJSkd+2@OG7N$LSqZ=&fwto z8I1AtK4-Z>j-jKB4xJ{T%_$aKTC}-?6TyZ<)|VR|e{s3?`W 7HvzvC_MF1Nq@Rb@$G0>w)Mp9)@#f)U%JdT|dSf!QeAME$OU zqqNFo;Xz|QqmWv+in7}3a`IkDSwx9Vfrl9;lcR!Mj7SK%PN2!s2x6I%okb&7`!ID@ z eN((l$g8oG3jHG??)3z}2$Hnf3Ey{<(iR@EJ{5=L zqaKrjLfUK@T&nG+Wa?-X%n1MXuxTgvEX$tQ9|ePis=*_8%MqK(#W!A1&cFQJa_lL` zuq6&}V6*Y8&CU-$_TlsoU;W4Ok{8`tKJt4XEfbyf03J#}h_U^~kB&DIwAE7Kibpwk z Z&f`Tbj6zllZqkeRgckY~-hylC z3`q)sTBBpO6IvGdGv1-XAX+-@(_n@H1TO@=RnW;$9DJ4