From 35f487cb9dce8441b97fbe1c3dfc77b990572753 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 6 Feb 2023 10:45:14 -0500 Subject: [PATCH] restructure scripts --- TODO.md | 12 ++- cli/generate.py | 5 +- cli/{ => modules}/bench.py | 0 .../{preview.py => embedding-preview.py} | 31 +++++-- .../{watermark.py => image-watermark.py} | 0 cli/modules/lossrate.jpg | Bin 166607 -> 0 bytes cli/{models.py => modules/models-preview.py} | 0 .../{palette.py => palette-extract.py} | 0 .../{preview1.jpg => preview-template1.jpg} | Bin .../{preview2.jpg => preview-template2.jpg} | Bin .../{preview3.jpg => preview-template3.jpg} | Bin .../{preview4.jpg => preview-template4.jpg} | Bin cli/modules/process.py | 79 +++++++++++------- cli/modules/{ideas.py => prompt-ideas.py} | 0 .../{promptist.py => prompt-promptist.py} | 0 .../{losschart.py => train-losschart.py} | 0 .../{lossrate.py => train-lossrate.py} | 0 cli/modules/{ffmpeg.py => video-extract.py} | 4 +- cli/{modules => random}/dynamotest.py | 0 cli/train.py | 10 +-- 20 files changed, 92 insertions(+), 49 deletions(-) rename cli/{ => modules}/bench.py (100%) rename cli/modules/{preview.py => embedding-preview.py} (72%) rename cli/modules/{watermark.py => image-watermark.py} (100%) delete mode 100644 cli/modules/lossrate.jpg rename cli/{models.py => modules/models-preview.py} (100%) rename cli/modules/{palette.py => palette-extract.py} (100%) rename cli/modules/{preview1.jpg => preview-template1.jpg} (100%) rename cli/modules/{preview2.jpg => preview-template2.jpg} (100%) rename cli/modules/{preview3.jpg => preview-template3.jpg} (100%) rename cli/modules/{preview4.jpg => preview-template4.jpg} (100%) rename cli/modules/{ideas.py => prompt-ideas.py} (100%) rename cli/modules/{promptist.py => prompt-promptist.py} (100%) rename cli/modules/{losschart.py => train-losschart.py} (100%) rename cli/modules/{lossrate.py => train-lossrate.py} (100%) rename cli/modules/{ffmpeg.py => video-extract.py} (92%) rename cli/{modules => random}/dynamotest.py (100%) diff --git a/TODO.md b/TODO.md index c8b80344a..bbc109645 100644 --- a/TODO.md +++ b/TODO.md @@ -88,13 +88,19 @@ Cool stuff that is not integrated anywhere... - must run `./automatic.sh install` - note: this is quite a big one so some testing is reccomended after upgrade - non-trivial ui updates -- added **brightness dynamic range** check to `process.py` -- new script: `watermark.py` +- renamed scripts in `cli/modules` to be more descriptive + if you're using old script names, update them + for example, `ffmpeg.py` is now `video-extract.py` +- updated script `process.py` + - new **brightness dynamic range** check + - new **preview** mode to run all checks but without saving images plus print a summary at the end +- new script: `image-watermark.py` - optionally strip exif from images - add invisible watermark to images which persists even if user modifies image so we can always track it -- new script: `palette.py` +- new script: `palette-extract.py` - creates color palette wheel from image - not finished +- updated `embedding-preview.py` so it can skip existing previews or overwrite them - expose variation seed in main ui - integrated seed travel functionality into core - integrated `pix2pix` functionality to standard `img2img` workflow diff --git a/cli/generate.py b/cli/generate.py index 498864cfd..7c267ed2a 100755 --- a/cli/generate.py +++ b/cli/generate.py @@ -25,6 +25,7 @@ import pathlib import secrets import time import sys +import importlib from random import randrange from PIL import Image @@ -330,8 +331,8 @@ async def main(): dynamic = prompt(params) if params.beautify: try: - from modules.promptist import beautify # pylint: disable=import-outside-toplevel - sd.generate.prompt = beautify(dynamic) + promptist = importlib.import_module('modules.promptist') + sd.generate.prompt = promptist.beautify(dynamic) except Exception as e: log.error({ 'beautify': e }) scheduler = sampler(params, options) diff --git a/cli/bench.py b/cli/modules/bench.py similarity index 100% rename from cli/bench.py rename to cli/modules/bench.py diff --git a/cli/modules/preview.py b/cli/modules/embedding-preview.py similarity index 72% rename from cli/modules/preview.py rename to cli/modules/embedding-preview.py index b634bd9ff..3d5763e14 100755 --- a/cli/modules/preview.py +++ b/cli/modules/embedding-preview.py @@ -7,6 +7,7 @@ import io import sys import json import base64 +import argparse from pathlib import Path from PIL import Image from inspect import getsourcefile @@ -45,7 +46,7 @@ def create_preview(name: str, suffix: str): log.debug({ 'preview options': img2img_options }) if len(img2img_options['init_images']) == 0: for i in range(img2img_options.batch_size): - mask = os.path.join(os.path.dirname(getsourcefile(lambda:0)), 'preview'+ str(i+1) +'.jpg') + mask = os.path.join(os.path.dirname(getsourcefile(lambda:0)), 'preview-template'+ str(i+1) +'.jpg') if (not os.path.isfile(mask)): log.error({ 'preview': 'missing preview mask' }) return @@ -69,12 +70,32 @@ def create_preview(name: str, suffix: str): if __name__ == "__main__": log.info({ 'preview': 'start' }) cmdflags = getsync('/sdapi/v1/cmd-flags') - sys.argv.pop(0) - if len(sys.argv) == 0: + + parser = argparse.ArgumentParser(description = 'generate embeddings previews') + parser.add_argument('--overwrite', default = False, action='store_true', help = 'overwrite existing previews') + parser.add_argument('input', type=str, nargs='*') + params = parser.parse_args() + + if len(params.input) == 0: files = list(Path(cmdflags.embeddings_dir).glob('*.pt')) else: - files = list(os.path.join(cmdflags.embeddings_dir, a + '.pt') for a in sys.argv if os.path.isfile(os.path.join(cmdflags.embeddings_dir, a + '.pt'))) - files.sort(key=os.path.getctime, reverse=True) + files = list(os.path.join(cmdflags.embeddings_dir, a + '.pt') for a in params.input if os.path.isfile(os.path.join(cmdflags.embeddings_dir, a + '.pt'))) + candidates = [str(f) for f in files] + candidates.sort(key=os.path.getctime, reverse=True) + + files = [] + for f in candidates: + fn = f.replace('.pt', '.preview.png') + if os.path.isfile(f.replace('.pt', '.preview.png')): + if params.overwrite: + log.info({ 'preview add': fn }) + files.append(f) + else: + log.info({ 'preview skip': fn }) + else: + log.info({ 'preview add': fn }) + files.append(f) + log.info({ 'preview embeddings': len(files) }) for f in files: name = Path(f).stem diff --git a/cli/modules/watermark.py b/cli/modules/image-watermark.py similarity index 100% rename from cli/modules/watermark.py rename to cli/modules/image-watermark.py diff --git a/cli/modules/lossrate.jpg b/cli/modules/lossrate.jpg deleted file mode 100644 index 8e310b74e7e67bd0e4a4910dc3dc6dab7e14d0ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166607 zcmd?QWl$V%xAr?oAZUO9!66K8!QFjucXu1y27)FKWU#@42X_eW0TSHZ1`8TIK!D(9 z{(J9p-m3HN=c)I|hf{TWs=KDDr@DLf^u5;ay6)A_OV67CJSBOMJOBv^06;=~0MBrM z4B#ai8ampGm+0u|7#J@xu?caov9Pd730}V7?za?gx&JRO&piPAmna`!_@f}v0+8{M zQ1FqS`vBC4>wJOq9}D2W79?a8)E8*zFEKE&5I<>V7Pyu5vU{rn*TA3jDzeu|2YfhDJ;rlo(*$Sf!< zDlRE4E3c?;Xl!b3X>Du&{-dvdU~p)7WM+15eqnKGdFAKU_Rj9!{;z|>^NY(rSJyXx zZ}0wz3kiVopJ5@k{~6f-DK30OT*#=XD5&WF#D#?HhgebYQD3~}LL-pUM7Q*KP0Jnj zl2AG+zpfVp$fNa}$jWmXlbDY8C;j<9q5Vf>|7(GT|KE!2{|M}V#I*vzMnOXSc_{b* z2|%qJQG;JGeA#hI>D){x^F^wwHkF1IPYcODCC1uc{qF;~pr)yNkg8nK-RC*IE#qJN za$w1o4O@EyOsvLz7Gt4{u6CW~6*eu0>-6XnC%;;*M2TgS7pkQwPlhc<(;CUkf4a>t zczj@MJ}v5(LWith8fO}BEoM>c%ra_s{d?o(`ur^lcj0MAlfYsH+&BWm)m0GX_)_HV z7gi_96~O(myT4fLF{JSD@~Ml1YF%P+)pA-b*&?a4zMtDSjYRMyb8fov-g(J&rxkk~ zPo4e6h*WFxhf6`=@2a2ZLY{@7ae2|P;euv;<(8kzK@-^a6&;T}+A zua=pTbh*Z+d)>K7(KO9LtiCeoj@v>O44SY|a#7!Ev5z-T?azQ@Abim6sPwiFIi{;( zsW@U&F(;Rl7F1wIabk;VziLk%At67TuGyABqV%N0&J;u4&B1k1+b#6VA3Y|)o+DVT zI8gDz>km&^j-y+Gz{sVnA>9LCRbuCsiXpKN1DRZO3#3WPZDx2YX`p9 zM&1OS`tf#Qw#F%gDJ0O70ii)@zhFXzV)$Sod_$FJXO#bB#(3L?MDT|VMeg5`-*Qv~ z`YmH-EBxI<0|haQUuS8vK(Hr8*Ba^3U6PY1G_FuTuHMakl=#8SD5>$~H$r8V4YV;U zGu7Ue18wmJZX`dj8$KD%3%o!LYq9JFuFe_x6h~Ya0~I-FW`9PFzB@w^1R&ishmGP1 z`&H@~H|6fMmzy0~v&5{KGAzu9>DI!wwCz18SiX*wcX$MQ>NecSi#Lf1^JjjeO#tP% zZcH#~$)#$1vBinh`b1|>DW~;g96qT&9{jQWd~x&%{Wg1zNNm=qGjv6U7ZfjBAB`cQ zQTb3YkZMb`lm5zmf~Gm5B-u`Y6BU3KV3Ra%^JTS7voN)AY=lrRveXu*(>I;JM7?26 z)>Ka#>n*lUxFqS0PtTFcOqG0LxtzxB0x>dT{9$+fq!Ii8o^%$i1i z&3bvu*LM*aITjG3Hy}kjJq=tbfDPVyPT4$LHTwzgeXI;W{PS{DO1Nju=#s~*;9geI z{6iB#Sx)EJ2#d2pTHw%IE9qg{a$pTcKd8)@y{6p98Q;#J#DCFG3k8oybL18hyQja) zGHrYlz@7~*Gm@g)yZA1_tzg9u3P%a$N`jsbPl)IUPo%pQr+pgfynI8>K~AN!CZrjU zo+EyXzUNDFfU6Bj8Q>J|U-^nsPE zA)A6S!#y*z9h0>nPc{Zec*T3>N;!$WEMq^qCk|sGWH)2edLin)1Xw($aJ8yFy*)!~ z*Hc{Ak(98O`Z#-EG|A}E$glqD>D%SID(S^riW8!loY$%Zj@MO-%3?>tbRBaA_(0lS z-<^0gHRo&?e~fXHET(DyFSaE2dtIV_=v8D6Y^kF&`HBqt$Cs#yQ9$M7aUDLfYoa#{eU-@db ztFGzmTq+$TcSaHBFcL~p$z<`$0@5qK#=`D2A|_(k(GZbS7%3fN60S(qTAnH-$A2e6 zL>8k;zo->QsHtI~DMtwS|J$m!kW+5tIMqSdQZOy9-FCV<9;k^^9SQ@*bO)CGZGT!BrYWNuJ@Os78 zR5eJ^{IQ^G;@Yeb1>ym{C zqNgw63N1npEKNkBAR~SL=i~eCp{|Mz`o~TGBpAuI zqLrTLi7vo?bz34%%E7|$(*2Tl`_o6{ksx=)$vqZKR!08av2h)(1Qy<_IC+t0Kz$LI zx7$8;lxH%5Tm5q`L=Z)gBD1-DzV?A$)5(^B_^_<#1$k@K+ik%^F=w=xZm`HDr1Zu` zp)Rg^XK~%-;3mK|wPIym#sk6`7j3a{L`uz!LgJOH-ekABzGl`M*pX3c!HHc@47@C3 zD)%8zV3{T?FS^aG@(vW8yObfh5O^Udc$N?_lY2cuNq@`+y?`{Z)zS^UCYJ&LFrLo$ zB_eF6m3TbVex&H+mdXXz_KND)4_@art}E0PzK3YqlzVnwww4`BknKAZ8nhlhS>)T-%LX)4xf>^v4ju#Z&M${kkacY<60aS)>G11wx z|D41ZR(t)?y@xP*cNf=D4X_(#8Tl4FmP#MP)*D3G$yX9ZOWBHSvM+=t_^*%FvkIMv zGhL=uGtOWJaIbzma(ciYMj+siDA`~EteW20o4oK%;1xUjpQwfc1y=$q5Dqez$uqzw ziarFH1Nh)e<|s{ zF-X|71{!j(pVbg=jKSFCiwm*IPjf#KZBsR&8ub_W$4u&SDHeePQ*VJn+d408?@XuzvLLlS+VA^fD%p1P1D zo?-0<=9>jMLG!x8Gz9JKCS1SPCPu zPgwov0CrqSEy=;ER}L8a-RR~dd68Y81oIl&7lgxW1IFLLVtJgKU$JHH^km)bpKbdc z>HaG7p_`Gb@KDtSvC;uhO^N)07{!`DZ^tm85Ik?Rcc zKP9OJ&QxOba|a#wDOqz0s`XQB$6DS_#U`*W9jLXGWbodX7?vZ<0OWxoz<)iKSVSQAfi76%dv2l7i-w^ilM^D%TEU`p^`k4o zvhS)bk0E-zwYBU%lpxZvDI)~}=?D#x2;H8cA=GTI$pF)U(^-xA{jNsGk%`@9TPU+u zAU4cm2XzEAcmC(v0(!Ie|z=z=&Wb+C=_YKtSF>QoB?@V|5*uMs!mD8UAfqp_q{hBkUX?p{+YK`5_hR5QR(hY< ztA=}~yc=We5D!08F@0YFYq(%h^Zc31wobUNX~xn3y`B1v0kn40x$p?TedDe<)-3HA z5Ndf$?{+k)Uz+#u+FCtZ*%4d}-{6Zl?2tdNw-bqEAK2nKZl#H5&GvTKvGIu1lA_wG zF?PCHNUD%wiECp*98~3>WIOVNRt5tN3-QG%#b_#5Jat#cmG=&)-XOkAM1F_3yccZY zPmYD`bolu7j=qp%$wuj=`|U4wm=I+V1Md^~-IH%^n1w0)uH~nOp;LNhKs{WE$RLts zs73(yBN{qtK)hqx;*DPVQ4n^YN#z>?Jd&L&(W@g}mbw%|F>$lpZdz+K&8+m=Kab*e zB{Ab@N#&+8f-SB3kz5i&aRzmCco?KCg)!ffhuyZ>Srnt# z8@t=;{2VA=ae{qpaI1K7b;Ho}oYL6MuGyt(`=S+F7Y^n_7Satkrf+w%5}d3V;hCRf98iud@1 zO~3xO*d|`=2RaH33{f0?%YkcugBK3>HceL9$C5B^M@#x#Y(mvAfag^Qe9i~<;nw1V zA3k?By)2*b*9E*9$$*rZY^2=F#>iTH)RB`jxo{^$8g~>vclS7Z2B17Zx8;>U*Ux|t zPqs$rW=^MtWqi+oWqrH8<}ez$34cnppkan`eKwf7f>#N9Q~C0tx#-Gn>`0uwGZLpH z(&MnaWRXW$>+7k@TxV!y!{N;$ah_dT(6pu0Eg{c~`~1(?%_26Lk;k0mxwh=6aXGoS*qZ39sWwX2VmX@KDI&%E7u57Af!Aq}zwf*H}WyCEO%F6Aqsq zgKBd2zSJeFu3rC@;Non^5Vn5%$z-oBb^a`E^f)|Z^_c6if0ZyhbuA7a)DZJV|C{l< zdW>g)*Vn5P@R(C=aQ_a=F5u*Uy8364a#>L zqmxfBI;E{oLImra~$&=me z$6^eHwn|IUW^oGREKq;vg=u@o=5BaFsv6QJ%wLr1D!@Nkz5N_JO{=&nX?2i5iRV7m zs=uz0KnUPr@<29z)d&;imd~|Dx5X=&`jL+XWv2Rq8MC3)(UfUenEsCc{RWrJr+o=d z3#t8FXM-&om}xf-+1Y+@r0d5lx4Sj*4cfD))R4xv=?;brO_7F@B)7{*j8u;yWJA^D zVpf4*8zJO*v7i0Nr%36lO)7OI*Do06CX`NI9q2&vsZ6t(;N4nn&DUM ze_eT#O+E!w9)sv~EfWnjGyLzuj2Ea64ocU|l+yk1$K8RcVd54BGG!v6j5tSsYBV-X zDWz&3_TH$zO&RK>?AsUBsXx4#HIWj^bMEnalNJ+(>#2wd*zc}3W%*r7F8&PIeUhCo zWbUZh*nhHvL)zm?Qh8?-0)2f@Fh%wWYVc01Bn4kYJ*crtt>EZs;VkZ;=s$xu_9&AoT;0wn zzu4SoHbsYbn=h)HU%vghbMokeAY-7lW~T8PwN_wTnqK&!1Y@{pPX7;iZZtGP3S7Y| zth{>ghvRR)XKavlSBV9ieOHN3BuC?_kV>wfbvW%~0gBcyR!c z>(evfKH&SEV$HiPV}}_T)P~dO6e6`ZD2~JE-2sC^R_DhrVuSLIw+mt&deH&)Z@sdS zCcOIjxAnT(S{&$7-#62=D$Xk>P1OO2AH4LA26g=^9@5J(W2cuLo&n}ECI2daw2rj5 zcU>$8C92=&L`t-FgeSu~>N?z-Jru4#;Jmr#)5f&FT)Vu9Uqy;v+P}OmuhilrxOfJH zeL0v-6*zh{DK-sGIYSjj#T$wxg6B2LN=Z136=UXdx_|LGSZTxTaIV}igx}(+H*qWN z5~k2uq|(`Xoy24k5ebQz90!DA7G$e2jeQ)P-p&;gN z4=b86UW*~s&~ykj@dwWEsVC&fSREgO&$&AIOkJB~Dn;Jp$Yl;)Z#F^CW>WoDN@eN8B#XYUp=6h z|G1Z)QN%Yp!Y5IG#SGmKYc1rHglTu$#o_*e6y8$6mp%r0hww~+1soBGPBExRh zosL7fY%iAq8lm0*T);J9dS=Aj1 zQ1>RnHqop3^}FAr+CYXAjhO?ekKW3LRH!>gt}|EMVT1pvM+aR*2LPB12JDrG>waLS z`H-mKv^T>utCP3x?abs{Xs=v0&VHIuF19+#D&<3++)Jgl^|O!^1qBlqokE{m_)_1E z&l&!=&yNR913vV!vaP$*9c}y6(}_H5G`1ClN24U@D*RNQ&LtpBC)&{ z)<_|WZ_s?)x!e6P5;?I#VDS;*F@Illy8Qj6bJ{x=zMLx5UI6+HJt=b1 z0NSRy%mk#yF39X|Yxa0%vYm}df;Q5k+nWa|ZO|oI_O9!yzjV1c&)YyFSPr{4_?I0D zd;Bs(JAKTDZ+Fjt-r1n0e_)$}cfPx3+mCsCwtY^dB4ksO>$A!TefvwmXVUX7`+?WuhpvRo9Zapa5rbrL+*5Jne1t7mIoKTqEPyD%YTXp7idAD{Ig&syCEo{wu(u?V(|wQr~m z{Fzlw{UhM5=fE4MbV%CY^}UlT`gY8zKbj^~aafl^N1RsoX)4k*-zIZ`)D~d9Z-bg0 zc=g~E_rI7Cny%}-=cuo`Z!_+NSmK@UmO6f(C0$`fytNCT&SeCi^6#4dSVdL^GmfJM z#407c=Up~1v3TfH{R$eI@J*iJ>G$+)@mgNRIN4cdcsYTDzz3S&3U%f2weQ{Z&L;at zat*#SX|xWkwZdEABo)PGoN;+q`-p;&nPSUq8e(RaHy_t_mNs%GJ8y3-y2p$SlXssv z@zZrl%1(+`oFoz}h`m1%&~%RN_$c9kMRfel(GZy6-rF-oSL-@I0je-l_D@%5;x0Hg zPm-?KCYRnO**S-LDKk_DvHe!DU;2%}iF_iVNz5-ux4LX9ZZ(VMCEa1~Ua>lU>#oU* zF04?z38rppZ)<%cfaOIe9qf5fM@~xfI$ZI=nZ>?I#^pNL_e#?CGCXO|X5ZoIOzqpB zmVdI1dZS{I{7bq2$~F|!9Qi&xaFH=(qk=&U08R|9g1VQ%TsbMITm8t(K&qeq=+VVH zt(v&n)~dlo*}qUTj4?2EWt!CnY^J8Oc|(a#gqF{nz9L_6 zRx!7F;&wFl?-{}4zZvw-re=2&8$;nimD|c66RuX5Q{Udzm;We_L6QS?vg~>%-^t;)Pxw;GGL>SYhj5-mHWo_{nP#$WimqC2!FMUn`ae91GIvDg&8gMRUxUG zYI38Z1izp6#+6xNUhXa2vW)v2S@?A@Btg1_frdtZtJa08x1Ui6)A1`mtP%re-|=B( zUF10=DMImLqRJ|B)sRDlN+yH6ysks|wKnXba`=G%Ao?rO`H3Q1aX0n6t4mr=*r#{3 zLx%_miLMlO;w~DdDt0a7R7j!x%=zz+EUyvRK+AlXVtoaX5@t-KjD8@_Kc$oWxWW?h-fr6i4#yShe*EvRyXSY zH;m!*4`Zxt!gMb-&{XRxGPq_v{t*u#@!B8{$7@IXHDW^QBpFWgcGA#M>t+zb&D(A6 z2+7O)9Ef3d=k{b~CJQ{yvv9fHaJfVih6I}l-K=E?TD9l!j}A}Qo@}N~s0;rXOOx^; z_DfUY5U`boUU&?P&yQk_hFL7os{gS|RMJK{LxS$t%79+XEsS!1zn7itnBM+=!i!7HaaG{Sx$wr#2LUF|K6L zd&Vdca4NyL+phcFC{zfHp8SGObs*@Xh{%n$C~kE;@8;sCYUBR$;QYq70@y~ygU z6ln;!brp!JJ?^94z5AKU?nWOu*4cxZh4d~Wqy?SY$6`kMM{wz;lM};<58Q9|2mQ%>72CQ7 zQcFFu;?secC)eEkZflJ4eYtf8U1!6r`=X@1cSnys`ZuDeNi!akKSuq31ZK^udTSW8 z;%DS*Q^n*-@TaT~`f28C77kpkIr~}4&DSKOim1L+guXJ{iZEktsj0m?YR$pmP0M_D zRMLMEc+=c&I|svXrH|-?L7y&NpcR8ORFa2~t;$|U%fPBCPLhcDFglmWvJ>0E_|d0F=_NL@9^zT6-;S zM|;jBAo;~p?@V|nr-J~j3W*lyzLi1Yd$d6)ridMS6Dqalxj^iTp| zh#PdbuwfVr?rNN!_T#?mtg8Oje%IjqZ(NBQyPE%=5vI!yaYC+jm+RQSDB^qNqHE`Q zf~qPe_$U!o3w0rd{)KZ$4>NA(qW!PGAm& zy3*Y0wGY&nn2oDDnFr4RK(T4I#L%o*7CIcy8$1 z-gTAJorK_ix*AQ8v^<8EyuSESal?Gg@mm;c2n}86rwuT98il(uv*4!3Otls8^sL~K zef5*H(Mjc_+tM%ZQvbJ8G?B6fHLH&Wv>5mDwoE$bA0kj{)#fKq>*FsDIIsu!aNlxS zBkm@y*MoT1!S&tvW0gFU{mY1qNT5l+C_yPHVoJCnrq&taVKdXznT1`~sNN%_M*_^u zn1`n5yIq*sN~aX;Ae{UxzQ!O+wqw<3*wbtF9xwKybwd=A{e-N8!G&rm)OI81EZ6U* zyKbiQ8Bk8M`CEu81rC-!U2wFGF=;F$ zfW%Np2;F`_ekFRTMl=Hw&x_3M-eJ}RclbQ`2xld%NlX>lik@T1NrX~SIG#{p{nBLp2!2xOvNNP_q{mPxbM*nI@iqF?N=w%X?p8ZEcYyV9NOp5&bLT`nto zuy@Fw8qlWqu)G3<6DAaUadpVi4t>Hd;uQa=liW&91D2JO$ZmiQ?NUTVD zYKqqLpSqJ=PBwX#m#rz3HQkNImiT(!E3CWhY?GWii72-nyB4;!xF^edR_Rc9#D9ue z5UkPbFnb2DOAL(|xZ2#WY>0)7wN;ptH^zlD@nKCBWt-L@KZ^T4rDo~X)b4fa8fq;| zXD6_%2qtXl$~#qi>7?`4J_ft|`UtUhJNm=dG#i`s8u|?Q0{%3K1Xkfw)? z38d8=SKbd&xYC6Us@%;h%+=V0zqH|M?@>rIBeVl}lSd7k1-wph3RA|~_8sDK+UM;T2JrqW-Mz?5ld!aWkQ zuO}%T=Di=O`pgV(ueSny;N41KU%`dgmF&Afhn#%|EKe*x>+5}Yzs?6LvnqzwkztGAd35Q-O3QnM(2A|Ze_^v zQ2a2^{l){xie@EG8g|O6D3i$n&zN{$ZEjWYOP}4f9>e0bD1%Qk+xr11_9=z+7e-P< zyPc+^+I5l%$O{a}5?31OBjt2g?4iNlu}PX~v2JUAnrd3WnL{RVkp<%?LUJvlN~Urk zg8L;ny3@Pd#&D^CJMR_Gy7d;^N;($x@s`B(O>F2B-}JHL`o^Ma2+u2L5%asF(j7aw zVv!X&5Bl*&WS3i3Ry>>DULYWpCkdvYlyAzA&N7tP>&1}ApH@#1o35Ki$Ud*yHs!eS_MM)i=u&3Tb^w7oB@Q6Kq2IxPAC}zxMrlh<5 zMWe6D;hWz{`!!vgLRyqGK|~agyg?nI{`kq$HH|(EEjphkHgs_GVo+~_XU>{rB2X7D z!2#ErJ1Nav3aUX@+?ddV<{b7AYlr2u9t{NQ&UZ8_&Z=<3(fPS$4Q;{7%Fm*J=*@ zS{YlmihBP61wl0N;@vs6Omga@>VFw3JUuQKpOAFDfAAgiH~abCXeqg42hP1)45)Q= zeCNH`5X1a&YE_EaqW(L`^am+LsML<{nJKFNxr|3iocslIEtjb0DqFZ})IpPg;DkF! zOznl;p&QY+ST`%O)iGBpUt@@9pH!31`(@FbqN|5W&`kJ;ppc*4TRtSnU9muYKmNs~`QgAwUx zqFR~JEcJ?7w@zRTK&nQLe6Tt+?!JA2!MWGJ>(RjM6cXI=AAW-1OLPY=6snMJgeW=n@#=>gdB^lR)!GJKb zNA`9TR{m;JS&A|sHJ_)t&3cd5`fnZ78+9Aedc6{JIt2okXMmgKtarIHBmz5St(RVl zVbJVTicAx&AudOo8}1S_IAY5keB&QA_?01mKx#tRuR0aee9?7}qX}V>Ta(}8ZV%z? zOYM`0PqDX9a}GlHON70k`;_Hue?(%3Xp?Ni`ExSB+euN5QHO7!KHD&%YOsLTg@y5G zgT?zwy$HHj8SovJ@)l7aYX0>P)nqQ$^}U5Em&P<-z4jsXU~gn?22D=^8wziUPez)B zpr%J(gh#piWmm62{SHAcC}%=eFX`~ZS*~+RK; zl}&YjwndWIvdnznaZPa>!WtA5&9;uo`@xlPA|o>HM(9Xbp)ytp)=fUafEd zGx6P@jFj-c(lpC+lZz=RE$~{}h8!u}Et9r4AQDQ&BcBi)F66?Ixeo3~LB`CkMCN`e z){9D3Yuxe`$J(^%YeOajvl|7K2csoZ9@m7hJLI~Gn^SQjI5k4ia~STNrJcvEzuq59 zPU^Prux%q5WdorT)X|*FG(N&$qvAZHNE!)O+=aqw+JHbBsxMIdl^O?a*@Qqh)`2|7 zW{0FAaAk+*SJZ2CSDrI1r*Xo{636pVS29A|B$!G+DFn;fS4|StD_O6+e`fCp;U>9t zXi@A`cp^$?SobeG!xiNqKgvb`DV-pxAj(|wFLXZlUw-U-6~?14Mob#$Jo^S+_0LdR zkvWA9W{PIa*aiAT7;}MSw_i!OMUwaQBzta1g(i!gjZ9Y@D{UQln};UZj`uJ``=Ugp z`RMBdvXdvN)>sa-J{F$cJOkeSm6#u{)N?XBb3?o@5NfGjr2g6%!u`WDox?gt5wv20 zhk1d7o&@g#dE~FkMigXX!5Xmq3^3^FgnEQfgnALJI{G`Xi3PZ7eJc!49KJunPQMOR zq5a*Ht2W~=8t7elap=)YyJ|LRw=+ISaYIEb@eC-Lk2tJ^c1W&qthVp`o&1j%05+dQ_^WE zbZ|$x+q2xOt4##7iY9ocXIFIdiZUV352wf27C$OVTx;hiIpF<|JhP@aBahhGySbH= zUHaOqFX?19X?NZNB@T4)`dlY*u|yU~z1x%|-V8Y*#c?8@pb)3an$;g9$?ijwT44dy zMjh;RR0I*C_cF9=qI+CEq!!R9q!n_ZAyJ>}^8NPggEzzFhj?qBbco9uFfdy!F9AYQ zEkJb20Nr-YMPk@$(s`F8aRV z%3zgIa6KzEbIS1j+7^(iC*v0gUGQMNt=E!yCQD<3BueEiCTP`|bkn*-;&XW=h}APh zxlN}+AlU8Tnq?s;_mc+%Rg3Mb{A>ezrzaN<7p3%he5a=ZUxuk#mRQwShgs2uAvTKJ zb(bttK+156N!&6z<*T0yB_Dx8M&=8Ze<&d%T%94+xCY@Es1`BZ|6&x+f$=);!AqGW z;rs|T-oU=kDv19(DL!9pxwG!TYGcy`vTk#H*_u8|ZmQ#o4y0H5gYbCdgdIoC(?1`o zmK|JPu=MAzHmGpWhfm1~B&r-sa))?ZP*0Y2Nw@nON1vRYZZ@P5FO70~!MJhxS-tzc z-z@rOuB;7WH;)9b(N$h&hf)e+pWiEA6|meDcW8r3|H>))woswZe1gbaSJ96}L; z1FYAZb66Z}OnvTe9-!8GU~w?-)3=MpOw`|Nt5Wpy^~Lo-Wg+%DKWmgzMB@q9(SeSe z%kI~9XGrs@#!D8@s+U7FH>h~dW&?lBdn**&r^vH13R|%}82S>!m$jBj?r$mLQ*K=| zI+bmB?~nX#nj@Kr59N_LM?N#sQSl_rl;|9^mQvMTg%rmin$=X53m)G*yvAKwHBr(m zjUhsz-=#ykMOL3e(GU508ocl|nue>9VbjD_+&qmZ?Y}5P$H)}wck`rk!zD!!etJe* zB6(aKMJiSac5MjpadTft9OO%CX_9MGhyz&k8qQ_gI}X!%diAsDY%{GZ`mlhMrn%s9 z?e{)SRbaw_U6~)W0z;z{YKkNSxSoRj3V|hE*_tX0ky{wbFVYB5ySjV)alL4uY84i;@XthTB}vM!LP)VMeexLQFh#T=fOv4f1{H2X@|Py-{~^bl~40msAQf6(W5#hrSN9(?_ss&^hNp>J%S*(P3`(l;WcyY(BZ^-5Iw=X{;&|9eal-Y^rq+pDte!VRY>=5{z}e*ggAG!Q!ctN|~OZ%0j19ve?Voi&DH;Ip8I4nvqU=BI(#~ooaAneP8vAuB)8XR zoI)l!KSmGxu4$+WGh>E&1M?rFZJOg1PjgjFM!%x^Xtq*7Q{l6@T{sTqz00@Y4Ql}{ zr=#=xG36-wrna|Yv^Q6U+r1N5&Uc-cb3aUd&ByTIZWL6o#>xQD=z4{ zCdX&HuE>Rn)Ad7;8d5?)#NC)^Yt%j&s__I!~9@(3)fNacSr7Yi|#e>pOvybgf1l_eqwL4xn z?as^ngx?)pX;Qu#TGG}0gvLwKT!{EpL=~@T;9*hN#-ndJ+iUw*|1l24TiCO9zpRH3 z@6qB^6z&c0oG{kz>biB_#^(x>d*`ue2uw+LGVgVX@IZVAp-D@@K@)n@#V z;>A-N3e{7)-*r4uX0SBuwIHzWC-goCcW-6gkj#KgQP<1?KidC;HR^f%wjd+vUIT0O z9LI^w;a#}0%V;2mK{zObqyvaInwRc6yA;efp=!xS7F5068OWjhQA6!#<0g!2R$^$u z=YR>JW)=ogoP^$m+|BG7&6?uwR?8L`pjKn#fJdph3aR^{|LH#H+4|I(u3)e?@vt`! zRlP6KW<2wYf(9bn=hIPamj>v(C2bjhggksQ@{BR*UQ8O+`_~wuVzk#=)A`pwQDNuo z@#nTk-Q)W5RZXmF?t%fYW3ICeG4A^_e$|>#C7Tfr`Qs1qpMD?7VLE9wc2~<86++#p zk7O8TW!gF-83}sHC&m)xfOs=WbMHuw2I;&s9NTRN%HO9Yg7vM#XDC=Mq55A8fl^OR&X{l+IPZ&9Fh04N1XC7{DWXd}j3|1%-UwR}mdWht= zFu<<1Eg6`~uL*s`qBa+0&1N;~GiT6SpvA{9Bp*Q(=Q8piIA0R=1#c+GYUwZ6{!S>5 zi=UF)L6-VGgpdd=pxGbh0{zN!nCPky9Q)(3U%m?Nck&ptr&?XVnzrHfqP)p4*OCv%1VW5jXI~x&+$+S#bR)Rjg@K1*HZq%ohsFg_sQ`j%27d)B-z( zX~O+Yfm&x0V|Yx5tDzo$?J|Na=|2omA|#~-h@uXryGUnagEEI7E~0ndQJ-uyR|v8| zJ{*(VqlO8jxY+GO(QHM}7s?MUUDZ-cj2qdxndL9?JXu9QM&L~RBVqo|rZSavAOIer zVKn8dvQw}B(J&kNpR||%Cl$k+?t9`0;cE~Uk=@05I|9QM6i@Y%Y>Qbmh~D?0aDmC1 z{4xDC@@iAn@?|L>sULrK9xx>k-|V2)o=_VjzcpN|*Y+clJgn5vCk(>a6Ge%9~ixIRzv*M;pM{rW|lr z;~6*Czvuq|0egAaOxM>gKaCCVDgF$*ZNAVaM>L8wv#jU)IZ^A+5g6MUFDdmAs0{Tl zlSG<4bol1}I4?eSyx16hcm@oIsG>LJoa{fD?>z&GCX{N890lH_z0r@dHmF|oSa&x@ zMSc_S(Q1Flta~c))%3+GE&PNg%O!!cdG>Of6dsRgd26t)IDjpi_S1Jx9nX#_bvtR) z_~na8shl#h&)qz57pvjiPv#dZB`dF)s#J>MZe6@AGPH;*wKMkLu_Ch)j@YL3--&l< zoH}*=8Qu3){<47%U$Kw3$Omgc_C-g)ztqsO#cuN`6Z4_4h7xT zI^3@rK!LERFbhpQV-<{2N3Z_{qv*7T8yjbU_oQKc{gmoff_x4CPWosZ;t)4&#im92 zTgE`LY#N&TQ0f?)J?<7R{&y3UD-PtY0egDG*V_kDd*YjLfV3nmhe*cB*7Wbq`fC4Yzs>IYW&%TX#dfj-tGR zLLyr7Xb`QjiM2zh%3Hl&q+i&LzPObDVwjpR89}k1edjCYG;^rxOj)$jwBwh~W!}$g zOaGc%p4*%aqep@REzrBVE0wjedDc9A^n&|3l`U(-R6Jx+oA_QKa|A7GvLy$YJd!?a z^}c2QL!#I#ATYiu$CUWX!gYY|A6CAq1Rqg530l+pROOtL;T5$_uECkQv;WROt*cg* zyYJ>P(j_-L*K0iW7Rhpk*f?4^zSV_%k*D9nfxaFPfo^91Z=}6tRGVG9EewT1@s^?m ziWhhH0!4xrcPSPuxCIIn3bZ(c5{eghD3;)qqQQ%k;O-PJ`h0ozKKt8ey!Pk(xcNZ_ zgE8)`Yt4DhHLtmV8N;}^A~SoGet8$c@~klX_6W2uYB8%WS~_jXI9c5td1J{ZpPQ~R1e&?beQ6!p2)IT^Er{(ToTeJciDeo zv`GW~;aPI4N=Dm$Lh^8l(;*jikVw{MQevt<(HA0~MX z-t9Flz#Vd{Kr=I$C%(X{8@buL7{h<}|7YG|lRoJppLUu+37bkow4HP3kKR1kHTe*5 zq_AUNpAw7X-pnXvowaYC!)E!B*GYqBqYUnf(>U_iiSjypJ5Cj4}Nf{i@L-3%_1MzdFP?{n~!v}0p;tUuF>Bw-xEaDF-xf%u|FI@hN z6IiIxIKE#PfM`9JkzlxAJrJ5KGLKp7TfNA1dFNI;;+107FLmv>SJYv?VH-8D;Zq(d z4q&^NdCZxjiT1NhjXZQWo5ged)G!qQcJFj>9ht0`f#onvKA{KFI5( zS}V)rHZgp(;D-C92`r*jOAxaPd3hdGGkMrXw^Gb5G$=vY(-?Vvq8Uu)F;K_T-u9N7 zvVi<8-plzB@-l_Ll_RS=lD#gq!c8vqo4E>GhqQXIrvKws(nr^MqiaD#<)P*V&F5?} zE?=428=G?GEed1g`1z3@a|_>Sy#iz~%SAQHLfwX6>u^EG7gm1sjFAh{eqjn zsy^Y=Z{C)9!hBx2@@@T?w`gQ6b20eIw_m($IeqkkWRMf}{ALLQ>MmDe%&vY@2p`Fq zH)|6NJ*C63ArPI^WMD1!^hfEt{zgl9d&HlUYP$@+`odFA3G1f}*zCB){1{{zufEe5 zeUIpOv3H`4XEb2pU5l_!pSzb3uPV@rp9ns@4($^BvNzv|{0k%Z4vTbehQ?Qq{JtH* zmP|SzaIsMFR{7~bzOuc7@>&H1_dWWI&Za>`-oH-B`#$%BD!rZP_1*jGP|1;M=a>m( z{~NmXW`Dg}b%M_m92v$Nk*^Hx<~+K^nb~G%@|x;e8}wZ=P4b8Zqf`fvZh%#;BixVv z!cdtqRkdr3=9$nZ!(12Uc)*)+z3VYIu+rl=zKSS8Z zu}w3zFTq<451kfq1%{S;51oa!qPc<4wbjZa3ewhys8NWp>b{e6H^E5^UTiVbb@Hbz_}6dYV}#jvRhj2nX7SwZJDdVZe;BQ86i$*MO}c zX51la+-Iy^9$2CznoJ0r!3z~~7sG$Wr20Jo|J#i>gr=s^<-!T{5Ms4ufAJZuEYBu~ zDY?(@{!%Yg(8A1Em&F| zFI?)@NW=85!Hk+hh0pHv>4PcMUiKZ!ON<@KX-%zBzJn&df_hP1>I`azp=UoUxQKdk z6b&Rvb-WJ$9d`i9^j(%7CO0fdWETLa^p`hsQ*(};>jbIZ7) zsFJ9;VMsa&ZXgB*t&i=jaL!9W;mt$tY@S-1soyTT>9Z`>B$pQL@NMi_de5;DDMj~t z!ft(&?qurL;QkSfdc_Q^8Fr@L%f&_g1O*d)_hZis*J`jnQjCNBidRo3HaISW%kAgH zk_@fYh|O%}Swj#O|C7&o=^bbf3jfA$0Yj}=qU@Qfhq&2J`*g-|QnPJd0QO;*xWQq9 zrsMZhC%Ju>hX~0N&6@q%F%|A)0msGU&zx#mw9mrjp7jbg_-3kt`1B4|DuudfcjCO> z3Vwvk{Ps4P{<5~VV5O*v0C@A}DLL)HJk5uExlgDe$b~^B>_mY&auwQjZplEs##r%h z38P!=M4d=xo8P3`(7jD#!m|XS5u>^^Ho1$rT*u~X!g4M}rTUm#gBa>7Fr%dkzK2>l zl=-BO%ZBLX%%AxMnauf`bk2p>l?&y{EZA-cYTA%S{T;RZmcI={0$L5$2WSJ>UO%6b zyZM|M0A%mux>2|61KJJ~6X+xV$nKhzv^-ccBaD)g0=yFS?6Yls#sJUi`12dE1dyT$ z+X+1Bm8%#WS$-E3u*l`+t#8=7KvCxicn^zp;xY$&mPJROvt5RTL$v zG`chO%r}Ew@7BT19VQwMuR9m}a0KEmB&scoi#YU_OaD$bV$W~Ul+tK$3Fcv|1CQL& zi+T)8M+$F4HE#S*9ooO_0f#9G#m z{yHH1!Ne5ha2<5lo${lXUC+x8PgBXfC%+{&{^cxyQtQ$^gyLk?fV9@m zG~r9mh|Ahtw25tpqmAWoc#T)VH?}@V%u+*cRdoHb>zBp`~89x1P`UYk&>4apcBe^xlS%vz*^q{ zdr_IQhcq9^FNQ&>?0H057BIw>y()6`5>#)VSztMd+ME=M_J9o^ZJF^O_C$u41CKG! zIQqOth2C&TR1`~0zx8w6a@_IaDztbx6Re`;7k0RsLv5F{ATTIwcE!%d0tCKK&L}CH z@4ZiZeD3Eks3@e!LTw{%VE?WuWx(018=*7=zau$gHHvi#wFn(RKvXi6Ax6MtgoA?w zOU}lmV}+z|4XRPfOcV9~8X~il&fri7K+OA!fRxOul-&0yMC+X3{!fh?^I+-Zg2V53 zGCc_W{Rc0oXmhwQ2(t|Ii&qX15mVFSIu=ToiO#u5QBRXLcl(z+N3mkZ=_UqUV?%f5 zwp447zc5rA95U-68Ua-_k_!_g&vboFD4#cj#W81dYUXP^aEv**cFAZ zl$CKQ zQsLu4;K|!LQ?uT};1(C0HvjB`)2sj9#mv3Wh_$ikIPW7GrbDfMZv@#_M@g!)IPWD4 zR*N>_Vn%s?+#kUGU2L#uiSRkJJQ|^@Q(`n=E2FFbW578G=xyqVs&!UR_r>S3Qmsoc z;~IiDh`B#kA$$91&f)#3-%8eFX{@EZ84zPbyLNr}_c226d;!GkLE?q0t`V~$*2jY6 zZ?*@3I;QAkG$X-9b!lZg7+mmk81t}eq)xy15OGdwxp0sn>ivw{XYM6n{lfCTp*ElU zRV{>AD5pT=Z5~HO&HixuY@9{<&@YQ;-zV3ne43A}DQ4j8TLCN%k3^O2nI#tE!uq_C zNhb60YCm1Rx>9O>X%aL;@b)oy(ReOASx=ChylHE#*+bqq^SQqqyXnYjp}in4t3W-O zSXyIuomsNzVrg)~ucaD5gX^>8Ip6XWGoCUS5K29xPf8x8k&2z0+O*nquY}&DcnVZU z0Iv-5TdWRZgNDo=@vOn1TPF;9?gFWP{2R4HkKgrE)BRb?>#S`|(`spg*SaYGpOuRG z-<7KJ31alnnqK+FtTs#=Y?rKKF`tSvg}uQ(>LDY+@*px{wM$VOuQnki7Jrb>NB7I& z{zTcp!@K{)^MgRIH#s?nT4p_Ow(69Tyb}48N&ym{Y~#An1`F|QTUh2U7GkhETF0X5 z3(WeZ^`+dEoRi(n>s-g;Rd%tdNCz}!UV7_3F;m>(r9!%NBQvcp^|r*WlB8Qf9i3WC zMyo^%S82nqLz@@D?Y)@`A`5YKqm|tQR{VX1wh0AtqTUnbj!1o?vL2Dg%WiJa>9?dE zE>Mh9i66LZzv=cKs-%h*#`d4q2gh-86*NvT-;!Oq0Lh1FVDR`?xkGR8G54Fj`WY~D z`m5|zY$lzH5lAUfL2@~#;EI=Mcnm>rQtZfk^?2jK2PH|)qm0^iM10k^Y}8To_Gwb! z#%3sb`i9TG5b13CMX;*nYfp&UVnd$dQv%F-LKSm*jTekcBbGaQ<@txU=_M-6-JFQ$ zb*d49by-h?<*NpS8(&oYX>HJieFqP@6Vw6(^%-zkKTCz}XH@-LuI6J;wu!nsybiCR z7I}$2R^2i(Wv?Ql809)NWCt#8M1pBKx;V>?6Z@$u*C{#JtBWC!IP+XZ*_gShgSCgD z@Ea*1d&cxU2w^QPXWjP&z=p`%$*PdWG9=OswLP4CbdJCh(Jh{82E@NvA4V^#uma?s ziXDZ!o#83FL9D=;O>(;8`^7HH0xV>O^MBg=RH7h8oflIhHcX3g_*_2o$dPa6OTiF! zjUegb7;olUo{w9+TEF7XBDd+h0ht^=1Qqa!!*8Ji@8FI(=0|(|TVDK>s6UZ>*0)tP zvv;2k)7)UY4-RzX;*BF8Ex^A|7!nc7x7~gIwzuu|`(_lT7UjGC#e0IYxpra#@jYPm z=GQF5MIWDkM7?a}FXE8FPgU*t@t={j@IS7y24kmImwTrNJLxwD=ycD&FgCmuOt3Yd z`aP>9)RQI^`k2`B;4}FC7Znh~=llcmlydrGL>>p zZ80N9It6f-Al=~*C;eJnH>!1)kW|m^K^|EL9C%H;t&IbA-a3I7vYj zhu#_pfw!}V6}niX%KYgULM5p(@_ zOnKXs5B#_*I9%RuYa3HETbsgrtB4u~%AmH}Z%`j>TRV(Oe{7r>lV_`nO9`%ui1?7b z#nIv_>73xPeUVz|=T0;K#!@POI9Km$e#{>8 zuS2teT2VJkGdb}kH+QHWbrRo|XIPxAjFw}Gnt>>ODw&u>AXnjJ!;mt3Vj_qwYq|Ce zNZ37~#|Hg-x02qL;jD@;sxWgN*L3e#o54wTSPEdA4!}y-u6FLI;SpKBtJa1mw16J` z1RSdi0KX2a4;xmvHGeJ&@r(>4f0`dXApV3ENB@;}`_XsXT0wJj1viGzKdO5MZxulg z&-S$6sp;F3<$Crt*dY%L^5MdteXe~jNvmQl8&-APHd5uy{pOSwgw$0_g6h5U^BI*PJ?z;OmqopI}2v_QFiA16U=s zZ>6-{j85#S;M~=#a>GS*tVU_OYE9had_IB+EG2KqDJ~%$-px!O&yqv$SvV9-W1bpK zK8J8d&^&s5O`8*#@XcT_-thhqw58!Zp{~`T%tKz|@zb3EIrvL~#jNDB)T<~`uV!$#g8S$}Iy#u?&g6ieZ_YJyjagyx$bt3re z`5*qDo|#PD$)m$V-L1ZjA$N=jVI#F~9{{6-z}cBPr&A>sdBWrtT#Nl?)rF3NDNh6H zL5{g}WkKhy7MH;?+P+D#6SMntwzH78t!f|P^Z{sYpXgju;!FV*l=qm?W}PCYqt$K% z;4*uyZ2x8|C*Z1gc8hH2TcD+m09xM#>JX(a_V5Xd)&od`uh0YYH^~zXm#J>KyMNFr z2tt=W2ebQsLVxhiJNwPRpDiNnCM^2dGOFuAy7L1IO>%kUnamA!!tqyMq2d=J+@ePQ zPus?kBP@WcMP^o`Jr%X^eBBg)Ol+J@ri-`QkZu$WU+t19%~$Ltug7Wch~j9oXu~lE zF86h^<#~P6I;VJg2N8@ARmCqvIX@Cq&~i)#YJSm@f?{S;OW!_1)eLKDEpJyl$Il3L zbK8p`Xm!62?!6^akaBbbmB59}%t73-ulgQq$>ZWqC1mdn2Toa`lJ@kFQaqh$8;Z23 zN7#Mi0KMd}F|}bhEa%9I6N&dKDefSifPO%?ALuR81&>(*W|0!AMZiL`o%)L2K&*Hk zv+IH2*J=6F3?JV%WpJ4gH4cMlza#irqBd5;3xeGT>BH1x)xMBqtw2zISC zf7@fXZSe!~%F-36NrXVpF^Bk*a`orCG2r?Zvzoe0r^r6fO){yo^LQL zuGQGhEuxX&qU~1NQ*i@@>fh|82K5j^0OHgvDRa8&o(?ykvY@gSFbsaYXgPoEBk7B+ ziV^IYi3Yu%6V-N|sWSSo!YFDtR^xB+o5=~}&(xovKgt`_-0v*8xFRbcYe3yRR67^9 z@YvOxNm=nO&1bhYvn<*1io(_~_6le*4UT=Elr%(*&Ma0P=KH0%0NT@07!VIB3|#WZ zeYrtSOe)?^o&<<13e`dA%_E6obJGQr0p?~n6qlLNUZLb=lZaQD;fUPO&4I={t=*cj znf@;iqRs=(g*FxO+bNOklK|2Ctv%&zNFL{eO03`VOFAOhb1@ewh zd8M4&5{TR7wBgSRctM@BiuNMY#>o$e%$>vdI_)iw=a0SryD|Kg*T%T+sM`>?zn_a7HRZ+c#1_=RtBFQ;OmYO-GDX+OW0fQ@JNUcBM z=$1(6<&e zb{XTE+dWb51!4U1)@|V!V^~F;`wk|@$Qu$_u5D7)&$syBS;9+jsStD|IQ54IM>PZl zE>0z!f`Q-> zNR(p+hwUQVE6YbF;k8^Oz`wNDS0q0c1oJC@#vo{yx?oZ_M+?zrz%L@x)#mIabZ3e4 zD2)Ngz2hd2L;@JFP zwj&$U>tYrGiA*;JDb+QcRvj)b^s{6RNA}GiFgzPMgFI;COC0y7VV*5fEwh~Lrpx>wsR{$-CRoNZhC%A5)vJd&jgQ}KzgiZ3i2Nx4 z@H*UcMwHIMK4%2ZFW>+O^Yy$6-8sMAwMxEk7y2`4rU#1|-6D{B6?UZ0Qa$O8DNhth zMMaHOCc_yAg+G(0J(cHFVp~W~igeFA*3&N9qZkLD%~>ds(6>P-47N*HY-(}}W)`J< z*dQ7Evz@x9F6Fh%_bFn(P&9VA!z-`wx7}oa>&0#VE(h1X;1xaUbb7edMo?J|Y~)Vl zQTQuQEfP4zH;D^INMYWbmvX2TF8AJp(FjHB)cam;_F|69X2?w45rhp3@tM&WaeZ(Y zFU(%%?;pnUo-<CeNPwjSv={1dxRW|HAtltBC00*)BQ76YPuGXi zhM9*X5aJKq2@(~ereFBygA-227k<1tOX6;Q;%dFIvhfs01#UW0R`rjC@CL|r+nILZ z@x>OTDR(&CEEKOcdC0|sXvSnYy=-1d_{8}d>*b;|m2diUGxXS)0Bd)eZ`ThMYmZRE z4U%{I=)$U=ha!b!BGzgpr>a&&0T5w<#w@$_>S{^k%`ECXm|3# zF3ZmuGyNsr!yIc5`2>qNInpQhoWm_yVx|rL{)XzTb)0=X5s@KE7Ug2T2NLDz7)JPC z7%sPLbJZb}ao4hX?)}vQ8Pz){t;`i%WnG3;3{z)XoHLW-)y9D33tlH9*d^u9tsp%Q za&2h->sGURuR_|uXL|kRT|@_yDj=y|&*v&0DGRv31us?W0$c{P+0SIWOJq2ooe69w zLn^|py~5Eqx?vIg1*O3&l*sjNIk&{rGh2xax)jDP4_kUDPP|-=xfyi{@<=jOwn?B2 zo;Msl?8jm`l8KZLDpisxr0|1nEg{*Q_)py({C==x5&yvK)rTSjfc)x&$-~6bFkKos ztp+#+oWkqL5oj}PV8G;US${PVaglOHP^i@gE51{4XU*QmO@%S6i0{&iypc*DAt#FQ zxOqDzB{8t(zY|K{c(Q2GY3JcG<>%LXxtXJ0up^~gGvF-^LdcQFRk`!fwRgfBh)z%H zAGCz*3jy2v`e<)ks`XPdFe@_w;~4=sF$KC^;wDp?GrBjeQ_WKxp(+^lhN~$ESS4>D zf#?i6ef2cPa<|^Mx~j)t3z}oGxyEU(xn;+X{k+k$i&Ysc7fJb_AQ0-WV^-7yon#@o zVzFa1+X;NZQr{A@$jbstX9#U(X2f4s9G^+3G75UInhhS%FXJ*hduV;(xjzs~IO1q} zN#hNoU2-3!bb7013n5#tmMMdUuuN51H$~R)ZU7igZE;pVeBOBa`sR_8Z{=ovOOQje znN!B1){D0hr8hZW2&4-Bhbt=3eYg*NTRyYMf2rT{jTChsmM1#jEQs^``cq{8B5JZm zqT&*n9cQXNXIIxW1lui)+SD7_-oz$z!z~UxJ4ckQ*S2OX9x*j$uWGk5^{LfNos&P! zn!F0~>f`4jClmgMQTLu3N_- zsF;$v|I6FsvB@g&snXN}_{F`kZV3*0CbMS0*?C(xYRknyG{OX>Y^y50oQVwqxcVa4 zie<_so&6@1K+aGN*xUN%_~M~fehkPD;sC03TK{r~!2^r?B;?2?#B<{s7!ta;uhlep z3}R6|0`W3}W!DhYy34OsguSPxA96q4VQiM<--p(;Wn8^Y2vX%ftQw{muNNnJb?M-0 zml8IIIj*le<~-(VTmOVviL@*!S0Ze)bAI5*kMq(a9yjidXA7tytmLG+JiSEo7ZGT) zMx)@Dnq&7JeOnqw7v5UBs+QgoGhzBp!2CwqFl&m`>lJIl+|WSvMN{fShwz!PgCS4; z3@^LornnXKg%fVl-WTO!6h?+&L?aF3pQx<_1zS7P_upLl8$HmyJkq;r3kEo43`o@XJ* z?98sFXPd=ulJ>yyl5wWyKFWuyNAnb`(jTb~D8R?hMILiZWulv=>VkOjnol=7<_p3 zq!ky;MJj}X3u?8BGzex|P9_N8@=*nHdJ-L1SlXT~<8vV*2bQK@r{i}xCQ-|)nOJ=PUj+ZQ+EPAf& zrJ`XF;s7k^5Ces!nYANrUL>Bwd!VbM@%j#@s__1Px?RlD=$Z-h?JliGZ^$=d4rRSY z$lW6~%GS{6pj+Qe-HbJLUw%#8`HaUl0#q0nB&A5=U?oBI{h)o+6T8HNo8XSQODL}a zfqgW?BLG4gQ(rTCpyieW{?#1lp7Q;8tXOjLAK9iary2UBdG?M!RUG|>ZjK}mS0JZA zSX{5$sD>ke)kvB!*EvP2Jy`OAtI)tJ{V`1e2llf+;YtQY20-g_JR1)T+7y#A5nlV| zf*8-uAj*H=m(in`W7bB4q(bY5+{o(Pc{-FNmdCUfg7n4y2^bX(I0kQy?}K~#p20F{ z1oz87WD;oC)h|>HM<6lf@@bTDa@13Ro|Ki$57uWm$1;35kY3hTcDuWkmNXIuH z+3gfsKfwZj$z)HL7nqxAK1s4C{A}cLIc5situ8|s*Ju6Roxh8#`Mv~1R5Wbpr%9N` z&YZjiTH#fEr;Hb>j;+0IA^5?kRVmfohK{~qiDAyVMt z1eFA8IwqPzdtC(*y^ z(!yAGx|&D&HdYJ>PZ>sHviT1SoM9|n(7A~IbJhHFXUC;vSl-ylw_i(~%@*_!I_nj{ zQZE^Nwur^L{^hBcG9F7kt>?Hc?o8<~C7aEl7ey`^hX0<3#_i#GSGGUox$znT2q6lz z-&`-Tz2t7DEtf|3et(C-GQ0}7nH1(;mXMREb%5us-1m=}A(Vd0H@C5uFCzTL7f{-6 z4zMPq358}HepWa!Ng18gbn&bqm{)gg(l=}O#S_~Ur#NN)uQntMz|!qkb%%!~t!aa> za6lom6thDADcMftQE`*#iJ2zLx#3G4iVB^*uvM0EdtQ0p zvDQDVy8f&S9|0dkV(39i#Ic(8M?_^zmuOm}Ns<0Bd+2){fK7yl5Mss0R1#RFA~{ev z=|XUh6xi~8@@6^d{EhFo`Gwg3QBPd|R!_8%(|19>l=UTl{CA9}_-2lz92q}!ySqj* z8wMW^QLtnYX64FjLT(2;#Uz~p)}kLOXopP#x~^MJy+U8q2tPMd`=$N7m+3-9w=e{! zp!CaTFxuD5G{p=O{R>0L@XDfjipQ0q)v3hHHSNs7;S6Bo6)Y|l@}(1n2g3Grni+AU z@M&^@SP7)3NCgpMrl3wLw;G$YxqL`#vV~Exi1Sz9uB3=Szw^?f$pEs#sSs&EhFL5GJ4jThh+FLIv>HXcc+O`@}EDWOQ57Ijl=1?pT zKumrkDbK6$ETCMZt^V5R4l*+jBml?7dHcy)&hpEuuFL8}XZ6|_h6ld=n}h!VTn^dj zGc!d$ULH3#=$_E?7ISPGbuJJ5mtO7O%SAddqk92%88l94XJf}sMESkyu4cl_nz3Dm zIBP(`?NKS3Kwg#`aH3J1QPSt)FATxWs63Za&^U3B5o9 zpZlH@%5M-}&~8lADPK1d)CH<1#*bjREX@RDgapE+5^=8z!`bzW%~{m(b>0 zn*D#tD0*eO>PslJiAtdFY3!9h9d?IOkM6o(KT+JexJ1SCWiWC$<5ODv6;3FhzXt5U zp`fw0t%I9~2iU|l^rV0A>fJ7@tOdnKH(F#n zV0HSg=9z5O2GD0hebarnRT@ZFzx&q7s9R%dwM~Hfjol^|XjGog!*g~bKVfvw_Gt_f zC`8JHj5ublMrY7#2MfK8S>@TNZ3b-ICO2qMcYLH4Q8N&R>>QujHBC-~%{C}?jazEw zd8%z(@A}Lllb#($m>ZbZ`<7T4mp3k^_BPo@3icp!iQBTASddLdU78{Z#@cX!auIHnb{4L7azUVGw(^KGpcx^}}4Q3Vd@ zHJfcxt-Nm+4D#-Mr=yLUn*DEMUMAaIx29Z`9D;JS^Rtt-t*6^5CL@#$AWH7lw9T;L zA--N>ibC6VZmHXwjioQX2U)LexVb0gC-Tw2eW-U612-K@@J~N$#o3YR*CH3x2~$+C zYtXXAG+MUEnI^Y&h<6K*VgL5%|K)*+EMJ(a+<%<>3qv8WzoOPfvXH-0z}YCdrvQ`G z4JNnY1K~?(6U&WDe`$B|?nKpQ!`=aG z_NiB4{Y$lz@sp%L66YRDxXlzYwk)z)fl^gcyyWg_apWx8vUj0Mu7INxeEl^{$@pO$No$S3?cRiltSGeCUtNq>x4DP71 z0;uVTG|BHb+lUCoy!)RAZvdX?T|BCo5#i)uT|hqdbg%7nr2S*bSKl_oheFA!9kE{W zK}ndgq?&I|-nxuuCX!oq1D~sncy#HqE&z@{$efwLuF?$c;~R&^DX46prw*Kp7k5j~ zoN_86#D+CQdf4Z-fq)b+9qjjk<>lq9YcQ;qK+;qPnxssbIOrlx`U zpI01nN3Y8;s<#aOg<(s{%tG=0m4DEAwZqcZ+Ju$p68K$8@t=jVyIxs3g-fJ=4ngx; z`omo`qoLbf61Y6lr+^%Fhq?!(Qf#s8vw-Jn)=%d0=-x$_ zLAL8D31iCxBF&b(C&wzgt1s|6sA){=Vo>IOBTe0xb>Y~foz)4?^Ut<$)ah<@$CR6c z81-0&oz&UIz82NzUejeX?Gm(C(Dm=Ucu>x1!ubBHTL^vEnVUI!tR}vmnT1Nxh4iod~YIAoh8Wt4>HTqIri%zSWSjBAM57fe+v7hNK-EOezq2Y)C06O=r&S+Rje=-a9?66qunEcmynZ7Occ9BV2N5*xY z;Nc@GDAlwIrhcd;;7Y`_dDCUbod%^>KlR}j_&HWOY5^5rJ`{l!2$s?UuggSw5n-3% zYy6VzWn`o+!=Ky#xJ-7<$6Ewf2lF}vJU@CfL5fa#cq~wox~ghwBrWJUdT|3+EWplb?nyKT>4`+MD$T+7xS@h^1f8koIbGVIm1&$v#&QSf?P@cK-eI-ybbE6OjJTy{*G>flb<^&D9Z zKWQVr%b^07ORI*FOAqf&cPXLs-8V*QZxvbi7e;7xgUQ8!0IfR=Wmc4KvP(`qcm)Y}^&5qtVaoEww6R#O=ZD;3(TApYw zoT@3v0YEM{?bGgUD=VoVN~EXWT9})TY@3a73!X32q{@A*A`d7`?W_>FNpB$qwW1T1 zw9$cbe;k^o57$&TpeI$%ipq3T4?hXKUxLB|< zT4+d(2XMeyTOAtK*1iO?xc&)xun9sJ>(5*KIQWvq+!db^aj+3WX;Fz#5SNFV(W=q{3khPWINgm&>(k*Y#W$mn3 zNYlL4a^H7(kwY85dcvYJ5SQ{T)xg-gGK|Ktzxp6Vq_Gf#=lsVQv-)LhZauY;3lKqv zqkY$~J7&6$bh7l88aU)Y&)4XaYnjOnaiOVjsT){*kOGc2)T zujjTn;-eBP#HkP@tnhN#Az0z?8wx%sBw!wBi_ZEGxmfH0kX`8wy$GHH6Fk1bnkbt| ztj;Zp)-T$v+4J?pyu20a&_)Ll*xe1muR^RKsA!4(Ex&%ti-9Ms{M0>K?})x58V-qO zsdqC1+FB@zr_6_W5QxvJe$UT$wZtYv9SATR6j+65iA}y^jEw{7^_0|VOFL`$e)#MT zK6c(e|K9sv@E!OyDNKP^AD(%3B(c8HZ`52&GLFCZ#ab;X7@b`NF*4r7 zP%ZDl?HU+39+6x+-5aijHD^5PCbaQte))+kPrP@zNsCx*F#&FjQM5gmqvU?*By{P! zppj{0y~i)+zP;b;U^TB)8nCv96g7yfHXa!IrSG-(h(E)(&D?ye zrp-B)z2w|Xlxu!bxL>Bk){dU<`U^v+oFc`={SRJ91Wfcw%;*(?u0ht*ZNF)}DX82c z72?K7>G6h`-eRvaT4A-H7=EUin4=-i`y;f)3Txa*2n6=E=RjxrIkGT21!R>mPcrZ7 zs+U=fc%+doEg+=dv&3^zSmli>X>!(vpV6tgx$Yi5idTI7IK5gHAqO>oHzo)+p%#}B z7%Q^>x0tBzEj@XCI>M6jJXatKIyPIy)4SNa5UyUfnf;@0*SxmBSW~~EgpwxIG&EV@ z+f+*DMa^}51|DeRbUS+OJyzpXSr;`ey>nv$*a`)G86sWN(BCN|&;%4AzduK&p2NKl z&sb#0tl4)kF0md}7*gtFua|2qjlQj4*sY29s672JbtaTKcd}J2z;`Sbxv?GR-S5Vg z4Z(YNI{Zu8Mu|A`OZ?EDj7qy~&`?E@Qd4urJF1^}EIbWCz#>7w=2r%&k>`s8&0($S z^Oqly)m5q^yZ6pY;^I77ojO>D9ZbBZG~RBaW#$YtlY>a_G3o>Me+SK8mKN%6&{Ol_ z-)sxfg{($9lK3obEzm`tjpp&1G{pbw`52Zc)(Jz6Ump^YD;Pkiw5{>h1p1&FZirw7)Zyc?( z>ugI{Tv2bHp}hSSjmG(es7!aTuY)nld<64dlz@bJqGC*=sVLz7FAV?dr#nMtp=KGT zcQ~QXooyywC2?0DFzI^WE=l|0iX<9>_=@W&UurE*_PleDQGf^~ddCIhl~1EFQr3QE z3yqP@R*LQbd>=Y}_hjNfVht|M5n$JoYK){)#U$V{V+kYBvtv!bO@0;mhUOxE%CYrs}Xr-!VIlVg~7MdMe>^i@6VKH`#wP~&t9kKe$1*t>(lYKv1xU| z_-o=hYim+YPmFY_3zlvPFtlVX1J953{xjY6Ci3^Xl5+}*HeHuEQ-{poT;#j7W=8j% zEogEVP$e(alk`j)M`RzOe#5Wv#zCg&cTa;hQdEUt{O8+WVT4v=H$T{ZSCufLY(zOzRqFW9DVe83vJx< zfvs=t#KOU5huT6C9f|kO>!c570hU@J=6_fJqqWPUGk2t0aV~K2%#J6q*fHmHZ&$~S z*Ws%&e>ebrm_5I1+V%zva^JTVkw3HCHYvlr9D7CqCTfP$7^FSHIY0HwI_nF<-*|zi zOO~GR8;y9fscOhvP4ZrEQ6K zFIB{S-=@*;KOk|R{@OoMX-*LXvGRwceLe3vU^2&tu}wJ$&ASvQR4a8~Ads%2VxpV; zHzINqLv8*^v+k1nSkrc53SA=kAo%n%;Y*imR`}N|y4Kpb^6>qUyy_%cSE@R`d2H&2ZU|;1hh7u)e~K>{V4@`X5Sz+2Dg~!Kxoz{4HgG4- zq-s>PB$%^lhFt6DOrJ6>iR+TZ!L?LZf-<(5+FHV?8Kbrw*HVu2RTbb<#EoQL(z@Kq ztt_7vxj4FXC7-%jRTi#Ipza`(M?yEP&Hyy9t#nT9Zp9U+G9gC~*7dwB=kXS9RiF}G zSW;0TO(O1Nb7rqP;ubnU`8I@~vOXB)H18V!wz5D;wYN{52=u z&a)8HJ)@uMtSwPnQo%#7E>8P?7??SY9`{3tyrEZVXge@+&5<^aB6=|8S}(t|EgYDE zRti!d&I%)hf>rnR@XG}@A6n2=poboaMo%5e4eaFC$MhRae}kPpOUP}1ek^StE>z>1 zRP<@0)J4^FOj&*lAOZhx$_+}Vz1)$gjA+V`=-CyH<(G;G`~3IDp-y+VU#b$!l^LBp zqcN=R#;^g*%1PB~FgFLeJQy`|eo4`7KYT!kqH-{%=BHA#C^jZX;pZxF8Fka2(to7i z7X@toh0(bQTkiMc5(F1EH$lM04G;l;+l7=A4MRKYK~-z7C(<8{f2uv#wVpx*r0*$! z5mbPZVgDCpJoJpBGA*?4_I^vJ8zHp}Ujd;=Zz!s0RJ`d1^F@Z!NSclDa0hX4W)O7V zQb$xK;(Dh1ijW-C(=~`ftt)_;2 z!f6P2pBxMVm7=agt@-#l*xmVC?BIwvk`{h#^DB{mRi_XMyU*eYDzEn&f7a5ZRg;vi zgcxK?4iaDP+NyoYnz`4i|JMz(KJ)`kA_iSOiE7eEPpqN^{aq`fNCwSp;AT& zm77BXhwKeY1Xu9u{eRI)HzvH|M24y@Z{GV38iS?w@6pZ4*Sa4Qn%=ApTI0$+Py-gu zl&}LuRr4g-bcwsihSdNwAD_N^&D+=8KTm?Qw@gBo=1+}0 z`D)*P2UAfmj?Kn=w2W8?D1V?4&oFd}!cXR1(|(V6oG}7#YpLf3RXcq6-c6NNt&-O( zO1%Y7cZf1dFpw}(W(>Pzf~6V{;`8|35w2^NN$|<_%uOg{;~LTwDlg-HwY5NdqkwU7 z@hGVq!}i}egLhH`aC%_ftsc{nhbY}VHTAXwxLWxiwJu5YOK~IWF%nXd7_|pHvCV0_ zsEA?`2#>Xz>D+p=BLP6j?Q5TkUYG?{R5?>II+&%^N0>uUuVqc4yumn_66Y0fEfsxb z77VM8FD7n%Q71|I+3u&&WUMjD$d5c0tewwQX zd9$4Sh6q=hgnW`9<2=zEYQ)NX^)|1b@?I+mg!6;q{!hXf&T=11x9t% zk1^vqIpWQwE?vVNKfPho^YALV1iGfjecD#{6ccFEvtsQPTp?kgWdwKsF(HgJ>s3;!)wdn?A_D~;k~yzXCsC@ZY2)Z~p# zV`odapg&oRgHEnFmeJvQ(M@RT=S$Mrn|<%Xf5QO69{rq6%l!XHd&{6W7ocm91PB@u z5(u8)?(UY02X_W{8(abe2u^SY7zhr*VQ?5+f;&NmFoSFG1oykoec!6B@5kO-Tf0Bz z7t|EPJl%b|`}8^NrpG*#5l{JEu={u>^wo&#dUbWgh*%};dnx%P>&c=&DEKF^Y=5qc z)Q@XR1;@$jTwqZp7JsN@VXg!}Dg{Nz1NSy3kKo6W+$`_MD5|(NJLEcai(ACa*BqZk zOQiQCx0ChOsL#%615dFesYsu&03xuoqG5{_7kAbmj==1^SS}O=nW*D-uMiIF2rW=K zG+zn5f!s9Dj^XDB4Q{LNFvnX%+8$x%X^g0b#~RP-F0@6nD8DzGhnHrK)+UqB`r7H} z#1E$gzH9*Y;12J*C4(2K&l(njp?rBkU#ouAa2B)(5gJcW?uw+*(KpU>>7W<1ANl)6n*f%wq%FxN|Q% z>coACo+@HndHkYCEb6dfK$BiRV|+#=wfS^AVPn}d&uElbL^nMkQ#p^XJ1wCEq4CKZ zvoI8T>2mplc^9`JL`us;y|s9{28MZ@RSFX5A5MSuVdg^t_P8}z1JCNL+Sqs!{%qYY zNlnR$*|Q~OZWks_`J=5x2HhSPVTQKX-+&j$X zTI4vUr4#E|M0|MQj!i_Qe~?SjYf#V_p3S$hNRnUgEj-Zb>e2TYnIsKd@#bV9b-Mc`A5UB>64mQOZ@f!sv|@I1K@k1_t?|W^x%d2x24*i1x5}>0lxjA z*gLigXoXP>G}QiQ?WbiI;jB4Buk)!zmiyU`rPyU;9yeL&Ei@lo}ghaq>4sq&)Li zWYO=|gAn9b!+<~^b-C8ky4e8Nx`x6rnmPm>=b%8XB~k8^GrA*#c^8z<9D5;;(dx1c znOKY*AM;f8lZvYGL&Gn&O!O%b)el?QmhHr(O^kP62nEi;1OZu;qH z&pJZMctUcDdMKtoebj1KdD1TRv22nj(Z9OQ8OOra)7NJ@D`}9r_JmZs5h_Bu_4ae- zT%vX@iQa8pYya=X8%C6sivxx&w`Y92|J&BfGJciw#snJ4vchS}y~E;&A_Bf)&Cpi5 zE;%m`tu~{;N2sfri4;14e{=WVK_Ng3A5|&ofxfvC@&)6x;#=Yo{D}}#vPw>n`Gr%3 z{Nk(DgWFiG=~F;oHYH;)7pJ40cma?TlADB> z7>gf*&G=-;R3n|ZnoUiz?D1EWi4*-e;pbE(UeFyA%2#n;;_v$&TL$GIZPFx ztNe1yxP5Qoq}#P8WAxMU9U$iWbaj@dc6MeTFDvWI_#4E!Z+*!n`w-fb9uHQ*kt50%$J9}2o~bG&qF9-7j|Y4~WgZt>kOp6P2+#^kg# z>Cn0^widke=8@uP_c}#nzPtS7&AJs`JNs!^!&Y< zZ!J8{u)oo092jNu17XPxSN<>kdhWVquJzQowP(Siz`)`6PKCDnLZE-(>hJy`xz&nZ zi`ORd$9N(g&8N!D7%878l0U1jYnVCwk#Tsw4eM=bPD4seydBgxeuX`9C_{;WbyeC~ zJ!CmAJlmt;`(pc-GwX1>TYIgVhy<2VarrVTo)eFhDPcW)f*&GB82?OHR~mz04B|d_ z1!KZhehzyG6o2@z$(o=f(G8epu92SWF3S%%OOAH=W}HcM0fsn)t-3O5mn0DUQXy#qUpFP>e#?DSD%bYtkGVr`UX=L4>$FV&as@5k*& z!9ZCj>+aLt>A>`sWu2BpYf%jm`M-~_c~QuMjrlQIoac~Yv<4(Q+GF3V>?l))dq-W%4!g$8(R})JvN!zLQ&%+oxj&?_=L=QU9A0Ozr5rM?! zAE)gTh}fB7&6_(XdkG!$-2@{5Ba|Ymav1i*DjCh&!=Tam8->m}y`AvA6S-!hxK4Ax z!46nUYbyl=Yox88wa6ShN>8^%q6cke3mUe^o?xU-W73d0G z+53~8#>MSoTu|cHIZ1q-rBKbhCB3hVOt$52`1Xxi4~e_QjpSCO@{h?l5L|#8HQ&5i zblFiV0IVX3oaxbe(C35-w)E;E*w`L})TcVz$wcPc;oCbM?Pjg&Pj|DHz%fb=L z&*q}s7?eJ1^UBL<)C=AR0S0z}Lj2Q#-Fh#B&F$f-I)O;{l(1w2olw=5BOkDuYEf}# ztiN{@YA02^ONYCEW{hzerDK(U>>+*c;Qep$J%{925}YxSb9*%Q72M(Cu3n3x388Bl z{T$T9Sn3V-Kn7+Sv&lV8gLp+(9Q(2l=%a_^W>AUhmi5kbn_Ww#b*~S5=+1{Hl0D|A_Wle^v%m+UUgAEx5A2j1N($9n^4fj>{DUz}>71*lQvn zID6Izo!->31dooz1f{M<;BJ)Ucz%>l%HA%G-S<+ZH)QE;dS1ZQ-5cS zXN3Nx|M@Rb1o(hO#RNX(9gRkl76tJLlF7~Y-b`>3tqTp>LCB{T3wAypLU+|-sA%!7 zt2w*YSO%{~@7`Q8y#@=o9H(IzQo6Q^; zxz734lT?W>@-GSxZL-na>#I_{EGJbyjl?_Y6$xZTRRATJCS(Z}$%{6GadDuxsc!OS z`MxtCsaQg26`q&hKdoCBFS!uA#}PjYy7@%Z>+CYM!pavHBoJ@%mw#vG4auPQYdO2E zhrE%S@lZZenm_R^B6Ly_mVpuSu@Ct`hy^pyqOLw0Lni~Q33B!wXXDeE&H=?cnc3_b zK*FH*|-lR+p_hXE>BVerTsYzjqD60LV!5X_tydtP~t~ zNfGe*x5=PQf}LuM?&MKlHeutRl>Yz_`3Me<3n~%uDZ!N$GRsVZO(afw&_-oQ&uUN4 zp3VhZi&O)3ZRp2i$`7+j^qQozX}TKEu!N0sMRPAaBRJ&&y3y~Ipw5xFiZeDqHtz*6 zfv8K=LiIAtkL&%xA7KmE+*j(UB!|W9wWT&Y31GO)3%UN`UBJ=dtC${Svz^Jd z^nQDdnI65VVFWYs0NbqI$)A$VZ+9j-_Rt`IKyB=ner`Q)q0H?p=V}UIc~;Z*%E=e>HH674Fuxu;nNlBK8{WlX?A*kdI6AdI2S&Io+7oM zZ&E}TI4t4|OA}eg-yB>6u-9u^6E-VkZQNPju5;S$Tl>__Oq}w?2fMhr%)sr=oVXFr z65A%on`eDiXEes>!$|I*Vj)w+F8>ZelwTIj?7&w6@$=h5on2j_vEcSctc#_cjxQgc z1+&~Iq42ZRmVZw2%?cmspD**SYC_m-I;}f0(h{WT)27TPa`_IQ>*IGXvUj_CNgMQq8WSpUGEuhM&qYb}}})r+#&Vxy0gjrj|5UsE&h zqd)oV)@R?lS)*yhJnQ2RUY(s%>x^5fV1osnn9;Fb&Vcatju?l&;-xx!(fjKVHwh=2 z&0m04xl!Mvuh8muKTGS1U(knKBRDLySj1pWb)6!DRag6_|JEm!I0|xFy*5Oey_aEx zR^i4jNRh3C+>07|Dgp3AVDK8*nW~O2>XG6RM_sMe-7(IKYEtoC zya_pOW7(c>)|+OhyhhUBvgnQRt#>Fu1Tw*qiu@SQ!KEaO9bt=evxQjA3DnP~1?zVY+HjPd&P6y&cet`sI_*KRLu(iB>Eh-i(HN_LBDQ z6t(4kzuZ-=hy2k(U|0x@%F04*?ZkBOHj#4CHp$-(bT=P(n?Td^!W`=YML=?*2T%-!eTUvhsn$Ju2< ziR-fEu^>l48W6A3R1xOYmaT0xrX;6d3=KaAGdul=7X$_S@&z|PfS*NjTpDWI$*{PW*v zt#bRVZZD*`&_iM(A1^04ME6$^+nnS();1`d#Ibl^!uAj-L+7nGEStrn8-QNF18(o* zQuoh-djS3SM>Adu7!G)|?XUJTF7_X$8}GQD$WT+kauwP6dH^Kf7I0)bDpPJMC)xr3 zk!pY;X2d&Qb(cjM0!L3-XtG@T32V->@v%XQrIG<3;JKx=XmVJKc%2@eINjLK?HdN0J|UX-XefsGt5 zJ>n%d_Prwxw`?JF1UpH7k#awO0($OP$wNRT-f7TlnPcdHM*_q=MvSlYtl?+f+j=8Z zQ8fZJ3~YmlyZiLK8?v*xtD4~Ui5tS_&#BK)8Xa%;h)0_6lW(%Jy(Q#{+^0#tQjDI+D4LkFVI(P56DWuvju&WMS7#SxFwnpV9 ztEm`?qt&abc4dy*9ljfj%0q1m@uB1EZc`Ch7`X~mcUmO{V}5MySMXq|Qz`{XC%Hv` ze?MYy<6LW3OSCGz&*iTfCHgvxd3mfQj5EkHzLjrt>~E$HPvwMiT;1P&C5rHY@XBCV zuZ6zwG&-s>QmrzDCPVSEvD8dt+ifVB2PiXbK_pUA>_u}5ARlMYAleS za=Lv$ES#)v*^te*t*qn)0zjGTtL(ovPbqg~>F-lCA?DRp8DXvrWyYDg!;j2^ z4{e=(;j+we$pyw=rKyF2(AY%)Sg9Mvb*aLI%9hG~u_)L)Bbb*b!7J*22B_&hw8Gm} zD%s>*YaeoH#aHw2TeQ&EyqM@HuXZzvaec2=)ekHylzp!B%?><@|Fx%@LH=t(aaEf; zlI^H;8`V$@>DKV=kXCFn1#q}xgTi#cUo~J)vWIXKC{Zj1#jwslk3>R*z^vW zAyslDnHu&ve_B4Y@N!mj&N@SGTQp6z^^EN2eg1C36R8Nh1){?FJkM(0?%|n#AIs>f zpp=}sN*lA@T61dFO(*XeK}q!Le{Fo<*yi}kMzy;5qcyi`~EUd?=Z)GbkiPRlS}dxUhPaCYFvB){-05WFo8uczYZi z?Cw2UtLf@wf`a?}0L+-2=vk^@SN4z_kWbBAPd^%dBCjzjeL;QxVBaxYScj-)XKL$r z6Vc{^DhZz(U)%?ir)y=RH0L%F*ivIwNMB)Q>N>xSd8VkLPXBg!-^BCK_mQ@xB}@~3 z%1LkcidXSz0QX|{!;`X93%fD!`9euo0JvN;^|&Um-QSPMTjky1gx1d3_?h?@Tvt^5 z&y$#tBNw`sH>WbRAKWmU!-XV-uZCgo2*<#l)g~s$Wd(8VVPj`~%)o>-kz3p3n#W#P zUAmB`k6qnkdw-m7A)&O zkP9g#<$`)(<)Weh+iaDU=;fp;HaOcbznG&Ic!Y4TJrKZ=i`7E&wt>SU*DetWhQU+>=dAUXq#aHT^agq zYo1LZ!?<81s26{sY7G1?y@luh1{lvv(y1nj592-S0}RF^-?3+Z9_`4E^8n_*D*u@& zG#osQ8vTplLYJ4PCf|RsiYh7so}NDCq-%F~x@B5dU~v15{}s(-N&5+EYPOE}Uvm}0 z5~NNKp?y!+Vcrm-2D5PI3ZHpsaWk6$Qt1Up#j_p!+v$j7C!2Q zEzBS8-l=9z*8N2XH(<)7+8<k{VNJ=4i^^;eWBN~CZPohgp5kUyX-9wj`wXG2Ri;xI!~e_HCGqCaM>14z_>Um@ve!K0r1$wDU4lo(?6J zP&H@_yq@BHPks!M#|7?z#BsYTRK-W$<-y_=FxGv?Q4){d?~30S0p~%sLyui_f1^!D zc#g76j=3I8WR***bRYbFU)>mR$M9U7bnM2Otuih6IH_puj@%2$Sb*MNFWm~!#740S zQvQvGXMSJ$bECOvj=eDp1y@OI5^sz1%=pgDT-VOCq}U74agrA@i#>fE9IX7PicgR> zZLLZ=;Wnr9zHfb>oY}MkCd%+MR^{7Awp(AII_Xt5=Y>6{b-!k06Z=wax=c4-Mp+Me z_B0ff^6N=?@eEf%v(PKqr1}%$>O7DD{proMB!&nHqKa6l%sO53a(YaIIz3?0)B&D~L+(=U# zke2}X0sU^^kxM`#^Z&0_Cd|Z{C%*DjoM; z9R5=RC)dh$BoKqQ4%ZoX-cG=H!|YT9$@Z-_f^qif=n&dl1Ls|m@d_JHhJPv`i=s3) zf9aXIYp7hOhw;))=EzVjk5#?3ifJ5q$Uxj~Ug?kz+Xo>h_|w_rFFzMy$mvnL9Q*q0 zCa^-=9f%WJ1DvpFnYU@49E!d8UZIn1G4bHYJg=3`by1Kf2e$uRu?Js>CGJSa{v$_% ze41*4`oiQpb}zh(s2(EjkYu0L1#^t+7cQUaLUui zo`;-nVo81_T95M3@4n|QHjzWF{@$gNb9QpehtD4OyDPB&5l*u}qp|TZ>2sz0Eb9KD zQPex36OVu6c!b*!NkG9iYvtX$nWr43JhSZz-!LlwxXcNR3DV@exeet4gRQ(Ko=>FU zB+NIdco^|>>ZS>c+yvx4*PPolYy<@?M6QU1xczR0;}R}7)~T!gR{fMY=A+;$Ho{iD$vvxhbKeHV?XdLV7+xXee#nJR3COYz`e7 zcThAFn&2TrN587Y9x7oos~GD}pSs<*xky7zZ9jO4kh2A=wYwh19>iv_uaH{2?0;Sa zii`h#kMdA_k|lDa5G5W9%=_#>bY#NZ9fr_PyAdATrTOo80fkd?Ry7uhF>hm?ED$M? zZuELceyc+@zP3D88ev=>_b!IrwHvV4_#|kRq5+8g7NN#)()et)BiSp}a*@5+H#w&V1Gb z{<2q=-eYz8zDJ{8NhgNJ>R-PH>o^8Fv@;e8p&E*S7nKcyFOfal?7e|XCaa8`lfA~^ zNr2c8B@FC5BM&hz2ao0_eWZ4o5_eZatjoBTE=O-97;d<;en*oXJ#3F$5kd3Xs9BU$ z3qA;VeWWkNb+I&5*w~0?U)>Z9@p>g+PG9^&{%2fI5WU`ZPAYlmqKOFzg!9S}@z-Z& zC0*KA%rwH6!uNg^r80B+>bJA^BjqMCi-5;7fWC)+m^}af{Zf!TVqEY?+X`vPDY1_z zT7s}CFFN76#TcuT*VN(Y***L;Js6UB!mqCVQj0G*Bbt6i4WFNQbs9@>`$anjl zOr%p8HL#t5OVfU_Vx**mqEp(DGUYzESsHMC)nndz7CT5Tvz>N|Vq%*zUAjYfmW~=T zjmyY6FO%;4ZmQZqVsDXn$hGmKrC~><%$+LjB4GQf;Bv!drIL=PY~BhVgZe0)Ng^1G zKMg_nvb`%W#SUhGPILIO-QLqn--I~znF?6w5HX13{An;X;_TBbVG_4g09u^CWh=QZ zi?GqQc0~!1CSW@6itlFsg97BBbu)!D(kLG0&FGQ!BOMGfGyMqoL6#jo_~52VWVViJ zY8lJZv_h#p2uF7po;5oYgZYU&RRRo4Alu1Z(?p-6EBc==PaZG*0W3^*z&@0_qbbK0 znkL>CspP!NolQ-RrAIUJn8SK_uUMOZw6`uNh-}78wnb9$^~0N!1&TD;i|Ere$#k)d zt)8Dxiuu6oqTH^(W;>N10`35XZAun@*bE&Ih*3@>>QI$`&II1^9zTzuPZ@G8)|n&! ze%BA-%A(2vpbonVB{~}O;8AQskzJzESIwsRi_Y#69mmxYXlt^ZLF3o8mT`?C{`k|v zk+**!0W52IWfD%`oIskv;*l#qmyG}!`5%~1X(ZP=65D$$l4ohtM2+|N!uL-lG)FZ} zbbQ_{h$f`D3v^JAVa%u!84$M1b(gGg`y^z0SCD5r3C6nm|3(eDalR!HT$dF+(xc=e zqlkX|G_OK1XI%4-M*U!$hw>_-d&^Q&4m1OUTW1 zCT|KTeT{U_2a$+p&AC!c!?;pD1A_?E5*TY|_pI9MAN!Kh;f1gKyOW_Y2Q`QJypESo zkw{_Z4GxTGl5zaF7!|@ZDpcaiy{MMs8#mYaL(Hc7_cl28^wM3xO|zCkV#e`O(AD}3 z{G%b;0UYozxsTIh5OVOxaA;Fp85AGZdE=~d1-IIpg~@*N4uBpQB8Pr&DZ+ zo$aNjJVr?LqWT+O!R8_LFDlE*f1aX(SHvTKp^@(XDT|PFU|#jul{A2ZfiJyi_ATOg zbXE-x!LBK?Gaj>|3>lGP=3J^-dtnqgf(eb}L?97{D|?&4jSFmmN>sR7vm7m=$;#;73eDqR^UqaMTp z;SD3&H^MsirsgXOnVZ)81BED`wqV2->;7fkq^5~Wf!(tQ(;g6rUQh!X`WN2LGkH0N z=$nM2p_3pgHb~h&)zoIDqJk~IFy^4J{__a9#1ERv zDdq4Bw{qS0p2>jVzZdGGRhWD<5~Z9z88kB!!6}nE`1JMgAm8cj*#N6fj)Ln!txoyj z{G?IL0gOGr3Cy{0h?pJnW#i}@C2D8+KYrQH-r@wYBzA^pZHQp+hHSRraB{XyZqgoXM<>!Lf3BW1{bUQ(O3O<+VlIgB0sh zuBwpQ+y&9c8A95>%w6m04~8+n>LxseYfin_#Z}ha`RCFW*W1{n%41Gn>3LLg#Xhew zN8=G@DUzn&FT#dm%8r#q$-3>KFO^~h0O27jK zMxkQ30x1xcnj7Px!kC$9j>0wstUoRrf0A1gcPH%j^hN?I7mbG9Qq+>0CGgN3i&e|Zs=Ld1 z%Ce2yiT?*03HVq8(z9sk(+Xs8Ty_???9i=+6!`_Ka@NTODCXr6AHdoej3&TK>UZ5?blP z7wo4kcc?b+P2$;~zxdvNTVdOSOz=0G`j4Blzl54pM7;}epx@m4`9m$dLgHz$eXpYj zzrJ<}s*jSKUmk(f>GHgUrm}e8mvFz#mFLMzU&v(zsW5YZRGRJt8viVhj=7yiaE{vW zd=5Y5iM#LW_+zAiyPWgSnbFi4&4yN29+3S#_;u0=qg`yGDZ@QlFM7)kzE;|MF}W4O z|D&#IEr4n37P!C`7;=0+QR>D0DcogeJJ*E&CwAod`8ak#}Km_ zCu5olPv58RzCnN6YEob3ax>tdIXcaoOc({AqDlFf#rbeO(ITOjsP|uBg?XbkqjaKA z-6Z%RPc|Cu8sLfjw+9>@m|(&c(y!8Sg4>$Ov*dTOXjz_c2G zfrD^dygF3h+NC`fX&Ln&BcmZD3g|YjT5xJ?>>Ar z)cL-cfm3(;`cSL#t*PDaHCd{@X4PVGp*{SSL!tu~8#Ck;&eQkt_Z|b%l7FKq>oR zGk0>>JpJ_f+m*917~DBH9pn-$y6Z%qdP4>iIm<8n%!p2zoc|_+e)Hz|fQ_1~MKK1OsTAXU$f%~W^B+qR1-Q{3{02x(Z8?G~q-#G4fn7oI zSzcpfflAW<@dO&MIk|8i7vvs{7^GbaK|uiou|pqjFU!+Ni1LC@TQw_+kN}+pUkC6d ziLE3(#D6tHB&4N=4OOAf#vJ7K^&&f;nki|j3!tB0F#wxhu6V)C_?e)^u{O14Hb7mkhW!A_$3Q0dD_`*NA@Lax9A z7@FfPWZeyu8XqgHanR?&JXb77uY$1FLNQX}E|&(8>(ST7B+e-ed>=3tWnQP`5Wymv`h1y*>Xv+QMuLAB|xNHgoYtaGv=a~ z+TB1HX|F18Y5aNwJb|0 zO=sQEA?5Xob_~PNu5$< zyN*UkvBEf^K!zH=o;h<-4ZrKI>6o0Wx@2gYUzvw!IyfaESxaDw~)^ml=pS%oji^mQJmGlgAjIIX>Ngy>Qh=>8Pf&zuNg+BQe?mg5@c zXt+qAvCAu+Q_kxv#KDmsg4%LxVnUDhJiV5p;b*}?BOHZa{PQ~^pP4q z%>*)Qq1cxK;{J1EmGR0d0e&U2B?4}}R&4PtxP2vPy~7pFK0+ju2QDGaoV&JeG2cp5 zc+hm}?61zunqokCjpa|0GdOYfMud0i-nN#K=#4=yf3dLo`rag{8g6t$_9>h`_LpfX z%5NmR(D3L#ySUZ<8x77WH#1r%UB}M&#D(Z4$Z)@9(m#7wWXiuBGk#*?M{}gaOx%_= z8qXZ$Bbxu*kYX1}rNfr3tva{GT)DBG&*2g3BwJgn63o@T`QU{`uD<|ZQwR)ZI2$yi zOAt;{pwtW{CZS)mPMJ%A1k4t9pLxG%dVtK!qj48~j9Yh~mAKuN@GGl6+^x%ybIUR) zv*~+=|3VgfEzw=c$w}a71_a7?uol)Z;0%5}@ZQs-VX3HK%)8F(Ae~L15;gR^%?R>i zfIO$wwKJzbCAoKGPh(|Y-H%8k+5#R*J75|9vOR&76ud8j+qyN=iF_jHaG^&Sa~nrz<;{2#XZ>yt3N0NsnEJgd{7Z3?FX5cC)uXwPhUl4Ycn=&? zJ)q^a`(|>u{jdCum!Av1uajV1E4+)aeGO5sDOU0X3l#VDx|1d72-`?huuf{F z%*YM$81*+;1#*NR(K{wk;k#0XvF`haX&LWp887v+y~iDLc{=p8{B&Msl3PuYK6~pd zGZZlsu-Gs7=OiiAJqZmRq9p$0*umxhAy{;>=fuP3L^?+3=4_&LM8k22c>N;2(^`;7 z=)5>y+kBg5{=X43fLRaX6L z)>_S9KQ=?J{4v)*XHRYJ*k?2sv2SHOJUef3o>gf;C` zu^?pTV1Sj3Z>nP{-k;^WmiM(2l-o7WfcWZbhdaUVw9N-zfv|mEc2iCXJ9I4mur1aF zUewU2-(DnFuf&>3SAU#pG?Utv#73Yys#lVA{4!j$~!!@+F+fC%t6DYhhC`$rB|&7o=$@smO|%)5?x)?=+I> zywat*Er<$R8JhV>Us-JoD~pzUl4ilp(W||~Zg=gO?L}`#Hsl|5q_-(|$NZTBnm6tc z6Bmy6Isak{qCTxvo%{)5=JYaX*COSldLw_WdFdE+5~oY9l_vMchm|MnTDI}XlQE^EN+={ucEqbjHyDgH}iS?gEfIZC*j@qHLUCNGLL zDxpRuJNZ?JAJ24YRQM{M59MP!&Qxxiy^QI=C~iy=?nJVq1##e zgZLH(*snqjW(4%2H`E0X+@;e{YP+zZCX@Yk7u9mMLp6cQf^vb!pBHj`$+3_z5Lo+){lNBw4+6(E`AoEUd|&vwL$k=12CFyH zdNO5j_c{DiA~#*T+|@XX(^+R{%ZkdE&w{MuVJ3lX$bE*G*Ukkr@g!TiyL1@YyG$bD zJKs9zOi!6DUiP`V5?a>D67agGjL_#|1c{neWmWhqJyX2#554OJ3G^Q~ISE}oeCA;eZ?K2g~B0# z0ay2KYA@<`%5^8TJ4;)+HJUaYmJZT|1WyNlNY{U;NKvbJKT1N1mF+{;LpH>3{I5R} zAi9;i=qyFrggF~%1$naT_UvbE(fz*R`@oq|0)2^kOi&sa zm>b;&f5Fk5K|FRBU%wiu`cg&Rn4;ET6M;)-t05x+dh(~`Vv;3!e+si*;W-Sj{F7(Q z(K%t2$36&22FgdFDEQ~>#GlwVJs~Z%QzAoTlLRk>kJKNBy6%{epF*||&)hqG4<9f8 zCq%V6^-f%J+AzyGxUMg#NepV8%xK?Qzw$##eH0#C0z|gDBpkOydty~p$oLPG3Kck2 zz7jROJ!2zMH>US5M#0t&H0(pY+VWs?cjrS(&7PCw>Zl9rqcH5~8&B!c&hR`4blq zlH=pK=6&T_Et5x!DEO*yDVE;K(IJ43uVC(+O(cLPs*-usXo#$WOM56LmheHYl8DHZ zgyUQn_1EL0X{&R!v4@A{u{oGuCk>)uLoD3vu+Uww{fNKFp}R`Z%&#%5UcM+O%i-=FM+< zh+q8;t3t;8sfT*`nz<)X+Gb8Ttd!`#D2q8ir;Mduewb~{erGkov6B)|I{0?yWd+EB zX1*DIrH0dcDLxN3n!KvR(Q0e@QtdsKmE~t;pKr*ht5m8>vyB&rJ}HL3hQFB^xwF5b zDmaQHeLD8$GE*y`5Au=h7!AFqy!c_m9>^w?ukEFi9!H!i7B$jeuuY1d4T~deOq*u7YB=t%sh7Ue1bG9@ zA{rSH=K$Mm2Cc`Pjcg0o085an$Ic9Ck{m`NI$tk)jLKi?S{<7;;$agCC5}-aa!Nr4 zOsSy-C0wVWxXpsK`#1-gDgb^uU7ZSjJ^~@x)i4f$5WR*DH9J84!7KTcD7g-5hA-xw zPngQL)?SC~0f9HTa5@bwH+-Z|+SmMkxVqS^CUhd_?eX&VMHapLk1r*RfWKAwoLvIN zSHtmyl#(rvKskooEZ;IL!5^;JIF<%n(n|Y&!We7*y2|M+MR~Gw<|q>tLAaBPSzvMJ z_hy2{_rMLF){6tZclv(SMY%gOh|Q0>*!!~inh|)7p=eYM7Zr$R?Ugq#!@oc5_z@HN zd-UVx@H<^)ZqU7wM_iwM+SB50-5Yx;Qu@xpX0-8~(RA|o#7wi#sO|9w-wbr@L^Dc}#x``44w7)N7uk2a8H0(_PFGtrO z4)ZbS9tJ(1aQDlGYRDI@jQcs!zJ_VSycEj6puoIQ8>z1Qd5$Oi$v)^mt&a>h<}&a4 zufzt`sb5>TlS$4xYHZwKSUH6H^6e8y*9cp@z-E2q_sl}s)|)+g#hVL{9;i;OsWs$t zDRhYF@syz=QfN-}HC(#76bXh!Oknu<3*!cVVi!-Qwn*mJT+7{mv+5I*K{7EQGlkKpe-B-~Fo9&6ZC<~|&Z@6~G*1=FWkeUjBhC1^x$5q2EqNk?M`J`%^qC;h zIVElNwUyLjh-x%A%YE1Lkda^ERBf1g(^M?*|w+j*^V7b z@w<{@nF$9zq!hmjP4-FVmEdBe*binS2ftm8GoOcFicOo^3AVhmIJUqnXds}3I0SiY z{Jn^FOc2QWSVXCjQD5c%7rL$wC}=KI%}SJ0E15{%N=#YlaZr#6KBjrJ9z^z1-qBx& z-iGu^g<}RtSjB{?myI{gV z@gU3z4%OR2n5MGUTz0dYEt+OIm%=w*{x%p3`%`hH^O&}?XM9EuDFShQA{AAiXWijqey}1`Sc)R* z%e6UyLFnxBuA4U{nzEML2<7V1Nd17(f5N@;RC%liIf&=-IAaB4F}1+8^V<&OYxwtA zxb(+Qg{h$e6Gc5OE-A{=l~U%y%OBEF6wctS_Ig;Bb+xMC&>Z^2k>%}VQGjY(tcL(wXXe|H6i z_>$Xvcw=&0Tr93k00J~!g#W9@^U%5RKnpAI_BXrv0}2*!lCAJW_4Y*L-A36F*m(u) zz1yLIK!f6?vxvJHdv~+X5FMC}O%|cBqKxMX7WE8~%Kn1obvc5d5$h@`g7gIDXGO7B zAbQJsbt|VTIrIml7!|kQWZ^cOkO>lpM%wEJQLRdqntj|5xOq_Ci>i^QaHEM4%0px2 zQ0y9JDq*6(Dl|0-sM#qzdl^cD6UR753i7xbP;V#kf-a8HHmR2D@O%%&c$|yoD&JHL z78W)sAt54XB3M2k7{*Cdi6^Q>qXB0vS*{ECh~>_cgG`v&XF z7Vg>~mlsI!cXoPRMJTBB0?*)GS0?UVAfL&8ihv5S3r(|A25nP}+~aRyma=9ix>s~p z&dUVr|Cj~yW}V^35+e=Yo+OhJ2#CJok<_z_Y0C@%eLYufpV@i_eWJ@=6?d=4?Q2lB)?wi=;@h#=1vMXwszPdnH`2cb(kh z(ub-4K4pFW$GUN>Y&74DKLyc8-Mnahd)QPg#NH^{aJxnLoi)c=J4#}T{U2}IG7jVj zZ<2b^sff2kkxH9U35F}7k6Idfc%t&}FI5_DhPRt7`-mvCS*cW@oE{_kCU#Xk4-JDPOmU=D7E$vug^ODiM{R4W}+OYTg zV;=56;lKZ!;@J^h0@b_7C=0KYv1Z#qw%Iom^Im#ua2}Y>1Ddtlw{7k3bH{Y)2Z}J! zq*mc9#>Wnsdt!J}levXP``-G=NH@GNOZ`PtNW>O-b>_P<-hP2)_2#x@g$-FNywU1- zT|!$jHZ_sk8MV^-4zmSK$u}o}&g*B%DiW7!?1YMjALSOR%jv?< z+2Zi2;n*C6$yEyK0{MYJB?$^0{>|{V=$am0jw>AN`vQGLmD*o;U}PokMczKL%bq!=1=%LGaBnHZ?PDV=U_#So&>9dm#1H`pxG z5o7?@mng~(4F7O6JFFRX6I{|FC8~ILPOl`R(3Ms09&jEE+AEOqEm!t+KK<n1eQreAr-v_A>F|)^8LWUV@8tct-X*hJ=53fiG z-<7r#>Nzzw+c8w<+LZA}M1QTTx7!qs@seqOW_;02S4}hbNST{{J6o}g*eGB=kFKDc zQ7#%gdWckWc6-jgL|CZoi2iFv!*^LiokT)SSD97%-GC_YVI9O4Vi)dUE5@2C^d2ziw>Lj_57GSa*bZ92YTQuX8p%IRl zI8=A|OuCw<{3A0r42wXSN*}cSJ(z!7p%m6q=B%NBb0BV4r>9+<4{I2R3;pbTn}rir zdq712ad>N;?sL4lMCXcmEQ`4pdKQ8klv>PhkYVuCX2rd^kw>*xlzy)pAPb zpoj=CSfO4>V@&|G-8wg&e^lQWDbAKpvoNM*lZmBfJfmeX@AeVLV)UTVrGyK2ezg$l%M9nR>TG?U?EKiC&TRc4(N7tK;{|P96>&PZn9KHh+M~=_6b{2gbtIEErm%+5vqF7;kc@sC;v>I%Iyg4KpRS!X0Xs@vBOiN zhvR{t?d`~kNiE$NC#Z(Cg@ZSWfei9bt%VZFNF&bu!bA zS9*Qfl09%s;paS<;d3_d(waLyw#{t4Q|)3v)2LiOC1>(@8Q5%@YrE?(+q*Y7dQ;yp zOH&_zbpDoa2PdGt(_^3P+7Ef#OG?MYH%jiqPsu44v3Ord$VoKYVa2)B9S2*Xc$OHN zJS5cb&Zl)V(!LVJ$;tWh-UKmXHs2BWCJJAPtzNQrSw_4CeO^g3Fl$M?s!&+K8;d$^=N**7gFj*VSNS-KoP;iUkn?kk3M2}bd-}Mz#HpgN zHe;eO0On+a4H`nj3zD{fF_53QE~qzdK|(b8ZRzxqK0tZ}dsIA+UI`Z~YouSk88n+d z#=f)v!f#;IBfcgz>%H|l9g&_GG(=qFvYeH5&I}4$pF37AI5{`FsgH&e2vq-MZfssA zEZgn!=IR;JOoYyy;Ey{lvhEKTA&m2kCg~S2g!bH;1*P!_T)D7*Z8dHg+Ysseq#8Hm z=-hdDt&=-(ysmx@s72(rL}F30_RMI6Y!V5^g1Z!W%KbH-FO$)1?f;%dBrKc#c4rFl z&Dx%&w90H4#dVTR(!NNx8mam6F&U*y|h5DV-q}VTt z1#VgW1``rxmmTN6Tavkpj{P5j)=sD^M9*V>r%IkxYRkxTxz zd~x`zxMK?Uy&C~{%=ly$Z4(v>!3o3fA39O)l2l1Un%Z)ewcfym`hKiy6gXuBtYq{L z)+e7J7m|OzStDNCqjA!6zR!S_>eeDj=gy~fyBARACQi&+@MjhyGvw330row15%}_Mm${8Oy z*`k|MqpW9jV|k)ZD5J|)oahPxHK$(rS=g>%^s#du_lfJ8oz_m44>boVbkejw)Xi2r z^?d~$f(f8NjNxw62m9=QoAYBm(9zz%H{G5o{62ehL1eJIz>gtE+^7+cUC^!AC_;$I zJqv;k4~S}(unr0|7xQq{w+5H0V^Ti0RwDjuG`J}xs}HwyR1K}zj~lkLwnTW6LCz>FV}a%QVl_=y@M z6wMn}62B|tA|p11oopJf0ePuAf&!WJEB`;Bq}G%<4#_H${(Qz|Bn^4yGcJLdGh5;1 z7(Y*ws9(I(vZ;QHfDHD2?NvkT)H#|IOVILhe7{*d@+JvOO;oQ=ZU4GSVX~l ztnMF%>N3h@M&rc}$qmG%3@wni7UrZ-+5sLOpDofmFh*pjeJ0_H2jIT)h$m=6|L!P6 z=R6BOvnTF)V~2bpG)qA&nwUhjjS5jHjgv1Vv}qG@EPiQAWj?mtXT5de__#4Jt1Rkk zX*L~9pz)5YNG2OtyAf`MOK-9>sVi9DYQ662zREY5=GGCS_D6Gzxo6!iac&T)$Z#t) zGKSYIz3M!0$Nr3Wtw4_&I{T*Cp2gp@BC8X0$*Jo9z$Cj#65_<9kj7z~E)NKXSEI3E zS11Zug=Vi;+D~+Z?8oF#B*(q7ZZu;a3_I6J_-K`#zn2gLz-g6(^9BU+HxcH$67bcX zTF2~t$Vh)>`9Nm1J(sYWJOVUf98Q1Nkr$g$pg+rw=vA22+GUb!YKae#Ey3Uei_rf zL3pc>?z>wPb*q3FaY3u`HeV~e8q%S`HO`auBEK!>k^=puU!8X-a|M&LnT9Lm7#;Y3 zKzVE-wAa)=QCpOLm8h>)nUjd6xeUmhF%#o@KYu}5JzQw#-|!4oJnH`R z8MZ}o?FTsPYvtk75q5Z|vac`x(F-j_ zKvM1T-9%`wi08@W;j`+MH_U~Gj}zBlatnceb~6=d%&=F|Exc@0CQLsPeuUVU&~lr4 zPj^v%0Or?XVQ|X2`gL~3-rcZzrT0*O&bi;v_9OBnwmL-2~y=g(@lfnHUO0%r*0Q5O+pG9&Y0oU1&Vwcf|@ zZH0>=K-TpajQ@=gN*bAdP6<)+F<{VD4TwssYuSOBM`8BLd3=e!Up8+t5dSHZ&q1D0 ztIT_peV%=aHB8h+ADVjQx%I^M=hRn2Pp~(J zJT^UI%t#hEvUCfTMg_&o_2IE43}Y_jE30x=Yv0?Z3r0mwC5*ZDvfCZfzSjFB&cRN8 z-$l(+O&~Ata6?QaF2u;4Pi$QAOchxe89^^qo&e#2?V;=Pt)<<8S;?m8(JO%(l zfY7P0-WeaDwRMZWVkGUHN--CU9$wqPf4}nZ*GtiKH zy0*Fuz;=j#=KFfXDxo`nU6C}7!kBr8^*b3bSR`1&vUyP4KRvwJdZxa^Rz(}~Kdb+Y zT1xt5E7m_=>{^%bGtmRmbH|^l5gu7exbvh69q-UYa43>5C&?w7aZa4QsDP_cF4l?Zt zU3aRvi|G6qV65w$hg;USn8-0|y~O7ogc&D+te>T1dLJ4`6BW&S?l!up;#2ESFPt2f z%-9PcE%FW&q2vQsf|{vUO)h*T?h|d#Qm}>hDvi3DYMbg5Uie%--69w~M{QQ56Z81t zH%r9dKf9n7&3nT9`Nb&)ksN3XQCp(LyWg-LF#3T3w4R6EFdVy2=Bb3KF3UKMgVePkFTG977aCD=#l(o6ZhJT?gT&6s#40t`kzZf zpu{fF)m{qftvq~qQmO?#1jx-3ol2jPct1$+=}3=OuBU-hiqCOo789m0NcVGJm(O1` zqi=z!zBXIIrokgB|8>ZkC1oCJg>XOAL-*do&a?3vQZ3PaXxn+c-n?iR$2awZm)@me zM4HL9TW{r)a zC%3Q=bl%+jHA@xwfw)0q)hMl3fj-O_HCUMGILdpgli&RbyN!u^PdC+fi5c>KLiO`u zg4)o!jXm@Svw7ltH}H=MZq_Rq@dfzJx2`_UPj$m68Kn2lW$Eb%rd zDB_g%LT3Y;(#VBN#`@i*oA9`Ug8V;Oi3$>5*l|cZcV>1XE zl3RXgDLN-AWA9z|Sp(Q{p1&eS{CH~Px^D3l%2~levpaew$9AmmCQj;OD&|f8fbjHq zxQW_oq+W2MXreNso>FHC_TEJC*tZ0PW#tWmvUV-#JFG+<>58!i#L?Yn^{V^oW|ZN7 zKYB8|YXeo*7Y;ICqjoNMgGKcI!apc}kWPlh(6 z6O`}=ich9U_2&CF~*`~Pl z#45=swh;0BV21ZPE8jzc6fueau;Y6TEG3Db_@UhA5oB2P0To(isSZ*QTcdN3~4fjznc#D&B2~>XG6`oGv~|X zwIvJIgwG}_y9kGBk+;cC^aAL60C#x-iMbKWMiACRG~kEZeBh^p zzwh<)$K}MiJZ<>eg^h1&WCFEX3J(-;i_4cjwJ@kF2~mGwZdmnnrF- zAx{b;&ulWh_St{dU{hGs;Htl~@u96Qb5NRvvvI)A$J--y6a1w>RK}sg2sJqjp&t%Z z^3T9c8o8fD<)x4YIy*aRjI-Cx>2I>Kl3@EG4|fw*zIPuC3?6Zzyb*pZG_=(T*O@KP zP@6q=TnbIKW@!q-JF>sbDSuF19BjcoSw8Scg5-8Nlqux1!Gh&f3+fyhI@CbTZ#OQHj3eFG;=hGsj>(WTaB8ooy+TB!h}>>UB9KekZ32mMqrB>33MRzuOtO=-8A1Y5 z3wP8918$d@Bey}le?VOi6*ijso}}#T4ZNG&@E1Nh!xl9 zG@JUa=y*{_TPj|vS9kCDuG^3LE?3u5I4!R)2*VGH%~l@jXHL1l?zsfrd|Ol{o@&eB z0UC2}RqZa5%;l4Dd%iyz@YP%pS66y2Tj#V1U09TGb@Yovq_JsXd)T z)%mEGaC_yx0_;NbntO-%i50=~%x#wa*nxZU4>EmwF-eYQ6MzX;phB7=PaE!iT5 z*@RCQ#Ng+0uM7r|!BuqZ$&UeQMoA?kaC2AN-T6zcKnULB#9liM#R<1i827Aa;r`7| z9q~Nv7E)T7k-_RSIV1U1aiAR6+5k+)x2^Mgr}Fg!s&gf0&Yk4lvx8lw{VP?OT&?l1)K-VSa!uWB0)}1?puE|wLVL)oF zoP~&j8D`M$uQLbEub)&^p_xA#bH{ay9}F_esxx3KoWnUErWfF0dnGMh7uAQ{4t*c2 zE~DsByx4DjNign5V;B`biiz&6r%@gy==ub;`R0Y6!@l@h{uPD~@tJO#b>q&a4U@Al z+4qP8utBMw{`v#z`ks}*fywgCTwn_C1%$Aw?dkK{UV247mENrKFHyHqTc@S`b+$Eg z7mKo^?HxH3(qhRdJ#v}uJ}YiBvzyg1JZ>`$4w%*Y&Y~t6+Rnqu{v>r}%$4*_{^4%u zb?kf@+|9u>Al@1J7&}i;u|^8a%@%miYvrNxF*1Mtm8+kKSae(4RTK znyepU4yUYfT zjcC%ZGW_BLO^9fsG+9>gFlMR2);efD@dbNf?xir2$_Jhgd!4EzQ{!l|9Rhj`M$Q*6 znL+ju>j-m2({H@R`ZU7P?@iqXT!TcWR0FXL+37y4tn`u(os0c`#`p_=!`&^60(z}G zt&%wZb*3{nO)Zdq6v2Um4#?!xCdIH+U0}10Gr{SZy z^bPYa*!p_4#w+yrgC0^m;nV@Hk5OYy^U^B=N+7CEPPXK$s+dYP$%a+*?$Q;HnMid( zP_5oF#C}7ytfe!PO-sxkZ}F=z-kxA} z!B5}_D4p83&Qv*EA_xs`j{oehGQWX%7aP=ec-t8*A&%Q+)3%1f1HJCZdHirOeanpc z$GmFAim`oO_3@T4h9tR_lL?HqraKmNWLQDiwqB5(FUL2z*CV-B8r`upS%dE<(BEG3 zFS~H8?@I5@1OPnaGq%FdZ`V}QeE)#z80&78s^~@^TeyC(5-UE;E-EnBm;L9^Q`7cY z>g#=Op`@eTC7V?EBlKZQkqeq<1BK=0)7uZp$=5L%>4AShKn5BrfHa7xCdS(hd(v+P z$VT=}#SwG2nzKC_wR!(To+!)&Bc}o)54KZhu4Ik^MIY-@l5NtES5!O8kf!+HriGATT*RNcw#GA&7(&|pb3 zd`6$p)qVNe_@0Zm zRO9;9vLwJn-F>%jbh+lAm40l_KJ%AznpVKq)0;HK!q2>&Rg{7!S9T0FHLp*3ttKHm z#%dD0YU<1b79-GdR5G{D_-j0rrG!$4MGyfWk(Fe0W13mH&?tAe2@$HKtOCWN-goq~ z#QI@6Njk5VoR{Cz(JiF6rPsF^C5=r&z1=8R7=`oSCJV~MNokPAU{<>A_Y)=x2OOfy zOSpJ#7JhPp1{7Trj3j%ziS>1mZ9Q%E*#h0qgbr%za+V{5YQM~~we5uM_?QZ(@`9Nk z3xllj*0M^!FMN&FtoE6=gTwQDRz_aI%y_*n#WJ6_Z6!>X*&9XiE=k$AF!UAI@Ky3p zpz`9CV(_?vG(;YBwJ(ihmH}bdpzeoqm4Hf~j`dSOTS~GlO;4Vkc*Qnr;qWt%30mq$a zKi5?8n{QP&9pA1~85^=1SBf38ias0oyc+m)vprd|?!NF$JequKYH3lhum@H~pWVX@T0Gb~_+#L4XeGJdUZ+x{M7(pl z3bflr?2O!kFDAw9;V8%8^0;d&^QxGgqi*pRxJ=l#_4$gJvlpa9m!%a|v|D&}fx>^< zU~SRv$9ex{N{bH_C;OcAqtUvorD2Lp>_GlZU$#o8w${$+f!OThh4sHe42kGj-Bk|X zsc(3OXgTArA||*OzLedFCxz#^;UwJW8>=Xs>n73%_=2P2-^1KlgKwD@$tAp(#kym% z%~E0lu576m;b3q(4-P}_`SC_;23V|mxjap6B)?^Y>JB`*JG?! zzIm_BpS}x@C^@Pr`BsPj*+vsL>TnchC!oISBP#*CbPSPxdIdb0zU7(3;I$MUD;jPY0r zO&qypuiBURbC~(x1npSb`k zu_=ZW3sT#_)`TM%l%t2p$+{@jcw;9Lv^qm>loe!F0@Bf0r-yR$-Ny_wqqc;_d6(ga zZLL!k7g%KUuxsRIxR8z6OWlaqsC0Yc3U}hFj9*Uv+Tn(tH8Jr!tXJMWOVie@X^8BZ zxLlZc-OM3YlFEydj~xOU68?2$UpKFXAh+@e7uu6zB?1KA6o$wy#VB;MEDzSsJkzm0 z<#!?I{5?NeN=@lJc9xtJEb<@s#dMQNOOXd$<;-= zqfT)_F&lR<-{MrRX^`=0$vLliRpi4HZ82uFi%F(MH^pN6`Duemmp2Qlm;W8ADmIIo znCRHld~Wn6m)tvmV;X*^qF=vz_E7no!1Qf{TR_J=8IxcG{wIbvbk?afT&QHE><7@8 zx%VbSe`Am7C^aH*#+Pa!`sa=;tYGAPVl%Jm&Vh9oOQCL=g)X&ywiRKGjrrv<)-NWs zbEM&X6nUF~*%W(6pvEJIN2&)k`ya9S9;UVoA z>S$Jqly|^P^6;FsQ9Om|VsX#GYf!NU#xBf}pQ&D4ZII6MXh6^r{XLmumH3m*8u=xO zuBG#irCn@~v%5CvNvqIhzvDj^JCT@}rhhbDryhJ+%cRWoHqzQsuD(ltZMhC07v;Biz&3;pK?at36TfWeVZEfQ+1HowAkT3u$mERj`p<`Q z+uJomvzxW`q6@bMFFoZ#tlM+p=)E(13-c#k=&9QjTXZoG^%MyHk;7>_;tf@i5i1qE z)}QMM@B5AFXB{nT{GYyQ$735%*a>^oTE?s=N8W^nvT~23n|`^hxscyBOKjbku60~x z^`1Nx^g z=)RWKqHE+g(Yw3iLa(P(yXAE%|0^oG7U%Eec>#y;q3#J^)3Ro}a%u(pm)cJSFxu|? zt}d)rkh=jiCJCd+2B*y{MW9f)D zan`yTt&l4AM2y^))=-`H86;W_d!4o1%nFyD<%HpCi~>dVv7a`qaC6ohxbD{mnx2FS zDHlb1P^yZ3JvzWv9P_I#j1WDqM%>qcd8$yOe#x9`QV4fy_mek7D@J&h3UwZ#Tr z)E*R<=eGwcJ4gQa&GFG=(9JE7yzHYe5ec>==aY6OXV)FEvJpeib`)vbGeo-fjn*( z5BzjT|3h2m3+zx;f+}X1sa5dlzltEXkvwPbJyaLtKqC7qvk;$3n^>fzU0bY`+;2d# zPHV?^&rNeNkk2S73t4lQbLjHhyj{7>%=@}>dY1+u58=E6$U|}fdFV{yC)t3=FQNjQ zyk3qZZzz=hGtY9`Mzq^VxbDhYU$(@@pX1clx2U!gx3;O=GoxoeCp(U|mWklDn}%EA z`y6^?Scq$UuKI{LDPw0*cR7*{e?6Uc7*G(o999>ozg=iuVe`mfp`C#pDE8faCi;{| z!)E36zk>wJd<*-RTWpd_k(G6YVX~;`YKw+PT~Q4NR3F@wiw={&K@2{})<0zf%y!ru zQ(e|_uSt9TUwCGBJ{q)Rm})+UQ#2`5*97H^Y25t`XR3zh9eK2OmYH2Vl-qDR!7J}g zfdB!`feA$FM?ai#YhMr|Itd`ghGwg)DzZa1XPO4@j{1`6J-a|at%QBml-T?5EVGDs7xkCSOAqG5xUw(51J z>zUy+Ee&bMw2F};;}}>22Wn5q{`P2CuP*Nh6y2T*3S5rGFXZ2rvLw_9SBb+(1Q zPUN`Aaa#3K6y4kM$yyg4Xo4H2ut%hIbGD#48=pCjp6^D_tc%*DYm6NgtT-rk1t*WT z@2+1yY)b#Jyq?DvJW%@6Ivm|~P>A)JJwcIoePz+sZ%3Tjnzg?$a1hF?T?5FkDraaj zEggU5D0_(>7tSh0gMB8l;aOZT!})SnuSY?l#i=O@FYpx2UFe6bdYL``+I>2+3Y@5g zh(Psf`;Fz;U_w;FfuFX-5@q;T+i4@&*f&#`iSo|+*iX7iw;zZS=OkR%1@2U7_eS@C zD86%?V2hTn5aP?AT>gogj*Nhi!DoMvtc0^p=waE##ny#2e?dapn12?UN8l>48C}%z zw3zcE5fE%%_O;Yt@AX~N!5_?QmSoW!d|b$#?dmu4eGcw1>a#g>cWq!I?>;H=p_xhL?9l;VEuf{U@+8-2(pSa%f6EA=!9+KK25T(kq)BYYu{UZe$`| z{! z>I4V!r5(ofBiDl_amCxgnF6Dki_y32<+6i_56LP@gTw+Vf+rexQ5NmdQibaV{ls4u zYK=ct(!Py|L^p4?aa!V#Y?0&sJy)Q3hFA{F*}Hd?@#Js6x(^zH{Rf;>`*P;Ef+?Fc zZ|#(Bm}UioDDdZQ{gG#@vXA43fkV&F2`}V>6DsZx01&fsRUTp8knFqNabEM|C|gZ( zo+=HHL#g!pRO$uL{74Ri4*I2L+x`;$BZ;DGI z^n$SF@SEeGOa@MdR%d|YvKJEwCe)>!&5HHBh-0D6zrZ74F-#|%DvjPr+;?x^2;ZTE zeI97n`g^vgs?|W;e+tn@x%2ko&+5u7)%~R)1oU%wtaieKMyvKcAj)R-CMxH{HWaRH zN*}D4B&cW*YMIKol3m2QbPrZD5mZglZ<$6WAAlne3g3Ng^$qE@gSqgm zgy<@@z{CjI@B=afg5rZgN>?1Crj8ghJmtXLK6Q^bpx6xb^XqxnL>a?{Kj7Mco z)M`mu>-yo;#ENA^DZ_T#i6D$qa-oxj__eem2dzOk#PmRrMDQuGyWwaR8vel6$st5e zM_aL?Gd$;1rQk(_lSEET=joFR<(F^cbB@}jhpNR^J7fYRWFP9~)-alzBhhHYD)5y( zhJ|(uTVnc&0*9ecusbVtF}%GDPX>OGc>tWt_|;MX#nZyWxz_vG4U>;ZaN`m7F|Lu3MRrT}q?eFr#nw zwQZadNcU_p?n?+1=9lTQuLBf#gf-0}UB<*MSvF9f_f;H6%-zB}Ek9=pT$nZWAKE1z z3c0iNT@Du>P;~h+8k>C##o9x(tX-uajtCZo_6jBOwZ^}yqiH|q!{K{E<=|Y?!#LdTR;#r?SYNofBBYxdwfnZN>hIu!JvNeU;oetiN~CzAVnVeO zCzL#hW}ERt>aKA&1L{kG(2Xt)e})oQO&8h}!hNlsV$iJfgtoeiba#LtNIb2))6-w{ zsNqgk(%+#{eDpG1w(aIM36_ia_*jUvRphbINSK%fX0r3WI2fbeBcokXy{WMysGffe zr|orVE9Lv4>)JRGYx8*s_Zv1h7_^@?vx2(;=%n=)jpd(IB?5zT`~N?KazahWi<28T z-9tA}U*wAGSot(ArhpYWcEyR7ULWy`iqlj7PEjnv@aYWu^r1QEsu7yqrc24O@9gNr zcc^?>-MTU~G_@<5{N~yl|2M}I+QyrfcA##+h41ZJAy+G1emlKui*b(J_qgtBNJf~n zpBtE#)wz%}S~Xd&IMYdthCJD99+ZoblP9&I$3F(M%Xvv!h3uj-w8De zBz*SWZuRu;9z~aB%|z{{KlKqmh>b9hT<#M*?aH+>%)k`kZ2YdK(`+#wxE_(GpZ>1l zAwEsk`A7LTyBA5byr2EUe5{_Ir_OyQkOIZSN`=by#gZR*rt>2rwp)m!CFW4smX!l| zXSe1n_?|~WfIfJJSuRicY`U_`?`IdnBH$p!YknNl?+S)rLgYUU-A1?TyIz43j6R)9 zQGK1xTgMU5BO#UKe(p%%&YP8g9`#d=G|&ckmtIGfg&nWPJK+IMh~L$TlgDTYJ;91H z)+YwC``sln-I!Nm?`O~ZW$XfM3J<@n8L^K-WJA!xUVlJ#Z@UUlh?fbfvKY4W-Ki4E zZF$r$obnV`bWF+KUuG27_pkO)*P%yVn(>v#4>p-^SQF?s0=~1h=Mz4T{py~$cA8E$QiaV;;jFOnkBIidhRSfAYxf}$L_}F zm-i|*Vml;Y1LfS3i7vb8vOHHk-Jbo}LHMkHm_14aoLiL*p~ht&2ZEa~$EwMxd$*=i z5$IG=jOv+RyO?6ps!zBwi`KltvDM$_Hd1Z5h+ zHZwd3pA{H8%W!KBT=J+ zvzTjDfKRci#KD=Z|_QrB+acT+9kgSgEE=?}J9~hRe+25r4(K-4gYs zipS}1D6@{Pu%I3(>MtgwL>KG@aK9&nC~SNGDw~HB!)+{Ujg@`!G~YA%Cn2W5)=s8s zIvZD%j|tgC+;`M(ZUI|9wf4L*AZk)X6V2H3D*NXhsC)B_d^3^XK9x^sYI-~Hs;ejT z{UFhM=%s2^K+44GPORwo;LTVja`1GE(zm!oJ;C@T1}w2@sLzT0Lj|!)Rrf;#@Pj5Hm73pW+pcCqw6^M4@ zzDMJs?f2S4;^V0!cv+;2q9~Xt{k*OUPO@n*&!4N#X?hGu_l6<2;>!1B9s zEV19yiZ>`03)2NtgHDwNDTQ`R<<^$~ZdxC)PozNS>zA*-D@PUoqHKZ}gztE{z&p;F zH-(d?_k)^tepDo=BpmIRukcMnXj_U97Gz1J)ilgQ8^O?_{ogtwUG)-likz==tdg0x zIbC9TWSO~EPDw8$W9M_f)e-&$e6pnr8Glzj#=5`4_fLEpOIv*1+?a+kB(5YrHqN)m zHbpAmmRP0Hx7E(LF1)h!Xzj9n+(8sEY09gV#lY{s$g1n=RXwC>@_{);BstnsSn-$& z;cZJN0hQl%w2Dv2$}1l3e{%p6U;hZ~8abnn_pA)#ZNMa7lvp51z<)qS zL22BTzRb(O&R*0D=CT$sZes^MyfKtW<%qfNV=R!vlfkrn7p9R67EKd@Jif*jiTo=l z8ytN$P#w)z^mBNWH8wW05QUrZ(BZg=(z|HGV_D(zA`e1++v10_0Qc@48C$2PT+%4_ z-TMD0kiDJl@U0&uNqR9c|HwQT^%fTOUSSK>l__^mZ2qhVaRW>M9#0PSTe>(&0>94| zGknzHlg(*N-t!KtNdJIH5Xg3Ha_dC<$AaAMz`=Nh4NSdOfv(Q_5fzDOZB84A>C3if z`If9=LBPTtE~0ZH3*UeXr!MflU2MJ%x&=AVwSIv;y(~2T+3a@ytk1jns31e_^fY_^ zyLpqtpd!U1M!0-`FFjBz zKAMVYulq+d8zVK2UKmxE{mPACnwg5u{&I~#DMTa zy}G}!_SJPKL4UDHJ)LFQy`E^nsLrT9DRSJ6eKT4PE$dj{;Wa$I-d9*Vbj5>0=f#I< zGrJd`SI27VNHnj-@VAdSUU0_={VTfF_U;4IiOSBqv7`XUztOP&KWEnR!+&K~kJ4LN ze;^Lo{!;=aEb&(Z5MKz9{h5c*2y;cJl6MH@qbJs~k;q8|Elp0{8?7*PQXvhIUr5;( zrc-~%S|6(pW-sk89~y-*!L_x2K(7Oc=jU~ZuXwrAX`kM{;spei%)h@nydcW>ex1E; zl08q-heO#Vgu45PX;9p4t?s5hQ``Rm_)uO+7f;4yV8ArASNtFG7>*u}#BzVi|KjXD zqnhlxe&3)VC`A!LdJRRI(mRMqm);4zLrCZ#B2_`DQiF7nUP4boFG>qldI?RsRHaJ2 z_vQ1vXTSTL^W68?2v*$19QO=Sr zdvw6_ZA*loCEGJP@&v!&)YVDlHo8v0j+pBk?mCydcwH5&r|~LwQVb?;w>b{H%IYw_ zHYuh3`y48vy%r7IY8(0z3wH)1fMyu4`%(Wni}sOkB!2KR=|}LJ$CUB}=qK!5%0Yd+ z-1*^D>nd+A*T!r_1)p-_C;XoD{Xk+wJMmTsWRtio;vNvzPFtc^H?Fs^7%5QlQbGjP zr*Gs)c&TABrjx>T?Zq(kJcesYMs>M3BbpR`caRK_u$v&&U{C%;$oJ z=W$#5F>92)db{aS4YcTYx_)>5QIO>=Q?sIfkzPLGGM;q!5*NJ-u;mN-$)G2fFa9rd zKN9+3PToJ5qy*~ED{8+E`oP4CTQ<=!q3l!%p?>5 z@l>`&(|P&%FM=-Ac&b?8oQr@WU(5KlO~~p&Gl@G~Xr>xu9ticZh_n3rKap%W`5eegE2s4cFq0yWH^_ z|ED)pxU(nwrK-9+2o!tVj%Et}?UnQWcwbLaxcoj_R(jFLGu^w!VX}^V-4H6|jzq{6Jc!;wp5xqpvuoz(@vx6>JXZ9X z)O~+xZ(sDRi*JYK`?Ht*Al%$a13c&>Ln(~=S^~wuf7|C~@XI8CU*wF3eSXl3YiPF} zmYpbf$Nm_cTujYLORgq`_5)W~IjIRYm>-H`@Mc4gRV6C3=tN~FZz+%@CTyph((j^bKQ4xAHXUR`t6ZR8OXLEvk3 zI95cT?nW$LxMs&5`NmmkXWa?;nb-A*hc04lrM@9+jbya<`%_(kFI5}q3BovzP-C2Z zRG8MuMAZhKC%xz15ZLkCr zKZv?x>t%(Z%IqTx(ThH{oZJZw+@r%3rf&mr-U7H8zo z79A2;wfLlQDw(C{_Q~1nwOfPp$q1;cogM2kx!^8mI5;lwcWHFGMpqI$)o23u_QP$* z6CJrdH1+lJ9?`3c9e5AgLlsuGFwZFmz39)JZ2V3Tf)3mVZAGLk7ig(3Ged! zu4#z}J{lv48wh8QjFQamba!rZ`kam4WZ%I-D|I327a0$IL)#B;O&LDj`YN$ze9!-+ z#AagOW}Nm?CDyx>Nl+!BmyMduotZo|#=FqO`M{!l)W2GRgqemtIle3@L>xacFx>cq zLVcjI^PotxXSH_R{z2;w44}yjDZ6+WxHh=0K9V%@!=w?O6il~X*ho7|;8W16lmg`X zPgWbP%ECoPtzu<<8_V`uyw(r6%xvLvFx+m8uIZ04a|=~?EbWOYa3?rKDiLAMEXOwtiH1zxc>y z@Fn~X;ZxAkU2EO`QVWgZz(!S!*%JRjbl8pEZh^Q=Z{TV|)#}%~m#cC5_mz3=Qhcy9 zG@xUAtGIClm9ERf5!24i4=nADLxeONpzH~`=JmDh^AB@tZO>Fipg$bLY-M}id~8M$ zl?=T!0Nw3N^Dj1AOul#?_1x;MzM`Vpf%^lzL6t`9^bH$-N!V}9znvi~5v}&{v2xNA zptZi9>5;2rcG0J@R7r+GRCA4Rm2iA%^EbBpzit7B@eJMWnnHsP2E((Q&Wk|XOW1Rn z45LUNpMbTR3+9|tDUx6hKLSp6KU?2L*X8hueMJ9GSn%AAz*X1WgUpoqSX^LjRGPOG z0(C#q>V6%E4~F-3cT6yqz`u9PvrRuf7xw$@>`pJX;l^jN)YrVW40z&09kUqfOfSBmP;++iOQGEPkFo+sb3FH1p34>dJ?m;@U~ zfl_(;tFvH>JkO#BliBv-Zv1?^6@1G{u10vz%R&GbR@uyReKc*>WctoYA-gX%?@zY) zC-R^wAd=Jjl-k{MS0XB#^-bf*-%HTIcP$;DQes9=@VbL!LQhKGWF+dmI^uS@!-sVq zHx|j*b_Tz+itoT#efR7kwXV!lO3Ky(Kd5l6GQWlES*y*vyF)=%?Qe#q$I+(x zsqr)eKOtYh?$Oen;{*0a zwQYIV%t?^0fl6hY3N=tUw|r-44+8$T~C9s!ds zjMMqm)rf1~IML@s5z2`Q;ff5Z1+7(y9V=wNu=K^?IAbjLcA}sl-WE{@LuslU`{b9` znUevrVpGc6(7!+u;bSWHf{zJ3B!($@8(WU1?rA#C{-p0(`}|2EGx0`<#QwJS%&dB# zA44681}sh^eser&lTgGRSU4i3kbZ(bvs$ocXAj(H|7QJ-ClWtKGXu+vV*dgyB|QeF zy594PsQ0H?C#pVm(zGT2^U75MkfX4f3noFL)Uyykfq zK6M8?$=>f(Q`jmOwB@)9bi|}koWD~Dh&dlv2HO1EA&3sl*;)As2Py6TVf0s4l(KJqlIbiWFWsgsH4~F-}ic8-nN=1xDUIbDlak z9>aiBPbwvM2LvL;NMeq;9_AjG1x*g^Uada1_p$#?Vs3Hf+S4vcYy;*!FjIj5q!Y(Ca%; zz^N;b{xx-tgD?6rk{{9jOI>pp4s$!7_Z3Mj}Ma)#PzV< z8zUcoOugL$_R`bPX!G(IcUNDWE+Sp)YC&~1>%yXzxKiB7mdKRHa?}w0`psh#h*|B@ zP60zjk9u$BC*o}5Ui!Vv@xb0Y`I~KW&kN?+qOBp%Ie?*ql`WbI$38d{l>2yX!?V`b za(MI5(|=n7HC|D^PdcX=v6Qu7S6%*A)GMK$p8j;(koDW1N#Vo$9Zswny&S&GG;)nk z?rw}Nq(Sq|%v_2z9U~T&RM*IbtlWm?JQDqn%1|(|1J)xHZa{I;&CuV$=q*jieP+xD z+m(c5TwTs<07%iQq2WVWF9+32i7yskVGxM1jj_ps7NFXj92>(Hq;&B=@E=HsQ_tof zpOkvBcJZ*PB^FCd-nbbkh}k_NHyVK&pz2T=ZDBKtDb{g_D>jwXD7+Q zw?yC05y$rQA9Q=pbiazRr5Sc%+ciCfR2A%uogzJ()3a7F)eFL_T2%P1AzV)-L4=@y zJL-ea)-QWb-jP(Va`uHh-vr83%I_tAlvJh=2c*vz-ognM&Ivm z(phfl|HGH({KJ=jI^lC`LgW#A2H*N8CEm~k2qd%^B2j9UV%4X@yh=WsnDqddS%2VS zG9OkNw|YdGk(69<>JZ7*-ERkJo~U$NA)gzdQE+2stysVQ)lT=J0b2}reTspYXU!Be0zMNY?l$rMe8QJ;2o#MZOI;au$WEu^hi1;PIA)6Z2tMK=!*xm%{sn; z7U#=jJEOymyj*gu5ms&9LU@QC*QDp?EyrC&GX*)`#@a!OBppGU4mbJYW;hBPzU{$~ zYY7FR`QZlZq137GMW1LLt4RT2AS4%v&DUnV5@_88ZVKrXnVVxDz@TcQaHRMEgYum)z ztCXy%?^kBLC{@?h=G0rN71l2?wcc||>!;$qmtOkZ>hIZ64TuH1N4zg|#!uMZ=uCQg z{A_%nKKFi3?-cmuGkz)SF6@x__f( z1y6<`#D$m)_!=mzh`T)|?5?}~t+LaoN82{RzN=F@eDIChdI}u2=EZ+!Og#pR-wVja zoX8aE>bKgt9J$*Js?p3{PO~KH(-caI@g&+{;5HG4B#$puDMvYT zK2M;b-sSGEr;iut;m9i8LM{Fx9v#_K2rM;sVHNPSmNmXp!2FyUFGTQ@JE4nfWBB;6 z>%IV=OEf(gB+4bhATua?su3Xm`J)DD=Y0e*FF0jRAfXqZQ5k-$^Ps8p2A*w9b^E2p zi!8;*{#*L`w5NvQWwC|_>)^;WgILH*<2>W;{r!8N>@LzFgQh3f0t^Ek$)X20xcA)l z>GA3>GSd?^7_Dz;xCuX08GRq@4&mPT9N+HKvFg$Fa8`O!TX-R``3HTreycjgTAMU| z=%zmnpvYWMS$ogCE08u4#{t{XTD9u3n^m7KqiDjez75=hFw|%~lze06j5cHu?SVCK zNX!j*YGFVm0RiJv{~&^OGfEiPr_L|?!ixB8$IdUqDk>^pqb=sIg9{%{cyj4nLwS3K<0;B>A z&wj-yiCicsBFW+;{rm=fQsoj5~mMGY8(#0N8P&TfHz`5+2Qdn2%G%AgmGlXNibX#>w**z`z2xaW z*TPcX^P$x5f$)zAXG^%JVgb`4ZzKLY^7>4}aWP3n6BxY1k`8j^_Hv%(l`jV29$;{snBcsuEVG0q-dFgUt{ zX4P{bUv8ewCDAKkHq*c`m1k_~{P00bdeFfXP+f!=m}?%p%^sNv)VuEacFYlV;4>2S zQ2)@P&8%_pJ;emK9+(ixzopaPaBBbZ;Zr_lEPL-jg*p47%6QZ8A^sgn3^RQYO`+xA zRf|Etc#hhZnVR79uF8I1?7OQ|x+?=|1F>;woWj$bh*|IKhfZrT5r%rbA`DuN&V0vn zzTZH0@k@3~cXhQs(N8+}>5h3R_vKZ5-4`LwILL8IP>H!0^}e_)TN6;og~NefUMIn# zx{Ho6isT^D(%Z})$I|1Nze&2K2}*}*2}%W7)7-^-TJi>*QZswl59}3azWJ@wsnRm( zvpd(0eNkzDwjbhDdc+@?L+fU1_$U~$@Kn)!@Mw>4Tv)@wow4|g|IRu2jejC1(TmR9d7^!BbG&Hfmv2(tcghLZlD3fK7m zRJebWb^li4xTeK>B@z6;5cCl^ZK%2E$p}RT zGBihqQdPXCp+|P%SS^eQOdiHnZkC}6*dsnNuPEr}(>>HOgg8GdyVqqx+5P=nNc++U zok79b>#fl%x7?4>DK^W`ZqjELWw*FM`MA}4N!DNTeZNoiW~lR)*U(5vu@(ve4w#1+4oLxF*OJ&N~4k? zp$}h$r_eK&!JSMs^EkKm5Lqc4zma~;nr9&l;@Tkbx7%>Q`Lba_il&=5q`P7eb8 z*ddTT|DsM9Bh>@;{FEqR3%GNs^!5@Kv*G)eqB1j+Tok($^Oudqrr7z62E|dsNg=le z(EICNgQ{Mo7UoI`Sng6bH-jjV82I(c1G2#L@hMaGiA=Ok-w0t76BkL4LX$IT4?bgy zbE>K1%${PMAL7*LmKIkJQ4&k-hh=TaUmay0rAb=nJI_)?#}wQ|pt#?ienPjjalJ%k z4QfeE#z0fXjjSRN)DYt1nhWt!~d-Dg)|o=WON7V&MNtiG7(ghN4?4W+~G#U0bhq z?JN%d(5y?q-<_AXQ}sG#^tPH+;F3V*@urLYe?A*3FophYN$Gy_;X9DpraBd%Ws4@b zvwK=7LAA99$zZD#u)WuA6hy{!?+Xnp=HP}3QQ*l)gLMynO;Q{o12;s5Z25pF-^41m z$N}8!q%y+O2`(gQXhm(CiwsZ<&~5NuUH-Sf+vDb`^UfFI1??CnWw{QE>5 zl!89@H889Cff+C!|5QE^sip@w_~xzMuik2FkO@^n!qDEMLY#}3Z>>77?pgtL(t!5& zv*7{id;S~gh^ZGBiqRIT0WcU*Qr|!>(1i6D=uY-HPD5mGV23k8oEe0b4i6*ABnwH( zd7-CPhzLsm3uH*)ecX8bjl!r^y`kdu)#!l0A0UpA+m9B6O*lo^dNTrmJ^1`3>x{B)1asYI?-nbR9}bfFQB1@1&XUqrwo z(-&DhuUw2e?~g9@^}JACa9v%Y-gA*sZ`c9m0x|AMN}lEV^d52VqMB|+dPtu*f&CXMHR!M27kJc_?>qEz}{Z7$Iw~yI|6+<+alA{cKiKjqsx+J$I>3sAkuUfF2 z3HN&ij_1k@Mrf7w6?u2uOY^`v^4fFB74wS=raB%qBZ1v6?pO(=b6v`MbfMWISx#JM95TUg=}#J*STkW#_zp8>ktW?*|Jg2~QwxOi;1UmL*mYYiW+gqdK97_!liry6R;X z!)~kU+%>yIkbd(u<)@aw`6x$ez99BdB%5!%BX_CllHIQzyb{K~Jt_N!022h^MNOUE zqjSdOhApY4sp5vQ zXL^m@D&0ItrUlx9f~xidf;(_O$7~;4A%O&K z`WGmBL$#o<2K>YfTQpcu{*HBR!akhX3zKJe+}=CrRpWZU4WarXEC0C11xA^<cMS%7eDHUot8WHi*I?6x8t`^;S zvzim_aXzW|U>@>^ei)L%ql%UN3lxdU!&3afoV=L4cKz_6xE5Ot#?@2uB><4+JitMQ zC8sOhI&OIpTTRsu9v1wZ!1%3`icRL+)5ENbQm4``1!!D(ccsWJ23rjNZTqSAU>C)w zIqQ#nH@oB=d%5O>T`0%17pK9+H9MlrAx+O?g}?GudD(&$5idF`M$baUHVT0ggCeA- zJ^;Y)0s#0n_6iw>z|i$zEZjJ}HOGdt$`CAld=LP%8yQPL z1vITAg9lIn)_hSo8Vf-w9kr&K0W=|Dniv*IBuw&fFMp2)Xo$_U1)gU z<(y9GWPIC)xJmoG^;05FaN&y~bE1P1e{ZMY#u~2fgelfb(DcmL-OT?dCf(TI<;=TV z_UCTqFKr!DgR)(Q+3QL#N$-~Q8b=7_Jn+1pAkHFI6Svi^GCYR$SSH^#B$yQuF;f-~zSWaAU z@^xNkw?uInNqx)uROm;6*b2BN`Q{cAY=c-UmmRieu?8bAHm9WC8}!a6WxBg-xvUqL z7^j(weJgqwn{KYbRg|r+VX)i~Mr}Vk`ehZK?AA-%BQBk38&&=NW6w!$);cCiILd&- zc~sU^Oedt%F;UXH+?1Qma5N@I>#)JI=w*FH+s_^a*aI)89u0q2#7lSEcBCWg1!d z{Qi}>+_(9b5Gd^~GCXrcK>g*?VWiaU=Vx&qV{e90)(K%sUPndBya@tM^9k>{)iUYH z!{o@j1Zy(K=XXo;Spnb;+Vq*3? z+|~=+B9@{H*l>NQcmz;5?~Va7@mPs&{g zSK#QP<^F5>?9_dZ0Ifs){>>V{CV3U%fW+~(K37SW(c|sIJ^e?;88tZa?_7Grb%K0j zL$(if5JbHp47s(LZ+a|UvI9zn5?-fg=aNqQ$h$;8i7$&_dU7+F&hv@KQ~^NC41l^e zLV^=yyDwTXSDNU5TCq!2$v-rT-C~||+zSWq@x}ZU7-JeRF!e_$-0w7xaZ%@{Xy>G1 z4!U_zAXyqv`P)65UnA%8N#Bc1mqv~c+;L1UbVJA$R}=wlKv;-{M~fKiSMqtwF@_4^RM`6cKv`|5U*WCMzRdM|GF^ITqc$P=sbElr`i)kF!2NrjIAlhZB_eRGckfhcO<^0r(aJP>1^ z@ZNs7ALG0uN4r{#%zo7L187!rP$x-2{h8}v^X;C_A#owznB^G+Kc+arga#A~1do`Cb&ubAB);Er!(WH%Q1ar{&ENae?rP;g_E9A~vJN&CjP zAla1R5j9E)Q<$rM$-Ho57RNg;FFf>xQUPdmtqPRTfVI$Kt zLfvUK?#F7^KodyWfG)HbYu+NU{cVzfQmrL1+Q{ExuP)XY?p zR}Gxw{Wj+FHG>vYmd)6x37e6=uYm{P5lbSJ$z<_VE?lrS^DIZqsKNaMH%0-foX9!m zR{pVLz4w<|v4D|&NtaZ0|s0zw)rV4)WGJ0}IMkJG~zdk7Q+>SiG^K;qk zMHFc;poG$7`xiX5&aV@Yxf=IX1KoJKbDYsm3Hh+HCeJGT6GFJqzUj7~Q$pcKdo-D= z-TNBs$CO#iCmfeY?cHAE#}#T(#WwV8KwmS3*B7!E9-`AQae`dagAe11Hh3^eg`dZlB4?%#8QMXgG=69@Zs=Jyu-N~TU-(RCLg6)n3c+y> zQ3?pyEQsWzA=3_A{w~g0c>Anz{NcWvW5MFHn%Uk{Bl3@zk$!sy{C*ftXQ_}LCbbPN zBqIw78VtEt4Bq!bj`Qy-Z2fy7-~RtBWRW2aYhKzwsH<#8HE9%>94Ylggh_Yym_Y?x_81ZAi85cqU{T$oZQPrh(gnzv0oM${PC;AHp2ixXE4)zp!O(DCM>_LP(b#(wBItZD_-H z@+VPTqsE}dT5|t)tFdczGz}|wX+9eR#+lw=w16=zS&xq1f^E4`wnn?z(9R9O8GRxC z(w*`s{ns4? zN(dRXH>T{6P=HQW4a6@y@fSm=%zSL}bk|%G=ou|_Aq7^j<+EDT-c!A9+XME+2K|PG zxvc!XoAiNz9|3Y1Vu(396*BhD+P~t9{Q>Lyt%-k#B#HDs{Ma>akACn}R(obhex(v+ z`A_Q`tD`*0Tb_Ch4az%t=;wCc(*L)?bLJnVE`1B-6C{_6lyS*O3`R0bG{D4aq|hH3 zZ!B@xJR{nO_b7?0fv$#3lIbf_)!EP4ch&%>4!b|oH~0jhQAvG24Nq}+Fy7k@`f`-`RDnW5p+HQqCQ#?OAxJ@u~`t@|fNk4wH$M85pImYYp& zlkG6WyIT#~QQgf9LM13VZ7p!~`CgJt{9hDvfcu=Y7sF%@J$h8w!?cvfZic>_o%^e= z@@f65BPCYHh+ZM)zex6B$^RzVcO!xFPCsIH(%2G6GVF zY1Q)e<%!SZtUeL)k~I_!#<#eG%yxUk0dV|-lmOA)rnZf1t4(wEz|^zgglc5}Jgw*`gIXS@oI4W30Ep_JM}#N((u0C(HfaJuhTlEPwvRZe8mgd`vW#Hz zGbsS7^Kxh>*bf~DEsWaxrV1-bgP|2|*96n#0-B%OPE*L-X5L_snqvRM#CL7`{;gDZ zV;&fQWzhVm@LT5m=;ZAr=ON7Iq3Aw6lyAUEorb(R!s^w{VNISKz%GQ&9CmHUIqe3( z?B}-Xe!$ZC7*#n@T05t#!GdOz1VAJQU7iur-@Jmd4*4$}oI{`=VXu4b`8Mu}>epG6D({f*dMjn3)yTyLT#g^UFA)%P8tu>!NG?+d+?8__^9{k z(_RkH>`gHvSa8)OfcLyql`}+;M+sW}Fvg)N!hYst-I|%XM0X?ei21{4^=A2sPM3*a zgJ&2VpxGl9PAFEo8xoybhmv}W*Fv6#-224%u^puAl->@r_(H*eOv(2Y4%d%wiXuli z+8(VgH#G7XL?-%~?*nT-<7-!$Kje>XnY#YN05&nXncw)KCkk#kJ$)O8|8JDN_wRz2 z9IAP+8l{fp6>+u%6R(RcrOeiiN0a>?q~Y_pMRP^Z#4V2(#fgMc1|Mt5FQw_NmaYvn z_m*ai7t$VE*QZ0rvlsi5Rg~sC8+zu4o_2IxmSq8&+6bYL>dV_Ro(_ZYst54@1^RF) zk?j5h{ue0U*KbPlh0Yd*Db{VH9Nw!PJDN7klYQ}E1(*KDc%1xt-oqu`ZKfiRh;G>H zkp+?EWB(3nrZ1o#O6-WHF$O$=ypsE-^A$YSG6?Dav_L<`muThNJn$=GQDgW{&G~RAN{Z*QXo*(@z}=Y7EO8i+NNx=#YrTO4tnC z-q_?3MHP6Vcq)+9^olI)6rh!C7LKwYW;-6Q!`8n)?^LC_i>J?|>8apzQk-OApt3HS z))uw6gO$rT2%ptwsK4mY6v_-R2$a&Ut4<`2sPX6jwYT)KX1=o&ZLJ1VwdW4tmxDMC+g1pNL}sb?8_y1IV2^Xo=B zQ7Xi*&E;z-Rf}U*-ZV|fb48NDgVVEjoS{*9Wi$L)W%Dz6R4V!0`NwSN;5&$Z-3YqJ z)eEL{AMqDF2~w>|W9T#K0Sw^DwoaBjzfWr0IA2#EmL*X|A(=G0Jx&=o;4Ib52vZM~ zTLSF+IJo}{UGMgT$~&5Ct){stK*9Hyu!kauFT!z{6Mnm0uU%$q&X&!z5;&Bt4sCi2jeDWZ1&ZISWgZ)D)EQI8S zjn;gJ)CU>=^32@f0p!^A-Tw3HQoXg>Hp|~kLgvE7a1-Yz6J~O;qBb>+b8O00-ZL)g=G;`dQrj zo24=C1V%06tl6V!<`_Q?$=xY1t1R5sLZLBWE^wJTD>j^?YjVe9u-8Kgc6Fg)PZ$Vf#D4~b=DtR;8b z5ns(&*-{VdrL&FfLVBx3;T8}%@ddaWLXRf?@u^2>jIE5OOBl4Yn(Zn{Yy?MVmou=$ zac2WA`%^Dw<7ckOgmJ<(He+))wnl5+oq_=1V!wRU?e*KR&s(~6FAKdm{7b+cc_rI& zitGQ$Q8T)0q~0Q?gJ`~BX^4Td^_lnKG5hdRXEIJ77df9Gj7(v5+6va9c`UDcq!Zu4 zgS4Ae%&uPjGAO@PEivuzAhs~?O_X2lCjE*>-pd?%gzvkp{bM$^BKzkYG3#l3)=00z z7x<7oPn^e&vRb&LQ7jsbu?Ut?cQ11cIyX5BQZz=s#z7-ves){kdELN7b|(HM?)O$; z=}9PQ!NfMi4Ci04oRSjr7KWpHvg9LivvN(}HXDziZ_sUhn2XV@)tb>{NVVs6oJ5(V zY%Z+OoGubskabeSr5XmJQOjJ@d@1b>&@eUcc(}pa{E>>Bx7pjCO@tRTzY=dt@2WJ} za5}kVMNY0D^t$ER8oOjuo<&6`g@jzuR0j16D&T`LLuQG$abfOdIQsP5TP4m6O|$B@ z;K?vIS+LOelqb|syqVcm9MKc}7ju8?g)T^KD3E=@t>$PR(k9YP_y?Y|mVKc0- zdnIm-k>O93rI$!9)@!uDOICoF&ja`xL&abT#-7H_R$Z|+Y8_JI_#W_JS=YG-_K%G( z75@`JMzj8IU%Q~Qf=_N2@IA~R84=d)X@akbZwAnZ1m8*A*NNJKDpKKGclBAH+F^O> zYwfFmW3Z=`&SNKr+kjd;z+4KDYRy^}0ds$(R6{(whFp&GtKt6ik2<(ZjX(5IBi{=L zKvo>xPuv_@?aDlE)Owas$CEdK?SN|^zSd9ZS3NiwY=Vuf%gTZGhN%3DW9j=shGXUs zqdEwW7WcyZ{D7xwbFUf9HJ*@8Nz!06g{ymP|Jw4WY8fqZL8fi^8iYAPY!~4yufma9 z+201?G!aklw8ze{u>h>Ado!}JlxH^#yq;A9s0VQcC1nL=-gBlerT1(PFAw!A>@g`;_aOf4Y{V>w z#Qw2Kh>aq+OqpZ_X%pn&inuU8u_0)SPU+_wYEE=Pzi{ol!yz#h-o4e6t)5S1uaH?8 zro$Ymq;I|wDX?{c3-t+af(2%k_JA1$?#%SqXs5^`WLCRfd>^|Qx6(oB-TvC5{xP{& z5tNiu`JPp6jT7VAGqqjOpAYU$>x72JOD2uhc@~w9!RKLPniuhTGK@{9KZ5lPWf&)# zqbVHL)@l!9*VoVN1=4Q(1@fb&?iLzfZ+JDM;bRC6u5mb*vUN>5%f#;hs;`AR9sq+* zOO#EqdwyzHZUKA7Mtnw}bgnY#yqoHhP~ z7fhn=1JdDw{w_-5TS7x#qYaJIHIt*Wbn<*TSt3b75V^FvN1T2G0*9cvV@hFmg2%yt zB}BN9p2w*ilBDGGlVR}l)jUehO{mS6(FGZL%R!r|^254-n@@<|=ccs+_ajeMe+rmX z58qAj=ENL2rvC2;^2^R+(4=NOH==*X4-v7BCzcs%KdoR($Vtc?A}G@cFjCd_ujv4+ zxxl!tM~z5@aDX}3TxzD}H>4+Azm_zCHG=P8B@=l2lb5C6eoXpiKe_JDrtrdRG=Aun za%K{O?Ex>H$GI@=PBaL`s*UaP@L?P9zy~J{OL6bGpWbAgci{;%S8DZv_A)xZ{w}Vv zN*?%Tz1*^ftd9ml;loER5qz9Uq3ztZO^wt0qmD*5_hX-Z#ZWm?X-TPi!a<_if6 z$|Kmq0b|@q>4^O6IRQ(PK{xn)VwC}%FZ)g0GxPOJc3C}D#gBc6it56KCg*Ut=erz? z8aqSN_(`GDAn~%yAL7Co0DyaNyz|1=C`}9l*sPGP2bzo_gXT+SXW_VwfrPyy>`f7l z(n-D&^{dQqm=dL+)?f%8+<$d-WuXi=%#Iu|BBxiSc&E21-&+CY8XDG58}Z{ZcN#=K z>z>pQ-CHK6suLY!Ej0O%MFGc)+dH$!yP4Ewg_jgH(K3;nJ?X^fdOd)lxLw4daq)f# zv}CQc(j#Y@=f&4t1`5MrA5oj!{RkO&or#f=^4K*sbpJzQBAMdZ*}>d=C^|0T$Q`@ddcUlM1;qvf8grbxD5EUg z|FR7HyYMYzpU_x*o5CN?#tH}t~@%naMzxi=^?k`NlHr1||# z9bS*N*Y8Ou#NrO=ZS){E{z=Y&G{5ZLLYDuaC3<|vW;Ez4drG%CMguIyo$V&a#hm9Z zBQ%whuj{U>fpXi{h$_xs9&I~5fJY=aTKIq$CBD zhp95IunOAaKP&gx3-msUCS$Ef?oU)2E&FjETag1cBDNX!BZkKgEOL0on|NRuJIT1} zCRpRX%`VJl6gTh7JWaK}`@gFm(??^YCoN5{+zKyFh1^S!m2Q^isG}W)|9|OJU>X?! z3kWP;*m7Z1we^dA=sr-cG-q3dl|DB#x7JZQjT>4&!l4QpMUMWyGGcHTrBffj5a%KJ z*(1qDpG@*;clb5^7_SIEDr|jr`KAo2-F&OE`pu(W=B4xO`7Ko+aX9Mb-d=epy0YAzl+t8Q+-5-1n017Y%R7D!RAe&7P=%;@EG+|xzS@BAy z{W~qS30j#lSSwWQIhC8x%%0nE8D}cyVj4?GGpv*Tb*!>0W)u-U7~z!u$aWsX9eCG< zi124wp1DB^IiG+HdJwisBdA7EpEZ4fYZ#Iu<1W!mj4im5z0R44ETOHi*gpo;&3XO2 z?&!kww0U64=QwX$KJ>DvWP>3nGhTc@k$dHbuineBA~2 z@}|LOJPk0toqdL^8h_{e*h3iB#?Q6{eE8u@#bBlURj#8y)E?{!>8wgYxNrS>I}=Cg zt}>({!VUC=Rx}1);jieA8Mu8Y&bf%0KNlT7p&-}M@U$ei?6V?(d&zyh}Qg=GNL-+bDI2jw4(d( zXk}<_BL(q^)BJ#eCaRaOwc|S*6(Vb@0Z4aOF|7ad&|;Lq_+B&cnFP+MwTg-1QPGzw6tn zmm8vH8mA1GrHa(G_z!+j@^c&tQs1~eTfdZ;C!O=9WG;iea0X1A(Uw)g#5r}RUfTVZ zrwmkbF3~R>xG0qyXq5hCm}7bH$Vi9rgUf(1EIl9F(kG$TV7@@ zu7!py*`2>^U}TC>7UG<8mck)*^LjFT)yxH*%Sujak|yjy@2Iwbj* z6gqU2;f{-ShH{jM#Ll;6c5rF(6&i(m8Y^jG~~@ z4ALdiF(3jnG}0Z?%utfjI+UdEx}W{u$9wPR-aa4p2aaPcIG9;8*L7aMKF>pLijPA5 z*o$h`gRn`7x95$e`|yGRVK44nEAoj(r__%<8fSCpa!6_2=#M-8_Q zL&L?Y<@lY=W_C+T(#rDqtW2#ps;e{pliQ?gxy?iUc5`B4^I?+1!&(b~ORvx~@vMpHInFrLrL+Bs5yfMVBBLaRqW=a-zqa9z2t1Q1+cSD)h-S9$Lxudc?Y)SMTLMWzj2A@K3bwy?W)YcFd5 z7D=fGmV%mv1B~}?gm;yJDDKiI8gv%SY^6rvrBR;B`m>iCj_zPzAA^9R7qipHVH#CI zAo*#IoRACuD--qd4PgQaRee0xpE%K-^yO|@Zdp1R9hgJg(-J4@Qw!>^^I2R(BSeV~ zZ@(F(M6K#Dmq+Eeo$hPTOa?5=+b0ATtAol8|MGyMMrRh``yT_6-N3CGXe^kQ3>GdW z6Ph)8bu?54T07)HQR~UqrXsaGro9kqG}1A8EeeqIUpqfGoZ_1`@NzzFN}9iuHBZ?R zO=&y)e6G+@cUi*Ar1Z;aIVv))G83}cO~vO7DOPz>%OuUQfX%RoX;sDLjE=JO*Cn?B zc*sLj8WS@lHfGr$t=K5Ct>wYhLMxQzD#y*{uQNP2$hDtjosnkW`qCNK7av|6|v$&DEMOcRoHQQ9mxFzs!bw?szb7ZUC1KAaTL z`VEDzer+qlQZ_Fw6qnB&V7Z?i2|g83sdA^?9eeW*CtUkC))J#gGt=UJp4r@g%C1y; z^R>^>l0&kRAJ{0Q2U&zIwn`smey#nar08i>H z?eDng8M-YVSWMOpsUjyPLOHXSYmS_Vy7~<`Qw#0l3uL$CxHbRNIl?19WUlE9!9j%k z%{&=#zi}Kd%vl!f8^-pX(nq;f5SZ2Xl;n9k?ww+SvmUV>oJYw&qsuLTdxE}xZf!f% zJU$VA&*SDfHaj*xkjYAfd91A=q#quYVe$bsynQz2N0b(?t2jWz1{?P7Q;cOYE3nWv zuC>%|X#PIZOsE-j>b7Tt#i)WYY600hh zZcF^YsdS5@Dtr4O+u896=J+=j3ny)r7QFpi%QbY^vB1-%WXHP+oxxWeAvHneBYvnG zkUaIm7ht0*nt-$ZWUL`Wry*)g{9Xv1kFJzA?#6yPTm4*Bk5^q!DmT)6oug-`Zj>0SeltEZU*@neLk$Vl;GW=694Ri3?zA4 zpO46(6dr#5JWTKs6SNyVpZA?E-y+A7}YEM6M#3ieqGG z$Z3miWCSy4Cw%ATKu{>wscgiz^M7+Q3Nv>q)qi8zj~oZ|&T}3~;zu;16Iv+Nq^`KW z`mJ6AHn#~4-B~R!5qNX4cdbxCb-XY96@FZoJFq3O_k6xf5JNGrQAV>?Iwm!yQDNue zI)kbsH$QBse_3dX%*FG!!dh$G&4i>PQpZvF?pNED8JY7}Bl%#NHk*X>yIZBjE~p%M zp@i+~%xbVlfsjnm7sa~INUZ!Vo>{pIqcZ)o05meK#E0H>x9$4sI+Xf9y?t+dH$Yg9 z-w?riyP2G4{~q#}TA5s=RoyHLB7Qb3EsHO?7S)(`%O?=4i%FbV*0y$kE7Bq30Dd!W z9~W`+qiR-;DZW9jd1_?Rl?!Snz<*PuXsE3PRD#;aCnuOEHzwya5PTt%kt)qFqdVSc z8=9@g)fhfe7FYd+r=Trl$^*?u=5%w2@a+XJinGc~o~(yh65={C6(0Jv?zr<&0FeW3 zZoPw80q^YQ1+hHO7MVurCEhde9qs!EwQ8~U{>oyx=GWV?hHuyn= zJ?zPwd$0K#-*)s8Gxg+7zrtx#>DFHh=(`uYCMi`xz8s7i&U}*=cXk&l5cmYK=lGG5 zrNA-ux`|p+f~WZOaB8l8lDGXE^QQ@`TcU4iEED&S1|kAt8DqYzm5rFyeT6$VOtztm z3Ar|MzQQ$|-aN{<7X=v_V+gKP_lNRy>r@1T7DZv_<`*7gpg#8tLt3LBlVXydM5=lq zsYhtvL^TU~|6{nFG0a62c_oTDxqeclU7#Y<$n?18wiuasAk|SV$_L%Z(7;2MaY}lc}^cLfsN)N4FWk`Ki^Bt8OLJ@i_ ziThfCBW{xqi}g z5o;~VKvI*vbL6l*XO$%U^5s0C>Bc#bQ*}s(oit z>C6prB!bV+?ZvlP6IP`-%9eMGXZP8==1D^Zgw;9D2?L)stmKt3PHFCJi!p=)XT;bh z;qJYP?X&w@!lQEBsEdOO^{Z3=rypO)Ja5=a#ipO)DM3>Z`NvSQIk|v8%e7Ch7UZ6d zPQv+QTf(v%7n=_~9vtsa6k7V47~(Y*{dgouVIhwNsA>4>w=Ggb^9)^v^wDSgnC~Mw zbl}>i&!2<&^z}sJYnuoAcW`yM6zN9guzi68Q}EVXP;bzP8_LaFkuo92-Z8Ty#=IfT z`4S!V?Nv5e2&t*C`othcVkv+(yg0{Hv6CC;LlD^dFN9(0%Yr0!MQ2oZ*AENiTBtF#{xn9f#FXk?XD#ST$ zS2Gse&nnSCrcPFTMq4Nj!iIx+`jmSWzsprXD|%1c)5dg;q^?`w053Hl;lU*xme)97KNUzN zX2q6iy!ff>HlCG0Y2D>St})`(q0hbmK71i}q-_Yf!@lt=nHHH9b96;C6zX!Yfq{R3 zx!{fVkJns9@&*KoSkMK*H-kGKbeC#6ZO_!#C6*{oM{ScLJ2q)%eep2!YpkpRqc&+-|W0rUFVu4CYs^=!XF;Td86PDFM8eXm}aAwdb!)oco`U8Uq-_8>@9BM zBGi7UCVEvzV02|o?s@BiQ%Q(dR~gUpMf)b#takwN+ZI z-SN_*O)n(?u~^m|n=9ee4!0;}rxw@+SS5R#ee`aceq$xQQ311&b+QU~e`mA&ZmPb} zRxo8~2ihv~HS5zFSg&o0UgT#(WITX2vN97aE00eBEXI$*YP(f(l|3N6(+-`tT4i%e zWPj#%Hr|aejO1|6u}w^jH;i=m?>LM`)iXKnwZq-*RIBSupfhQVya#b*O;nR~US1A( z0oW(ok7}F5i@%#cfpm1dXPzUTE%Hygb$Th%rt=waRIY}QXW`Z`^gF5D&450u)Th_1UDf+elXBTUsvR`bu zy5de4mtB2BDu^Q<-|FGbWjR^JiCjhbWa`)@%LNLphs4}`v3jPjyJX`x;F(Orgl3wT3P~+jIp(sUd0HxkM0mxctGR_Svg%a$`nJUs}aWTV8BPr)bkhq?# zI<+-I(bq$fJXoVlH^55I%>o0qx9NvWlyP)WE*EvVbPDSav5Iep=kNA;*)IwAxP_O4 z1MQYQ4rlV<%%O6$LYrWzmoF9?0(690TH-_f=%>p~O2)1|Z5gbWe12n@TXY*aJuAnz z1!}Cx20Bju5aBMly002@C>XP`)HdKdcO|vRvqejh!u-g}D~Ko)Ss^qhiwV7mx)*oa z(n0Gk;a`1E?YQ^d&sjeV078{HQoAOa#G_Tq=Hb?xT4q=A1Aaj4kCEbu(aZwl1Og?7 zb$i}Y!?o|unKP@)PI)*r!LNKgm73p_j+xE2oy&^YYYvX`ZwS^^)Fbw_7VLjE%U!!_ z#vr4J?=4AZED26f+QHVf`uV zhG0*|OO{oD)f|na`k3aQ17q$t0M21k}H$-L~9Z0RM z_u2JOxNyU2Z|XHq7+m8sn{MhF`weGK15F|$>+2>{KsIDlUrr=Tw6MW^Q;453=H2V5 zMrYe7L%gbE>Y2wf0I1@L z*T15v76*GTV0ZDn=+0g#RJpm>yf@Q2K`zI#WQ=sA0zL-si^P4Yqw1988#w?ES*bRJXZ$1+tizB}2jFBp>I5 zh#wlEgiW%u?N@6~U6%rDs_OzVH7P{o7K1DioT=`2}HvguxyF97n$Hrx;8MPMyg z?i6~fH$r@MKSrOWf>_h(gWU_o!*g6b_&j*mNf*#V*hz_>^9>R#Xm|E+$0PpLSElv?Fz62e35yhhz}g<9U5j&C?0kpTF2EuE#BRAK`uvrsO`)y{mV z%KW7+3bEeT5s_+5V02w0yEzK7(hlmA4OnfQe~`+=J3`*eru+YFR_IKM3r0?%DhgoN znqb`Deamg8U>6OhjjS z*K2&kTFNz^%ncf|Q7yzp%RV+;7vEff7+XA`n;by-j)C@gf^GEM+GpA~uAlZwrtX&j z{kp%gOr)4TFN6W(7LVIh1J0Z8FI+ekyLA3Ls*2orVL>JaCIQcq&F|oBIbUzxMtsEH zKXrPZ=WsJ{p5}RQ)y|G2^PL^uk8j;!R@6Wp-ax`ol+p(hlb#rz6G@=VPuB=vTIDfa zqPU#kwJ*QcQPjU%h08!wOwm&&pt@ATw`-G`?%b+($!}wNtp@7QY zBKBp=M#8tL8L#4OSZKIvZI&Ly^E_kRB_wi~@i`T>e%II`Yh*^yZa+;aeD9!|kkHMg zgj=|ijql}-w|R&rN1@+7_pbILxkzLK(O^FfrYom`X6wPRs5uYuy$1-G-h(MR4$1+( zn&&MTL6PRXYRZoVRLSPhE@)mx7Mu+Q1)P<2-^GXUxNvNRclAOpLGNCCWmUM>ZhN#1LW-$DeeZP-$0p$}K|#J{k$_Pn2aHfN`r;Djk!;lNC5L6K30ZJ>ATDTk<6uorW_q%#toQ7uIV4%X`8C{g_bOi1 zJa{F$gI8EhP*SKV@yj)rLw!SpH_o^weIHHSc$Cz32OQ#nqLTy7fN^#`<^s;Gozl_x zTk&!i#@TA}Toa?d%#(JQF{sEM&{VP3%oIlu;j__h^y^jSL~E16myN1_!1gu3kWt?l zj`gD_JuoS2-{)M_2!#$PJ`fIC%mp;xzCD#oo8NOpyzeg3ewvZRdB1TxH#@}Gw`A}b zbEO%n?NFV!qUi15?@Y3Q*242nIb!8$-p;N2Cn}pDV(^X0y(9XXN126p*Y*Y4hwX9= zSDq2k$CCF0ve)-T!_5CeY+J(heB!ne^`@Dki{`GR&I$~8jM}m)TxjkmAh0oE44o;v54TeBzjpCWiyqwxvd^S*DU4QV`~JH8 zT76q9VrF#z(bPr-)KWlo#ryeIy}BRDe?bq3u()m!zZ%9vhOW%5W?`dgY2 zdJ55OUw)N8>V3*8eL6t!G>ki{F0%62p3y!zD*)T)+q`V=eA1Z5t4yE#A*ze&qZ*;= z5w<1;OyfI^^3e`MvhEcuDUMY2!YJctL;IxrGpaP)VR&$BB4~d&5wvoiGYx1VN<~8% z<|^~=yOf?ePNwnFH-l!WkW@Z+2at`I{r#r8Wqnoml+Dvth>1+!1cTaU1>QSY!jY~X zYn*ZOhr33irLsAmPb88=y#_=*GpKJRdu`M?L0g2z7#!&o7#li}lovzq_m39~nsOep2;$91EDoaF&fNF-9(KRbeIj9%3ga zAwhuQE3?MG8&`2%w&^5Mvo>O3YrW)2I50-D6~ACS(Zx=;-2N@>+TDR(*<)t^SN3r# zl2nl%qsXnoxsa3?>6w41{ZHhX`3_=!Y0MV|_@18MeY(D)#^C;k0Ix__OFU2IT;k&1 ztV&gyE) z36~+K>!dIUq!fJ)eI_8t_0UtW$sRcnOWY)=V{s-%QF_!YF?q4jloCu8Q#SNZWPaq4 zDf}pmE|Aa6IJ$JzDMF0>N z>}=|H*M}(p3Zxe`y?Vy%FAFm_HJx)l#J%G!S2yCs=BziV60h{<^l=N7sp#xPpw}?W` zhU8_e&`m@Nogz3moI|f7xS?I)%PNogU+myM2?tzFV$8L%$ zJ+-T5a5DiD_%S^7NTPerXcHGGn824SEG*%ExNUa!g^uUPAfUWrppv{)V|hMWJc2TDxPg;&NKkdTuFDcCjRq`07{T&OLNU3 zGH@5HYw|B)llWKuImw8f-&kqq+1cY-5FQm-9g3J~292a&wDE}gFL$EiK^aAtGCpfW z2E&jHkmTBOkt)k)h`;f{VjWsHKNF-`)35u8^UkNfHp#oSDLfhjr&rK>gmLD*`+-+P zoAnJkJbq-=*&?=Ztx?%4SAVsfGTsseyXtMct{BY{X}5 z_RQwrLug;v$sSjY>0|HbvhZT)d_BY~_(|?l?&`wGXt98*w*?HUl|J zU@$ATtS9Gdy@V3V&f`8&{{1iEtz5Z}i?J2n->5^Pv`RdHce5(Yf8FXwhI`k^@kTa`*B6N0i1@gIdreN>;Y?23kFJr-|*oM1#yrWOm_*+S7AUc@Whk`R6m{(CLrm;u32 zyT|NN(m$l&4C1@j_hmqSWA$Bp{m*<>4!+Rn7y7?WRi7VpgwWRc3Q* zZ22%u3<7OA2A9wZ!L**=>_!_|nConu&3yqrf!ixj%DM?{k@T5rJ*vYeP4b$=)Gt-ecaWy6oP`@KfLL#jvvZ(UxPOuGy!_Si*uy>KGcufYs=w+!cQ7Vi|_wJ(| zwKAq0H5-7`kIwUACvVueC5;2!oA#mVS8;PHs6dVZ)X#d6;Kj|1C%Jf5W03v6ve}|9 zessriC5xjnxRQCkb_6j8S)ohSB{zILv{?f=2 zik<$Op&;juHuy}miSpz_>!jbVV?zenDmWATo*5JySANSq+`rQ6hsVeXa^uF)r&_cs zP4fo2?i*<4e-d3`Id5SeC27F>B;&%~$hFq*RGWG)^^BA>XUTn+BRpNDZ&$OJWuU^e zpw!-FT=-KztJlh`OteoOw7P#$ydW5Aonaikn>(?DS>2=?Qirg-(vQYNNp?HgiQLs! zTUx_g!>RG9e|5SwrLtx6Xzx_t|&BB)iz4#CU zpH2;~Mj5E}51LdCVHXvs^(3J2>VII|*M;)!a&vV|*<9vLWQ%>oioJ;wSfsNz#vBN> z^+1UE=R|5{Vf=25UkY+6bj37}d5cl}%J+sdk~ms`;@F3dXZEUFsSQ>Udo<>UMx z8yded`!|F6?3o|C$~IE8tqz0Nu(E&n;JR*l$hOxFZ9prQ0Dcz0OkvisGAr zHpexx*)10t2E#nqhEnF$-&!rk7`XBm18v})Y%;{(CQ^AWhk|HnJhtLFF8g65B|CRq zI3g;OIz4_u`PxzX!~z>Ub)V>J&!S`3XwJ%ai@&5&ok;`&^#meY!uvlXWx#ex@rvK^ z;c_`fzp;p~1Lww22GAcpPpc34R-A2`b0xD5S=5#CN-3@C(zIUk@*Q{_pvZk_x~Uk} z2m)Yztn{zO$xZ9Y^})WhDm}~ZGnX(s!!?M;%-dZ=wmyxFZz$%RGM5}OK~_?R8;!!+slD2&s#rMom&fI42-uvpj*GZ#zeRyvKI_CAP-&Um z>mpo^)HNW%!pD9D*-8aTd&Ujs4I6x$5`dHhuQca!;+6a5FQzbTmu(Jv=xC z&CMg12D9dB>9OvrbN^F}797eIobhh5fc%j+sJga)WNY!L(KJfeP z#gcQ-AvBnMVi6oDvmgLAQ?dw`8ewi}a;vVV%ZTgs-ORXubsaJtBPX#hkwz-JWFg*< z(d1wFX1Mlp0rsdjbUOb-g+_c@aE+T|C7;s@HIG#Fs}?wwgC?dfm4Bh9i46P{4=ZY}G)rmz_V5i0FREaoGvso!U#;B&{v; z1+`5TX3N6ZL`9I~gI5cam7--pgRb9pcPd6bcoDR4S6JR4zTkWcqmz|ZePVN@oR*bu z=GL6`uKQ>~i?@I#X`z<5`>S`LZ}0=y=Bnue(cP3G`Vjk>cV7c{K0SRrtJfSc>dDsv zi@wFSB4YoH{Ffm$>bb6&aLBRz^r?GrW&lG`f76r50>#%Q3A+|l)hsSP*^=AUH+^Y}8qL>yg zLXCY2`}a!SA6ZsUEkfwyV@t;H`dV7|-+y5YbLRf4n&;MYoZ7p=chyGl3?bokNC^TI*2oo& zqeU;R1PT!nT%H?04DQr4D+HB}3jLbN9jpeLeu#hJgqi`gx6qXgp&>TKZXan}%PPvZ z3$0#ZYS@?xDpYa418MZk%?{qcf<9M*BS(yGW$1vr{kr`#ELEL$jU+#1inHA? zg(S+Dx9fgd8|g4Cy`=1w+=7?J`9||M?bGjki>umob~ZHSR96SDta{N^clTu06V+J* zr<@eb%8XCws3s4FITTqaOj#3&a8)FoI zOhkAm7e;t1;;Pvq)9s4!OSWfpN|$?FV@s{sn*EHhU{EalitP{ZNt9U1a+aspK@^yE z&hDXvxT+3a@U9V!A*=;jy|eoM8@1Cl)L4X{|G;B|Y+*rD^u;sL_@^&V#Kd~xrHefq z7CY1iYT0`*N1MESG4{h6@WL;vJDk^oXzfneNF$f{MIVt73Cm z={XhO<#6krfe8keLc+_?fdx=Y3K-rU8ZWHQj4okHuRMQ{N)q)n2PdXgf{QL~DkLE! zqu1rKM@i33smm3Wj1J2u#=zCe7-k%zp=~LEQ23e8d+B$-5_g*s1PVBFCV=TdtE8mmO#jx6=?puFujrj9n(hrBx%=E4#%lI9Q3erm_nhZl zK8-k>4h_{pZetX zlRy@HoX&fLk(eGt?0v~C*`ywT7b?@b`ovbQNIVPZ{YvDoEoU3!-Z6eNHW{e^=3@#P42C`5Pe zG3}}nW%8hsW|VGMd}GHp_)@hxy!9e3RCM1Xr-^dEn!mD07_~5h^BN*Rp28MlAI1&# z=Q*z;TQx^#a3;J?DzY6qmg+CvFNgrEH|FHW62WQ?Ip>Jt!wZe`PVp|4Nd0f3W{M9- zg|0ef_b(fF0sBXP@{zQR{a}BGEJdTmo_!v>jtFmc@!&t;UnjHF z;XSx3p|KG!C+wznNi-DZbg%VG5dWHRpGffn_g28SQ9M-8K&e38uMc%mn3+B1DtsLK(+Ba+emiVv^aU_3Xi$vOytt`UgocS1h4C$1J|7@fp&^jQl6&!`e992< z1MKfh*`h40@r@z`=EWnvkh8S+m7Q|^jZUz?Un!DWwR~*;-r!|E0!0$lTnjSYF3GjZkT4fTrrTBmWo~zC)^5x38X*_jF zrckq87&Ah7z>N7pL3Rr@zaG&gOWa%MS6;DvbkppvQ~^dUr=2VmQNha;J@{6q_}5J4#XD8I=nHs29eaYt6BC6m?kt-~7kK()PL zFUumbQVQA^3>U~+5Zvt7>j8(iEk{4KFU6`WA*cLA(V;^X!o2{>2#JK=4X%gK8)uub zh$k@Svo58Cos*aaM`vlvJ1z<36)FA)5A)RDz$)h={Poc!Ai2y^Uvxa9v^Icl3X0|J zE7e!^KJZS+7c(nqtxN5^2nE+{Ds9j);4`M&ao~42Xp5?;JxkL!56#$TCqwJ73EztQ z*=PW;74NLd{GMN{XhaB_znx`QV+04qAJr@mScb<7fL%rrgbS zngug(-s;)MKN4i1xqV;8%eB$*W6>nAX<33ltglT~Q%rPl4^br0NBdO8D&o#fMPat9 z+NL}lB|u}D_A*B&yZYNROrDv#m~-7Oa!uZ>K!{%atHuGKyR1ObIE8`#$aZGL_w*Gb z-lKpdq(W#Q&6xLyq01DkCE%vLBHAD#06KdzH|#c))v12+3zR;;7#uCUU3mR%NBa1<6qXs1LQPf2;2jzmjNF$n z(5XEDCdm6HMgNK3iY-;s{rud{ZzW_Fe294#%;+h-U2;<2EDCl8jwUoMsc*T|Ko2u# z)0{#$C0UbGWOQW1xEG}nkQ?aq0N~)J0fohaf5NszCrqp-2VMaoHNT5T;m_*>KKm~J z!Z`9jIkE;~k}{grCl~kclg}_4#0=%TLR5x37qZh|zp+u!PPyY=908|rIc>29yL;#_ z53Ljv+69FF)XTQ}S%jx;vO&K=bEW#fAaDDpm8Bw4VwbO|H~8!;8?*Tiu2}?vx9)Lc z)c8;kbLL3~qyTev_rd;oe7LT8eAHW2pMba8y3uE`-~VYwrDt_pYl!#+`1!il0#kT6 z_WVZgIh#522%A-&g{$J%?3mJOBQWtyk23+=^H@v41baJ6tX1-~yMtW)s}_I2FY zui|*w-{G8HrjR1dbJ@=koZp-)Wql~Et}HPXUuV_>VU<8tF;X(%czZf3Jb8IB(-Kb0 zad3f~8hFXwyJBu0T=ngT+Tc?=tfOrsJVTg8d)~>ML5?JHDXFJD|NYWj+`#K9Zs4^mCMY4@~-wWp7P&cZ5dm!FC*_cq`i4Tuz!+z4Z@i3J(n zz@8%gv}O=nQ)BcJa|XLtv>aHHQr|$ob}^ZnstUm%w=q5Oalv9lFxCbKMun2Aop^W1 zUzI|&y6N)T4v#Gna7J@eiufa{@IEzP8n6$d)rmp{_Y(_!dgE=L+@+m$gCdPl|{nxqQA8TT6DvcrL`k|h+^7#Sd5cCEpy-H3f z+xFu>EvZpfj`Tynw*nuVj#>uHIIMX~jS1i#oO!L^xkvttK~YJg!1k@9JJOmrbn6bm zn72fXZs+XC^fQL$n%K2s?++Llv{> zk6GRh&{7V(zl|NZa=R<`d-ZY0?INCo}p4^7>$QxJeT|h8&FSuwENg3O;?#s zaAAaAKkOKcXMFK;rq2D3I8B{YG=)t&HDmY%7+^~xj4SFg;dXiNsn+u0l-yM_SHH2U z)}`O40CZuNvA;ZvBYHO{C;%7_4WXpY$nng5Y?cUNXJ`QSm&%=l@2T6fwut<{+C(5l* znl@o_g>y&DK5_A{6EsTxO3}R2f0eB1jX0B_f}JCdhKO<`dN*`7xxQLiDtmdbG-gVT z`f{r))1Pd?b^c@;jnRrv*&0J*S`l7s9vtdtAe>iRk!(JyA-RIC1=OW<7z2$~u3HQfxGbA-CW( z_~6BhkNwHq13S6xQlt66!`X|S z`+jF(&3-pcAYUD^VK^_Q<+FrIQVjX8OpaXhcTZ{uG5wG3|}vd!FLq zMUd0SDnDINWW))mV83uIpM(HiCMy|}OO}@0d_BXHc)cWGW=H{Aj%zk;(pr?m@`Ey2 z7j5YZcf#&~{AQKawqS>w=qWPK#XR`6$fjHtcoc7aLwjX_jC`-kV}4o6%IU3M>;O9XA{H?8 zSTh|$gp2@Ho2CMz`(C#9m(#a4?lgRNrPJb<$7iba>?bP0!JldRaW!uTb3d%r9K$vF zNcnB*gqQFfTOG}vuUb3a{x@2I8Two>+v6y;pbjU3!hP&A$vtid+IJi`DqM<)#NE){ z=Er`Brd&#B3u|JjXO;Bi|4Vh2{CBF;I5q1d{4|SiO>7=tAXOhVJIWfne${pR!{^D> z#`v98x2ULzWoIYSg8*Ky5B!hDa8CAh=BLh}_f*Doth?cq8&eW@S9vlDvbTf_Uki;{ zg-mH5vexzwkM{8b%sudcabtXbtJOnDHa^`um|U;ogFzcGeNt{oENwyQ93n5kMi`&u z;{g4OXVQW=^Z_dqInqg1r^~bF_eEakH8&dl{}xKBIH_1fG~R))rO~bdX|Xj^`Bc%( z*NdgGA(L#6lE~|wFt|_3p>Nk@<10k#WI7VQH?fF5f5Dde4JYeQyL z_lZq_7#;^>(r~JRL2N{8vG#_DOdRTc*Hh#uWHTe*5q7UCmO5~eND(J=np@0jIj`jW zqou1GbZGVlKf}Mw+L{}_xIfZaHu%oL3G32+Dj@kf6+;-;+)_q)x&`VOPgcw*AI^O6c*?aAI$BVNyitsIboM{6=5bgB#350)JLmPt3mR=8dsSaY_Nv z2)!q>4GrgqF^%}u(}R6I50Byu-M_3U`glwucUP_bv+iU^YclDN+WHe){!#Dih++}W;(gS-rGLzuC1`B|VaF0nTc{_Tp0^#j5)#gjfy z4PR@^)^fDm)V@b6i!j-%AKPHcobFixkEBh*`=(&*TZ()G$5>Mn+tlM|x_8XCZb#X) zYCe=Bd?@omiau$nh&xWa%D_vD)3!pBRW+$DR!^iJ{LOb3yI#1utH5f^In6bRuNhXs zR$KTiY3g~muhRFB<_G>0htZ^oor^!zsx{inhE3>#C%hn@_>14Mb@Vm_2@ z1^J~sN<-Swm|l!$JtT99Rp3184wLQoTxN)e&>5HKlO*Q*sd^IZR3DQ5q(5| z^#RFnPrpdt7`b)rPhN(%(DyMVC25|<=KV^7GT4;%|E$^am(~lwiqEHn)^V8H{}{wa z#Tjpy#{AOm>YDVB18 z0mCz(@Xh`=))eP&EDq=;?f`45M+Th6#ROj z_V-&WhJd=-pB~>6JJwsz3q9g@exvksnA<}G`f3*=rvq+@kl`7UDvl@TQDgHNqE3IA zEGxY7Lz%I!$UOdH(3*U1fex6d>wfeROnUSn!NZG!Q5zrB6HI)?n|JXVXjdEqCQ{Y@ zexofZYYX;)Y_<>UP``$>g2=AXD@uKrs}-8QrOA zqR?@D$yiWnr7Rm@Jg)v3Ugu70s1-dr`gGrd=vJci{TyzYS9Gq+7%G@OH!f0&>iyM zSjh_4aZG=^w)hk@OUCFA{f$M)d6TbjF7g{|?(5%gW`u`?v=)_?#cmvvhP?*dWd2%&zOagUbupg) z5|h*m;TWtpZmOm!dA@du;wwHOr&ZzV@R?D3vaRO_Pr<~gYN>Yx1O247wxf^6ewiwq z-~)Bmyqn&Hzg^drz3ep%e6K)xV{g!F^Q^MumjXr(CTBJBJZ4S$-N#x?_}Kc@rXnbo zc_BmXfml1Z&-DPrJgNunUT- zKR53~+^Z}4MD(~TP)Uv6e`^9B6rgDy_Gn?zO2s3F{w;O|tf#<%233;JD%H1UW%~Ek z_#aC%rFJVO_I;!Hk@coU&77%9Umle6Mh$K@=IGZu>DU&f!2PYzG?w@K_d!ZTL?e-S zEE%rV$71P``u!Pr+hc?|;7nUNxAf5AV+mrN-1{C(x%M0DZ`Uk z@#j;uYK4{SP{vwr#j4$z(@&#zi0C^pWA@)``i7G7Y~6^~IB{7T1pcrJwYk>Osa3Q< z%b;kK!aW9x<74Q0NO(-(y}C3#3xza>k;a%|o(AUrXX*#SADH0avPE+XM4n?B!PiGc z_Bkxv%{fCtMqgH(igC45HuC=PxMDARANu%&^UO91(7oQ=+`3{av6~V_XIY9^EpLg= zycnR)EQ{zLGzplTe3flnNZXq8vKDzX^G$ZZEcn?Q+tQ$JJJ&?vN9#WaPO9kumUiGA z)y=!g_>Hya{6Fqo^I!FLmwEsp(wZfu4W7X^A=XWV%$K|0#$mU9E*k_jWhmw8&y^Z;na@4r@9mjvGenLoap2iJ5QHL^eh^a_lGYnxx;qx@ZL1i zdQ&X6v%)OY4S9t;_km+-#dSa{vWL#62YP7B#h zL6{TKTk-W`krcU~huYNQGntP0Os6kfLhFs5o=T#Wu^W*@_P65kcW3@+V=FFF1)z=y z#BVJA^)O#Tq=NbW(OxK9NNeUfb+13Uiqraa-oW{Aga{4u&$tFDR)t90ut?RI>kpGQ znNW5X^w|rG)KS1f~ zBmUR0Or{Z8a7@jofNU5sYl0b2zW>9QU!05m|FQSh0db_u`tT44ga9EB+=C=I!QDde z;O+_T?lwq(gy0$o7TgAc4DJLA?(P=c9fq&7d(Uq6-jlue+&%aA{j+~G(>-)g&%FIs z)l*N^TZJz(D{`Q>rt;DnC%x>Ku{rh>wy%t5)pk=dGU+Cx>1zvJ7_{^_-o1!EXJ zBctMElyd}ML;^eowJJPlF>uhoLpQzdN3-+eemWPbw$6nhcJUHs$7@4K|1bJ)S*>g| zU`U#03bD>Dq8mNo!|d~jXAki1;tAY{sszbb)E&G9s?RW3jcu5a=$BBb_%=sYOU&V6)oncb{=g z-Z?bQ79FYnPtd`OXIxcu)ZTR0Ev`NE$umH`FqrsfH2tA@h2iL)BdeXoIGU_5{J&fC*f`>A*g$DtD}Eq660 z9v&THwkUwRT|bHZF$nJ)dTWb(|13|8Ba~23fU~`s%Y{Add5MRh8q@*6#|8R#zY=3fiw0 z_DZb`yhGS&q84|`U+|x-cxJ=sb|yjWic&$h7rv;E2sDHKYkze~C!sAjzlT~FxTWhB zlq&~&c?&va`|*H1qh(p=ruTY0H8mme%d63P0Oek|xsgDOPTBW&cIpyC>l|hz9~D|g zVRG1XQa;A#4dlMgKmHR1;5z@)(UanOX{acLBFDZpW8e0ga@t|O8wU4nG5(4wey5ML zA8GremKmX3e@X%|zZ-<%*`(%1FPmm;9YIKKL_(ByOR|7YuGkXqDam^HlRq0e3ZJ&N z`Dj2x_-U6^Y0x>qNcYjz22CnTYM~7u70I+p7_2e6pLJcRg;rT#P~; zuO)J!LWm-}=ymlGU+%Xe`Qe@N)7Ti7jzHg%TV&jgQ4mL(LKO|eu&Xs)kK*wdkG%!` z^kM5MwA<%$nbwV8M4$99u|}m71JfdM)Z-a7}tal9R7J zJxhqfRYbwu6rj7@P5m*U8xspP0KY?amhQRq6^fUB%Z80XRe%-Fm;xr3(am^V?-6z9 zIz_$f`cEg6%&UWU^U;+m!`A7pbrh=WdxIwzBzbwW)1izgc!1h?^Q+oGR8bK^c+eeX zH*%IAFQ5dCs`x~?u}W>P&}i576(mRIv<#nkWb>29oUV?loje18U84@dfZ)$lznpx0C^urNp#uFtIt>9CmN&jiH8w{2uh{#p&J(25@r z7@4|ob8eF}cM&T_BkRZu&}!b%7Xdl~!_=tk>GWW@jJy!ePV zn-iIT^}8iR6}34<{4le$B7r5mnxaPP;UZh7U+K6b`$cQR#?H2c-Jkg2g9}?eaJWs23GsxORb2N1g51n;l5AK1)`P z3-usk;_k?D)BEX+m0TzZrRu6o+&Cg=fBncN6$~_UpcpD2J6tzYQsQ7`nu$j5-1~Y* zd{xaRyKID=W{&s3GRt6=qP^MJw#uZ%-%pMr?55!BANYws9K`yxDNV5t#du$O=fxtjWwFQDx(#LYRo;C z9c^kN^!di)Tul9E(`XJIpDs@X%szM1sa{8EIdXdF1(`Uet1_spOT^25Bu*HsA=G4x zuI(`j!8xQOR;9_AU5Ry_$?dxTRXMelyBKg@e`^0MsN(gP8I91}zzG>0i$)}XlMe{P zW@7Se)zCtTpX)B(%V9}M1-tsXxACmQH~4Gs~Fu zVvxh0uE|fq!YCgibN9z+J(b}#s?e6)!y_2_b+{oxeaZ)yY1vBAJ@O9-LEY0tmOb!> zs3i>JDaqy)pFB)RKDyXg0rKs{@@x`0ygSqdqt-W$s{YccnDWnll=z!=sI^?1=Ve5R zI@{haxKUTcl#dmybdzJpHXhy90Qre+r@yt70k_gT$%*}yT4{v2TBK|-!?6(#+=H=@ zGCF~^4l=8zm6IJ^?w|gqq04M$I%=kRcNcWXYr@*pMW8g+v2FKFRQKsR`nvzA45U0X zXTASrSW4YkTU?{H)$Y*d*FmjqL6f)Poa?QOSU%^($ekVh7wesWm|K51`0&au!u>nU zRxbGv?{Xd}H1{dtYXc-CJ00OBqAfzRGCFfkAkz(ZdV<$yvU0I^(B1^fw zIDLuRTYT15Msx(`ZFkl8o2L#p*}W#}=@`?6k9r@R08Ns3ri%-B>|4wjvErs{rE1pQFKt2gp2&;8uUPWLq9HA920DG4&W zJc#0^-dLxLhW5v}&@rwW;jfC>r9hYUexmPDkV4cv->Z3zUtIXNEfU8Ie4Q3NJmeQw zuM2eDhNMLrX_-#2<$lCYPAZwI!h(?(*q4{p|ZBVA=QiAA_&Yfae197f~BCv_qeY8jl@fh$S}k; z?uEduq%&e#3oqGuDX1^bww^@g;H+nGvpl22nGd&R_}99ipYT2fmnj_AGl`eQvMV<> z$kw`E`~Xy`%+;Oj$ex{^*3N3xc^Sg-+~9Co=Zp1%(K{ROWD8D(5-s%7;^Z~H0m{Bw zyVbZACSBL&Yl}Z|a1$1omF7r;hYyIDt4yta5tTW3|HO?ws0R&VmK)FnY+g*^)x#ar zZkDoLOMAqb2XeZj%c(yZ8)`uCWTm@JO;G*Mtv^_H8wPEG2hVD=-$oA!@lJy#3;IZ$L<^lcYe3|eZq0VM4{ z;IEzi3VYCal}d0fwPv*GWnOi78WZ=@zT<0~nBbL_M2hTy2xs-04{k=y%ui2uxuCqr z-FQqEui7=0Y2d%NqYD&|`w3+^>LrJtwOE?1ahXgrq!{i)yNswe;uw>Im$5J zUTUr=^U=VL?%n<9!{lk#b}z2BC(%U`>>p{EtTE|K@ju*Kx|b^znVidWypCT?^=DdF z^i9W8Cz8rpfaiXApw3aaIs~YWBYs}xM7JnGK`nwXHGH zP?YZe(T^TjtN>NHby1>*no_J$bu-e4CzN#Zyi&mAJ5m7a0tP(K8!+HT(ekB3HrBI@ z0waf;%zXy;n$p|1JM1X#hS{}?>zc>*&SqtWt~kdxn#FCdQYm7@cdN{}%^>y0?L>BH z9y*`L^{sxC{vML8?s^Kl$o#|4ve04d(v)@NY3-8DoW$UcGu=kCvi4xU*Skm;kPR{^rc+ATTl!8lXC9aaXNAulZ zXTxA-FNcA?3yf`VFB6Sy!9P)MuMT^(t^@%eh}C9?i0KG;mSKm%0K559@=&mhS+5K5 zKS)o*2rn7|PRUL5ryou_`Js3Pker~u&;5HGzDMEyoB4nRHr8*925=(j6qn5!z+w;) zV=3rqdVW?A#RC0d(~J(fuCnkC8xICvpc%Ft^$ z2RTv1!Iy?>F64sJgQ@?x#n=lK%L9nbA>$U*?=gRM-gqqoa&yAo6x=Uj17Dm2A&$oP zx1cY;aNl1B0A}j@zt8!5eEyyrf6K++I^n<5hvP^~{2as-I#nf=CZ-wF{*Mt3(@x>X zd{}aSEWQCjdnz*G)RpyK&PQ@3CxNc+J*HSSJpJzTV#)_HB6((&iK5pPocnCJ%m(%x z=n4_SL=S}#Fq#p4Xa}`i1Te;}*iv`6x9?BA9a6p7#C>6DtEOiVYq`kCt3*& z!%>mGhyEdJHO1#I%EK=f=FcVzZSH`JYA=~iAl28REB%yu6PIP%`n5yTv=dyN+$)Oq z()LdkpPhf0|Luwl7zP6c%oS+EZq~RDWJ8TSQvY7v9ac~Jha)+@m#{MFs=a@9-GJ-+ zz7(#;k`u$ZW|#U3YTEvt?a2_Bu zoqpvN#T&6s7P8G}Xe);WHv~9jzuiK9jE^BlIIExSUKgdgI`Nm|Y=$*R{`rs=ub0C1 z@p<`{MFx>=dtcuk8HEGQLICJ&;Z>MJJp>5YRND-&Vgrz2Jfc5HzR z8!S?oLM#du%u^FEoaWOs)PSqjE!|s?E~wGf%VPf9AJNr+MqB?k$8bVj@MHD&$6I*x zCJk7``c{SM)kDTpa_03Q?xB5IH>oyOumBf_dhqHT!&wAfQ^*5(z^x0HC~<+m^hqvE2nlP5>MXDbVCClaAQBp;-c$9ljINi zU1Wa{z&VD|T}M(>olR9cQHC$P9O8`573(U^%_LC&-1B0sfnwQ@V8m1h4;LaU{jtSm znH`oFsxPB#QG;Dj4NZJCVyyq^{8vAldop(H3ia@qC^V@nDGQgEv|4rwli-XbqgIb- zqI(VF5Ph(e-1=ftKZ9l!$ptwtMH31Y?e|iVX-~_QyI*=I+NY|L2m};|N3$=Tc zAQ6Gt<oQF2YCaQud1rh;mkl730T~~EeBJALwH$syxaSQ#+ixgBL?=IJY~r9m29wb`!X*Y$ z+0g8f)x@DihUL|@cYIBY;;PM#TqFrQimv0bH4#&m!jA{bYo&EWM@Qaf@qP|UkwBnn zw^bu9c%SaWZ=+I?NQ&WF_T>=7MlA9&!HUrZEgD}zm3n+MW|?l(nP?e1DAUzIr}|u_ zP#Q7PgVJGMQ|=Kxy-52zE)ybqL@_zbaX3+sdsz5umwdSe20huP;qpx7h9oXz8FTFu= zAC72NQ=nr*wiS9JNw=yp#JrA6 zpTfVWwknP>?DnWem<5uZVfJ8axg&P<-C5?^Qj1m@&KwR)k3WUzBQD#Q(S(!KmW9aQ zC7i!+Iu)=T?=aQ*BnFNqa7p4#6&~Rz9@2972NIgZc>iMt-K8~;=|>c^Pr8~?UT6pr z3LB|{B6yhb@$e|_lv_e&1Qih`^rmL-%71BQX@KiPNBY#t9;1Ij^+H?i_O``lWw zxDYm*YR4Ulf{pi-$lBWdNMQ?nco!&=S0sL+8esDKfjm;c`8Z4zIAw~;&CkFTsML5|k7n@M!3|GAhg zS)^4LX&eIW>|vdspZ1E?@nyxk9y%<}U-X$B*e${g2C4j4BXr00HS1$#Qb8NAxew9E zX>qCcsb!xod5TQ*|0ih0yyc}V$< zYw_2Z0a!k3aW$*BxZMnWE5mBSqFBly|J$;0|H^gBS6e5=uPSdr;if>naqQ)dv+*t6 zW}90O31Dq%sP9PqhhRP9Gs~K>(0x=t40(N&^`ZTa4N3&1;!G5C6aOa8zDz(TV3h1t$5vwB`Ve0WzyUci{| zf#f>7)O3@kD5N3aewX92Smdg2ijbz5LDfZ)!_n)i4l>mdg1J~HV;hDOUK)tX7h}_1 z>9m7GPH(d>P_JJIv{xi_?{E-ic>x9 zfFu;Jy&=IHI8*qP|H5hgin8Dbyz#wem9}tU{W>?cq(3+^zv@F3{X%?61V{3y;71j$ zGC7WV8u|_L(Th(=orUMORG#`tyKzWV9rK3|WfVl{1j;>Gbm^EL@uGVXb2@*-p`hYT zOf}t@lNzrZz(d>H_UWBx=XB4TA;W6+zBP{3AX~DVBuw#} zbOYt-yb@#wCrs)cUe#NaFlB3HMQgp)YIQ-YlLJgNs3Wbpp`6<6qpA^Ds)1 zlgdYwV_m2nXAWoqjWx?Y;MmtRt?=J0G-r^lp1cJr_4NoO0}Seht~E<|d9;p|(-!V< zU%yCyF64dXk@&&;#!VwR_-5AjWs6VE+3+d6W00YbTTJEP?k}X2tyisOstWj*@;4lK=4=`0ahxT*2P!3Bg@=o zhDO$y^QhWuxV)VBHS5E`o@JLkrI4#}_9C-0g1OAI8r>i_>`+KKvWpc%iO+06RhS57 zUi(gN82^LqI}WD4jP8NF|`ep#oqZ=hH*z`%x`>% z98cM%8~c`q&OBOf)>pEG$Ii`OVv{FD!1_8z+&=1yfy#aD_MVVTj4pXDiaho~Q+LUr z_Qc+m)6&XIh9vo!eo_Xgo--j{pYuBLfsPRtT#MWSZsL-LckAM#`fj6RF=KB2{^YK+ zg2dA-ue1$!>&Vw8EZy|_oOLC`S#g9f>D%xcP1ecIWw{8>jg}FvO|X#JooXvP78_CGQ}FGz}44Un9NRRyf^~ zySNB~U150z4#T_v-?HH@>1%+6Ni_xU`ARF8qqv#(U|W+@CV_|?ltxfY%nR|YmJo>i z9@;4lAhle?SvK}e{2hh2vHPJ67fudzr zInoZNY3dl9F+@-1)TkUfDV`Rws_uGHoQ6N-C^+4zEl#UDtSh_)6}-!sPM$q8;abLP zPM5oPkwRKO1e*;n-;@EbUFf-R-tqb{+b>hy-@q%6z;g=3w3CF)Vn^DiTIV*LjJ}u!s>qYq6;&=U?{8VK5=_mP2EEa zWE-=*o~JQ{&kloH4%VzmpMK?P_b`TR3E+nrj@wXHSM{z>u7zkdH%J)z#~R@St%@H! z<1wfQX$)P9csVW6IO>Q?YVp3^!P)Y35wL&8s0?z>+jfW$gqZ#g{neNkP1&XUarG=X z`yD9B+j*7aJf4(4Xr2t~{168+G)&1%vZc!z12hnd3ozBg57W?54vMdXac@BY>>n7b zbFU9-Z#<;dyLogA645-^{4b@G{|NvGLHGrPDv@hNADyp)21_muZY)v? zR`X;n>KjgA&V1L7^+|bSK&fZ+4f65CF-Nc2ZVYr& zkVjy02_|#-J-FA5g%PPc%9B46Jti2RbCM^^uevD88M`%4(2kz_!9hfwX4SyJuWLtbeA!ilMq?-`2|lXRAG)KznFvvxeF4Btw#ZF>pnS zkyD~1VAdDv&jUa5YUPpYwTFqor-kk-Ez`9q4OAg|T415`*e6Q3Z!F;Zc}@$p$%pkMW zA1!zq2JEZ!g%t)I`pkJ7iL;<{wbnIm4mtPQYTYJqt=p7ymseYBirlu;tge~q`}6t> z^&ls`H^mbP8U9^iT;4XZY7X|&QIZ15bS%@0OCsn&V?cYrcdu-3P>W?vJK`B0LNs1;AJ;mBJ_UKdyp%1<)#Ig!y~c;BPn0P+ zS?aaJ(0fZ2{x2HJharn{OkEyK?6y2saO2iUBk~B|m?PFu8SpvZ|8XGnhUK)K_hr)YPvS^T#Brg^7hj+9_?yT=JT3rhO@%;;}r% zz>cb2I#DXBZox)i4Yg|@t9Gn_T;(Hw9h1WPSnuzMF>SuY1e4T`Qk9TAf zM_(Fy7&GD8&3Z#I-}{%bBvHvs>Fuuq{&nQzAFTC1toFb26$nxUoV@pfpThFUK2y zMLvpcQDI2hhRQ0GPcgkLQgN@JQVr`>&n$PepSuZ+fgP&z<&ty0;_ivP*f`$1RCNp) zn4vr%GI@|QFgh!sK=?vycjXIUe>zUEHBDc7J5^r|l+f+cmLO}gyL&PX?%X(6XW=^x zyqT9F?S8H!#-75~_~td$k|=4*%`J$huVBilg|5DQ{p?XF1lF}}4($bMeDSfMC&&sk zoCIRmD7u+4bYErg9^KGn zxxCJ@AH`OJJs~{?W=gmMkS2)!y)92i{!MBkDN}-VaNh54ebF_E3xv2 zOq(DaRE=^aUKec_FEIulvHEv18ooYPscZBdiEF?m)t z_8aIQL~ytej3jk~{CNC@h?7~&(klbj5?_Q-kCfGZzMp0<`82JF#LZLu^qn*3`wAOg zXW?wCb`QgKQeAT^w-d>QVFu&D6X_j3p{KRer*@Q4s8(UZ^~$K%y_IAUNG}JF3~cPs zX6syVhQ--1sZCcx{ps?)2@_!`sxj@axuhx8WUS#m^`GVvXsHPX z9nBMfJI%mb5isKhuY->3(6dHBwvX=u;L{9n1+xIkR^%e_;;e%d=(K%90RS%?AMVYc zFzEb9zxx&AaKCHKe;R;;6Q;GNRnKzO>v^+qrWxpCYfmT9s}-l2VXCaUl2USAF9?xt zr!E$D1xeO?xZ)hjV~N!-yhoACwqWl<(;DVlV8NyqjJfb8#KmKU7>%=tnL6|7ia&YbIHdAf&mEqA!=SaB)Y1Bb5C8w>~*D zdVcHoe0J?BIFwUw35D)mAM2EY>$uo8Sz(d*+nZ{a!R7DQCuW7OCEpES5cH#%kMJio zjDWE}wZ_V&B;|E`k&3Lo3SA=Fww(_agSS4X-8}>vB z0kzZ5e28FdJ90{8gU1&(C&*uLN(?;TVB%834bKGk2en;d4e0bReK9ljldSueLjG_c z4-xeFsgIcOjt~KkrfzEXG_*b-6k3QXX}S=gAj#hej}^JW5A^BFSG<%QO(#rV%zaN3)W`MJ}0j zpE6P&(YDd?(L6raaj&u7d5+jHb4%l$BgylAko@e5m9dvpxT0y?4nrzQIBKZ3D~EZLHXqOMr3PxwOU>*E+Y z`lR>H;ukO89(cuFYB^t3)15oBtHfl)@(Z`=jR=D8LKZeRO8T#!7swr@zvSJY*BmNT zp%)z+x<1njS_#**i1U6~so(8ldFlD)j<>1$sf}EFS%MU^D#9}^veQrM8HkD^@DbwX zgAFRRl`_wt!3olT<>f41)}G%zxdqhkdu5XIBGCjRWC|3}5A-MY(KPx?-#m;kZ zM&?OjyT8Bx#c?GMgFU;J(s`&LEMKhS}Sz<1ER~F(HnoWZntbSfqRCrB+r{_ z-9qGJ@#vYmzR6*~$9+>L>~It5;9~yX&davHh$%5gA2~|BUHIZN1#-LhL9txA58s*m ze*KjB<@m?!&BWO3EY8I2epQZd@M5`L^xpdZXYM|e2=GHSXpbaPTE9%y4{KdG4{J?{ z!rP$A#TDT>_2UzzKnE3sh>lZ;fXo5AB`;xk%;)d5o+DL0Tgw_D*!@bVt|a{@zJbZFZEI#hmnV z>C;)-gR_4D1^&ig<=kP0)_`fPuoa@;*DzvJAvyAEEZTnif-xANbu$XY%SyBXZ=)E7 zn1|Sb6uBX+Z4abUDyL;u10*dPP#vIpI3%85FmVTFap^VHMfhcvSnBg88b^`1eRNvj z9_0fZg;DQ@^iNe49`>w(B4^r;?2*1`SPCy+|HK^pJDuw9pM{9@Ll)iWwg5XIq0fOF zp43Z%@o@QH?}ojJqv~!u?x=UKB3}PAeo9%f*KvR*wJ#2xO``N>0V@K8WQ`ly3v%)&}Fp+w*-K#I?T#JtQ&ScI0(is<9H39d@eNht)b|Ptny^ zWH5{tV%$rwvQY1N>&yt6jYU9(FTWf>N*L7jH@lnj&XNsHc3sT3=s{J*qv?$SdQ$T@ zZ)|JT?&Ep3^4YdN4H=nZgqB3Nj8{G*esHSgB}x(IMKJN4Asy%jOW#PlH}ibqx^-2M zyAuJvPi+q!;&J18=a-mV+MWM^X2@3ked4)!R(+3SJvzv2n)c1_^-*f3Fft{eOUf6Y z6sd2#P4dWu?VTgN54o9jVILa0s=TH+kFy%@EvqZvO>GGA;(^7=q9^MQks@K z^_X_+7ddP^WJjBMGIS}?K}bkt`Hh{py2d z1X!=-Q>qL1c#G%5Pwy8UGOl6hV zo-M2xFrW^$bJ@M-=Db#wnCKj(eLz0ioqs?<6njKnVJw(hwuv+LQmJN8 zrdd~9PHLkD(hzlh<9Xe45;*-JJ%T8V#v(<*&e{0gyfR=*$^Km)`Y#^&=-knE+&(y? zpJNs1b}U&-%rhSI6v#OAxZ8N`ArAYN_AXC~<9!+REyw~$sTH^d!LDyXC*NS>Kxr+n zThPtLEof^j77NOK6AHe#IH%ye(t~|Ey9J%C--3$Otk$kxpfJT#y7hOHF9t0t4hm=S zIO*?k&$_F(9atATq@C;UDV7D(SU;XD<#vEp@)SL|cTz|!-sV0R;O;nm&UW>2x@y@1 zrxKmO#w?1w)G*q|P^rp*g75z1L3X?y#8vi878=wSXMl%X$0!sjZ7ebCp@I=ftvyiGf^u`P15Avayg;ay{k`1^PPQO^_w>wS}F4sGca$2G^G zf>^WanpDa4p@pht65|-$G4J5$KcIrRl)5&)d1zPf*C}q|a>ga5WaO|9qS?nqkx8n9 zYTp`Ja)9u)ANi_5*xu5gXw8aoQ<)WGQbzFJ0fjtdZg)5$T1f=0t{-fP*iq`*1bB3lRKR@5{GNYPl)Nf?Y*qH!5%HN$ldK8N<$RwP&%lB5Y z>zyD_Req|%AF+U;aA|3+Z+F-w(!u;IF+2$0wkZz@-Va?^2*XwNl(!e-IaQCnRxefE z;H<21B&GOcUwg^dDM7>7P-Vwt+G(-RIC1S_Iy)3ybk=Uf?~IN4yC@Uu|DwS}taxAC zpAH!zpBg(H+QGJFu#OF}x8hbhjC}>9s}Rcp^*deT)>Sz}oy-h17axbQd|uuzX@8c7 zD@eNxI_cwgE7YWh&#paa$Z&hjhi0K4ul9@q+LspjtSW`79Xo8NZbv&JEy-R6!*yQa zy=)kqg}(K2IfugLlP6ctg@ko{cBjuI<)>ZX+AR{&eR!;R+s6~VDpEpo%qm?7Ov&3f z*Ko|N+LsnkpQ*yVqp-Dnq`gvFH&jUqPZ66d~s$>vm`WEe$1&V?geQH&sr-I@irl-sGWhut)GUxy}9 zXz1SWue<=q&#vlQ$Q!UuGrQJ?ZJp#pDOtPVgF-)pMN~r+bp7^0(N3ndq*(?fJqqbD zewl&4q~%Jw@4dNjVU7$uLUd!8 z@#6-CU?_Dh^Gjc;$u=_8FSGr9}ZzJ05^wRia_VkQYnKna=b+)ng z&Wy%KkTsV|(|Xn`1)=-Dq@r&%;r?P7fAc9p3u`$E6_QvP=MwC9WvJ&((X$+s&n$-H z^ML^SVmK!;_Riy{V_S#dD8ovco_t>7JlriMj8(nV^#?2!35eZHE-bI!k#ExGr$nb@@E4k zDn1nYJ7S`hGF3ukpCm=A)I@nA z^X_u-W-FQ%0D(-}_U}$4TL@9Gyo0oaxZPL{1=ol+loJRa_IDpX&LP%k!17u5AB!tZ zqCzsmN;LllL_mE5e#mtGF+B6H?BD;+{%qp_>)3ZluhQ$hzO&dP)>byVRyz%Cxi{hF zfH|zjwB87-XYOB@F-ILv{|r=NKAFG710Tu=wuf)myTAfTucPG-a=zBW3};U{sS5>v ze-om`RYV4r*e&uNeAc(&j4<0zgl|m@uc$mAYYF zu)bgkSU)UdC%0#-tioG)Hr(<^ER;OG<9hYD~gwqZWd6;j6~YQ=_+~I?RCEU-;N>VK$>~SR9pKe0$n)^ zn^y;X?+*)owJ&_#5j*kt#n*+1+f2;eXH%jEAw#;%5txl8rHS4t4VoN+1gj*{dHuj}{^% zkcAi(nGJ3dctRM;1N>@V3`Qx(@;yV!rO49B*Az=Y49%F_s8~MZ_*^LEk%Ve^mC_ih z^Zzm{@h5cmZ_11Zn9j*ik%n84EaAn_9hFjK1n-!b?VznzXZDI%&htjW^QSVSR>$!` z8IUfRQ8T?-8dWngr)Yf1<)}tl)SOHdBf7!Fh~Yz9S9Wv4PpcQ4C=HBr1;>S&cFx?1 zcFsncv~6v9?_Ru}Gh`U-ILZI7k;ngRDgNT|U*@jAJ5@>@M?x)Wd651dwXtgE_h+87 zi6$gGL?h$**N$L+{pqMN#T?h9XL+waZcl|M-GY$GQa>$>s3z(1nPdiwQuw{X-+Yr- zR7ocz;~weraV^PXO3%IQT8S8pG+Au))@#7NQKU1|W^Ni0Mtv?QRptSUd~M-$E#xM5 zLM$kiXWb+TZP-G~E^BX@yLLCP=P9l|;N2|XO{b;l%Oc7HTtf&ul_O$o2FjL_!Q(qB z-9jDXHDeAmVzfTut-@>irF5>5O((}L;8;!>gp}->ZZWy~cO?uT^Y1DU= zCK-=A1w(N~LYAMJ*2c1j(xTZ&$IDf_Vba{kG$7;r+8iYB;j31_t375_Czzpa9{-+B ztGUwkoeL*Du5aX)hSjnKic>Z2n0r9TKznH>?!(Zdf@h+KEhSy_&leVeb#K`kLxb9r z2gymQl|woc^OL=X6mB~?FEH=TR=h*R%hRnUJ19R$p|SR~$kx){vSo8&coI=k{z=~Z zxN6a0Jvs`mkDJ_whleh8gip&Nr{6jCbz`+(H>qWHvGjB|ju|XJoLDiSl#0n?#h!1NF}fuMWls2tc#xpA8SZqlrQZpX5|aA`!?8;*%`# z5#%kAKI(ntSX?G&VqoD}v;)p--@;PAuW~=?4Xfb-GpXa*k`GTJ9Yrevq#c^p>g9A_ zoT4n3dEGF-NX78w5!45jbz-dk|EJ`HKT`<{!gw}Kmx>RS0R?rrK_k436seg5T`7g7R=W)!nV}}&jD7_H{V|DfLmO#kjG!~ak+x%v)`2Hf2U;s z#sB}0(Bu!FiTz7Xz_<_79I58n^J{nlX#=jRUK)N%Cb^XU=@oLrjT_RrLJWIZ!e^2*jUv5Hg6@f4jm1a& zLHn1e@n-)zWvPcxcw2G_RgJXhYu-Eu{;#I(3=8>_-Phr!=S0e`|1KJ&|!ndbDW^Jrj z8`E|uC(QS>@oW{`0ue=3J-GKNlp@4Y84rFxXHYa^`Ci)`Z3n{vw#GF|F0DX^@f$h= zE&+3guoDr5{i4dEd15J;m%!BN5Z73nRd?sdF~gYh1kl2V5i9(r{wKA;G;#Le{m}W% zp)FjV#quz%E%fbUztPDdE||W08Eup#SUAL`@B<%GKHf2IZC!=O2Wt{5jhGT#(AP3* zUG7#f|0KJ_V_ItXH;wz;JaZXtIN@oVcJoqCX7gw;g{GfJ+!LE?WE8rvi`D_Gm`u*O zzj6bR+gKAg#TCWp*P!{C&j94vN|ZPau-JzC$uUu^A9qY~C?jg>JK?{pk1KL8$pSUqrMVhaRTyY(4|r~lteGt zdd`slMr}*pSS3A}=Ko|FR?{E-;Qvk5>wko%?tIDc1Puv!b|Wj*JZ!yC>^Rbj+>j|D z(_u5o@XI+UdPx$qioOcYTbz#iSUCxhf}m)Aof{tt=7ilaBrrM*4bXNU@yeI<#7L9+WVf0 zZuW>f1L5YY#fU>O-c3-{K|6kk29%2$C93_|V#k>OT1&mepnI=}&?Q}p{svOuEP1MyYa^zs~q=8a10 zm9I2!@3EB+ad&P>J@AG)WGAlYR4xJYfQgX7y66mxmh}+(`;jNs>M{k z>TNUkW_p;|eLVI@f;Mw>V7QFcd%gfXKnV2lQVp-%oIeI~^15On=Cp34M}n=_!E1V7 z8%d8?em|+4Av00S$!+1#kh{mj-yl^%NkK*wGW%u9>jAj^GIlL;5oK#fz%X!=iODeR zQ>+6yu(0}7;<^*WMrVI5n=K=sVQXF#BXG^bQLnUCTO65^8dOBpiIh}KIj*!+PxAj! z_a0zPrCZc62#N(n6r>6WC`|;B-XbDh2rYo2iGVcey+-MT-lg{%iqfSjy-0^39qGM8 zAVB6nICt)4?wz@J=9d5aKA(r@3;-6aDikPVHmt~62M ze4`%x=6W|(?BY1xXQ>z?`uOgs`FnVGMPJFhb;5dy)1MQOG-xLWl$^&uXh|0>lnl%c zrX+q3(#I0C@b}13uDtu@vry7BMXJp#o2qP=6jZBdWS>#PjmXQyUZ5kiV}yR;C}X1A z@^*EQVB@HE49Qpf@^wr&R^oiryb~4~R!Mjhmi#5hE>S$MQb8lG9NiC)5Sdp8VlFgH z33EG6t5aOqohuZZ{zZ0X23(HZ7r2h-R8?@30+f4}TOpi`(+UFs&Yzxj|Y<5pX$zN0yVZx>FA zWgyOMc2``rMb;>Ea$H;Vdi%z0uBeJzm9%#y9={7rio|a1nQ?;(`YYOzT|k6lZ#5sk zG#un198{_5@P`@^?}5dl+@|N3G|O^?3QOdX8t0Hm{o+VW;3I91gK35dD7#Lk z5^XN6$K@3Qtf-eNp^{HomZDjEZ(83p4`A2Z&p+V&mM$*MbyM`NG%4O5_nk-o?o$4} zf)g3_uX=iFAAU92{14hHzf%xAO98ai~j zXhU&11u+eWyXb61!nz4JA9P&Mu0ZLNpRBMt$rX%SJ4h@pPbNQ_u)s~vp#*>LPfu_? z_LU$nd|yF+Ke&cC`2*ag6PD+mIVC`&2La|3K(<9M3ScUr?=OZ5o)y`Z z2xOF1G3rb`Q9c}qLXlkLr)v4`s|ZfSdbx_C3DZkp1#dwnZ61luc8HsVoVeGfrf{Ci_m1PWFB@3(sa)6kQX`Vxa z`c9HEkDxJDI|32g9Gm=vwY#}3QA-l`>;IQPPOX)% z62?EMw%P3%d%v3`r^(23x-_<6ET8#8Q2w@d1>lGMXU3pko=9t9um%S@cX^$}URzb8 za$DS1CfLPl;4R2e-0Je^Z=cN@#wG9itIXODN>cmUWAhit^*r^|=r7Fg zny0An%_nzjEya5lFfU$DwwpQ8aVLgI|9Rc%%k8{@+ClcT^ltR1kcC@n)vl` z@NBnoa=Dy7zA3Of;f>{N*IktLVxrmDE@xEKh8LYXxO ze4O!$F%i8s|@fO<7@SBh3U~w|B-MDBX{Ni{@5S#MnqxUcVD@QlHXY7b`tCy9)>| zA0)R0n*^tZ4VJ*LAn2{OslUN7p_e?0EvAqB{TxcffpIc>J54ybu{wy3l{x!UT<=)( z?RY(U+Lw6PYWB^0?I%V!X-MuIE~6AqG2tc@=Mm4r!3u@64({}YC({?C8L;r6_96Ki ztE$CvxHeC>I(mC>SIea`$T~jY276Io!6i}`s2!NlT%x{P{;@uKw0j1Ubjz5oJ8!$# zf`|j((yG@GkDlA2;lsFacST;88F#S>Z<_ku*sFX&ucR6|lT^aJrgsC+=m!7h0EB9* z*P7Wrh-}H8)aodD80vN7YrNlh5SRq&PNCuDnSX1tB3X0E)3mPr&tm~ph%c1OK_ z3>}G-%+1PagN(&G!pxV4#T`>}+tHu&jA^3G%yKlvuIeY|6muv>w137az|!mcoBHhk zM9xa^t`B9A-Wf5^iYr^Ou}gT^lGf7`3AdyTDj29JyL%A~dbgj=#A+jH(Uv=)y67_n z2U;JTUwLKpZfNE@R#UI;WsO7MKM5m~zGiE6YEmm_VSO++iywpv-8_84p3Mb= zC??{4Zo5!X%NlRnA^sE zhr}8lZWUgoXM(2S{gBxNvMASN=8MAH;ytA3M)0Va8S|`}2lnO63UvGl^A>Wb8mksA^(vh;S@rRw*7Q^WKG21UWH~9Gr61$?z7LlDIMML!u7PZY1sWZ0eUU>k2C6 zC8u#4lp!q4uGwlk^IC0({EgSAQN-9IjroU43$|~QZ)-ROl6GSTg0*621%)yv_Sy=S zUwn*zKFodXn!oEvfw{hq^y9>}d{K};N$;5B%y;uNo>5ZYf~-j%IqC%ObpG!#_7akc z&3cDvJ;#F0qeCIdK!5OceG(0ia!kaVK;B3DeC;XMpqIk3!5J&g-G##v9nEQeVkRBo zvJbq=gT7u?xWLbdmvU!?=GGDtEs|<+z^otLvV#=td>x7PoyrZ_N{$QU471!k?-0wq z#sWz}h=ShYI-|^6(7c*3S#q;%Qxg2k4!HVucxBQv1bR|PUMEHErUwOPYkNaxUStD; zqdF1{(b$f-vt?MOQ->f44>Jw%iloEUIJtPuF4oAMd-~X!K`I2DrMDYz+Ek=;-8ckE zI<4C>CLNlh1RQIm#TZBWM%nr4Sc6)b-&H%{?lqHQIQkajRgneLbrcH)M#zC@D@o6u zPd_MT1)MywzA2?sRwXDB2JG1;4Qn~F2iKcr2XOhZxFt@!+EG#(8RvK}Xul(=sel^? zejBcH{hNuJDn-!VC|u}+n4um1MMd?Z3s0bGg3{kS-vv7rVg*uBY;e`zHUci|*4k*E z3CL{g7?z&-LF`V0KYk9m|0PbcP$`12V4uoPgim#K+k&zyN@>xXKxY!)qST5iY@x$GR#lLrEh)%_@QTc~3rK)~&yGs2J>hp0^3RN%q)knpj=R!1Ze9gwC3Ph{k4k}2b>}iS3nmnq8 z&7!BeMgmVK9lM>-SEndyFn71=>XKi77l;mbHFGky-kD07jdfSu^k#0KPY+02 zwLg5gZPk>QY#0{)nAp0+(6V9uo_#{p%Ht(%sfPbOl?v{IO?xfMMJt?oHF=_937bv-0x}do#I#T~4!Ol91r3i{1-qlwY zL?cxb{^-tLIVsw>q`vzLUA1n2WcTIkIZybyFY^^Jx$0&a$2fCmde@Gl#RGXcdKTA% zP2X8&8t`58IH`U@4swX-!g^MB>*H{G-{RJoR#OZ*qD!={H9rvC<=K4pE{i>y4#bcjzfxU|+I_Yc5^l*SI5D?~=dYnEFt`aY z9{9?02TEUL{`f1wuGx)pGIwrOd2%^u{9>7p{45hJ)2>#@T~e68OaMZo(R@05GH~2x zpjG?9?t zu3uVdl(F7MpH2w%C|%dGyQXXK7@Gy4SOS}HN?fy-33aw^&S4r~Q8u#1<^c9V z^uT}pfxVU{?qqK8BZ|cC^ou+Ev+$i$)is?}(ux3voofO9_XsUT!zv!}Tk}oy@Xc~B zmzS)PmZPMNd7@@DWZ%2S4qv+Stc6?yZ=*wg4xkgT;gQUvR{V1&80`B;(>lJtj4j^A zPhh3O59{3$uqDRU{-p#A9DiSN@Q*;TfA&4hq5vCDQI03Ecb1XVu5t#)Iz4F>Lp&-# z;V?C4In`ZOoLkWh&~Cr*78h(S10y9uCsliEJoy?EWRb0ON1;hME^aKfBmt6w;<@Wj zLb@v~IH@s+pJ{vM$Fpy!XFnp?@YUejU{gUs3c@uBSKLa*VrJ8}X!8gVJjLv~cD{I8(&toAI6& z_XDiC-M6Nx+u8*#cwYTuiraRRMfVYxqsi8FubGzJXK^UOTHlrUhAl};6{b1m_0YSt zLR9EE`d*_q(NWmrv2Om3&I-OekD_$jyIEbDb93dsSI!Nd26A@oFJ0q3( zWA<40o2Ss5x3Ra}S1pZ$Gs$w-#m)kWCp;WHDN*b|#Vs7WazB$YP4-%H@dRtdqvWX8 zyrj~Y@+pHV$EqTTNXlN`e%jP>m4bN*bjuA8%J8bQjX>c^L-VMuQR-UjjhlNS5gC}}b^3-XAsk-1PoT&hgB}MD$ zAwV%`$*rNx60+A8vxtL%vKJwXSETNT|B?Z9`K2vHe$SY#I07*OVJ`Jn(7r}kAM_uS zq0|?uzMOq)!-n6iVmQwlxgY<&k$ZtCNfL@<2$1$d1Cd*~<@2nhDtbZ_nAVVFO>QN|PCj?<{u`r+e*}D< z`yRnFZW>qrWj^{#Kv5)+ciN5BG%xOq@3Dw6l;kYPDE(Q~2_=`Q%JL-=D5f*f=6(Sx zoBgVCTx(zN0os%Iavfz!mag#=^^D4Q?dO$GUc1r zRMPS_p{2A^fehYtt0Ak9|EyN>FCZwg@1d{y6s-04wLb)eUUZ^xC_ zf=}QTxreQa^#hsx>!~FJT%WGSlzjA(2sh)W{5C)CfqnFTFUNM`4tvdGgw6vSSvxb~ zQbh*WY3T(6zgD5NqM>G6=z(|2*bCDtv&6`cD-;)=y{_ZE=>65_863hK_>jE&(a3e1 zCsZWosH*>@%uk#$?YS&1em_F>Rk)I>fxmpx%kM+0*zELN zi4%0!GHbYwY+>Ao@%chT0mydoyOmq2rH26uHZK~Beqv_mA(pqRO@Nx^dfma+X&mVZ%PZ7N-%XZwby%{Tq3+iBY8 z&IgQcr8O;6y~jfWwYs+Np#6*SPJ%ySS=EYLsd?psSBZyy!isg!S*UUt`?8lzHZo#nEEA#V1pFo zV=9urj6|tH6EkarH_JLX87Sqi?|cTBp$Q6j7Uo;pO;ww4J2&?w@tkV}e65!FeQS-6 z!>3Ot+IIr=lhP_r?Yqqcn*;K!P~{3F4o_CtcA(siODx9x39nmMw@AO zYl?ynl-S^1mAAq#Gu*~`sIW-RPqG+StSy;8bw541g00D8(Lv|2)kJbD7q%+W9Q2X}d5dXyc016N;Xblm>xU~#owcSw!fQsu$$Ne2``J~(GX>7$(%FRsUw z%PQ}Ua? zP5&9a4LjRp753&q*2{Z3``2N6w_bDy5eEimzL38xoSPCViic~)?(h@={lkE;;k)`=-P@|V>RZU$PcH~%9B?M*j`RL_!R1A`V>>xzlqcaJ#3ULil~(N|J-rKP$%nHwyEfxRwaw{U z#bK?@)*Zs`?EpiUtH~zDxSn#mua0?67A@jY2ZpB!v-QpkCsOQc%>q>`;sl4a?=_DM z=XV_v4-dLcwS>gJtIw(FTr8ZY1)9TM>QH3HD6%$ZrHIUb(>&vo(U&%*H4XBEE-b~g zzs=JBD+%GhBN+TA{8HkZ*>sUP^sI*=GG2-!tMKuNA$RR$WU9Cz~lkb(NSk_oAE1RaN$9GObcE&5n|{cvYCn<{QhlpatF zFe|Mq0?FVPmS8MVFg2pk{XgNmdGx=uyo94ESyyT_nLd^#?ET-1q{yl7xND0`$* zX9e3*RB$Z{Zpqi^oPU1hINOJM2q!SaO6IzRX`S}YrvW~R461u2&q|u-zP68jJjnE2 zARxy)OooQl!;EMSXO6%FWoozpTZD!8*>@Hhg;ER?Fn?6UUG()Shm~snL-Dfyl3hxI za6$+-@n&a#wUrE|2ZxuT+Ie zPrPZpXPBb09meUzhVmT;^{1o&>PB$|AY;lm$et29nHeD71rkXsSMJX4;!Ww)2)nIZ zWmZ{)E+JRZCl^UAe^AsCsX~YY7~Vhz=ZNIeBBT)<-1maG`Jf9IuUV&aHh}_8Q!y~~ zk?kSidZ4QQ9szW;Qmycvz1SSyq#9_y_Jb`wt)!d0DRUD;IRY^4B6ij=;M8ywmkW8M zqPX*=)N}a;_Aig6B>C?c8zH=_$wKY zishui7ayG8xBtvz);6KPwPQ?&SI?jR`{LpM#g+dfYB&%M`|R&$^{HLiS?=vmlq8_e z-Ka16DnLc#DgKuZGtgC*R~U#BglPoZ_G@kd8lDlDvXcv$9!_jiu7=deR`!YDCHy`53OdIS4>0?m){Gdq^WGu*wjBfZrQsVqUQaT#6 z{V^%`_tn7PJO6KpxBSq}KI>sZd;mtcMBe@@P%PHIQdzryzd~~7{^@m-0My>ts^jU( zPgrr!2$1hZROvs?DFb3R?`H#p)2f;4iyJ)Md!jb)fQlfwuSP|wDlIA-P2HHoTV6$l z9&nTKlOvQc=#hIEh9ey`MNB#!tg0~2HacWD{ZwRzug=z}$6akzQ7M<@b8uQR2c>67 z)p-9%Vs)CC$ef1Og_EXPea|5|&K-blA|x4lT?HLHbkV3C00a4nugi}#CIo33Dne>W zsYijt;jDlHh~W9%q4MFy2c6m;rQ_UW95+vD?N7_q4aHACZCPF4)Z9;-InC$QC|o@m z23N+in)u~px045TB!5N^uo|^XGfTc!ayZKkQm#f%&d3@^tHFUo{U$k} zhB}kYtecUm;t+7CW5I|PskW#y-Vssz2vh;ooN~_hkbilsbc2A67^opSZUFhBp6Hh^ zC(DCGVO?iZu~qyKGrf#zhdp4KR|ZsCd{|*h`xNv`Nc~gCUm=3u1_-~bGM0td%*j>W zPJ`^vuM^*yrM$iHF1#rL3yYi~^dd;LuV_y&qhgSjNXU;NC|W#>L98!oFiQ6eIqn`8 z_EY#+#a3{&T?WiV>?L%trN3xXL2A3uL7+wcK+!WA>z(JaMC|uFHtHXb4TAimZ+`u_ zprRU?(|LKw&-n74r=Cy9B2|6-Q&+Uak}p`YfNp3w4HH zoz|x+D$3M=hcEa}oZ50lao_t9SmRErP&a}5HSn6{1giw?r;9UdQ%%V-2F-}4IJtzk z+=gk8h`|FC*j$RtXl#?-mdguJUke|)C&r!nAbnH99q70D<^A!9@kgSChLxkFRdRgVKAaV-wuQ+~b;47qP?7%f zNSe6)frY0Jc5f7eRaipcuC!B%Nt}C_Uf#qgm#W&lcWGc}%vj*bCtz98>Qe>wUb6m2 z(f?l-%-K<;H-Ru6M`2(Vb9aR`{&u~cI}#RL|E@F8we&Q5rxdeLbf`&X7Uf&Z6-W_o z@!lU#f~G)n$UQ2b+CN6ig{32H1i%E6XxA3@j%F7-lGj6@LtB2rvKB2JGNjVCBc8VA zWHmM^Br#?QwVl#g-O|etqY4Zfq*9(eoin4c>KKf`potUgj*Is5R+`B;R#=65x5~7n z7}<~^Lx2J@mQ0DB-GN5XS6+$Fh@!kWxB)hbuxcD0T*zshOYf%4rakHwr=YOm-Lf<_ z2!Zw%$KLn*Hcln6_~;V`;Dlez=3=*aEKb|V`~{H!`IKHU$Nw-V7`TDj8O0V`=acK| zEz!p+xG$&sJw$OW#pP&kNiG0IaaS009)k~vUa~qoxr(%Xlwme8U#E?Fz+5Y zZ6nU*!A}!qJE7VSm92;AfIv0f-IQ+x;7_c77EW=APTU8o&q`$HKj?q;SS|FNpH|WE zxwBsj!r{G`HsEE{8PKI)A4V&GG0J$WZ^dA);8L89CAhb#<|>+Qa_xKKH7OUH)66WW zmbUhjuQ+2*`#nA?N1}LjkQWrVdeIt9NZhkIuY^zCg2m z?{7oAcq%H&V`AcVdgwC4tDbwj)D3{W&%E{N2+Sw6PO=bJtRab*$V}J)n==S9gx{s) z9TMXKJyrn(dw(3yzKl{Bv->Y9yj+fLHU^*P7?Nh1fu?|%3WdXNhTP7_p>u_bk zn>^Dy$FP_qx0dm|!Vju3=9uJplszRdWWmUHIOnJ-^akQxxv2 zGGCr!Jmgy4>9|~26?|K9(9O-{%6dk{8;*|Ts>al`nNNR2+UXBSGHI9TnLR#?c(Sd8 z4SX)ASwT0!HkD3RWb1*}&%mevj|=;PUpBR6#j)(`ZVs5Qn{&$v7&WO?)p-Fv3oG59 zVr=N&UUx1|e@n>7x2bhI+E+q^w0Hl$hMdM)TpVt!M_Gxcgwl%1$_s)v0}_^ zniVMh@&h}%68i~m&_~Eq?-n{ zw-^P}L~7hj?tWQFX1r;B=ZLuY?PnkZ(kalB(CiCL9@X*7Df4e=?#vrT@968l93b^! zJ%qy`Xk{u}-9a@7FU&4X!mOqLFg+bpgUm#zUW~haT#WBVX!0&HokUplO9oyl$?G{M zzZjguN{a&duU(i`BKL@&u=-<;irR^aHt#Y|IFXR>Q>FXd$u)RV)H)#qmzC73u;nZr z#@vstCOmO}TF(q9PzNmU=Xcmz3voUOD@Q7anySl2jjXkjnzihum0HltR*Fnrc`5AQhtoz|Qz#TVTyR#wqpql?n-#c^bCS_id(0A!eI<$3G0 zWpl}dSBx^sJnbW}i?3x@jdj72VTW`9OD%okB)tk}@dkomZ7H+9y6N4*5V)s{;Z}ur z7cfCQy@m#ENh3Jt*W(&)J5supCfn5thtw(~?A4NAvrz>sXtX!^!QP`XYm0dfqwnvs zC2vT9!cc`K5Ca*LAj75OBM_*^4%v5mU_J~ez7`HVIhQ@3@8@G@*n}Y?sZIetd=Gtr zt%OzFT<#8RasKGW0JI6pjJ@XEk5u+bS*MHm!3p@|9k)MF!v2jq>HnE9^OvxMqdN{N zfeBbtI5UqBG+Me)jILxIV_;kI0eNG~>^;LhJw@8HMkyZG38Ad_>hW^D4}cJ!6j^JMUdU8P0EgPLURJ#mopg=i;A?HK)Xi-u~#t5x?&6!>B!3| zcLw!gk{<TX69=Gj)s*SFWxZ#l+Oiu0?L-q6OcRtaaDfT}$xBqso!EZb7@$cCK+ z$gf648s(a^&6Oplh3dxaqjC^DarXM$FLMX|d+Dj9>TQ!SLl;Scpqi_aughPV%mCa6 ziOU%XtN`!P)|=OZR@Y1}Ddj_aE@#RVJ)RFQjoG)GW7td|mtjgPXF9umScVc;N28U} zq;!0Ps%S8^khBtn49TnS+_pfXWw451*r^+O-6Cr<2qQM^9im7=ZfHomwuO{1FE#cK zeJY@<@h^NMad|;Xu&8pMq?4kgQADPDdzrmoXR&0paQo}`jPgy)Ycl{~wY)p`X`atG zE)c~%v9vTE^wPJ{c$!whu&)CLQaL&*yQ*<0^C#9X%d7GL{Q+RH{~5^$k~!*gYPhTW z=TA$qdwvHn{ZH8VzXSIG(D{$maNxP?xI|@D_9Bs9BtjTGWOyXcrOR!51uBs-4=}r_ z^4z3sa%j-*&WYOeJ>pEOHh${TsG9)+C6CUuf-bUrl)%sM5FnBkm%jJ?TwNuv3qMp! zNt`wWnU468T~%G2{gGX1Tzi#C@@i%%6?@Rvziu@+O8a*?GykH?^Y?l7#UDmw`_tEc zcngax!0Pk#)clo!gRtVM?A#z{Z6p;!vdS&)TR0sKv3XGItQ>86 zsEb`T=qpa}se5VBaa&VjE5QrpWX=UQTX!(}6i>#K9%3QMX+ z9vGN;XX{m+*^1J?5kneswCbGUN-)C6Baspkfr>*er2t=5q|`{LlOSr3vrY{ zad#>MpA||2P2n9CcJ@>*#M(8YUlv`pbK;dOSsAG){^rN#to%Jr)=5?BJ)-C-bEHzF zNivy4|jdf^jY~0aqSDZ!`UEDpQ{Rf z<|wwk=|bZ?jr!nj`x6#0{h9zHSuTeT?41NwG4C`o+$^=uRntxxV6Ed+Qj=dA5(F}+ z=YM}2oSowooGC))6c`W9qqKAPFjWyuQ;MHzV_Vj1dPAd3;)djr~08Ch%+TPYe7*w zkvFf48m{@cW%P%aqxjH`-HhP8;|CxiL&J`*l-+()}EX$F4=Fx z-u6{YN-UYYFjG=_487SQvS+x-4s?0J!D`-(EzRl<#QAq4A?qJ?cHYAmtA4_|b}GCQ zpDr=4btVb>DCjo;6%Nj?tfUTT&ePs<&cm*=$N!><@yjiM*CHX46eLSNa#!^@+f#8c zXg6zP)>E^Llwq?U3epbQI}Vn>6ltmG;Fr4B()1YaP;}^76PlP_A7XXip`B`~p~*Ze zMwIHKT=uyNYoj2FZ}wo><9kPe@|@Xa8osDrA(|!;eN0*&FD~yQSd!^WQ>96uROpGCBJ78({)-D+I zib%*AH`e^e>IQB$>`anDwU2CN+l|-hldFzt6d?}_3`%1PdpvIJfSH9N8@w9*s1ruaBL;i6Mwi#nYY3Td$KTM05AoYyQ; zLBq73!tKTErVq|IX2QlDfYSZYMH$r}YA|P`a$nm7D5_$J##7*{K2#6VbI|A^7N!d? z*5@i*`Px8szG8}y_YY4>cQSQ2Zw-MhG9MhoD|f%EX#=~j?q|>y{GD#|A4ufSh0}k^ z3_XuY_$f_odbf;ARl2WQS-EhsCyU5z5pVIW8zja5^R0$3# z*0MG}spoW60=5T$!jf=1(I_u|HZH`U$oxjvjmD5V&m%ZOK3KxPG4%@x+ePPxaw^#w z!!y+&_BJ!7ds4L1@Q)0p0_16A^qbk)m3f2aT30*r>blIUvQORSx^V***mY)Tkg3`9 zk!B5vbofsGDDaXo8yD}Cl0ct_qxm`#xm?Z(%ZnfQcC2bgl5v0Li{LHI(N1Ib7?$Y+ z`c&$)R0MLkgYKAnG}i1G<|N$AxzU`W_~6aG3X5tw!0&g-BolX-i|52=c8KKcV+{q? zusBf%3|PV*KstO+(X?Ljo1CUixu|P8E z;zE6AO2iV194Pib~`VDo#4JJ$b$3HD$0u+B23voGe)9voBe_OkjQ{j&*qN?2hbm#k#!jN zJ4QP;k5RVq_m z`EO!7|APPU%Uk~C_*=G+zX1t;Z1ey+q|4}uq18o!cXINc9Yvy#l94Kg?E4fL>dLrG1R&i5XhBkn6Gi`GRA*wx+ zXty44EDiHUeMi!D331|vs|mr0&9<)ES@ndeT-IFjcdlQ~%?vUS7oZ}DJh%5p^xs7BSez*gq$vZ5VU;i$(^QF3*r_dJU%beY*^AQJ@V;PY+s`NclNV`&Sfa7LEdO2jDHIY`|2E?3fA z*JXpLE914TRto(HP9Bv|6SKY^)KLnl~>vOgvkvNYjFw=xtC%M(5H1bXf6w`_eBuLUbxq%z5Z|}Y$ zK&?I6+v{!oOw@3NwrJ|lUv%){mApM_~t0o4ENJQi19@yFEf z4;xRw%yYTFimPb;ZzI1?_=(j719nN5^xoK=%G?l{(9IM&2z+v% zms7&K#U-!$hKt=gc>B%HiaW(t_ea+jEtwTTzs1D5lTNDl5_%_+(V9u}eala%yh&D_ z4F>xhLmDuof$vguj5*4N%KPTO8u--|^CDOc2?pPgwXj5o%525Fmb^O0R zGK=YrQ>TT)tpGy`mRpfDTnkA6LV?<{9!f=a!1+4&Cn5YVSDV+w?b*~jiRzdS%odt_@YToE_8EY0mE&Sb&eAS zh>gaW!S#!}$KwR^tivkIq2udLxov{6NyoS2ZW%|dw&j+@pZ&k>T)RnWxb;@xrZ|?> z&t;KcSuy_BrhE3>6Fz=oMKQI$vmPX~S$=Vm*r1YBH4Q5YOc&01U15)F|KhAs&!o1v zmGbHMCmL{P_Qc07ADR9Ju!h+}{j?d%fv&~bT_w^sb9#SO%Q>ZH$zoG-TW6u3M$ub} zU#CgQ2cKE0nL8#Sn7|}1d~lMDyX%f3mr^PFCm7KRi*%YQSb(O|Ibs#VZ+6dy*>I|$WSCh?B^v(6WiXxDFJFdVM!D?Q&iT* znLAxos1Fz>-O&#rQmnkwxxyk~E!Ae7y_Nfjs+J>U`CEUrM%;+7pAkSxwd)n=}@K_wG_(3*<_*b2JKynJTM z9qXVpo+++T{gHzgk+_t-#>RAD+PZ%^VRNn7@ z*E(NVaF}YV-z)LCV981qXvf`jAvWF<+60FWuo>p;%$u2ml|#Y+oz}eZZ<vC5~{#2&-w5h+c$QGUf7Y6$K}kdux?4{l5!BFQ&|$Y z{>ewNBdsbxJK1JGGv5#xnrtf_Py?zhD!)?j_~Qh%3k$J%+DpToF4^6>iK1GcFI|-S zqI6yC!u89vo@(ZetFQ^RbZ81rck`aG6@|VFTX~ zDZ|`%6|D4cSa>GEfLrT-PiyhQZ*+wI?dJe1NTxKeH9$B+tkOM!H@kob$R+o`*P5EK zILQK2uO7C>IvqMd`H=Aly)nx4L)oPr(9q}}kpBv73QuW>i}2sgzRG8c7JE=|7jm(h z=`&!vaF$j4k%(&6416L4G{+AGXV_e`yxf=Z11PDAuRN+@Ztw6629x-UW0^G1XlY+N zmR%~kstJ9+w@}QtWa-3fHlv+0PQ}B zw-K*#tKDHC0=;7Min)C>69fmrSL$GizMIl~p}O@o%te%p!fGFht8v^K4=KbQ0%t2M zO^gQv>^+A|F!j@vO3h07M>@?YP~546=eNC-;Mq*+vU|tLtT5X_eNKQU3C+E~H}&yW zV@LdACdw8Dz{speF+#xvS4a4SDBK?p6lHQp(iE7IGp3UWNPdx6_ zs&c2rCL_2b?x2v=R$nR!fgvs=YHk*RBBGAgcU;`-#BM8H8m5ftJ;;1?i84*lH`_{4 z$wOt1ih}LiTD=uhZbe3o6vxyg4f6eVvCWVRQGWpH+Rf2PX`@ARa!Ox`IS#~qWdGJi z>HBAk81>H9Ia2{R@^Nu#RPSIFr}4UBxmk%sn;V*@B^6<5qITn9LxWUxEA2ST8)KB) zHK>dWO)TM|@?2mYDJr;q%}`ObkZU!-Zc^FREki6SuPh;LW~~nh(JEnI+jx>=0qXG` zl7!_J(`cEc=!o%zrecELB$w1xg;3EixHQgBr1vVrCgSxnMZUd|0 z@YW_fCk2aJXgi8Vch5XI@zM8iP)&_b2_jgnvc# z+jJ~I;w$G3!Q45ThEHzZCZI1-!^Z9*cDtXbiUC}?Q%jP$@J$=Akp&ljg#|x~1SyWD zRt^}x6KcMo?jlXzmgmDsH6EqLP%TmyVt8~!Aopg^0C-%|n0^8yywY!LL;L2On~Xgt=1iQOntU>EC44|KII{{Za<`ts~GQ^En~R zyo*b1%>1SD%baSSjLE=M{ZZmotGrJp7C-j6JxXzAO`Ab#pYXIZzp2MwDMx31lG1kp zO!Ysin4Qmrgrux|D1B==;oX@`Du-cFP~sJY94v0nB~9*K-S-m$rqGaR$T&z*QMt*N zOt;bn$>}Zi6JTxDvk8EteNG+q)U7(l1DDfdP-3n4Bde;%mF{V=q0amJxx_Z_$MAal z!waowzhO$B7DrU*G`qr;QsMRi^KnPqsJ-KXy9Pa%V#8~A>5*CbMwqP*G~8U6zwo_^ zYRS;e6`6!jrbfqmu=!JUqnFMU&VmwSVen)V-6zg)xqJcMMKz<^*pkwyxGJ{O)O$0I zUqDmZ1b53Od7sRPF89I_l_53tQT#dyh?mDomZr+_D<{dHW7wltHF=#;K#2svhukdx-A~5gqoQCh+!2{%MD9VY>KD&l@xgW)l*a;VVUePzkWAQS_Q#7yFG z@Pv0ob<$7?etup0#}k&R(fp0WD$fppMAoV9>`s?c%E=Dl+b8bm=Z30I5XKf<>o>M0 z=F|`vZ(T{09E8wa4ZlnqoYH@$FEeW|ac6L*h(Ov9+al$K@5!D{RO{i8OZd)-??yen z2)tLoRgLP~I38%X0~}S4-iK(+&ARGQ$sJOi0G5tn8$dDOf}V>#;{i?&IUTbfZkCu%2zcbT$pT<*Zo#miV)(Pi@D6;99q zSA_-t>pz#S_`&NlT9hF?;}%-6b`Zh;uBIJvB>lwi*t3?e*1?#sFB*N^stPFzKC zCpQu>uR=g_F{cLkA8FK+L8&=4A7CEzd!b5hiQtnG`laciW2e&sH@Vvao|75wX1CnJ zTXgn$zkpE&&)rLXr9RO=BFoZIAEyXdOWB(Q(LX7(v=01?UZ)E&mD{ALMjJek!#jwX z^vf(yqS+6va*5(5F_sibCmgSQB}|#T2pB!c zKtND>iAn?%DI%TFL_jv8AWaB}AiY=V1W-YNfPnNO5L7w>300c(CLJ_DsG^k62_+Ek z=P7q@_i?X%e%!mxzIXZW``*m@X4Yipd1v1CXn<#3)$!IV9f1hroxs<6*ldHfa>6dJ zakLv2Cp4F@X*ac!zDyK*@llY!_hpMDS--^SAwrLEX=&4;vO)S4ySu-Ex!4&EGcI#m|w<3mlDcge~8atSE=KkA&nA5BY2l3-q3p zfWxWpy26o_3tbDblcxRevr!VZ!h^6J;H;uV)D4Jgs$a;VEWf5=Fm|t=zY{)Qc65r~ zrsnl7+qQlf-dysamY_r2!XXLlKq^6jjRg=Eqojrp;ygIiYA*o9ytGH~$};OMhh9C28u&OiLS3k*$Sg8NZ*X{KmO-E$M%(?Dmh` z+kYnGx8h6SyPm`S~`L566fb$X@uG4u9SO8a!|6#$Nck#$RXQh2zkJ|??=|5dPh~n61;7h|s>}!9P%qHq_oesDiwiz}oGS%@E zy0C596)oLR(-5zwqL8mm)H(?LTkEOGZ}K{p&D<}@rRVVH@>!w8YZ{*`vx&MsxG!iX z;2Y7K5d;O=!zYP-&MH8MD!IAew;TXk59@00{G!kW)&fR$ertTdW^1Zn_wO==T(gE4 z#-psGT!J#;o6P8+?SOY}d>H=Q_fY@r8F)wH=yBTGY9st#LHq&A-#P{aY8WskJ3IQn zM=qQ}42hOII;Nrm)?VOO@JZB2LbNd}ohlk7OsqHH-u{zIRtM~gyA1{9$AJFe@ zw&Y-PIy;#Qg@UJ7v&Dm(TPKx(o0SQr*1zv@`85>lyZDO@1Wik2Aee=8lpowTUfWAP z$JQpIR^$MG*8$Wo`8?W9+=CM@2Fb~XZ_)1=vNs$ae1uQYe+9K_1EEPg27pZxCQO(C z%ID^Twhsh)6lN^!fU@DsmVnV!;VXzq?eG%9lo;U9uom_eG@DB{^rb`ua45t8`n0bo z@o4=k=ui*5UM3FT-zfvCw}QWd!ZYb_Wxs7EGOLyV3#!6&w;5nO)crY}pR@CG?fl$X z{|9hq<$EgN;zZqz3S@z8`JFyzyVCB+=lbOL9!^FBOu7H!J}>xNv~@k4lAL`74gl%Y zuQ;m6{X)ej?0Yc%J&uBW1DFf}$tZPxe1_)b!kL|yQ^`FD} zt>*hVJAXeC{9HRfch*0SDgRmA@u7@Tn0Kx_Py=cf3)+1Dr&QM&=%gA9zpPJZfW)ye zgiwO$<`1-vUHq+0>`$I$7-p8){5f2UVM`@~y@ma)t~QRpJQCecYDukbPk@It7&Xub z&&2Wz(iO9qRFx7u^ugBWsU1YgMOSCKXd4~d&sd8KMb(_!qtq*{-Vlth!yV#>3hA9) zTA?LUOy;HWom(ud5Z_tUnGK3Z;u^wC_1XHwu^TX}A^$M!Ru1>oH~tRCT?*aYhs}dT z#Tt&mrj%Z)coqu2$}7C!C_g-&V89X1mqZBdUCB8?u_INiIe>fs6k5*-p}%i}k1zak zN^>T_T5C83^H~wW2s=wwZoGdR6|?U^F_7MLbM|uNmht%>oTsOFa}c|M^%>u|6j1n& zT;wQJswVIJ4NP&KcLTC47 zPvy{yIhpgMicpVCI&0&8$L%BecAcRT4B_TmTOM_8`tyU=+U6}L8eO_nsXD~NOeE@j zUX6R(-&iN6`qzZTxXOKM?Yg$e=0nP_M@QyT8lp~?fG@WCVd@l^5!n;Lv+tTf@`4Q` zo90zqMt`iS&`3ox%v0T2!&KS4)6*9321$JIE=M*Le4+2E%xpExBOI25OmXJrbtw@V z96y}_BZ~`uFEIEmxd-DNIDU)Z^wwWZFn$L$YRh>$*p~6s0%$NlrrIS-ktfKH8noa^ zPi^!SWZmhLW!J6;^FyJkbR5hsuGQY>>+#}YGK+gS#FLV!zwU@e6c^wHEuEcF543Y( z5pLl~Z$zYX)f)Bu1&FY5WH|chHPYMkdQIiPj#7S~7u?yUDtPu}E0q<=ZgArHu*nWq zXxcF5RZ*r<`)tI~6&?Fpgg5IfT0};?4BCBV{}Cbw5v)4sp0@FQsnOp$3b`a7y*)$Z zOVJUWF0Ih&ibeVLlsyvS(T<5jtMftWb14D@ni9rFF}Jby0@k_qY{b4wiBBV;TkOeT zmk(^i!9kOvE&{ijuu?-FgralfdIKxR>K?i0o2*u0X$t1!)i4^2r_-z3r)D-1Lw||NF5aWT-lHUL9*Q$~zC|ZmtVveXj{Jx5b`DJId44IUC5_sj2bPuwZU8 z?@3iIKWw%mZM2RXixQyG9V!+>=&xzkYE?4FK}CbyBrlwq8xLP*(HZd9$T3tZw0o$L z(seNFMM3#Y^K?(~RYyv?<7T0a(wrN{YfsUxC3{HSky%ThnJ4mp z1Vq^N#4yUIJGO->eor3hmra1n$9*>Co6_@B6CwD8H}-0(p;W8$>N_5T!)>mzIgy2K z@;aYFntAxL78N-JW&{ky{XWP~2H4+!ZFKYs@KGvsrU)nTYoClMQ@0?ybS0zFDg(;M zJ8~&uOh;WTwN_gAG2xv~cc>iJ>Pr)!+jAZpK1d|Dy_+fHm-5Bt=0x_wxOWG)KIDvG zS$KL_NWI$zC6mTDu0(DPkui~T^9(rf4xv=u`fPWgY71y0wjYPB@m*>ip<~UDefW$D zv@sYYo$jtwIkZjSx^=U`9w)PrgMfHL6V*>~#KgIiG+$ulJ2T4Vf!SF|b(|@>(tO~! zxx}r~vYW_q;Z%<0{P8SZDcW~!R1i8CraI-{4!6vBFW^&hE^29dT(LJSN!9e;4n}57 z!*v?4<5D?hAT0B!idG%w>IoM8NsnAm^6ppo1$TAi_FLU0p0&$OXluH2p`4nGY?;E_ z#TQCvmW3G?y*BLMOc`;V7mGkwR3=*>0=wtM9`>k^lXZXqHA4yYXRTbz zX$ac^<7fg@*FO~WQa&5FA(1At>YQj#L4K+cdIBJ~ZGIqPGq{u@|Hf0m-afvfdeXs+ zzlRmcKQSItAwf?WrP%AVh~*iCLTb2*(!Y!(jO)ofp6GAcDDKT7J>x>;p7=PdfZ8U8fvd^SG)o_EXTYhWA4Y0J*IGz;3gn>J)If8ZJ;dzIMiYtj~< zJNe~c4%_|uTDh^BVDe)lQ6L}9yj{xrE-O&HMPu4K1yU|k#lH0+pbh||^7K?_gBV|O z?U7mZ!gwWDc?!B1Zgywy-eMqlL*j)PIiwQ)W%q*IHZpTRn>sfqy`Xj?)-}R*mX?NK zB+Oiqt(wK1Bp8)EFTdqd0pJyF0|&I8Y^Tpbi{fVTbds>yAZ}Isam5JQyC;D;bfQdT zqASB9HT2y#RfkKns%8fArGv>iPx={TF8VG6?FO=rm7sY;mX#heYLJkXPlyTiu_1ym zBwY`yBJb@KliC{D=ERp)e<*Fwlg_00QL2-EMf82-UDBF_0#Dm3Qr8D*z$m9a_pM^- zZE}LXrU&*^m5e)jr!u1Lp=WKkCBuzgh(GrUJEhNiFtTt^wPbM7cCt`tL($7f*Cj^V z^|#CmaPhgO2Rv>#rD``H=o}||khjPk^#X~8+@p|j&01zn$VngErFK^m7Pn6i^32sa z8HQ6n0K{%Id-;4Qf)`$}uK1-~Z*}a)4;m*5xK}RS!vze?UwC);p`-PR_6B#%Y*R7D z1PeGM+THVtj?#u&Hia4yY--1;Xe({WNkxwXnO<&2LkGbid!A}&tC#+m*GboPe59mI}dG33KyhVq&ujWgb5e51U3TEQ6K3bI(tpbEir31R2% zz#L%)k)38Xj@>-8J$Vc2RSrU3ij7Vm+w5a3FSgz}snkS?_N7ZKwxRc$LHH7G+Xw*} zgpfBUW#yW$u52WIpv~mWm3`7iZ#2yt|0+ct#*rSu`R#yc`P=B3|E*`Hfjvp1vH@|~ zyb^Zr6Qf1sED0NzVvVjFUXRgx(%C35%z3$~*E6EfJEa-6j>9!XI(yPe>eSpB^@zQm zp&85X5q}GUn9DN@od$ybweOa`^p4hlyB9M{l51a+7-#92&kETxQbm)17Z4gJPJ$ZA zJvhS)W_m4mZapD#@wBqnmwXaywHQWT-Y0MKF~zEnkx8{HjRry6!dIaNMa@1lFj<;j zAMqnA*|t<%e%XtQq(MGb>UxG{6LYMr%e^k!|6=j^5#Ib~Wxj!l1>Lh8nzCx^pPv+a zL=4y@G^=|*7@znhZ%f1z!t6%1KYTBvj-RZDzeJ5&eB;)kfU*yuHMxuMFL1#u>G)2` zl}+{Ww9jmxnc!L*P&gKpi66Bhn0o+To~3l-HPC4A*!9q0rvZ*$@- z^Lc}H*3%@ne{?tb3(9CP`lSKc6HvV9Iq1_*Rk5ezP2A|HtIljvYGVrT?g4jFVTaXK zq2Sn#hYqFhV%q6Ayt>(gkQu)2*fN_;T9`1yQc7UCYXR(i$maBQUfVNKDz3a#E!I#z-cXjpl%(ja+6(??KCM8ONkE2Z0fT_b1F znH$CEWAW$=kNqrkbXOQo#st;#H1@%&clUirM&0s@>>$AjI|DC$=7cL6HJJYDV2R*z cpKdpbo7dO$ess?MDf_Xa{|n5E!q<=g1;RtjivR!s diff --git a/cli/models.py b/cli/modules/models-preview.py similarity index 100% rename from cli/models.py rename to cli/modules/models-preview.py diff --git a/cli/modules/palette.py b/cli/modules/palette-extract.py similarity index 100% rename from cli/modules/palette.py rename to cli/modules/palette-extract.py diff --git a/cli/modules/preview1.jpg b/cli/modules/preview-template1.jpg similarity index 100% rename from cli/modules/preview1.jpg rename to cli/modules/preview-template1.jpg diff --git a/cli/modules/preview2.jpg b/cli/modules/preview-template2.jpg similarity index 100% rename from cli/modules/preview2.jpg rename to cli/modules/preview-template2.jpg diff --git a/cli/modules/preview3.jpg b/cli/modules/preview-template3.jpg similarity index 100% rename from cli/modules/preview3.jpg rename to cli/modules/preview-template3.jpg diff --git a/cli/modules/preview4.jpg b/cli/modules/preview-template4.jpg similarity index 100% rename from cli/modules/preview4.jpg rename to cli/modules/preview-template4.jpg diff --git a/cli/modules/process.py b/cli/modules/process.py index 05581cbc8..89e352b99 100755 --- a/cli/modules/process.py +++ b/cli/modules/process.py @@ -8,6 +8,7 @@ process people images - in frame: for face based on box, for body based on number of visible keypoints - resolution: is cropped image still of sufficient resolution - blur: is image sharp enough + - dynamic range: is image bright enough - similarity: compares image to all previously processed images to see if its unique enough - images are resized and optionally squared - face additionally runs through semantic segmentation to remove background @@ -18,11 +19,12 @@ process people images - runs clip interrogation on extracted images to generate filewords """ import os -import sys import io import math import base64 import pathlib +import argparse +import logging import filetype import numpy as np @@ -48,14 +50,14 @@ params = Map({ 'face_pad': 0.07, # pad face image percentage 'face_model': 1, # which face model to use 0/close-up 1/standard 'face_blur_score': 1.5, # max score for face blur detection - 'face_range_score': 0.5, # min score for face dynamic range detection + 'face_range_score': 0.3, # min score for face dynamic range detection 'body_score': 0.9, # min body detection score 'body_visibility': 0.5, # min visibility score for each detected body part 'body_parts': 15, # min number of detected body parts with sufficient visibility 'body_pad': 0.2, # pad body image percentage 'body_model': 2, # body model to use 0/low 1/medium 2/high 'body_blur_score': 1.8, # max score for body blur detection - 'body_range_score': 0.5, # min score for body dynamic range detection + 'body_range_score': 0.3, # min score for body dynamic range detection 'segmentation_face': True, # segmentation enabled 'segmentation_body': False, # segmentation enabled 'segmentation_model': 0, # segmentation model 0/general 1/landscape @@ -140,7 +142,7 @@ def extract_face(img): return None, False box = results.detections[0].location_data.relative_bounding_box if box.xmin < 0 or box.ymin < 0 or (box.width - box.xmin) > 1 or (box.height - box.ymin) > 1: - log.info({ 'extract face': 'out of frame' }) + log.info({ 'process face skip': 'out of frame' }) return None, False x = (box.xmin - params.face_pad / 2) * resized.width y = (box.ymin - params.face_pad / 2)* resized.height @@ -153,7 +155,7 @@ def extract_face(img): square = [max(square[0], 0), max(square[1], 0), min(square[2], img.width), min(square[3], img.height)] cropped = img.crop(tuple(square)) if cropped.size[0] < params.target_size and cropped.size[1] < params.target_size: - log.info({ 'extract face': 'low resolution', 'size': [cropped.size[0], cropped.size[1]] }) + log.info({ 'process face skip': 'low resolution', 'size': [cropped.size[0], cropped.size[1]] }) return None, True cropped.thumbnail((params.target_size, params.target_size), Image.HAMMING) @@ -167,21 +169,21 @@ def extract_face(img): blur = detect_blur(squared) if blur > params.face_blur_score: - log.info({ 'extract face': 'blur check fail', 'blur': blur }) + log.info({ 'process face skip': 'blur check fail', 'blur': blur }) return None, True else: - log.debug({ 'extract face blur': blur }) + log.debug({ 'process face blur': blur }) range = detect_dynamicrange(squared) if range < params.face_range_score: - log.info({ 'extract face': 'dynamic range check fail', 'range': range }) + log.info({ 'process face skip': 'dynamic range check fail', 'range': range }) return None, True else: - log.debug({ 'extract face dynamic range': range }) + log.debug({ 'process face dynamic range': range }) similarity = detect_simmilar(squared) if similarity > params.similarity_score: - log.info({ 'extract face': 'similarity check fail', 'score': round(similarity, 2) }) + log.info({ 'process face skip': 'similarity check fail', 'score': round(similarity, 2) }) return None, True return squared, True @@ -202,7 +204,7 @@ def extract_body(img): x = [resized.width * (i.x - params.body_pad / 2) for i in results.pose_landmarks.landmark if i.visibility > params.body_visibility] y = [resized.height * (i.y - params.body_pad / 2) for i in results.pose_landmarks.landmark if i.visibility > params.body_visibility] if len(x) < params.body_parts: - log.info({ 'extract body': 'insufficient body parts', 'detected': len(x) }) + log.info({ 'process body skip': 'insufficient body parts', 'detected': len(x) }) return None, True w = max(x) - min(x) + resized.width * params.body_pad h = max(y) - min(y) + resized.height * params.body_pad @@ -213,7 +215,7 @@ def extract_body(img): square = [max(square[0], 0), max(square[1], 0), min(square[2], img.width), min(square[3], img.height)] cropped = img.crop(tuple(square)) if cropped.size[0] < params.target_size and cropped.size[1] < params.target_size: - log.info({ 'extract body': 'low resolution', 'size': [cropped.size[0], cropped.size[1]] }) + log.info({ 'process body skip': 'low resolution', 'size': [cropped.size[0], cropped.size[1]] }) return None, True cropped.thumbnail((params.target_size, params.target_size), Image.HAMMING) @@ -227,21 +229,21 @@ def extract_body(img): blur = detect_blur(squared) if blur > params.body_blur_score: - log.info({ 'extract body': 'blur check fail', 'blur': blur }) + log.info({ 'process body skip': 'blur check fail', 'blur': blur }) return None, True else: - log.debug({ 'extract body blur': blur }) + log.debug({ 'process body blur': blur }) range = detect_dynamicrange(squared) if range < params.body_range_score: - log.info({ 'extract body': 'dynamic range check fail', 'range': range }) + log.info({ 'process body skip': 'dynamic range check fail', 'range': range }) return None, True else: - log.debug({ 'extract body dynamic range': range }) + log.debug({ 'process body dynamic range': range }) similarity = detect_simmilar(squared) if similarity > params.similarity_score: - log.info({ 'extract body': 'similarity check fail', 'score': similarity }) + log.info({ 'process body skip': 'similarity check fail', 'score': similarity }) return None, True return squared, True @@ -268,7 +270,7 @@ def interrogate(img, fn): i = {} -def process_file(f: str, dst: str = None): +def process_file(f: str, dst: str = None, preview: bool = False, offline: bool = False): def save(img, f, what): i[what] = i.get(what, 0) + 1 if dst is None: @@ -278,8 +280,10 @@ def process_file(f: str, dst: str = None): base = os.path.basename(f).split('.')[0] fn = os.path.join(dir, str(i[what]).rjust(3, '0') + '-' + what + '-' + base + '.jpg') # log.debug({ 'save': fn }) - img.save(fn) - interrogate(img, fn) + if not preview: + img.save(fn) + if not offline: + interrogate(img, fn) return fn log.info({ 'processing': f }) @@ -287,12 +291,12 @@ def process_file(f: str, dst: str = None): image = Image.open(f) except Exception as err: log.error({ 'image': f, 'error': err }) - return + return 0, 0 image = ImageOps.exif_transpose(image) # rotate image according to EXIF orientation if image.width < 512 or image.height < 512: - log.info({ 'skip low resolution': [image.width, image.height], 'file': f }) + log.info({ 'process skip': 'low resolution', 'resolution': [image.width, image.height] }) return log.debug({ 'resolution': [image.width, image.height], 'mp': round((image.width * image.height) / 1024 / 1024, 1) }) @@ -337,15 +341,28 @@ def process_images(src: str, dst: str, args = None): if __name__ == '__main__': # log.setLevel(logging.DEBUG) - sys.argv.pop(0) - dst = sys.argv.pop(0) - params.dst = dst + parser = argparse.ArgumentParser(description = 'image watermarking') + parser.add_argument('--output', type=str, required=True, help='folder to store images') + parser.add_argument('--preview', default=False, action='store_true', help = "run processing but do not store results") + parser.add_argument('--offline', default=False, action='store_true', help = "run only processing steps that do not require running server") + parser.add_argument('--debug', default=False, action='store_true', help = "enable debug logging") + parser.add_argument('input', type=str, nargs='*') + args = parser.parse_args() + params.dst = args.output + if args.debug: + log.setLevel(logging.DEBUG) + log.debug({ 'debug': True }) log.info({ 'processing': params }) - pathlib.Path(dst).mkdir(parents=True, exist_ok=True) - for loc in sys.argv: + if not os.path.exists(params.dst) and not args.preview: + pathlib.Path(params.dst).mkdir(parents=True, exist_ok=True) + files = [] + for loc in args.input: if os.path.isfile(loc): - process_file(loc, dst) + files.append(loc) elif os.path.isdir(loc): - for root, _sub_dirs, files in os.walk(loc): - for f in files: - process_file(os.path.join(root, f), dst) + for root, _sub_dirs, dir in os.walk(loc): + for f in dir: + files.append(os.path.join(root, f)) + for f in files: + process_file(f, params.dst, args.preview, args.offline) + log.info({ 'processed': i, 'inputs': len(files) }) diff --git a/cli/modules/ideas.py b/cli/modules/prompt-ideas.py similarity index 100% rename from cli/modules/ideas.py rename to cli/modules/prompt-ideas.py diff --git a/cli/modules/promptist.py b/cli/modules/prompt-promptist.py similarity index 100% rename from cli/modules/promptist.py rename to cli/modules/prompt-promptist.py diff --git a/cli/modules/losschart.py b/cli/modules/train-losschart.py similarity index 100% rename from cli/modules/losschart.py rename to cli/modules/train-losschart.py diff --git a/cli/modules/lossrate.py b/cli/modules/train-lossrate.py similarity index 100% rename from cli/modules/lossrate.py rename to cli/modules/train-lossrate.py diff --git a/cli/modules/ffmpeg.py b/cli/modules/video-extract.py similarity index 92% rename from cli/modules/ffmpeg.py rename to cli/modules/video-extract.py index 89e86c431..5f9bc9f7a 100755 --- a/cli/modules/ffmpeg.py +++ b/cli/modules/video-extract.py @@ -62,7 +62,6 @@ def extract(src: str, dst: str, rate: float = 0.015, fps: float = 0, start = 0, if __name__ == "__main__": parser = argparse.ArgumentParser(description="ffmpeg pipeline") - parser.add_argument("command", choices = ["extract", "animate"]) parser.add_argument("--input", type = str, required = True, help="input") parser.add_argument("--output", type = str, required = True, help="output") parser.add_argument("--rate", type = float, default = 0, required = False, help="extraction change rate threshold") @@ -70,5 +69,4 @@ if __name__ == "__main__": parser.add_argument("--skipstart", type = float, default = 1, required = False, help="skip time from start of video") parser.add_argument("--skipend", type = float, default = 1, required = False, help="skip time to end of video") params = parser.parse_args() - if params.command == "extract": - extract(src = params.input, dst = params.output, rate = params.rate, fps = params.fps, start = params.skipstart, end = params.skipend) + extract(src = params.input, dst = params.output, rate = params.rate, fps = params.fps, start = params.skipstart, end = params.skipend) diff --git a/cli/modules/dynamotest.py b/cli/random/dynamotest.py similarity index 100% rename from cli/modules/dynamotest.py rename to cli/random/dynamotest.py diff --git a/cli/train.py b/cli/train.py index 1f5c48cf5..7bfb1ec02 100755 --- a/cli/train.py +++ b/cli/train.py @@ -18,6 +18,7 @@ import os import sys import time import json +import importlib from pathlib import Path, PurePath import filetype @@ -25,14 +26,13 @@ from PIL import Image sys.path.append(os.path.join(os.path.dirname(__file__), 'modules')) from modules.util import Map, log, set_logfile -from modules.losschart import plot -from modules.ffmpeg import extract -from modules.lossrate import gen_loss_rate_str from modules.sdapi import close, get, interrupt, post, progress, session from modules.process import process_images from modules.grid import grid -from modules.preview import create_preview - +create_preview = importlib.import_module('modules.embedding-preview').create_preview +plot = importlib.import_module('modules.train-losschart').plot +extract = importlib.import_module('modules.video-extract').extract +gen_loss_rate_str = importlib.import_module('modules.train-lossrate').gen_loss_rate_str images = [] args = {}