From 3581f33075091ad8571483a24390cf3e4b9deddf Mon Sep 17 00:00:00 2001 From: SheetJS Date: Mon, 20 Mar 2023 01:44:17 -0400 Subject: [PATCH] ionic --- docz/docs/03-demos/05-mobile/04-ionic.md | 80 +++++++++++++++++++---- docz/static/ionic/home.page.ts | 16 +++-- docz/static/ionic/ios.png | Bin 0 -> 65813 bytes 3 files changed, 78 insertions(+), 18 deletions(-) create mode 100644 docz/static/ionic/ios.png diff --git a/docz/docs/03-demos/05-mobile/04-ionic.md b/docz/docs/03-demos/05-mobile/04-ionic.md index 6b8ac7a..1854b3d 100644 --- a/docz/docs/03-demos/05-mobile/04-ionic.md +++ b/docz/docs/03-demos/05-mobile/04-ionic.md @@ -10,6 +10,17 @@ sidebar_custom_props: The [NodeJS Module](/docs/getting-started/installation/nodejs) can be imported from the main entrypoint or any script in the project. +The "Complete Example" creates an app that looks like the screenshots below: + + + +
iOS
+ +![iOS screenshot](pathname:///ionic/ios.png) + +
+ + :::warning Telemetry Before starting this demo, manually disable telemetry. On Linux and MacOS: @@ -36,7 +47,7 @@ npx @capacitor/cli telemetry ::: -## Cordova +## Integration Details :::caution @@ -44,6 +55,8 @@ The latest version of Ionic uses CapacitorJS. These notes are for Cordova apps. ::: +### Angular + `Array>` neatly maps to a table with `ngFor`: ```html @@ -56,15 +69,26 @@ The latest version of Ionic uses CapacitorJS. These notes are for Cordova apps. ``` -`@ionic-native/file` reads and writes files on devices. `readAsArrayBuffer` -returns `ArrayBuffer` objects suitable for `array` type, and `array` type can -be converted to blobs that can be exported with `writeFile`: +### Cordova + +`@ionic-native/file` reads and writes files on devices. + +_Reading Files_ + +`readAsArrayBuffer` returns `ArrayBuffer` objects suitable for `array` type: ```ts /* read a workbook */ const ab: ArrayBuffer = await this.file.readAsArrayBuffer(url, filename); -const wb: XLSX.WorkBook = XLSX.read(bstr, {type: 'array'}); +const wb: XLSX.WorkBook = XLSX.read(ab, {type: 'array'}); +``` +_Writing Files_ + +`array` type can be converted to blobs that can be exported with `writeFile`: + + +```ts /* write a workbook */ const wbout: ArrayBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); let blob = new Blob([wbout], {type: 'application/octet-stream'}); @@ -75,15 +99,13 @@ this.file.writeFile(url, filename, blob, {replace: true}); :::note -This demo was tested on an Intel Mac on 2022 August 18 with Cordova. +This demo was tested on an Intel Mac on 2023 March 19 with Cordova. The file integration uses `@ionic-native/file` version `5.36.0`. -The iOS simulator runs iOS 15.5 on an iPod Touch 7th Gen. +The iOS simulator runs iOS 16.5 on an iPhone SE (3rd Generation). ::: -
Complete Example (click to show) - 0) Disable telemetry as noted in the warning. Install required global dependencies: @@ -92,7 +114,7 @@ Install required global dependencies: npm i -g cordova-res @angular/cli native-run ``` -Follow the [React Native demo](#demo) to ensure iOS and Android sims are ready. +Follow the [React Native demo](/docs/demos/mobile/reactnative) to ensure iOS and Android sims are ready. 1) Create a new project: @@ -101,18 +123,36 @@ Follow the [React Native demo](#demo) to ensure iOS and Android sims are ready. npx @ionic/cli start SheetJSIonic blank --type angular --cordova --quiet --no-git --no-link --confirm ``` -If a prompt discusses Cordova and Capacitor, enter `Yes` to continue. +If a prompt asks to confirm Cordova use, enter `Yes` to continue. If a prompt asks about creating an Ionic account, enter `N` to opt out. 2) Set up Cordova: ```bash +cd SheetJSIonic npx @ionic/cli cordova platform add ios --confirm npx @ionic/cli cordova plugin add cordova-plugin-file npm install --save @ionic-native/core @ionic-native/file @ionic/cordova-builders ``` +:::caution + +In some test runs, the `plugin add cordova-plugin-file` step reported an error: + +``` +CordovaError: Could not load API for ios project +``` + +This was resolved by removing and reinstalling the `ios` platform: + +```bash +npx @ionic/cli cordova platform rm ios +npx @ionic/cli cordova platform add ios --confirm +``` + +::: + 3) Install dependencies: ```bash @@ -145,11 +185,25 @@ export class AppModule {} curl -o src/app/home/home.page.ts -L https://docs.sheetjs.com/ionic/home.page.ts ``` -6) Test the app: +**iOS Testing** ```bash npx @ionic/cli cordova emulate ios ``` -
+:::caution +In some test runs, the `cordova build ios --emulator` step failed with error: + +``` +> cordova build ios --emulator +Could not load API for ios project +``` + +This was resolved by forcefully installing `cordova-ios`: + +```bash +npm i --save cordova-ios +``` + +::: diff --git a/docz/static/ionic/home.page.ts b/docz/static/ionic/home.page.ts index 50d741a..1be82e7 100644 --- a/docz/static/ionic/home.page.ts +++ b/docz/static/ionic/home.page.ts @@ -1,6 +1,6 @@ /* sheetjs (C) 2013-present SheetJS -- https://sheetjs.com */ /* vim: set ts=2: */ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { File } from '@ionic-native/file/ngx'; import * as XLSX from 'xlsx'; @@ -41,10 +41,16 @@ type AOA = any[][]; ` }) -export class HomePage { +export class HomePage implements OnInit { data: any[][] = [[1,2,3],[4,5,6]]; constructor(public file: File) {} + async ngOnInit(): Promise { + const res: Response = await fetch("https://sheetjs.com/pres.numbers"); + const ab: ArrayBuffer = await res.arrayBuffer(); + this.read(ab); + } + read(ab: ArrayBuffer) { /* read workbook */ const wb: XLSX.WorkBook = XLSX.read(new Uint8Array(ab), {type: 'array'}); @@ -91,7 +97,7 @@ export class HomePage { const ab: ArrayBuffer = await this.file.readAsArrayBuffer(url, 'SheetJSIonic.xlsx'); this.read(ab); } catch(e) { - const m: string = e.message; + const m: string = (e as Error).message; alert(m.match(/It was determined/) ? 'Use File Input control' : `Error: ${m}`); } }; @@ -113,11 +119,11 @@ export class HomePage { await this.file.writeFile(url, filename, wbout, {replace: true}); alert(`Wrote to SheetJSIonic.xlsx in ${url}`); } catch(e) { - if(e.message.match(/It was determined/)) { + if((e as Error).message.match(/It was determined/)) { /* in the browser, use writeFile */ XLSX.writeFile(wb, filename); } else { - alert(`Error: ${e.message}`); + alert(`Error: ${(e as Error).message}`); } } }; diff --git a/docz/static/ionic/ios.png b/docz/static/ionic/ios.png new file mode 100644 index 0000000000000000000000000000000000000000..1d898f4f1d2506d64b5bdaceee7cf8121cb8d613 GIT binary patch literal 65813 zcmeEuRX|i*A1|ONiikldt$-k@q%?}OfOI(^N_TgN0g9BQG)Onn%utGS*Ng~5BQQh5 zFf?~$gN}>1Y1>nOF$=!?M958v+7p0>#Gm&`ODh`fH?=4=F@{idk4{czv8Y)TPV2W4LR3^l zujh0|kBucTd}0OtB|LjY`ajSVLjGk_j*J|Mi80=_vsr z5uPZSrQrQP`WPs-{*Mcvy$Ige=vDM%%Bz3(k;!pU;_nN;k|sP$GC}GXm3R9ecM1mQ z{J(?4^zY#OJ9GZ5ihq~Ye+tjPHRs=g3>L({yVZa9%73@=e{l{#U;l!@|3472+#3i( zTV^+VO!+NN`r*-gS280c;aD`n<0zT^*v54NYLWO7{3yRm)|x$0lmoWj_m3Z40v#83&6t_G~7n#}OZQXEl)#O~*D%gnHeU`BsE9Ij9h|A8&l z(Way>XWVlx3{9!~Y^LqT%g}<6~E`kufu=iPrTpo{}>x?+#MNu3_K z=oNXcgly+dH|S`jg3roIT9GYfKF+{8-vCiT57CWgKq0(n zL3g+|j<)*|qq@duzwKV(O}IBzN!@Q6{J29?9j$%sw|v${L{7itVGqo6<{c~VX%Bz@ zitDtI#`9P>5Gxv2D+>i( z5v$cMF8vZUNv=bR=)%%QOsfBZmGJXs0{k(4s{L@%by#H$Q&{SrWDmEh4}Z6Naem>5 zyS(EzE84>U^w=YSSYG%p)_lSAU@k&x!vAn}vGL@<#$)Ac`yJu0q0nr8%JV!Pp$Luf z&VUTL?C$>4EepTGOfW$F+KVY3lOKvoofS{K7E@|&uj5e0#!>C|s>L1r}rr-w%f4M^sAptHh!xf<9+Z0W>%%G%;`7M}m=ppb3&^ULt%%Th;jk!xB4~(e4z- z?-%TgtB@fcJ~QvACu*krv3HUkzk9-p-(|=I!>NsZ2WuvI>o>mJ56V)z&4r8E7o(M` zZDJBF()^I*V)-Z2!)j6uNq)Oy=trd7T2ZB`Z1mjSl1gZ7Y17(A|Mdnu$K?#Wmk|=x z#-$neERvntLd1LZ2DKMUncW!eDhDULvBis1{64Ey@nVa~F0<&>^Iyh68~XiKX1*zx zTQ2hb>Oa@P^Kmxz-IVpjOj*E9be7|d{hefjE;%{WZwArY6n#xTCcz0C2fI+Oo08I) zEGJl`I`K9gl{4xq`r&Y=8O+OI6>l9MOYKdc$@Nwd9M!UiFXwC@pNJittamtdek33w zrk|G!MnL? z#QYL?j733iYXcaAdY*-Tv7uR`#&spmVl9)M<}>6m79Z1uy~7_7A}Mp{J>8{(r%ai5 z9!IMP>30gHh{5RLrzeLkYoCm;56{z6jFFdx)DNqQ*=ZH8Wn6*9>Vt7)hMBMj1T5|E z%|$S-Rt~EU9OQ)MXi z^{O5-|JW69mWA_Wag}5T?-cLqzRzL?nfW~k?9ITjQxh&*gWN=cp< zr}=lOf63!tWT*H{RclD)nmEv|v>>wNh> zPpY!!tn)f6vohE`#_fc2X=$T7iS7w^b5*eD?wf_lH-XxqRfGyLkBjwwB~)yS+PC@L z{gukDW@kt_p27=TToWgbiq=VCCR3|hgJTb9UvgePn4&xgDBJE66SJ}MK+dMc_Lia| z;}eIah3Def5L(pSONfW^@2o^7> z$M4v6NKUb~9qhi5Pwj z8c>D#nLyxaqDjr*Mc&QSPk&`8fVY;u-i@*~DPO9!VWbu3WMcv*dYvOyU`v6XKx z&*D-7?Jrr(g4EbW@% ztztZ5D0;4+y|Uy^&bb>35n!bIOt5Y7aDWEZBn)IOk{JpX4;|5l4 zN8M8|TF%B7y2MkRFRk|D4DIiBdUV_hj+y_OB;nVr9ktw~21?b(sQL^wmyYqCaxHV+ zaE{Emn%SfL3G4idK%ZZSGT*!vdd20f0ulbxv1~RUO81=d@Ux&$>ZS?~kt-jkDKt8a zvffD$5Y==>taa8N?~X_7&n|$n-NaJ5ivTrhc9jd1T|5=oP$w7DbR(qSy;5PK7|Wxf z{3gSGKBKD;w&LN@-#CoF`r%&tCKzVvMEkz^rbb@$e5Ot4|P@iv>&QPSW zFeTVi;+=NQ+bM6a7xK%&SJmnqk7pLEG0E>{4ItMS>nL1R_fAEK5Yi*;Zyn zc`tLQAxCp4b@Vb=N_%~-Q0M#E#$-mVB6~R}jT)a{Ptd+p0Uy;djJ22(0V`6I@St{F znD_$W*%P)ha7SWf*jjKW2PT^*HLQNib&IJkNe+#5h5^SoH0XYEYQAl8kYA6IyQXz# z&b^T@I@WoTSc9kK4QgqUto_kyZL|*J!rMLk?S&)wz5LwNt^Oo^9p6`UT$OW2g4<@l zJRD@5sGc6W6-&wskp~X@uyFU@Z>M7|6ntWZENWix5@fMb@IH+rzg{r*p&}~i(&~7P zL#H`*R(mU%jf82ykN8G=!(pnAkqA)&5&YXW*tI=`dNO@BzMV%m;3u&R0Y^?!I^H^t z{&Qi%2T6N8O-EZj&Q%ZR%&~Wdibg6d`lD3fBKKIZkFHY9wS!^cHc~ZIICt`^WV0eR zQ9q9Np8RR$){)?$8RkyUmHQ$ljk= z@pmi5rR6T@BsZBiNg}*zvJ|SSgBcx|TSPbl$Pxz>GnciL7XlmZp!gsVC`v2vFh7odnaU5Z@wzI@Z|0Xdm~9l->xuNJyJFIOh3_6)R|>Ui|za z;XC^~D(BXOl;jmfdVOCEcg0iS0rn9~@*5tDjAX@Py@qPX5bx9}e z8sA32T#Xf~cuZLnyj~L!F;@`;9xC{GdpVJeu%*+kt4bZa<|Z)8Xq;No%7}@p_-Qrg zCFw+W2CXYg+F{CxT#3a?8xO3Xl^E>NUYGz&=UGAwG0sUf-1d68rMVt0sg$@I0I0_1 z(B0F6vWdx?bL=xMnv%^_h zKU7>Z>75^Z2<{>|Y}2Tmd*Y==c@(s=xQUnMCb`wbcxeJP2+>z+_hvuF7ilq_b}&c8 z6e&xBN@V;8Zgw5c@l^Eib=s;JPnt%nD0NNPlr}u`A~owsFS&8i*-fVCWCX9zy>m;j zf-5#b$j#4-am~?|jQ8^sYrmS#oT$R1EdaA&n+LW+y-~ihA^{hF3Rcb(6qaDZrB3!j zP>z7o=u~nEAJWCrRjR0U8MjoSjIfA=Y6=pH z!w87Xh{(k^q&r#e?n=>D#B=ilkw+o$Zj_X+iJyJqityaZhU%jtQj!?Hd9H$=ql4( z22DAqFB zRiKX!dKiff?gKz7S;w`$M1L`_kjSIq3ic#wKUKwL5Du7@K>62|m*=Svsv)P4-yOX%VhI=qbiNJtVr6nvi#ABZpadn7>AHFn_2qa7d|ay z!arUnx6@uH^^y!Y_>`R_aJajQ6?pNf4-Ht&s*aw?yC0k#Mz+62x+IlsYL?EwH>zpNgx-|tgaWB{*jXdwVNeNXHIX)G^oEx&n?SrC--k51Q zUSg&Zl)sL%q}%rTozTt=c2WP+r$!CXK;s%yBTFe4*<;Wp@?nc5_!WTj*9D65+k8+1 zpJ?6%y#*xH^um=|i_S6zh-3f99So$qFra-$p6yM+Kb*iwR_WWH(lufG`c^^MB=~NCG-X&P}5*%I>#TH{hx3D*Na}MU0gDKO8Ji~lmpIRVX7DL zU*!iP%Hg2N#g#Ab;ynx+2q$!g6M954q#%b}jAnXia4hBqDhw4wgtE1jKIb2VX?59xyLR0kNN<}{ny5WVCq#>t*ULfeg2Wdkh zJeknX<`ghysVk6pW@!8M-63Gih1Y_31ZVDZS9Co9nhiRHvt%jf^NWjrBy6BRBlZ{5 zraZdq08Slt-^TLPP7|RJ9uBAYAJ^6Pc*KF67i0+J5H$Gjiook{KqXrefUA_3Ttq@6 zB|Q9ufB)s(^=B@<3)NHpKDim)*4Zc{pWghYCQKn5lY{=+&M=N!9&U$uFK4fTU9(X8 z?4QR_P1++o<$JR2Tv%Ma)s9?5Hy*BGsf;{LP80I`D*!H;3~01@9%!(<-7n>Fe2Dh| zR|=yATR{&VdQ$S!9(m!oqA&#~LPm{Cr_DR42yF>1wUMh|qh zoJQ2;!)#p>M~=CtBk+FHf#+`@4uq$%bq{Q5D05TlZ!q`)F8s;wzS(b0*c5OQM&_&* zSmU2v3zIxpN;t&oDf85sn(AKW>wbO)S_Kya=PjzkI5eH!0~$UY;6A2@8O%-dr_rC2 z{cVvTX!#hx(C4x@P2Nd1cgRI4N{zj7~BFmyi-mb8LGIRQ4~+IZ1tt zGE>xQ5;!f)E&JM;pjrk<#kOY9fdWITSN4nLv}A#Ifa6K8GqBkyi}0Hgn&$rN9f4pkUu{g4vpew-KS$RB7`Qop6tH2K=S z25Dd;a;Q=800}C>?@}VmH<(ORG14#0$-&rBRrkCArjI#7e6|~<{mPU&GlWPV%x4nU zz*le<1Ln|*Y4ox+#<`n&F(=WQ0}s^t1I|KZ^NhfaZ$LO(G4h-twg{tStyADAKTRa72+mkscZ9W;C#m@iZ-^NXJa z{k7)RKUQ@Oq^ays=m+eCi1Rk=Xb4Pt&b98x2p6|D=%*DQ9Fe<~Ur1BJRDhM-J|1-G zrbc-fV4JU`5yT@k2-ds%tdW-{-0szsx%D7$S#sAO+`6BKgG1W?EkI@2ZnlSP0t3%90ufD&b) zDC8!*GME`WRU&s48*fxDu|J<^Q}Us^^WsDjZp>QOI#XmZd6-d6N(tO0nQ^R1OOUL! z?cnC>WR@xJ&zgomPUjZR{S|DaC<-+239gEsSyaAQh~GfGZ7J??ytW{HjeS(P4z33j zOG(634i7)zoiEHKVPC3vqeoUh@-}+b8wr0iXGLG3jjE!0CwuA%cBn&n^jkP6V6nE! zl3yF+8Vkda%g$S%yu?lP@PTI(Ng4=wa}^BAybZ4Ps{q7D#8)|XbJzTE@mi{IMCw~` zkEQyS56aQj0bTG`UBQbw@Niy+3C3y0E4pFTJ(S(H2h-1DL^IW!cKqDB?&fOIrBVLp zF~M0JYn0PZWQOd|ZIycDrnqk%vnCzS%ItI0{JQt)BUib??+n3T4;7HNuTya{2r4~M zz;ND-Iw&^8h6Py1N5aZgZ>epmdp+|0onZ0(b_DdMJZH^Qz08G|v!czBvdk@S`&H2W zF;9@M>7_>51*M!l>u zJl);urR*2{{7}cb)uPbN%N1-Jh*QnK)1_j##_AjcVbjyu#2sCmk*v4o*tvepg|RLGc^y`tA<#3lE}<&D-KZ7a`f# zUmbRR)Y+I*8>=)N(yvohQplMr$DygA`$UCC0ZNH(-5$seL~~caCApCX?DMFq}X{_ICFE3)TWy&rG8C3P|K?Z0 zfmbSL7mzRym{h;K4(tzct5i-`wpZm2a1!c?Bh949GoIOOXEaV_^)I;)Vmo1c`iy($ z;!%ahQs(EX270WZVzj|&Z0%Sj{Vd%XFmfD`_3gO^PZ=;$zIz*GdYeC2`gLH0B-gpE zZcC~VWi!&iMauxHYMTH)bxfXloas9~<3uwxau0n73XUZ%g<`Gv;Rdo=A# z&k*CS!`3lbYtlk@%1eU|ih^gl%Q27=Fy*JfEj7w>-D0&LV!2GEL^Bmnal@Cg7LG@v zamdioM0HV4!R-p|Z*{$QXU_`^Z{UAB=XglB(AK<^lRT7bB!ndv`E8hIWEAIHVyE zV+YhOWq)#WjeU4st^sTql8`Dk$0KA{$bKH0@&;V#$d&tTH(D5F=d!Ub25A9_j(z4S z?mjDDgN<{8LJja|1?MWXw{7V_K%r5x;A42&lZ%*^$ZrS!1sL^T+CudSQ^9V!82`> zlzrP{0Jv|{W};Coa@!$0=%~1;DeB#qw?PC0h$Dg3B=ZHW=+}C=C+`xoc`kj(b6Zes zk;k-Yx&>co`S?zphDxJY2xA?Un|1OT&X+!OH{Q^`E~LN;VH9D6y1B0UC6#J}&2k;C{VG*mh3Gy5$qrLr z0V3d)B~>DTOj9&HC{=O*tY23R2-+U|l`<(&uX7fjCOvZozvj{9*$O%brWo`MtI>AX@p?J63@< zn+sq6q)h(Py+Aq;w_2QLdHPqL2kN6W5Xw;3UWonUl_DUl-~UZ9{o>zmMlu5Au2R+? z&@S=Uy*h(1W9pk|Y0AHwuH*qd%}DwE>OWpN4>J1_=h*@|{?{{*5czlD{vQrpv!zI$ z3{2Z|wF)(%E>FJzvPzdcfZ>2JYVeL-@c`hfE<*C4BMi73B>|@=tm8)h`(_?si$8P& zxqwtd*Fjn3YT>y~komxP?<~z=bsfB_FmAhJ76@90`a!$K{ojB&Ru|UjZ9(+Ej&ct~ zTqb}QyV3?+yb0u|5UAOU5>gxh@?;T5Tp*p|-8U$H^E=Uor>2>Rw06uQ z4IRd(v`hTz&1KOJ$TD)e8E@omRbTWDz|WtM`DGt+Hz$u|f^sJfC>xTem-u@IVw#VE z59|amSzzffz%_G{CwniAPqLy_F~3thjA|fk35<;q6@kIW{(irtMlsnah{QCFpCK2Y z27bH<#LBZNTSTG#o|`ECnezuIy*B$2VtMvp@WRt9xGynEPNW2!?5}~8kqaPk8HZ5H z>Fo6<(^LkQw@%Sz3vq@AK@mmA`hVoxjT-50BD_P>F){@xEMHxmMT`>kZUA*4`Smt) z_=DSDcLP2)9q$?*vDDF(+RnZ9kA!OYT03Jv(E|){UuPh({L}+*(EVnAu(y_W=-S9` z3CgL@gQykW03lF+3=w^x1(i%0>+*T;u8cYAuK*vFIky?aCnhe7txS)+V2C2xFbF&( z6P}m`i533%qbI{Bf9hN2+Y?|K@#MCB9+YR4py*|WR=IQt)aR|2u{GkHH;#dTGRGU3 z=6}#h?=}C){>S^PjkssUo1IxqdWtZ!5wjf5sMm|&F%QDPuCX~YYF+u`nsTkac|vQz z)j#nz03UIs%HPVWVPGDeeB_+W4}T}=cd*Av1!SBCO`Dh!g-VX)8xU{i^&d!oXb(&@ ztI-U0YQnP@**Cg*n`-T9&_XBmC3w~)r6piP&qG8sw|}RV%CLvKVP{B{Oi(8HGA;m$ z1|H&@PFF!Ji9eUg7)=jl%m|2X5>ZLlurz?^z$f~l)8dLg(fsx@s?QxnI7={w5i2qh zeWi=^D!{Z%o0@`mX{}fv|ClT1zE}LyX#FAeS8OGU3x679X`uhw}Px^$X63txC9 zer#t;_54mo_h0}ei)+Lb6#8}t?8lxp8-Ra%a~=T_I=pK&UO!EOThZ#yo3HcEg2(tY zxS79S{JMvaR?TOSf%_8PkSqoW->fgNrfe_`vIj@HP58*2vC=hR2;dR~x(4!)O+;&J zcw9k0D9ECflG>lY-jp04P-J$u@rf@;s?>t{Q)WKu`T-(*_F$1*C+HmNlgTZYe zJXNo@NANfWfU?n>2QPII!%oI1X_62z=f8SwiL*gv(y;VN;3wcl`I2uKd^aAZ>7F^4 z=kr9z!0{U~T44CeoN(ckPwmtlPASNP012YVq-Ge~t+5D0zp?0LC~w%{gWnCnqdknB zHM`>ltwZg5G!h}%5|A4`{QXfzLwPT(Rnja{y(aD? z*=o2jhVfk2_@#1cLi>kPdQe-A_vYiIn>O2MCCBMpdS(QQUhpk{lol@GSk6JZ=YZ-Z zBAMLyR+R5#14tyR3}C%^o}~%vcxv~vdr!K0;{aQF7`OekjfS)C7jNM^G0&woqp)8u z@#kXZhrMCHk=b@(=L0~UYLmL{TA}w-sxI09fuq*gH?tvIs0Qm?6#dpP)m6NzeA(e0 zrOrlsl4+D;SH(VZ-*H6_W2DZ+3F_W5kwXJ6ZvArJYuu?9plhXvHx2?I#bz|+6yU3E zFF{wwa>Cp-q7LY6oa^<#iL+}ona91tQ#&g(4NPjwlRoQVg%v=_ZtceLaDnhG&fJbY zEl7R%tfn>E07#-K;knI5Ek*gfjZt#pb+aLy698W?q}gZ%JB}Sno$g04jy|M4*^CHy z5Y|f@`wSjG6)>eX zL~#&MSSat+?WD_${m7a%&x$T9DP$bAYn5Bu{8ks{eqC4IZ-ufWSYH>Yw;K-}b#=2q zPIYWiJ3x!9Jtu2T#H7La)868%Gne1LaaZBPfw{A9f__BhH;6s|CUitio7rxO3m1Z(b=k}Wz9eoUw ziwdB@KZB{}r1^V$0QLWY%2B5N{?5Cr2X8HO5enncSaz<2(+Nh6pkU0B?8|oq!)l6j4!5#+RISnEXrDic56Mmae0sNjQ6aGU z(lw-`7stv%{oj<#R+Zn9B|8UalT*}P5||VCU$+7gmrJe6qXRHhnJ2xs?%vP}uvTgN zRFjn;8%t5SxGMh+Gg{*?RS+LP+Q7R!83WkDumACUh8ZA-fe^>!eE?I{zh!3g^pOn%C(>m@xUZ`*?@Ckxz zvqz4oT>}p`q0kJmKIDMie9E|%7I0Fx+Fr8w3Q~baZQ%u1HTJGvOGO># zxm=HecaA7^ivRKe8DAxIHocpg#67?~(;rC-r`YV8vi4p>7aY0>AS&&hQHup76a}NO z%z?;1Shj$)k`?6nup4HPI`qVwn4qt~WI5FFL^FATAot#+C}<_*U$AjC9)<#zQktU$r86eDWXQp0dTN+%2Qw?smSvo@Mi1V5t%SMWFy()^ zzaW0Zzds+{KFU5j&valyq2Vl2RJeFQbg{%m5Fnh<30eHTw-mc%{bF06iyWNmn9U-= zUTaNiIsf@yPvPrbor(U;ej@Ze#-MhvU>dxnSJ$i(*%$vyJ2I zm5#ty=7o|V{OzZ*6JQAYY2>@vI+FNqU#L>QUYLR1(zX0VBfW8|2KYR;fYr5*(w}U(`*$ zKP?9qM3&FqOt5AJmc!b4RtQbdJrI$vRRo=2F1R@VrSM64kcl&6F}CAUb|+tAL;Zwv zcWZpuI$~WC5A3*6Ka$?W0+T*hm*3ycGd}A`hw%zsx|_dX`m|)x>TZGs0CH;G-vQ19 z2O4O?lQtmKOy?`tEngP4*)$}H(LgqB_1ZLqd2 zv01?ioJrW=R_@f7tq76WXg)KilK6}x;;zUEqRmlN84{#VfuesCZCT%PS?mG2IWBHz zPPqaAExE~}t7b#HX7r#;8cQ>)!GM_UM!yG~K=;H@6{|2ou;ju z$Vj7CvlpPh2fcEG>b;uy=G(MU{!4XvA08MuxoEkCuM}Tw78Hre`K@D9ZZHVou6yoP zi=ilU!_l5>KrQm7#CrvX=P^O!rYX6=aM{Z*xst`YFqmx*;u$B{B)jSaT0T>S)+{v| zH+dN^f83~U;|;WDPGc#6CLN`(+SE&HOm6L1p$gU0cC8PWUADh`+lk2)Y{ur}^LDfR>hV4Q#5(hml> zysr85cW^~iQ7CBZu@P;5K-h^4kc2SE(TTuHP0j?NwJu^ZvS`E z;eE7BnI30=SdER`(<%k*IZYT3k}UTiP<>Utjjx+)&JdHE>Wy*Nsgh~Oj26a^gJTyB z2zM>VGt{FW{`xF{5~*zH%*i`iP0EhKG|VrX(p3Sf3jg#a-c@;hkcU2wcvXL*x5*nG z0G7HL5u8vkA?l&8v)_KX zWf&3w8oF=)v&=+0IEZxL>oF+unyCbRKK)(`#8 z=ZuC4gms}I)&VLB8sobC;%{*#gkvBZW)>16*YJ1S70VhR&LCPv7@+wNm0j?S4Co}n zuiAM2ZXu~O1X2%rmW~`Ml>bpc0?z@3g;x3{6omgv6Zypr5}@`@;b12G^%bEs1nSSZfuH}3_PCQ?sjV?gp8Kci{t9&WjOEHdqdf?a zAsgrJ+x)v5S1h3qN+1+)|EJ-O2K`v2TJ-#@W1x!yK*E_Mph5ia&OyPn2mNsW=pz1) zyP^StkOM&&?4K9-ci8^l4O=L(SyE+u0q8HzAfI0W+4)I2cZhFAdISPC+wBLm9Q&iq zcF6DV_i@W-{O?Sff1ECFnh$f^ha?I&6l@VhMfvc6MIfL|2*m8|!KouB;4Y>Zn#F2Q zfc(cw+%xA+ckTRf28)i!TWbK!1CsQHOvn-P{j^C_5K!81xgEKb8L_7NVCF0;Q$C{L z@Djb~2;}!l_CqPzgWXj_!2stuK>Sxrnohhu040I<3XS(bC;mEn{k;nEbDT-J%3hr& z0l>;xz3A2oLh|dW0ViIsC9nCT#(INqzVO;|!{X$T@|IlELz$w8su(7%V zA3w%ttCJ0iG@!wO9xSB6)J(r7g##6)Ppbb{8sz^F5S>y!ot_LgCDb!z969*(blU;s zBSTl-G}4b^s@uz6iAs_KYOJXe3_KH-zEYRHonbZ9gat@ggy8D{7PJ1XX8scZ);T|{ zSHIppx`y3fHl4Sf5#m$6+xsZ4ZCfa~2>#8~pC0@qu5yefj$WKwJfXqTi zDJ>p0P1ym-38y<*}Xq+C@a8k=?Mg?d${51o=xC-IM|_H?@$8i0D? zfNhLj-dkxyUeYaB%WC~f2 z0h@ILDONuWZx+amPwH>1=@@yLHKB?4r*5YuCd8&tk@Rsa0V=9y?)AqWh)?X<05cvA zpzi&;0#gxvqpb(538MRti#;&Lhah-_fHJ7@IY}w!$r&a(qsD-!{u+{B=2St_|9Ct6+L}NARUre*nTE;qm%^whMMjORH%p z4U2%pH%2D_DBO+@aGVm}UHoo^11cXbcE$WT0t%8XIrBx&aA2fsp(D2~@h;uUtcu~|;NTvG1FD($FL^1Bc+Hx-2?R)v)G6OGf*Q6gsGu(fw3yh+ z$|=Vdvb%LBM%h#;Ku2ti7|58x2^_q4i{CirfI=IL&&}74rpTI34hk8U%|EclZ5&!x zl4En`g7ZhT364GUs65BBjs7ICa&_*6#khc_D2kgy#ix|qd*(K(O*vW%Nym{xugbz(KS-n5XXjq#_yKgO z8)k>NG@t~L!}|mP{|ndRxI93yD@}|K1657BhRRZVDh;T=Qfn2KgbKmr zFS&7pp#RgSMXjQ40knx+|=6-%C(yPv3^)p@?A+pUz-=ozhF#KxlrO#PZ_QMu3vxVM+)y{npfP@y)XHq?0Yhsf_lA z?>;j2?lukwj>#^5oe@1YkxAjwQ`KQMs=nVfhpGmMwH+%~{#1<-Z|b#0<}Vau>KtvX z8fT$v#!=0t%hI1#b;2sVZ-y1U(hE{Eo15RAq9fdgVFI>4%R>CBZjZI2OFABR`jADL zS&sQ%dMwItA<&)lXKbGWK6J@1ufHjBr;ctix9Xra*w0$RK-vFU&Ov?jAM`Oqe8Qmf zL-Jix%3A$)Uu}nX+kP1TsmH_O-&FN+rQvBdT%KXh=~;v70=o#fsip1nFzO=YbHvxt zv3o(P@g}3!806G1yvtL5O{~&qpS4p64)0v60V36b^9bc*v%LO>t!4Fbt?)LG0RX|L za7LeJ#icY0rk`Y~oP^#cDp!-(gl<6xU8wH^(fFY73{8s>Gd3^VpdAV>`WX*db02f0 zS6t@PM6vkz?7f8IVywJ&KvnOvzq5-)>b(rxQ-_&+7b0Cz-nFt2zDci#Rz7!`ZV7u2 zFsQw4m`27ONiU$Wrj+z7eHJaHnn!>mV!g)8USR(}K4fuS*Z7zzr_q)8{E4o&fLsId zUgM>(olH(1=sYmuXsbJgSYZw1`Ec8`OMb#Fm-q!XW1mtGjS{=I%EOL#^li!RkMeuG zDE!U$08DVd3lcuNuHcBVH=EK+U9e|8XQ5VzSQKkQ1`&KTd^+Mh(UV1`iPf0yM%8{t z#^!wSq&4Cy=b>?;w^is05vQ4HQ!PE!G(wD(-;R*uxxn4mXj^Vfu+O;`Lh*l9uCihV-t|Glb6mT0v||*llAJWTOcwXOxhD>PuWXx%(}tL zHBwjngFF!iQ?!bmR9i*rW&)4i9X^&rJTP;w0dn1xCZo1_?`W@C%x8ADExO2$)yQs zbauO&|DW^{PkJ0OjwR{BXuw7Uu=iDXr9|iw!rUYE8*yskMNL_y!MKdjm2=$>)}hm> z`ZhIFIgEt2*u(f)sBEj79{fZ;zJ>gi_>)E!M8iPM4jDPV#rdw}?!{kSO;@51^GZ6K zxw#!3g5HFSfCIap=aatO(Cz2#Xd_#w&9=*2eCN*k%SI(DMwZj5@j%8>gr>m5>$5?1Iw( zWsYWW*i|~6mb9{{FjUT5{bFXz9^2j1dXO&YYnxRa+iKE=J9QG3dcK3ZvoBvO!F>%y z#q<7*IB)T-6afhMktKiP*~c*J7%1E0nMDzM^$yWpUYUMD?was`Nv}l_6^btEU&=O{Kqt>Wl z&fe-qdD|CvHrl+GOID9(WIcR1@2VP`D3bWZInmA7bC!{G!q0;OeeV}0i#ANq4q;Rg z)JeLYJMT0aYYj4JPfEI;8G%?Ue@(tmEc|kZRy)fr5MDkxK0H(};VRor^ICviqAh+S zX*hJkSeW#DOKxAT+d>K&5HXTUE=S$wjFSeM`z`)AMEovfWrHa&Y4sz*`tI4ju1tUI zMZQ=814WV>$00ERQOt=fXNvDd8?&>Sp`x@qohu!5rj6`^20&D69Dh^$8;u}KHw&F! zV3OQVMcRxk{mY_pYlKgye93I`?hndDmK>h>uD6;I;FFh>%ITSjbCj6ul$!Fwh6NB&6+O&P+s4F+l$KxJl=iQ#<|KDT2`5*xmFYGEZdx*mBM{a~ACHE7X}u zgxzQ0o^t`zJ1tBsVO8`|_U|v||57Ql@`^ePTAfjs5i`#=McWYDa>x{~b>%*<6=&_n zgudw-jf}Z?8)sHPt1L5J!bz$`V_tD|{=@EIEHOGO-}jayxp0mFia|>23vYV#DSKp| zdn!&+leDJfa))(hn9!E4Q{t$`=b}dYpTm1Nnl4T5_wKx}$>ju|<%aIOloifKy4b?P zhO{%S^N~PXDklpJCs_(c{2m|33~H%5d@Wk;(_4=m?IpW$Fa36!8=DK1CeedK>EvmmT8k*oRAs1RG@DKC>4&o(mGb{3Dy)*2*W5^rOI%1VA04U!OXr~F?IsF0 zUxHZM!UAfA9ieAU*f}Hn4WU7@QAM|lvXof8C@L5gdFR7LwCV``G9X8~Zi%V$=~R!x za13zWy90xIsKlFkx-WK^N9}iTx=Esjfg7n8B2u^`j<0rH8|b*7p&a*m7ks4215O)F z6n0w{MkGTmp)!Fgy0DRGpnefjA)J{8%Bk@4Z)s_MmDRUaBW={G*@Kr?s?_!zQRR0G zHKaDI6(4FZsYVw?-+`-ZNM})v-?Y9|6~9t&Ww+RUqSCHYQSN)z9jpECqN6ah&yYq1 z-J>z>Feoloxp(i7Yu>AU@CqLz}f-AWON2@_XP2PJOGbdm5(Wc+OT1#Nghnu@q zshj)ixb1^O2yWJ^$N_hpiLTW10L#_s3H$IBez7Wb z>C*smiJhkbkNv2uZy5U7=VlLRtB;Sox+2Lo(i~+wtuQWZlOmZk`aYA9oQ6mny)Mwh z@yF&!*Ge}F^eI=XJz!i1 z;}@L-^~~)f_aEV}`Hd~h%T&dA^ad5&pC8sJKS^;SF~iCYWrmA(dBl4`$33Z?^Nf+y zmP;C$w1Sjb9Oe4^c}qBWzsp%j(A?RUqjYYb@oqKoT^Eg(yCzWsiGtuDkMD~ zF);kGRoNpa$ulopODs|-7E*!}-u10T8CLeDQd_9_fB1Rt?I!C)5pv11orAPf@^@#t zxJ|ris`YVk#V*QQGq4&qxb@3cWzibZDqJ&Zw+7H>Q+>A-rxY@RLO>>?tR%jak^Gi6LYIC1&xdp@g%fexIO!^v%aQ1rCz#b2 zsyv%Nd|W8yT$~j*H6X7~SS=TOK~b0|pY#Xx=|G29Y!n{TDvR5ec#cGz^ZUS_&qI?f zV+D>j?i6QOYa@FjXgZ~ZO|w~v-$E#RDvS5aA8DN1IG6Xn8}H!Lk2EUs#S0k@?tG4?nG9hX9v7fIX<)k-T6`el}qM`%B=1a_>6wLdOUB{hHjFb zaPcMNtpQa+KOW3vn0J(%i|F*LGho)olk)4a1)q?GanmGE1DfdG&frrtOokoRSo)nK zu76rnu-Y#KZApeCdegs#DnVsF_#l31SS|4-ccgYi?wDAtZUEKFW2(p6^Qe{2$S=#= zdQ9~CQ!63j1{wNdEsq}}Px&~~zPUBvkRKz=gcW3k3Y28Q7TWo`@j;q7F}GUhh0oRv zlBPRgB)pE|9O;Mm zzU|GAK+5L4U{nzw8H-82ch~0kh~p)!Duq5irj}thGvfsx^`X;MhqRaBA{=)HHS|SM zyUZMYY-eoz$b&z)(jjV^9Z*~mNcuaIanA;RC>Ffgtzo>`gq!ADr@6ew^vm)mu>=rHZ6Dlytlk9!{%jv33)7t7v* z0|(;hu+^R;jHiC%Q4_2$@uASX^0_q*t@cafMP?G^Nl%%v<&^r}FHChkZXfR{BHK$w zv_{@FH@tpJNqj9&*s;dM<(M3`aVlGpZGdm?DCv_;95o0d0^YQ{=^5%Dr@1>Xb;z#$ zkJg`G6D`UKs@e3KBVXKjn2NK6@%R#CJ?G@ik8NukDJkr+9`3>_cbMxH>xUEVZ87nT z6n|=laVrV=*i?ege328f{UX)qru%`SY+OO45vRL=0*4tEt{8nJbGl);bY4e7G0^Qn zy!!`4D$M$~;<>eq6@v)(e8~d$))x4;$3j{!pP?$ZK!U*%2viZ{G&( zWx+W3_e@Sss}Ic*D(~E6uY#LHVF$GfKnhLj(MBvvibl7M{ zdf;GuB8!jHf5IH-<7HwE(=D{~(x7G#$ya__HFD{EY+8N2oiK&2m}!0QL0Ox<&^ed- zMt)M<*|mc}3q1E;_X>z^tD7Eg*)R;{Jd0Ri_|Rd#8;0dFt~v*##47(&>p-6euZ${) z92+d6*IzamYc;~VOI&6L6@FfZbcPQRGJ#wsp+_Kh@ti&CS9 zN`DE(QpTI{U<DTIjh8b~2Pqy_?!5+H=!eVp=}=RWtty&wP2^~3ng2{}3Y?6dbi@4MD| z*Vc9@r^xBcCp%T^lRX#QwfmndKI~kJHN18?d9Lk}9{xSI(S_A4xABE*{ber&MzyB$ zMGy~f#?3wFzI5@9VZ{&Z&{MxOf5K5iNrjg8!*bdQivn;{vCdh$e(ms$!N4}tDaObm z;=PRjpJQJqTgh7QOjx!M{y<;Fh{3IAV?rC}wJEV7hDwDRZy|~HQN4FJS!h|nj-gTD zjCk~|?DECJ7~c}P*DbC01sYDM%wLixUorU~E3wH7*oGCA{^h3#fp-(fhf+$kG*s?A z%#VGxuBSNKTEpg?{>+DU>F4jFmRHt<6FtC(mK zFe;F1vLL+|1vt8Xg~wlG;pc!rlmaq^H!W~&1@cb817E4{z{U>UDd4bfAeh`bntw3a zf8-xh2v8&Hfbc;stC8*Qb{Xa;>sSF9W$2NQF$xqHHGg8TxXOStuVLKf|H*v+pQW!4 z-kS3NSG@}gt7Jj@*Jhpy{D+6Rbr&!=;@tc{8~WEjvjKpbDbd_F_&?U@x3Cnz>L^5h z{a-7eYGD9v{9sm6YzG)1wEp7^89}q z(z^z(U=hlZzw18)mI9!hoDaYLuPnI)Jhr7RPpw1$y8>4}crcc65eNU%5U&Ps1x)5{ zr~kHC58PPFl}G<=2pL=fxg&II_kUXKbO30Te?JM84gPcX|G&Df*}=k!)#=vFaRB}L z0Bpamry3Yh)LrGZs2rA&9u>LznhunDc;KIeyR`|T=ma`|weg_3cxj8aM7+hn@H2&j z`p(NJOoS);YOx;`Lco7IE&@Ph7MRLhr~zEgJs~@wLh=Ghb0SpQg9rFLMVtQx`)|jt zRZjwb{KVp;8ATi?l5Q5!AZ50l<@b?7rkS5N1*UZ!}s`psaKCx3Gl$Lf(V7DS$6nn<9U6 zuzyoBxd@(gV+642!iBnd<*Kd!WRBvX!fUBspgJai(d6RR{B#%P8M{nGMS)ci3^9gA zKX`vfOL`V9A*1ArmLq!QH5j@XeV%PL;fE6Bhqv&kVaW# zX829+&-*l(7&vO1xMp<&GNwcV74aM7##FbEyh#!wZIz7af$Sd}X$o!ZQA*~w}ODi)W|2w}r>@yat z7~|~QFMc|$fd}Tt8=MTXq1uw;mKL56=2Q#OWt?{lxSdyPKr;{!V9o$ETJrrQFd*wO zkRWsgIBT+pv}Qm`@=V@CW(9=@1olfLiv+LUX6_8kUc9TXk^}L_1V|XCvweN~rWr*y zc;K6jFiY{#-upGZj730IQZp@LL<|m{cXBlX4mT$02;yG~zKf?He7^fvW&1;MM&_DF zDVcBBiM-MSYRn5ZrJqJgjYM@EnvxJ*{NeoQvUo1VeOGAx5=ct9{$@#Dvc5S*_gPPR ze~#YAWrBGZMS4M+?+a1B;$w1g;jkuPwPL6tCZ&sDRf87=!g}mm?@!9Q+T7OKDDvMpvx%x=6aneRy_{$IAIK(}w*Kush;RPcp zY5~@iI|pV7-)MZy;Q57p;hK$%$1oQM#Mh8(Im0?Li=c>sYHMtiHK_K!`{P|xCvDIl zK)6+W*bf9>V#us%;?nwVMU7}ia}1Mn0jSfdTc+$j$9k6XdiIg6dF_e7@@ewNf=0fd zI{VM@7SG};c)yJ$_2YG$cpUGGp6rB`A0J9iISm~o+`JGK*~Vo^E<)6)frYg(vtB!| zZ)8$H)iTkqq93f4B%MEQ7Z$Xg!006i=xB`26N_w2Z!He4{r-CuhuN)pi92_0*08>C z12ThU0o*3Ds4!tM{AI=Q(bC~# zEEZM0t@j|!gYV$E_yB|a&=T#|z8G&4BagVWCr|-HDQx}%D4uO2QRwmO2J&RVZ{NAY48d&9*DxCr z*3W#HejRb+*tcHhDF*SxPod6*t|HsB0r{s@e!#&IZ={@xIg9C^s%~zc!nMRfE?^}+U~UQ-qTv$_SqS6A!da+t zyTv5X$y+CgWU$mwv~+5``6sgnpBrhlg_*F5Z|~4yg7(>J((1>X!=mTt<828 zKN24~7&PCX?PmJT#>oA~j|+v3r(XQn6UMVYKQ*1jr6F-~{s9V3j@?U>B1X>(^g8WZlK=8 z1ldMz3H(D6m{U^yf;XSBE;k11ZU(4h98@l5Si-v_5$AJGc}w*6<_g@Y*lrkG*vb{o z^k%zo6B2AU-pta7^J+nAAO-a1pYXg)8ahM*bzvUaSId7Yk)H0quoH>@qY)7MIgdD5 zt3XaOQN{lhHQAIXRFK@5m z4DZ~sH`?`4h?Q5N&rtclf>Ct~2}>KEk#F$omYk+YxiE z$dC0-*Ry{cx-oodi6|;?@=is?N6|o?JLkvq*DZTJj@H}fJRY+H3aF1Z`sDBk7MgZ= zWl>F|$=V}zmh@x2!6$rn*UQ=gLH8;x+$&c%CM&1sD5GpBSmZC{qkBIPfnz!gCOVE6 zBMwX|%)PN27znR_NvkMfFDQP8Fu9>5#388Ixz7_}a=#_oaavz}zBJ?Lv+{r+iUGO= zKY=&TTI@dT=1^`Xp5u9TnQTUwduOqBr?;TlBKE+OLe@_vrDCJsEQ=K^ly;dJgfTIgVCZa`1-)H}$Y@9XAl4ZuM|V#HAyohn&i9}4FpHhkJ{I4`sP!e zb0eB4DN{f2ls&o%irxbeekN!e0c>r4b-|! zk|g=u4Ev*Vo$7|jgCFz{JW%-XA>=oOl-2C^wrU#ES^0+Ey`jDj6M~mN4jC+KyZ-f0j|M2d}HhZgIupI(xVKCCF_$Li@d$@ zXRD$l=a_KZRQDEgl;%0LZH?UH24ugl^8+6#mQ)W9n zYS$4>tI=3FwfQFdn*&R(QvpA^a{OWmjPW(!r}iTbdR50%fA+P5HO4UgG8Ue%}|9 zVN!sdJz+xsQ0(3&r@((}mRvmi(0kX%1Yk;QS~i%eN*3??lT%}a_r2kns@iaw^NMZ( zc_kMdE*17RpxV>`nl?0V+PL`cPmUkKHdU5NBVgKBeMqP>J(Dcq4}U6Nc;`(RgRf(O zL@c6RDh?RNT2^ii2dMv3SRGcv{S`>(S!>?IbF@d;g439p4fLmRxgUS*H9u|LZK4a? zU%@B$%)0yaeeT^bXH$%jhbF2h36*1$lzJ=h!*> zm;RI`rKL`<%n~!kYP~$O(VIN%NAWU0$QfAIC_;8vQ2MPlt72MZ>9r=lZH;a3 ze;B`%Gwn2pDeP|xT8%fY4~t+#@Z5AMvD0wwd>`{vvtGpvuj3-0d-E!CdrFpQ#qFKX zZ<(4TP=yzKP9032C_k2|gxxXZo2xJ!-=5KAu3lM=U;jOqafpc~9q4U|FF`k@if)hZ zqZz4NI+}Te>Ryk&pPhv|VA8Vmyq2Y0`zhEv4YsEm^FDmxUb5mvtie?WB*x&TLn0!R zVw$?5k^X~=S0D;@Oxn#up>cvmyG60u?qg^5d`0n`x+6K%fYwy}=93==B*Qgjb}@=`wSA)?EtAHP9i9VnQ#cv>KxT-V(2-6CW$zz;Ng;>Gu;xSm#4HXx6>izpQ0VGAOr@w{8B{io+*8-=I_ZGTS z#(3;8;1u0$qYyXojfl?W(l}n+9%__1>b4k-$Y4S=xrh(#ZVgB3v0i)VWO>ZZ{HCErd zsa;gl4L4bIL$BLJc0T6FHpZ#z8v;+_fZ^(F4ek0bO8N(5URU`{wU$`KREw&^;ytYI zNmF1)Fd20GjE`%{me*amXCil#4V^st9n8O;9tN)e*wpe8R`QPhiG*D-GjeHVJQD4T zP0Ss3MSk8V{$0+N14JHYWVmDWHp-btQ)dw$L9vw$G+}xk?RaTe6I0zZWVs~)dSn;N zo@q9hQl*n5Zrbpg*A?5GQquF*>bE0r2u`29`g2{Skm-u2Y=6w^Xa<;8D2P$YcjK~p zM)ZYFI2ehgQ7~$M`b7AhC%+k&jH%TTb*=l%sw0)vB<G)C(i&{GxMaPL zcqE_e+@$6E5(Ab!Y}+>i|^q4J8_G}0auWBr-@S=2 z_SDeOah6Q>au22BY9hq+@3E&-RrpB3RREMX6020E2kI->E2FkeMl(U{=AgR@+p}2*_Ss8rHCa z|J~=+@MezJ#G0Pm8ls_1BI(Moao8#SULixb(Gd0O%X@KUJ+*uWMHvIro<4H%xzd@n z>b}8+HH7Io-*O*M-Pe(Yg^)hZ!t7*urnbDKvAt?^VRPI5wDK|kq7G5=HJ#tATw#t1 za<&q=)K+XyGPrI3G5uv|BUmUj7dTbTwsebtHV>Yg9 z;3UWMoc|slFI#7MM#rX-U;q2VTBcf$4dVR&J^n4MikAzI88e6f?}z(Yo&~0K?*8{e zY())E#~atD1AhPO!r%|Dc)0Kbk3{}G)_SnWx`$S!gaJOOfB#Te<Z#BF zJ~8s;2jSP9aW+OFbR5yg!0*eEX}7KK5}N+Lv7Tw!IDkGN+0DmU2=S#sQ!;M2qQxhP zNOKxE%2AzB=^14#*lXg>z69uB1$_gpIhOw8ZQcUp2!7w4EXv%_p)H4N1`VyP99Z(H zL3$_Fe?K)tSoC4pqnO_;X-SQu2og8iyp~G6i=Dldnl`)gh_XAA=}STOv`B*>Yid_V z2y-w`qe^wOUFe`CPkZ_vHW$;dMa9V-I+58JxHXX3=rpndZkqtknW1FR>g`3p8!@zA z;B=2a3!GL+#ZVPWJPv&h7Kz2}cexeT6ErPP05CHVDheL3=W3EqV5dN<6Vj+*{{Fz$ zP!JW|y2)d!LvIB@8*`dd4mvLYKA#W^x^-O4O|T|O{BTp5Y~W~zPq;|H?1qe0>Feeq zjN>*U##byhHhM`g)V0z@YRZ{K(CTr00+O$ z=E4)Eu%9A#as}utgFov;4{n2N&&4WFMo>O;hCKFNugGjrg1_D}8~c$!kk6n-cl{73 zN}b^ky~o?6Pg*JsSt~T4t@$?533%+3_IR$~GV3lDLG5ulxWBG1fXUbB^s;bummxZ1 zC6ifSN&rmtmSZ4w?}Hq8mzwR9p|S(}xkf5koDbve=i1nGb>VgM_e-%5{!aicVz`05 zcrp^&M8kW6DV_sM!GA!5(ph#HB^%;#@rBITTjHF)uj!ipK`{yyX(_KOww9j;6)Am$U_*RR8_Wl}_3a&gI z9LwUYF|L1VMQUw}#QHB%H+AhV-lcuvZG1dL=N@pHWSU?296aO#ZufXuQ8QvcrNvTX zCAnuo#_u!xI^aNXM2g1t1ShAj^rp~z1^pldcBo`HeQPj}V)RG_H`+anN`2~VMaL3S ziQCh*Ee|{Mh@ftW9%pSsDt|t?TXdtD5@l3x?K>@>S!b0(1@U31=9df6Leis=eTS^J z`V$eVW7Jqej%@H;h^Y08q>b8%L+&Gt9_DtBVFNcG!ksL6EMkH}@b z#3E-a7gBl^MwFY;pw$^QbWm4zdO~+9N_*7YhJ;UpS4p$oQ3o*?E~lzMw!HHZ(*tIP zKRJY60rM1utNU-ui_*am@atz;uXLMrrq1y6i@P2TnO4N6QFf@(y877J*+;**d7#?Lhy84~w%Fg<}$4@fpc>B@C z8ZA}FP$>y&P*#&)2<}sr3T0pi#~o>_#P}eg?r2KygNJxcH#SWxl+M-2?U>Y|)hXo* zJ~*~9FQn_(!W%5r89T<$dXbm2^U?ZwpVV4ib_!ydP3t6pZ@# z@pZVU;7!mo7oG3AiIq|IG}0QD^srB_F;|3|bi#+n()2^ymcUd!q$Im3q)BdJzBdS- zzk8G73mmQXuzhE(#yxqp$h*!{V@BK>CIl}95<^T|kYj5lr*M&uQsv*rIYXBJ+yUjk z(S7}7E9Mp>f8}Ag@Nn>VG10j!84Yx>+`J&~?0hkapSXF3td(@7gWU5)s%m|l5R#J&xHHe|&EioA?0(F`W zdHbSz1|&2$+jrQsbayF(`fa3+=2jnL)^8Ba9hNkClsw+F=;}^Zg=PPiSl4O0wb(^w z{3*Kq0D#qL#=M%ERBUUHt1DxrYT!n(d$2Q&uoP0mWQgb(mHIZ2*P7&uwd0Q&f?fM^kAAgh45?eIMWqOP zz(r(2s4xQ^XRO);YkFJ0OJMmHoF`vAbY~@#7cWX|{pyJ<8>lRKQE^J4W!A+-Qab_r z;!?t3WdVQOtj+Awlx*ncvlK;j+y2~3tF%mtS6*sm%Qtq4Xk#5%>of^%MSXcw+IVQW zGr&H94WOHT#Fq*wBF9$%(PUprS?H??q%ZToG_f22sOgdLTJ$#-v&-k_hXoywlW`P236199dPZs zc&F_9A8yBQonGF;G=*%f2x!iLJ^#3A%2|rrn$GSYBwVY?=4dU8Ei*97)hu}?XDoe9 z0UENp;$*kjK>F3O8fw~Cz5*fB=-8&!9NERDn7Eut7Ew83pa<;r5}%yMH~xkKLAjLt+&Y}VWwM0vAcU?JZ=p71@! zGdK&id9mDlDWURVYr~=AULL z{-mpPd&JIJa)$mk`SLP{%AKa^@Itgl$YEKJ4wU(wL*G|Pk2Xv^-{CvA*&D7g zNMKNWm-60Uy#~L!&zeg-m$U6&vcqD&k!G>SHa+C#)*2tU^|ZIF!>*4-WwSB4$91j# zGzi@q7$~(Fquy{emk(Lk@ZkP#{XE1HR`;#^;8@!Yvy~q4WX5d zaLuROJ4OeZ%Rhb#aIT1b7up>VP zZk6h<2_pqq9WizeQ|7fdzJBJJPg-0>j;l~JZnZHaBWPPj*tFA;2#m3|ByG`WAM~9Z zL?5gC>sd)JhdMr4XV}(oJXG*`pyp~9M9%@%md9uh`7U<<;|1XUv-x4==ENJ)+EzI8 zE!&QhkI)VQK|x@#TCkq`vJr8)hw6V5>nFWI^-QiQPKxcDUZ+V|cNdzFapAA(6Bupe zDs$NFrJ>6AZX0S#a&kEjauh=tZSU=J&~=&3rfjVUGJrlBw&JvHObEq?ddn}kNev0! z6~L)zcxGPOwu(7oNSYrl=PV6gbf)J>ggZKUiq3L?K6kkk=FN|{@v4x%I@}~Ar~XJy zKqTBK8}$%h9c05?d%}#KQRakOl!S~0Uw$m80VkhKLJ#dBg2xGW9}~BN%bq?qAZ<91 zC1ZH2Z&?36W-GdP|RLvI& z7rRq#7qp!b>#W*ZC2|28`^KlsWd014!YJ)YO;QqhXzw5wa76lxLE2ZZ&+L|E%#bn7 zav@UhOEd@39oFN)+MATk&kKvlmtyl`noCcI*6L(Yj}v^Lg`yGdrbhl*0JCIv@r)Y@GO6-Oz#Gv`G7$8)>bS z#Cdc3wMj_~b0azrFGWl04E8YgWn1(()dK+%1M%0|aFLgr&H7)e3{yvbK4)WJ|Lt&Z zOF}?HgGHy)s0A!88e;>K%pIHH@HO_qw3Ys+mE3P_UKBaVO}PiT^*$k>4_v2mOOMr7 z=eQ+GTCF#}XPy@5K4ZGRivop5;zx~rCGy&wcDpi&J2??YF7lQRa!be`aus_162}uN zf+?Eb^92RBnxh*}pTmMkd8?$@S53YW%}9=alojG2XBDh`hihfpC}1~NVP?@id6&S3 zpjfdZEhr;HQ*jUKM-B3n%9Y1f1u@QT5+6%em1##t99Y0~&D_fIvN@_D<5rWxqhlJ* z(?t90v7Rj}(Z-A6+svsCFa9BQv)b?Nc6CjIEA8Dr_59MvAfU?1&-a@e|?@#AfY1)sw->5Fs; z3!)GEI6~dbr;}*kpUnJ@@=BekPfHR} zIcQj97di-FhX?Zei(um-yv70TH!b@O+fVoI7Zr86QcQ8odW zq61_(0su)Ix_H7@CU^hbbv4a&oOyYv$DZE}M$wCm!gZIrTduU0MR4D8Iqi3;yg)t;1 zw%m3tFi5jfxlaBI#cy$CqH#mWh>bCV))?+-k7f@vr$!kqaH7Y?_bSZ-_k!m#+L|B| z^!0(ZH)NLaZAQMHU+lA+3Q)?KLW{BDu)# zbY8`TSYNm}R@>V5Cs;RZ*;-Dr1RA$`y<>YVX>ra0=JQBZ<8($(>ey;-V>qxLETs>F z4KGn-{u9bOWoT5zq&Fvet#*f=CMSO_CG!5Y1hTkBp;b$~_1B#<+ubDg#ih*#jX|~F_V;~J_ zDJZ|?GoRgcB(ri(E{vlsgrecaQa6@#_GKWDvD{4{gQ(M8fovC3ryy7fz(f}J- zGmrvQWA=Wtt1C`c1B&6*ME!cjj;bjsUQIO5#az0gGZPmu6j%Ld_6ea5-i+XlAU3r0 z_-=Q~Vz4h(#TUQMREGGOryACNuU2GzQm0o3hweT_YqY&UPE<|%t{E34ud*Jb`SUs! zBFqi6Z1Q@4$f&HN+$SMt4s_7c#E&&nR&D+rUE#>vlwy-Cm-;RfEA-LypBStH;wJ_> z_buHAThP?W;MNf;A96m4z8cK|{1zz5JwbN7125X7V|7~}&LtTjUK`9uVI(b?9acL( z*hBVC+Mm*%u=xeyUhNxk}@w)Re1>4l7s${JxB zhQ?81Sq6dF0Y!G$41iL@qgmH=c-Xl2&HsF(Oq^V6?{iH$EaoJa^DL*czHH-czqUWedfZ>2?uasrzCJ;@ zG+zDGKff~4%98udWs;Y8_ireijSGD18NJQFc;O5butNZBvpB$Xm8h_#f+PQ2-bDzY zv7~y#^|ychG+0B90Ejtt14SGB7sOSJ1>mrUrDWiZe;Qd931D5l?a9FTe}P0n9j(X2 z|9hLB(Zxfk>fV1}|F^IhaQE(Mm~R>X-oJ}AXuy%Cjf{)`wz7>Iw6fdT*5H2)CwfX+nA^SZ!10a?4iZ1n2z54w*h)mpaK8C>ZXNS z51*loSk?@HlX?N&hPf{Uo2r8PsW#tYdMUJBA?4L&jybUIWV!*@UECx?eLBeo!3!uC z2FcwkThJSbMbSL&9lQ5)8LNf?vyO5)T63olU;_Hin1T#2v>qSk8hO}nI<&F@2rX;_ zhymu1O#|taK?{(%6=LHLVcd;_rzEZBy8XL7eKhH#J=M4!=6X%jV#e}w2`>PQ-9!Sn z+;Swyh!7u2p@4yKO4h&K4H#CEWqitE-V&;#+q+fDds@hlb(&-@&X{UQZBr4xT<7`usyAm8PbI3CGM=( zAR)AYU=Pqh3V6MS@J=x9BqHwlq9iTLalqsO3E_4f>iA%2jP>rhp@WB-?gQmJbl#I8 z{+wamk`*C)LYQ=-fmQZM;lx@>O?aM4mm?xvec>U2Ne^YZ+qDDF_HzyDWAc!eIx}R6 z9ndBeuIR_h9QRE3 zIF4M{lQHYW>IM)$FF9|!Z7Pz;D1m9ta}Po+xxt@X5Qs&&4G$RX)YJU&8omHwl&jf~ z<=OFI<2=M+zfK#G0bwATW@wuIU6TojtNv;l$&pyJ=a-*{iZYk!{9_rHS`)vW?3}qaG>+iEBNO z+|vl&YWjI!QI$!`qK*pEW4)T|OSRMVyknbv}qa_Z|Uf8<9bWubI)xdhdugHEOO!M(^cr1 zB=NrhZG#nvZ>Gg%Zht6+H;2Zh;vZ3LY_Pg6bO`YC9Y`Ikgso)$6U?7@7WfW()7ppEh8sJLL{+L#3s$;f%TAh=wpMo|_a|2X}FK^w~s|fkb%}&Oh zC|>YfkYNt7$9|lw1GPb!OMz`@)Y`MkxcpMGKidKzWVFwK|6+RHWr-a#ISe z81wbvUG?f|;D3y0rMEZQoP7`j=_RUQu8t8%BD5s^T}hkcKBP&EG{=l4NHi9VTKGa@ ztp&8AueiaK&aSMtEbbXL9p~@y(+>UNuu2E~MKM#j3LET4LlOyzZA(w>)yXE38Vf&R zauBjsF(VxP{~Bjp4r2AT#a*`1Ij8AxrTU3O@-z}y9jPCRmF0^C=XpaLyS+=~9kZ9^ zYx1)(EADJAfcxxvix+PF4keK)3r6m^-SgURGv=@J|z&T1OBt>!fUJEt_XE8 za}Vm*&X!1QT+K-&3`1LT7+~3`ovu~qMm4KhvF%_QVcG%56;p?ED!ibJouDM+Oy=6E zU2tB=Mflu}DF%ZV(feWxZ4Q{1OcPPMP^pz#xJj`zzlsW`u3KTzm+DMNNKI1%ot05J zbtO-MT5+MUO6j+_p8^sD3Kz9RQgHnoGTcJPwUy!kzQ1zatnmqD-SkyvWgL0htwVT^ zVpKB?Al}yn-_C{(lW64L#`UUFz0jS%5$_HB-gDxv=dwzXUyhZOjcX8p#v%#qMdbUo z)&iHVvNdH8$vXQ^|0uy6RBZtz?ri;=A`N* zm@qjQ{c*1xLEP|M1UG$M=VKsXUq<2I(d}_Cv*-=<#{+%V>MK0GbcXVhe-F-GZ2c4m zJ4i1l2x}$24I!FYZicV|QQz7YVZ{2rGT3V@L_{(!wow`MFB9P7S^)8sAty%mx~gmz(P4@ zTrptmW@`x*!1y-$JPeccXMC$*|Bl!;Sa9o$svNn*v%i9ViHc8-x^@S z{;oZMtH`L-JQ$}a>i?NR?SeeW90$&ArSP;$$X(KO1B{L7(}g8?-&hTx??^~`DFl7$ zT8n09ZaDA?nB0+%#&akvetdt^Y4Rl>L)gjsLaoK}qw9oolOo>KZMzu0np>K6qg`%_ z1j9hFvPY_tgff6di|#Ck$5s2#KfE9|Ht{^25s@}_Yi-c8O`*6Wl{-2yl4@AN6h{lb zP5}@1LMvTo>p}HcT`4!$fPqSJ?M>3Puak-)1nWINj%04MPQKakAYq!)AJlwkI|Rn9 zmf106+o=#rmgP{F+Boz|MOU!;)C;!fASCD!igR&Gf?j58EWrxREZAd zB8$>og&}XNrk(}rdMIzU8;mjEz}hI%j2<2M)2{uwv1FV2F0%+sC4%Hw>>U$a(`e&Y*=+q1S$>~dWs&4r)^ zlTfZg_{2a<*9(4#bj6SLe)5tbnj94BzG{mT-k)`JVfoL$ zE=f*Q5NLQ(LeP7ykG=Gl=Fmi6PwK-8ruo|zHmb|`YV1U`5aiYX99ebB@ZHFpc*C|H z`83k+lm3e!va!HS6S|SeKn!wBLH)LJ?u|oxD@3^Nvbo+O7}tCb77DP@*!l^Ky9l137`=)_qt#Z~EagNs5?IakVE$w|D>c*A zzE~D1dKopObql>>DkzufYZMyzeCuJief@ri0e`z;wCE7DWBGJ&OH4~@qR*8FwT>`N zbks!>JgFxbha0Q5@;_zRwx15dEQ*C-IT`yl>z<~ZL8yb|<`s*g6!}tA9s6Zip_~k6 zQtgFtxj6PosY$)R`F5^bJz+$f?+Wa`#|0Kaz2jr}nrwZB8=6T{M7h8+zW8|;Ck>40 zzgh}qj%^LsWV~D*dAuDOsWd^=R^6+eg{sq*Q+~${rIvTXM(qt`ip^Hc+B)W|>bfP@ zHB0z4tGli*CGx^vFZ1!o#%YqoSd61zS&~gL^NFX@eEaR5PlNIBrQ-!E-&r#2;1m#@ zDHm3$Y%*pCis)@MD9*MRJE6yek62kljYow$Kn$!^kLT)(KQoqj|*Zl zh@%oQFV_HFgO<@3w{UwDRG&^YT_j;V&EreM08Ji(D%oc zHuZgM8+V%urF5)2ELhZ>#j_J!?^*xvQ%!8Ou?rODFkr2goLdM+{sF`!hz~aX$}gcqcpzWtpIRq3u#9*!hB62czJj z+av<;8pT^xI{3MCb_ki8*Up?V@c*{F*x4iJq@bIZ%qxYaU-T4X29j!JI27F9@__9) z$AwpjHlsDh!}2nQRd)n4ND1}Ruo`u+Iv2D(JkT+Tn4p7tmXL+VO+9<`zp=*=MLQi#a5^ z^IHr}Y*;L|(8kRbrWw?-^|iy*c{>ezL#iXb1WBJfTf>bf!5>FYqOfz4Ra8&&E@u(v zoE~QqM*7m_B4jD|@pEPmYWMzu7yOf-Z7YV{h~QzOC!Y^EcvxOf%Nvk! zz=Tu%Y|c4r<;d<3LnrmLwi_d+yH=Q48&|-1y2`>n@FPpLW)-L0z6>GFOzx(#nJVh) zi&{2xZHz&!(7q9mt_`wB*Nv54G#qwr2fUkVGU4iY4UKZS>1@vM=tNZy55EN`4YX+9 zM3&adJX%5SurR&+wdpoh6ni6^a2YK6W-@O%*W^+(OJiz|74CQ3!&a28WftWfVC}pu z1Itd8tTMjvz(H`4Mkpg{0J!KuAiGQA_zqAel{KZv0 zC0hq-2xqrPpwKSZ|G|2VhQ>uUD?8lIlOec_?`bt^%kxbka*GI~qvwc{1>!n6vSNjEwcs;7Uvh zGlHEr24@3AD|NIOGWNjf0Yq(WPc0P6#?@Lot@e%a>2iQwGpK}tQXKd5>w;(I$&=qQ zq-PD5V6ttzKO$X){l>!}b-*Twq0|~SfEUTkq@wxLGctCScVO)4tv=YVv>Q1$DWX!zgL>%KoTzI|j7XznH}ONt*dN(FV89Hlr21V?zUC%T?BY$~p8PS76z zaJpAtF>@z0*>`HtZ;VP00RF4#!yve&rMGkQeuTkV4ly%HCw)3B(%h!CK`#GWnBK`U zi|JbQb#1x(C-hCDj$H-uH`$xhuX*>@kqqm>i`qBL-nlj9F^8tR1mQ4`*2;L}Dbi)p zty@1~7}3bO&xhQ4t;}bD&Pt1ychS*k-=fmdY;Bl<$WH~8jP^4yllki4u-zy&A1PM; zm3foI#F7+j&uD#LjN4$<@ex^1K3=yiAORXgt-do3 zRn~8f=HZp&&mB34Yc%h#Q2~&@^qzV``rcKj9ro!N73< zc{|G`G1o-#E+yx6wlZgu-taX^OgcDi>qUsYqXw#LV_1Q zUJv-Qe>#npJy6^+ckNqIDejX^2jx;UrBbVELD3p1_i3QSP{q>>(&>mVPAW^fWi#ZG zD;37=-Na<*gp#tlNkwZb5V`7f;@kYbSEs*2Olnk>U37GQ)`K@hMbL{d?qjaN6tf3^ zy8@_JNbS|^)wq+8;>{Uml-XJ|$?ZqXY;pT8K`R;39%_C?$@;}&YgGR zu5h#ZHjk^rC>_H#1yU*Lv|d`;)~j%}N7MHWY$AL77D*1DorYsY-EkPO=t^x<3;v=E~Hg->?6FU<%`HnyHU3n4I~S8PyEAq=h1 z6cgG9nA4xRu4c?9FtEk&FoM3DRck zlXyv2iDxe6Z}Yq2GxU2RLP)PXMq1mG%F~lR$rZ6?5=!Gt8BpRSlh6}==GtQZH@uQz zq5qhi-q~CQ)b$p*`{Md3=}PI23b?zMpK9qJ-_hi}dz$o|x*;rbcfKBMD)bS6Ybyte zu0JN$*RyAC){i%qee?YntKXAwKq@V~Y&E0?!UFyV^~*Q_T<^Vna)cG!^xvOL?q{P& z?yt-I2ls#4e39#GW_%roPe3;167uV{(34JSj|!j=^sldcWm8sB$j(Xl_XMriPYcdp zT}J#%l^lNs_yu`W2(0}3q@&;>zrOLSKmHywzsAR}+3;(1_-9rAH5-1-hF`Pc*KGLt za{Lu3{fZoaMbf|WhMx)AugKt6Wbi98_!SxaiVT2T!Y@qe7lQT+LHmWEL6WLpS<{S|lrio1Ws-M=u1Un-tos-}N* zV83R=ui5ZxHvF0mf6+6)5V>E7-2X>JZba^GQNnLwYp0fhw{V{7_HqkSHfVyK0D1IL z4ky-L@f{D_r|{1PXY`=B zBO9O;V6%)w`WELCu2Z0=rvCS2G}uG^45>D64XIe^s1uTxD`tvrOuuPwjZlkojPMMDh&3z zG5%RQ@Ov3bj3SZYXYKoCzeFXx$yXv{qlc2oR4WhGC|}Wd@PXWMpZ!Xi+GxA}a5}Iq zcFr^y1C}6XuxNdTYvI^e@v~}RA3xsb>p!h?!A9-a^tB@U^s}wZp7$tbhexxh8_nPI zz&2FWAFIATveRxg&cZv}4Z7D|pRETnN*B~Uehd^`F^M}qmjqciokd5KMm(#KWaHx@ z)jOL#e!Dk%suM#qV=J#d)dW711Z|?v{7Jks^YBLVK8=n8iWSFw5g1;-I7=aLr2f(s(%3-GVv~hCZun4>MQuG`)e5hNfb7 zMMa(<_#$P}2Dqmz==&lD*2JiSJJ((Rl;HBjhWmu8;va52X`j*2`0?5z$l)*PdUG4E zv0N?sn!}#;rkx@4mKf#}cf389J6|ZU6!3DZfKV)3l)^#gf z-ho_6Gz;YQ7ov}7WH$h>ktH|JRNQJ|aT?itW?pBb^zjQxuhKvQ*>H;Q=I$L#D8tB? z;+csQKB4UG3+zfuy9PAxGdE9g`d@1rBz#n?%%6SF89eJ{1zbIsXtW(rE1x{Z)AKN? zMon!s1ygSq$}F2~e;hdN8BIZ-JyX7=D<#aIy-lsR=3qeOk@p+UY=SB>9BO9?)TI-W zyS;K{%zGehb~k?gI#}-mmlvhuj`Q_DT*T%;LJzFR4@}>uOr*f-E z!AC&UrV6yLF0JhNz}B>esQsO}vTft+(*ryn#OTt6+`|b^V~Jk-EZR2?5m{y9c=n*} zTev(KQtW@^sHhk4BIE_6!$l6c5^bplfsJq;E-NqiMi!b~epy;F+P>dg$trP3J-ns) z`_H#Xrb$Pw@mTom=2-Y}&XQx-c>EQK73if)wnVL{J>d$FBXAWpNU7avY#n%%YvN;R zMa%GKB6Na)vU@nkd@|pvFPAUlS=MZ9>v7A-vs-CpUNYJw%$johYu(4Tljh_Y-^mC{2%UI;2Noo*5I8iM~|%#G;AqZyi2%%q{TPkb?IGW_)zp(4&l6aDR6$JDNPwC4y2sj1?$4t zEx2l^`$X_S9!5T<$hC2!sd#gK^=%b=Cw?o7xDdpqIA^D=2Y9sVeZZO_s z97nW`Ky>hkTDi8q0ylwy^X(m+-hG5jC4*B6PLNOK=?mwMk{)&nO2KyA2lF9J=hmG! zb{Cz(x6irz+qD%&;xV+~$0pLqw4^hwc7R9_!vf%w!7Y;?I?!H$Nz^mF^Z781D&afI zn$+l+y)q%*k;CNXxG;@$jMF}ztBXsfrZe2(WIV`2NnxZvJFxrkYMOj+Ts&X6#D@z3 zWDyfaj1y!BO_})XPL;>A_*4eFF`8p6O1zh*6dhZS8pajS*8Sj5NKJx%(~w{&hPmnk z5%zq+G9d^N@?QYG`=)Eqb@K9D5K!g>bo8nzLG{7{!LHn$QHok=7nRem-!Yb@F=ukFWMOsVq)MP$J$(jjyxjKHo7MfoI+(KN(d>SiL)wAHl$ku+ z&@gKVEw&q#(4g?z!dXW8Mu!Q^Z9jZMO_;m1VGk`LJ96fp#w1VBfLO=`1zb>*9KpB8 zhSMBf*pH^aVU-o!oob~S5!Z`dhU<5-25AYGJXaTLokG8P!AzzYH(AVJR%VR77eVIS zhx2%HhPAk1$-~(QI{~70yQYT5+kz3tnsdq<)MSqeaqjk_D7i6sjCWLKFyFV`gsUP) zC3y4~GOVmCQ=*<3UcvR57nDwVEO2jfD*U+EglrhJsEKWgMS)w9bZ@wj&=KBsVMoM@ zacwAvh>}AUi65dtH_<};m!Y^syd4_IqD$|_eLm}u-&BdER#?yF$nvpeX|X&dKcu2~ z?ZpSf2`oW7GatPuXv$l(!k2ciet!}k3!&-+wrS*Mr%~`fSV&ogL-ObeWX8*tpT{h? znHLjsTff)1s~tdu)HL3l@50{6kS0zVA6`Xi3+IZPw|z>RkUpOXCZ`zlW1%_mxIS4w z=2VNVl3r5q{HbHNGn%1VDlRyVtO~5d64=ZCYGImlap_9t*vfFaeugap-o^W|Aqo#n ziTScZ9j98NlPNyu*Vn739WztN6WaqXN}oMS@s83b7I0LC#Y;6AgUYTq*EE{P_#{=sGj%hMEzz@MES5VltyX^J zt|NM>u=EJj!ZWxWo-#7t&L!v-!QGKbp{O}=6AN*Rg}o$s#W%QT@Xa7&yv2B`Sg)N$ ze@=If**3yw73`5%Ju>aB2Y?F@MELk5&?47*u;^5E+0-@@H6w2c=Tg-NP^vvQPnDC= zgOOLZn^%6)dw?$kOZJ2Q1?6H$2SqV_xzAbK__%KpWYCq);VT$e2x9(KF5Di@J;xS| z&P)lMo${&u_QtsD3BkL`47nrEKZ^^pxY4u!ts|KgpC9R}dLh#IMoEH4ot(B`+e*#<EF59CZqcegNfep>f9L3!xSvdyF`czh6aNh53 z*Z6g9wi;BXxXcDHEoh=z=M-pxeIq%*BsE@m6k#gx|NA-MoRRADT!-8)r$3w0Q0-|F zbrM#KJ@?t(>Lcm<+xUh~zA4AEpkO+Cpx5(-02IP)SGW{kQ`s9u;=@4nuqQ+e>jFoJg*0sn4}Zk@4NUW% z(e!3)#453t{uOM0?>&Iel)?BhV|9BNkTP-DW~eYUx@*CI_T#s&7c5JEzkJIdiUHml zw6{eXQsRawj^M@I+|I|Ig@Sm$rGWSaUcR-8-|nGh!cl0b903aq^-{cS^1Ln|c4+|Xvcnj6-kFxY zpq&nv95#1BAFvZmSIF&}m1NOj1Nu`#EnCnHRUBp6eEaeJ*?wc-KwUDex6msu9u?_D zw)XwjLkY~mKT6ohXj}a@Qs@X%0c?*N@e<~5m!6v|D`E?oFf3D16cH=dB!Ch~NbP~| zOUZq;ILkx0rb8A{MeI&ioSN4l#?2awVg;M5h9bU3^kl31d!8KU%1)yL2Sx?k8?z?! ze>s=>qjM<^n}2!jT=DIQR`24gXA%Fa^x=bTlgobg599{H?P9^NWlE&|5^cB9K8mqx z2VGCXo}KkrdAZD2z1YW%vIpru3s zm?b!&T#a!_dZ-=UB{T6b4%>^!HQkq2xGd{QB^6>#YBM0M`Yq~O@5Xte8FXH~@akpQ ztDl8xXl|L9#o{eomwT-?IAzzLf#(J|?qWjK@V!CkrRyy}^BP zDx*&)Bgtq3Q>4w9H?xd!YAXKN8I8UDkj(Digz{X)e_aNW?Vklu!@;K~`F4C|E7t7gb%gAo;kF=JO? zyKPJxa#^3bU{RXOyq$wbF!IBQJ<-d1qSMX7B+_!Id9U8o=m%(GvTI3n&$X;{0-8rN zY<~Z6$`ZZh_*`QMOTdKRLn6|4lB*Apby;*tQF3t!=8Gb=>6FOZ4NfK)IT&D1g!(uB zERPZTgjYf!>Ztd`rp?gm(a{Mqq9-&ERRQG`vMeZ1zT={D$IN@sS0s|GK&mnnu`O#r zR9#6w(i1%E!0BmNbb8ulXNp3yvqXwgkp=aIxKqI}t>OGJ+njK6cHx1>1O5tC zdh1HYM1RfpsX^0z^s<;in}pdI{;z6RS`+;9jJp^Ro-4GJ13*5JK8Fwlm`1f@RZ9C= zOBlSuma9f98%}<$+pGr~)U*cXuHMysP+oLz#{L@JC_?08Kqm~WD+Jva^Pi~KYuw&O znLZuwRE_W8qc_>)UIS)VM47wrbT`hgtnPt9$XG&Qeq5h)?ylhg!mDOCxFVEPT?iGurPfN*3G&BR(DqaWs!%1N`S7hQm z9lJ%4J;k<(fc~fG{FvLoFOsZe_8irxmjM$}1O_h~z0N)tc7`9~DPZ%m+i&=CRD!Cq z9pha~OoJ7p01|{h`;!f*Y)oa0x!{icScd*YDH;cx&M$1d$aF3%wryTCeGZuB40v_N z|7!F!PUd&86n~AJTsyd5Z{?lvqo?}BRgeoxw;v=x@=swpmpx`3qyt$Vjwo<8e2UJi=n33c74gu|LqTG_CdnoJ8{#->Oi^B1vn!H_c)UmJSHc)sSr^k~)wUTaa#@=<0WSvELD; z)j2bZ%t?`F`>`F-ROxGfJO#xi}=Cfhu z&yK4dx~M~NF<>^U9QRZ`Vafovy~$6<8G~y*meO1JyBR+@ifd||8!ZsuxA%pGGqJIG zkdPJg*PZqF(gq7=geu|-PV;uxP`+Y{M3hZya_A7EVX9`R|EUj zPZzNI(y;nNz;GHYH$1Er)Dpo3#+2FTj=OpO9io7%F}7~NkC3!1MWIKrU{cVq8hktvMHM z*2(?SU|M71OcRLdQOcdGMT4v6u5ln9))b0)EtUsxU(3p^>#yEmz`+iZ6?k|)JJnXB}jUVeR*;%7oaG}4$5UnQ(>MqUc*0&7uUqBHP+h~xFX+hn@s}4UcjG;G^6{oB$l!^DK$%Tt|t6xiUx%9sy?`3=kyV&29r8%RV7Vm(Q zQXji6Sftf|MV^ks6kWkAWp$Xw+qVrK!ZACHVy*tVzuVyE0mvee#Z%8?e#iAXY$k^e!^jcU2L^kLP{P?&-{o;P% zI(g6YlqxAlxhzMW3>U23>pYGJY2w|~NDvKz7qpwOCf=-Aw;h)Oub)gf<-ie)}bZ7#4Y0*(G#@nO*67Sgcfc0EgS{LtKEk50_w(Wm2DabiIh$@ON9fZ) z-)7h;&p-Kz2DOR&j$g?)Eb1_QAOB<5dQ4hmVfk6@J?zAV=w}@spwsyP1w=m+rJ}m< zLAbiYsHD4|?_28c%%`PWAvqh*XKw`JrbKYwM{8$aWdCGfT3*=g$gPOKnAH=2$%kc{ zY$`0nHia#FPB>rTTR4~|0P;qLhnJ)|&7obvsEnw#UCHH@g(Jxr;jzwxDdV+b*GV}n zR4HBO$_;p1oKvzcdU?qKA2`z~7sZK_0ThXgRq|rk%xXkIR>8RW4Oj6n_^NP5PAk(! zQp6nzK*2A6xCr-@IQGyIHPsck9V2{Vbh})t&7P(^WCt~?xBDw^0Q+RueiJ_7| zk7UJxc0ljje43anuZ`&@oe((9Ho#2pXaiKb#dS&B`SlhoJR2=qCHFM$RZfl=mZ}Y! zMUeE#mT>Qg#TMT3_UpSU=V`VUp97XL-t#ZG(D59t=7VlZ1rMLQ_#K8$pnP@PCyQH0 z9R{Qfk#o6@MfVh?+_@Pt!*+uLd%ptl7W1GC*gKVF)jBPdDmYnnDT=}n5>ajH7K&n9qL~$X2?KH$J_Gcs{Km-%m~Od4m-=?MgTqC_an zzONmZp2Tdm1 z0*uT_u$`BK_7CE&5{_`P=92n8Ryc(ia zQ^Ce%=(&o#ij;R&qDkHuEH4*icxc@0M#iq%F4&JmrCO@3JBD~Uj;BNPv97O$!V7&u zl9y=EkGh}fX-$qurV@Q3FK!8!x<%3vb9$PcQ1=)4Ij$Q(bF;xOmi57xmRgm6IskvL zXF|k%iTr2I;dSp;#?S+2pCP!-CwTsyxBg}9Idi1UNVP%srwE)2-I>3K=gX|j$~Y}a zTxrU6CoEOW{)%;vErl>K>_E%DcJ<_)tU7NmujXzS4*-fe8DflTKhw^D!<_rHfcbyV z&cwEsUJ7%j-5 zje1f-p`g%;CYbnt&&N({dWuL=s->wZ=k9KK=2*!pw&?ohd0itQ19yEheQ3J z!T&sR098UeN}c=?Xx`55fHZL82eMKJ8H^XHfGQv@r~D`D6*aMd$M|2s+N0~uAtT|^ z9|r_N+rNC#(klDkI`Yb=VgBX%VUuOiz0lgCiYhC z?Ci(_9j(8n-QFUvlWwhyV#~flkmb+3%+4Oa&Dj(>@bdEdVy5y+mf7)NTiLN7GU7pb zUg7v~{C8Bi-%z6ARMnB{UaOTU{5_xle25Vu&>Wjc9yb1Wvf&34LQx2vCwkIM4LJY8 zm;ZoD1Y5UL{g}VGnv?QgI>^p?zuZzt;PO75KHU{VsDNHDJ2n_I)u+#W9QHw=`mv%Oxp;EhxKN^1`a8a|o;2>+iu0 zS3KV>w?F#La=M*orZ=W-6^BRk1MwuaU$BD;@Aldv?lkV20PS2u{X(>fYGMSFFQ+EsI6Rz80iwiOtPkWtt!{BB@= z;YxS5F=dfdYWB~9{1*f;hbJS%js9F>JP@=}_*I5j)4tBtBU^(oRD}VWY z&$GT^V7Q;eXjfq33iCF*jgMY!iW}P9(6dR^c+TW?-HX^A9V>j}9O(O%wpFYimUfuc z6f(R_x=o>FNiNc+9|mu5wVlg|4yTzlIowT3tdlp@25kX%1;Zd4#hm4WjC*jlR3Ri)-v-nXhp4f-6bs^aNMn+l_hR&=TI zXU_0HvD#+y>&_YM5=~fge?da(WmJThDu`7cQFj)5brh4<(p>GFt6bD}`;~=$(1-3iI|5&BzCA zzg4Ze(<+JGsI~|193kVFF``v>=S?B9z8nEmwY$5Dkx*3XOPhGbz?_ zf4i;M)vxibuiXbfNSP$A8ozpEKEtt*=GLHvdUT2t?;xm`xhT&v{}a19ck;;IZp+YP z8;OIiRyYO4Eb`(~U<@VX%WX)`w{3llD7r!5eG)0gTQ(QTQ{)_Meg1qV)`^#;xSXSH z*It`U!>YF+*<`D`Htp7Cx#gcG_zu1ykcZ_y2hJwP*z9VU%T1(m_D)G7EOXyrx$lG< z)Cqkpt>h}oH+3^sOBYvHTkw>~@_XoPx}K$*dr|5E*51$I*raRjUqG=22{AB!CBcx= zhk=x*OxwVmm@kVShLz4dHanhUwU@N#$9qrk4bk1JAggAl(DM-GSOlH_VAHqiOF)la9y@UC;ptXt}0n8sUEnf5^{X@D-xJZ6~- z($xn#d+}BYIzr}p@FQGInKI*qMG@x+XQ(e!Bao?rQ8sxsHc5-x(< z6d`lFUpTCfZBB4Rpq5HSj3l7%Z2T;Ua^C!KGVh0VJ|I;8GX!Be&c1})F33SQMeIvb z)biP?1kssn{8tJs*`P2MaOyjz<=X7xabF=6fDY_){8^xFS2IJV%-xgA8rN7(L(EOcwoe4^uQ=|!dq=N;ub+e&BJfSg z8kYI2FNVE|RIa_tR{KcAez&s>r4^PNf}3T|bEBwyZuB=v3qT$7b|y3!I~Fj_AwH&R z)61=%`KVCWv}0(YB)#uMvsHn_OQ&y&$< z#Rlm`^s{NUnFU�@sS@7X17^5$4b58 zkhd2Vpsgc)*Jq&m|D>7LqDTdkhgWvlsq*eJLpot`WP0BuUu|?qcE0gnxkI^|5q479 zQwx8%K=??K#w|iX79^WjByiZsje=|DjwsRm$x=PzJXkR0LKMr!iH_WXo*(d9D(7>H zo>ksP%2~DTa_`E15sB)MLDC?{@~703)0j1!L?0w^;_3+kbkia z>x6f6Ry00v>x6T`;Il$^*Jz1n8O_Mk>6kgN-GMuzlw9zBu=J3XN|iMWOjeteSB;aT z!ONR`v12}dUPo2@e4K{>K-#ju`NgM)nf;R~*;(=v0AO%OG%i%Jt<^2Q5))yBnCG8- z7abv7tPrjBX?MWabyX~q1&#zf?CiZ@*`YGTlHjk^iAq1;?#g9P^x(41{BmsjvCr!= z^Kcfardtx{;nE9z4{2;HG2-$5HS|U$vnziL#ex*oaP#d4qhcFg;zNSPA1GP(NOFR| zJZ`5ArNicHklpz4&iZNIB`p!q&f8r8~hm!Q71Y z+7kScC8w-a-c&rEwi9cyX3k>$?d469CDciDcX09zydBe?zLXr1h(&(Hvz7NFa-RcC zO}Fs|uVsXR_=j9rniFw^LU)bdL^_W)$q&Ul!&dxCNTsb*}aRJu5O_T=+l61I_=9VQ8w2QYGySORoXa$0l zEPO*@4*x0jC|^fg>yoRl=(U`iZ~H@txb2|pH)2n3oN4R#@-OV z%nekkNgndXGW0$RRj0?NF%l9l08mPK#2eYt<6SI75+Zzt|ILV7&8-^zEwMjg9LH?i zID3c9%B&!tta|JP)pKE7TofjR6zg?4v$tY-5B$OeW2ToWzfblCr)nsEzsKU2%?s9u z*@_P*lrXpR)5wx671(JObbne>>|R)|;{mO5X+*%Crz$byPGQ(5Q<=#=CS=A)WAqw8 z^S@P~JNt{g zq(oe&v1-uP@kO8`=&r`>-vx9K6G=I;e=aie0Z9#4 z$15DSsgzqA_Hr!K1(MzGL)lj7S>n+=td7w^TG+h#@U}#!z0r%)P`GVx3%dBWnm}p? zvr~}Ka}9r0Cz3Pplgu|jX!hZaQfnKsose?<5zuVl>s*cjx71k<>7K_}^22gXc6y(% zmJwAGo=ocgc+K+GSmpVWv?BI*8uuWl(2X`INH_;7{4-oKUYBPLZ$ztQSy~&FnI4eZ zM|SkJqI>xi)vK z^Q6WVtF@TC$tGtcp!ZS(fE9~DnX=8=V%v3GqS%u}b!<|WUI!??{e8z*l5Ezfw@&Y} z?)Uljc;k|1_7wj(>yGz-qDNqyO#Td0y)oY_HpMq7a#cx4aa0b#uT-x9O~KVfW2Upl z$vy(A=b16i5BN9IPj#v>+%}S|TTgGJkncyL#xs?^P+7j{ zUumC@U8ZWEHrzDnGy5C|oS0q)4pH{GvQFZ^)OzjPao$8W8*L444#yAIP&bse3pO?c zqd^R?%K{StLohuQyD)^!w!WXH}}B1|P{t=n|Uznb}SLYAS= zl6KTlZ(Wa0bE1l942@229Tz?(77O3zjq?I4l#QL4$kjWPW@t=fO@`8Nhqgb;{HbNmc^Fi=R0Ij7jmrHfxmg?M0B z_H+{=r!nJyoiC<<^uc;b?^QL|zv=hi@Ym!NO1gh-c;lPHCr_TJ$VrN86s`u;{|9^e ya|LYx992OQtD*is*Ne%}827dR|6kGd@U$H-VDv3&iyVCDCvsBCk`)rhLH`d