From d7c64e34986a5a5a44590c3289e85f46c0bd2fc0 Mon Sep 17 00:00:00 2001 From: Daniel Lehmann Date: Wed, 14 Jan 2026 15:16:52 +0100 Subject: [PATCH 1/4] add initial README with some setup and runner instructions --- README.md | 75 +++++++++++++++++++++++++++++++++++++++ resources/screenshot.png | Bin 0 -> 117118 bytes 2 files changed, 75 insertions(+) create mode 100644 README.md create mode 100644 resources/screenshot.png diff --git a/README.md b/README.md new file mode 100644 index 00000000..173fad3a --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# What is JetStream? + +JetStream 3 is a JavaScript and WebAssembly benchmark suite. +For more information see the index and in-depth pages of the deployed benchmark. + +A preview of the current main branch is available at [https://webkit-jetstream-preview.netlify.app/](https://webkit-jetstream-preview.netlify.app/). + + + +## Open Governance + +See [Governance.md](Governance.md) for more information. + +## Getting Started, Setup Instructions + +- Install Node.js and (optionally) [jsvu](https://github.com/GoogleChromeLabs/jsvu) for conveniently getting recent builds of engine shells. +- `npm install` the necessary dependencies. +- `npm run server` for starting a local development server, then browse to http://localhost:8010. +- `npm run test:shell` for running the benchmark in engine shells, or alternatively running directly, e.g., via `jsc cli.js`. + +See [package.json](package.json) and [.github/workflows/test.yml](.github/workflows/test.yml) for more details and available commands. + +### Shell Runner + +For the shell runner, see the available options by passing `--help` to `cli.js`. (Note that this requires `--` for JavaScriptCore and V8 to separate VM arguments from script arguments): + +``` +$ v8 cli.js -- --help +JetStream Driver Help + +Options: + --help Print this help message. + --iteration-count Set the default iteration count. + --worst-case-count Set the default worst-case count. + --dump-json-results Print summary json to the console. + --dump-test-list Print the selected test list instead of running. + --ramification Enable ramification support. See RAMification.py for more details. + --no-prefetch Do not prefetch resources. Will add network overhead to measurements! + --group-details Display detailed group items + --test Run a specific test or comma-separated list of tests. + --tag Run tests with a specific tag or comma-separated list of tags. + --start-automatically Start the benchmark automatically. + --report Report results to a server. + --start-delay Delay before starting the benchmark. + --custom-pre-iteration-code Custom code to run before each iteration. + --custom-post-iteration-code Custom code to run after each iteration. + --force-gc Force garbage collection before each benchmark, requires engine support. + +Available tags: + all +... + +Available tests: + 8bitbench-wasm +... +``` + +### Browser Runner + +The browser version also supports passing parameters as URL query parameters, e.g., [https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm](https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm) to run only a single workload. +See [utils/params.js](utils/params.js) and [JetStreamDriver.js](JetStreamDriver.js) for more details. + +## Overview for Benchmark Developers + +TODO, bullet point list of most important files: `JetStreamDriver.js` which lists tests and their parameters, implements score calculation etc. Individual workloads are in subdirectories. +Compression and decompression via `npm run compress`. Because of large JS and for some workloads large resources (e.g., ML model files). In the browser decompressed via built-in APIs, in shells via Wasm zlib polyfill. + + +### Preloading and Compression + +TODO: briefly explain and document rationale behind preloading and compression of large artifacts + +### Score Calculation + +TODO, maybe simply refer to in-depth.html? diff --git a/resources/screenshot.png b/resources/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..57078f8c9c1a67a8001fb8f9efb227ba5ee02b0d GIT binary patch literal 117118 zcmXt;bx<75)5q@)cXxuj1b3I&$p*zbhMOlFexzs0054vilQC>fb<9efbh^!|5>=O$HV^JfZlq_ z^1!8GF37(DvV)wa901Ueg!N>N@^4IMtD>g~00glB0ML&Bz{5Wi^Z)?x{pZjO$vYu!7aJVl(b@FReH7zrxa@`Nfy25E;0hG%oxry=h4$Ik==Us<(| z!Q;{?UvIlp`R9LsrVvw9$`SqfeDi$M8uOLnuUik$3g9E~0+R%0om2Am`PR>%3;uM; z=^tavGKXbeLq@kk*e_@vVJ^qPFsu_1)byKWF~7N%!iBkfT}Sxks~3jC9R1&`^g=A@ z+l`mT_tLue{Pkxo!;Y2*<xzT{Lo(aD%b6#giUv zV@f8h?{HB%3i!$NH)L>aFZCV=1w(0%BGhQDf123-v7K?$3kBA^5%GPM(>jGUPugQR zZruZZa1}&*{ChHE?Unm0TGSP)E#UgoIN~MS`bBG-Ch|1w%x?Ndxq!y0U;^!)&+6WR9P)6L>Wz;)DZ#;yZ_)^OdY7&gw9U(i>B{?Tdz;Dis5a=Pc%8dI zY6V9<{t3Dwkrf9$%u>@5A9NLd4zJ#@d>lo;)5L|oyOKeEF0BX!3_ZdUKoAFwuf5$Q zSFEF0^L$*0JTW(#T)WqKl@u+J zp0_T-f__O897Gj8l?gBO%81B(k)8oSwgra&%KM$Wdty84BCLMFRkmAuSi_sq4_cuC zM_s+#d#l2KY2G}qU~WX%X0rlrR=0kX^Dh+{<|)O$vO0Ak*iSn^j|~g`wk=v%7s?V* z=v4kYWPqaE(Sh|GesCSsgoX$lUdyEVf=K&iJsn z;jR&743e~Z0+6Y-3#BW>QcEVB!kZbHnNI{Tur+6-LDG$KJ5AFx`;>(LKK{-Aio<}S z7)o;RJ32VwMG}UHrXBi(^Cuy_gZABq;;Ek$&?waeI+u_6HU*ZATnSUb>^8KIt7wlx zbQA0FG=fF-sSr%)6O@Qf{PZ*2xd7&u2)a|oK368kt74?vB94w>F@c7vne@&=$y;;K z;+0(3I5HLYMHIJIln&T^@={QgXPTnNPtwS3*#)CA0G0}yWzQLz@Vc-9gQx~}L-%ms zE%!Fn!mR$M+*f7{*9F*zqT`vRwFpTkjo(`_IFCqafYctW}doMGLp3`sRsOyub zYMCzE$*0B!3jei`y5%WIOY4_h7Y+t)MCA}Gj;TmCzAAZ4*!%Y4GB_iRm79e6Z2PE) znv_6tM`h6pe9k01kr5VN;rEzDua`qeldPKNcvrUHIvd7MVkiTAi#ht~r|-pt9ZYk8 zn2k)$FwIUc#cY+AvFh2s@<7Lo24Q%7%PbeU&fj1@_?{J{2V4d~q+dF^$u@q?qZN>L zXmcDFWU%AiTA^M!M3EU)WoA46F#4C7{O|S@a-eiuYwW2U;5izKP!hBRB6MV{(0fX! z!Fr74k@=!HSEd%(z!&6RSWqtErncUdHV}cz(SmWMj9O~Ak*2rL$Ed(zw8t+<8wGHy z&#}W^)DKuMGp1u}(Y+t@f!Gqm57E(Um`y&TH}-r?N#IY2k1<7Y)!a5?dCzd^@Q&t} z;`jvnGR(VI=6{~Ar4mJ3rn=74LF});vLfH{wDnKvnYQ;cEOBf>GG*ZbNmR151Uh9p zb#mh8c;SoWLu9?7NE4{N7fcB&(avi5gVaC_P%u4j74SKIp%MVQF_|=0L3v>R1E_?K z_!A<}JrE7v3%=882o&Z>#Mta?P^GKqHGx8~XSG*?Fo6NMVAefktJ0lPIb|C{IT`0h zBl4Ufq7}MUKq+KPO;MkXBIMimSN5)$nxASR-){Tb6|8&4`kq51o<2E6(#Z_i<-7;) z8B;-K_-VMWv(vmn+QG9BBdj))Qf?2tQuI*lbJL;+25wqPy)U{ULwHv0XVo4LRJLNE zL(?)GQ@*$SLvR1Qs31Kh+!ny8Fz(_2>u6FI;-L5`1lz$hpgTq0jdDMHrigol{f(+6 z3gQr%7WF9slLQ00{%~Inl<_7%__qQ*A3nn19Lw$}5!{zI4#wZli~#acx?TYpTH#{n z`7{UlNSFVgi&JVZLj(>5V3S6oX*T{F{=*xPjI?*?JEk9d1nWh(lk-)Ul7P>`wjxzn z%JLLFL*V!f_}>?8Lb8v?$tu2}5-8+L0)D~+RoKe`45gknBsX>cEa9iodj#Pga$NDC zIBS{G^;|zI(>2Xq4aRvI?hZTZRe8xk9m4X!EPS6`@k+svWpor>9U`E2&z(O8x}p`H z6vwtNDRno|r<5_rSx(n0twK6M0X^)GfBesBZ`nNTR83ga3Hc1+ybIE)EkK%7m4Q0E z;~85n)KnKnT*y1ZAhxTn{}-&e5sm`@saf>IVQ|aR5a{qszO0NRQF}#_=Q36f(4q7e zvE`jL%Z=(5ilNG90ZN)0Z!8GUTPq$-^#CTI7e@>jzK(_m;MZOku>(~2g(d76kolz- zj6M5}E(_#@J!6Jsb6dH4-#VSD;z`F&CzGX@s-w!F6#Sv{d6W>lRB@8kaN9l2^!e+% zNS@}B;yGhpZYoF8;~}w){Qo5s-0lx997C-;u`Rzx^6kO)FCSCknb2D2{SWfyP2%S^b2?d zy9@@ja*D;Cz}&I<$Bv-sX-!ap4DzYM4h|=}8j7#Tw~k4{X@b;ecTB)b28NFYxq%~6 zwZj}*@nHL>5vB3}ZASU@bopiHi1dRe!Co-_Q)!j7DQSPUP%nFrj)`MWT7|$w7mw*B znCMS$A9~NHA9$IcZkf(87NMbRNc4p}U1OIC6(NH;Ya7d=FS2;> zlMx_;FwL>A?pT*K`P!h<=A*A~zm}}L! zrRo(-9;w~?t8HRj@Chl-gfdQ&d6Gv=RIt|_<+%z8kn;FV6u@+&d~_K)-_DV`EmLzr zsfMyC9J4^6qm5}UgL+qb5IPE+Y)dqrxTo)(;D+n#X@-NjP>=C|SEf&=>;*6OJTr}` z_w!eSl}dMi_5`<>ih>%pnIJqu(=vU{qrm(Bfs1f+jLq~zQDgLu%V5q&X-vks6%)wU zWx;uR?nI(F_m(OF?KbjO--6Of2-SU8#`nM-YjH+jOT(}zsZ`pcJ>^f2*htb!kPmCS zpaO>XMX_Qif~#&9f|=9+UZs0?;Waqm{Ed#(r-t7#<7n57s_NuL>>pW9B{rndkDb)8 zwmw2--f0_5#w7Pb^kDMxp)XvrFx^!i6puAQS7!oxEuX4p;8~i%4EmC;2*#1fdXAvX zI_48A3Sy?daUTl#Uk(+Zx^8@jUygCfT;Lvan%#fRqT}8IcrgY3)i%gpvKji++i$I9 zmnk{8fcd20{D`j8R|pLuH#n>*2^01XLycsK%|VAo;G>bJL7ykRsWxciF0((#V_#_x z1FdZ6jdOj|v_zHs(#4Zd2P(_HZc2O>{Hkb_s{Xz1SpnTzygE;4B>Obt89?s{A^wl6W zIp93l?_Sq(iwZ97-RG-f5j?_}``G*w=$#sT63T|+12_YwZJNJeY);ff zK8@+@)Sc2}-Rdm+4;Hf2k_n88T6YmG^xu(#bgY*`SwDvLT<0*Y0ps2bMx&?EhbFzT zl0Df|F^cD4Q7|Qkic$*9n@o zT%$kMosktlBuq@fYTsM+#v_)DT?$_YHKMpQ?Ok}^KqclD4iCMj6E~NM@sFnzSK!mi zs>a3T&LZR1E9G;-Nym^52?{Iq39YJ?Ln=2uG+Eca*bsXo}SAj8|#1Dqgl4#zl7- z;>k1xU#Asmu1RI4Ln3+B5N!jt5_>d)>YAE3qW1Y|2<<9BIIz zRBbp^Bs~OIAx)>#1gdCt79NI5BGykq8qEa)IfC(Trfq-~Bfh{>& z>|Ji8*xM{yDkm2714j?!RV;+*>1F zbejVD`Pq|vLN#6xZ{;7<#}lol#2eb*c1D<(uWhjK-qeRxzV2xD>+mYfDiqTN+sl@Z zj1eAC)qH;UwJehe%6OesOox;wCvFX4E#!Zw;R%u0q3erm|d45U@ zepUM9JP;rG8TI|IuTuz;NtB=Df_y&9<5G6{wzhvye_6?(p5h=Zke-)=_4$Ulm_dcg z_eL99)i`D#4S6|A5_UaTN2l(bo%C}K!J+1 zP`%9VccE3#adueG6%`V1JP54i?Krm_;|jF|T|a~O@I4H$;qL@3K~D`Is6h7(&)@bg zSfeLD0p5&SzfqHky?Ira)TGy)1Vzl=OJz*tZ((ODHOZvQ6Lv%yv6|0P6fMmUv}mF{ z@wvq%E4)TNVD{kY`9~`Tsk(vgTY+ZZb_$-{<5h_{5fsN)^GB8;@|&c=v+Mlff1RL@>8ru&itrtLt((|@ql)G!hQY=R9DA&DJW-^kcKZ8ZeN=>Z zm&||l5_<_M-Zg{M7}*|_4K!+?8vuMn=uET7_zOk^`YY$5jfsCTkKpF!f6882$ zYV2GC_+amRi##s6z>DU(Z%^8cb_l2Wm-4EHt4gGW~)g@;ICT+@cKrl-ef+t(z= zXmWPg2j%mvuJ2Qp1`|-uU6^Gm-Api!3^jUztVk@7SDZ5o8ER5vKHgZ_6C94!WwI^E zXZ9ZMfQgLDpBc?&oZS?;QF=s+PQN!GYFuef;$?b&5dQ?%e{)8`zH-31)IVy`B5u}3 zzGC61qz}qBt1~v9w6(Gvm2tPFW`QE`C-*Z3qg!aPY3@nqNm%P~!w=VtDsKS3mi$+g zfsN717lyLL{1zaqd`1)8QGT7)bm};BmsF%)lOvkw$W^LQ?CC!UdXDcU-UUE}Rg-13 z)?f~K0y@`LfeeaSnjCcYdqv6gUxmNU1_2X*8+~Mcca-w3`$Y^})n7*g#Hq8=gR5Fy z+CeAZKgxd=2fT;KPr{e)HBP?p85WRtAdr7L7Hf;45VUX!+Lq8$v25V zk+<=R3KpT7_sZJh)|+)5rDJz2*ECfinZ|2P09fm4`I!pNDCfqdgTXDj>Y0ZNhZ4&2 zvHQ}Q8}I!7qgN;(RfdJWG#JS=CNZp>CMDB5pqXRU5lD4uAKuNj#&7)-~H zYFgI-?9%*18swh`~X<8ETS17@3n~NbDJid5bB@}u6Rwzv!{OQ z(?auo^e#A@-<|$BkfRrGNn!b?IcEvH)8&)9Op3r@$I0#ltjBh#dAJ03WWB4dq5WMp zysAg3rCBol#_nsBO(H;tuHK42IrrvVy119p*p#Z$2{!uxV!qP-pp{lQLDial{pUt! zgmI!ZyJw8?F&~uwk$3;G;9erM&p&tj5$9eiRvx~vCw|rOQG9QiTzF+h_nRbkLtP_AC(Y}C)I<$iwSAWOpf2TT z+F(#2aFleE)Bw-H8lA$ipO7ewsj5Y!_1CEsJ^snU?_kVw95#Z`Ka?LI7s_%hkru^m z>v5=9g_VZ!*F^Y=noQ0KO_4B`a0$-q#J`lTobZ|1%se+42gdBQZZsSJVrZ8BLb&8! zy3S*sOnjl-W@lL+Z(@V^o2kI@E->o&;*(u4Mx^5tw)D*OzTScl|M#n=?W%F;&_zTw zbXHh3{xnV zz1?5)>L^MG>0*ITitqpKglX`T6T9%a#959K$aWz0V!jr%lE64fT0g?CS8l}Z$dF0I z4}j`&{RUjxMo2J`@Acradqn*jMS7=#7`>#CdyA+2+8WLFmB;&9rz^ByVUQ{!Srj|q zxlHpVc>0BW(4pG0DzP*DelEDiFebUyveTy|JlGmH*@CM4=bzE-O=i|Z;`$Om6UyCl z7AfeFuL=gsD~GsENBeHQJ$6T`ei zfeopB4ToCcwTjiS=HZKcoAN(h8lGO`uW%aS(#1|sQJZ@n?50dQJNluPy6N(R zRv)JKN^hA>zH0Zep7}$y)>!cz`3WZ#+3J?a4eeAn&5J~ppkVZaMxF7P93_gW_N8FB zn?vnPJ4=EDYs+vIZ z=LYSh#04JnE=^h}gFd2CmzHFivy$7iXD~0!8Ra2?Fhn+D+_F=8KOpO;u3GTqUdm!~ zzbpe<{M&hQdijn|`P0e#W#lpNU3MCEil_!XzY;T8uo=-L8JF6P9CR};3j5fJ3YG<7 zAUTMuE(T1JJyIhlmtQOMk77vzC&?5^iw&IfXcAy4-=opZ;o94Jj*qE0yJwH^Fn0%v zCC)UzrTIUpN>dY+xsJ#9z=8?X0_`8N)uo&sZ9G+Ho#176X~u4t^=tBz10@-yN1rbS zX#dLAC;vEmBH)M1N=l9I88@7)!Hi1}5BbeaxWz7U9FtXiwpuy8hOJR?=W<|BBt&C# z$&E)3>T%pyiEYOWdR3yME(B-1da1xSr6Vr={FLqUPdAU^#8m|<0BO8tC)JkTqP=1n zal`$5Ykd-0gj=QXqUxB~x^e%J#}I`sLrh;?NJkw`;rO=9c2r(lz2p1XEkh&6&NlLbqRY^`7Emxt`jTajb}-)|`%z zd=O8JTam$dv=%gt?OJ&~n^@h1JZ1ToTR8pGZ}&=3Vs+2%NgO6;(E2IL!C z>|Q6O=d|CbQNQwWzzy~?=m^g&ju*MeP2}o~_6j(6xRmL7gemSZ44>^)qv)V;I&Yjl zUCE(Z3JNF6jxxzjg6ulxA-C_>u{r{y$D}#un=r+L?#Ul>9dPsk6a4d^H@V5SP@A0h zM!gr+ZFNerg%scDIUwlq|H4|~uWB}%8=G&07$g5vVXhnl0yD@>TAISXRBd%Y3xf+1!i#;@PpXg&=4G zc~3#u&Z@RP9HH~Rz)1{=(ygFGm>)E!!4PL$MZ|&p5YZC3g&&P58w(LCUxV@T9dN(d z&R1jqPKG||t^-C&=dGz>GU<6~*B%a&MbxslFlcO|9W^zgj%n!S3Wxg@o!h0WwG+Rk zPJPT(62bw3Ra4AMtg$#w(*i27;L+zS^8zhcCtJ2Bhqvnw!fQ1r{7C z49C6ZoHb6QI^Al-3izikmP42;cwG#Zv%WW-FYm;kFB=wFsQ=aUctWN2%Id2WH>{|P zO&n@oz@;TnbDX>#X2Bk4K-J7uu!S*p>g#K&p3k-`qzIEjt0@kCO5hIGeKIECE`Kob zAUANr`o}7=mgc5h4+30Crm_o4o3dFr?1`K=CpZqcUT~L11MZ5ahID1NCh%BjcweZq z29wF~n?%tkA|!(7Ys&~!zBcdXN z`t5?YLrN7}lPB+Z>rW9w{jY=Z;Z~mtvi`Rh38s^-e!pJ$4xS0=YYST>n5cz+UCgAU&#LyfazWcljetjWJ6S z+oqDO5+7d8c)>CT);AY5x(Hcv36|w@+$Ykbo{T+~L~Avw>eI~n+T24S4zi-q{vRA+ z)PGvhIYInw<>@YsJ*0bihutHOz4zuDTQnY?tpO(=)L&WgA(2Y-PSJSW5_&i{1OPmh zn6MH3#Qk`R=W_->hTIhkv_T5W2k^q{xMZ58q{At;IazsZCMQW4hQ>3Vfh=Y`QBduX}|1Gz^rqkv3wi zWKd>BetlSmKL5i_p;W=*82g_Vs)h2V6UO>l3pdSO))}&wO+d&_kBL)>5!$#SK_~i5 zam_Yf7)qY4QUmbaJ3y-sgY-8hR2{+I2{kn+iH1n1vR6O$aQ$49IQm6XMGF*81Lp3j zymg{EAtDf^#haZ94NT{n`Dr%Vf4c$ztBc8fV-(2nc4vQ=EME5=HJ~ZIRah1-@>IIO zSD&)sUWPnM?OSgwC*zY$%P~V%dP4=6TQcAHxezue9M;{nwz@U}RbB{tTZeQ6?zg~% zLiC}(XhmWk*#Sle#xZZVt`R!v%63UKg4uEf?uI9z< z;34BX_g0P zzVO{r^~fT%zyevvv9yotghU+gqRakYS&{WdI+6c{bWGQLR za^aF`3DcxWFOYDO2>aEvY|Pdo7DYPp+8rZZ7A%iJNhy=J91ieN&=PHsB%#6yNOh_x zY{Gh&O{$kXgF zyjKxO79U%tf;~gA0KS|DNr9!TMaQOnJtP}cj;nIK?)cZ)B`l5o&+6tlwoP>f&K+Ln zeX0>Yy=2pt=fFrcgw}aW|1To$si%Sz>w;s`gZt%MM@(6n#X9WmCO(#_(ZYmr?Xa|p z=5~^tU)a0RnO0JiBSX<@lW%i!I`auI+$_8DzofV`I8%liDa^#g?u#*wRFJao=g1lV z9l(dKipkuF6Nv4P{dgqYR-#VQ3l);s|0DPz@5{b=7lF(GNLV@&Kar5^YOca3%%De+{JQEx4=*c`okGr?AB)ByPu_sAEppB zfIiv%{F|eTk{5?&Ns#8KK2axW8c{?To(0mnF9rGN&=2z=D326ImzNZGk$dbSE8uC~ zO2+6D8)_N%)T5K)Z^82kV7V;Un;3=-nM;c1Ca~@CTfSXQPrJ&gXB7h(!xEl;)dD_( zy_GTe2aZJ;iI+4k)@mz4Mu=4qnW;S4J3r?wX~CXpU#MQCAj*~c>}94+cbhD8ct}H! zA2Qbkv8WC~%1H^rPOZG*W9FT&9BuE58$O#$r2SpG$=ZHNJDt@*MSdgBPWHs7Y}Dj_ z0z$i44XXmw=`@`b!m%A|w62QBDf`H3_T{@uQO)OLBfY|LEFL3RjVj{z}k1uN}Q z#60*S+bMKl+fU#Ie4&1VGjUP1N3CUJOtW%;`MKQ(k>7iny_t6c!w3w^+lpoNP<+Y! z${tG2&O~-?41OE%x>;O^!A+3gQN{SUvi8YBzm?}vDoqk~bX_Bk zfS#e*6TS=8?YF{D@*eN&U8(_x+)clhzB?Aq>uQK9cRyyG*iTw-`N-2AOk(MIMw!U% zlQTp4l0+4Qd+1M2y6L$SKpn<%DV|HU$y5AN^3-!9WAGj2cTUJ{AaP3FvH(wLzZo@z zc=#4a_2jvo;5n5?n_`Z*648=|GrZ+3lR7c(O)}*!S~3!>$jtcjg{F(S`n%aT_qj6Q z#RG)~AWX4fqT$kVc|SCUhbGC=|CGsyVQrRr#OP6l1gO|Jjeg&2e$n=;O24Gqoe>RZ z7@Id?83G18{V?7*?AxSRI_tpZ!ar{x9PrbR7~5#c)o+$t@vm#xYby*YWsY+@emgXk zqeD4~7anpeC9D~xdK5K4$MiwGA?)Ja#Vg>>Erl*ZP}*bhuEScJ+1a$=Jj=05S_IIu zQBc2gs%~rU3u>{#ahe0|Wv`8A&!2U;p>B>{P5wHRnYe;<4+m4yS&G+U?ltQ<&OY^6 z(y(A$p#gfRy4}?&6dCIOhIQKoq#{3m-i}skh1|Q6J${iasQRgBLdVvHuI|QMHH{hf zrLLM*ZO&bBx~=EkeQ05%7EmOCZ}0qQYU?EIgD?NzT+2{JOAld{L|S&|3Ng2;7s=MI zALQ~ZPQE(Wf8axNio*W<=;R?pL#rY z0eANTy*KCQC)4n5Y{~DK)xLuTtNta90NNfY6pGn}J+yp83f(*#@WpDWm3&A9d0g)S zt8_s0u>AdVrwN*Og=l+#?sh%stA*@)d60AM zF>GXJT3Wbb7w0vlVzL8&;u0M+PV2K@m_^X#TM;cYwzCMRZmdfz;1AVt6PqlWWXh@l zpN!-Rh(8wZeF^T(LkS{N{}ic!S`IiUeOR38H^ksX`IBbRZKio1UxCo50)h!^)m_No zrmy08$$MdTyvb;S^16ZzR4JeV;#({F9ATKJuL?r0?#-VT^Cjc7 z-Hs>hP9bOanq9X~EIk{wBwhF3T3h3#>!O#rWMnCCjJA}RIz#T~2WvNFz?WI~X3xXl z+y~#T!K9rZbxS(={3wQURHS``Acn=iL}Z8C-%|GD^4wN@jI!920 z{UC5FNc#N)^WVNX>WZG6x9v~lE+}nu>r!v+*%qdrENnw|d%P9v!jAaKLKq9*O}yHZ zYo8Ev4nmucvGh84fLeNqH@d606_`C}+C3-mAAT%dcDS$KxV1+0yUa$r8ezwQK`8FB zI*Cm&z7s*y*?K6aSUbJj4C|Tc9IJZB-tm;Zdh%R&ZAAUZgiNpZ3(DFj7LR^_cd)1P zQQRc%I7$}6^qXf%k{wE$=&j$eCsvW~>M~Lk?Ph$ax_WGsc`bG~EA(QG0Q=SwUe8-9 zQt1YMpost%{IJ+bIn3{qKn;n4$|b)pRSF*Mt=CAVytX)r4y}qP`7r()BFED?8p}sG zVr`Gh^X{~0Xjy*mx|n>@VH3vnxP_o!A^qk)B+jhE3k$+ zYXeVPO7vlIu5}{q%l7`c`I)4EK*8CEGg$qnm%Y}!K8bPHc;qX#V${hmISQ2T5vwvl$iG^XmG7*?~09M6wF@Nq{uR_4f?AQ0^MOAf1#nx zU{|CzKRSt13a1-`p$tb9fFxSJfs!ER)v&$$=&Ur^M=%vO)ro}3j&z?c%e8kN=-_R) z<+uwRbr-sw&;+&yzgG%K#L3*8j^Hal)cZzREBW)Mz5+|Nk-3Dv(8_|rmJMQ4QP4j3pL(Ye`J{G1DnuQjr&_<;^B)4;to zPIC%bs)wYVoWHrWwGJ>p?s2Lr$7ME$74N+EPO+a@(5+P?6Y-x4M+knhAW2w4u^IK4 zoIPOS2K6q_Kd-+|8jR3c$gPn}eEEY!cJY@Mrbopaf1aiL#sab5h*3$W*o$=3JrFcC zDswB%ZG`7jDU*l3%li&%C0C4WxQ|Zyw7v&uAhgteKQYd zgCISXR4ega@lTzRHwXWKm}iOb)Wm#^$1hPqh>|~v?YHmGtT(LAr}0NqM=A!H3IJV< z$a*UyLF!dZI`syGyjHwSJ8FpY<9xk-{$jPIhl(a(fll?*mFM#MASR9jW%8>u!Lz#pc)R~}=(YtX6hb&DjfR*(dYW;C zeQ@6IGN#M7=Tp^@&~{Q$)V^ej4VPjHb_Q1&F}jbVwBxgIVmPY)wxv15h&gHgQ;-*# z)-&|(keV?W!Y$b;cH3|OW~BV_y;#l^YK$+LqIPok4F%<)_~5;v^Y(qvi;(lcX$ru=1GygHsl^%0@*xbPNkV8Dk*0Q`R3JHYP|AmZ}) zRR%)iUvqV_aB42J)ViZswRR-=B^mQ_V;R(;^;J|wOZEMSq6}tx6;9eBI&OIh3r_`w z-laM{NgFL?PqSc{_g55Z%9rs#&yyunX@p9J`;L7{qIaw19jM;pxh_bT?6zniMt~X> zn)Yb!#5em6VCTOm^28S%JMv9D&*sVmWc?iS0h`Me2kLL(EK~bM{7oLh#wh(jLZbDAiG1$CuWRvKg-6n1)A<2Ti_ zC8>EHT)F+#`Hj-SvSQ>*8PuldLZGpN21JYi^nQVMGqi& z#l@)yTni~iB?Rp=wlCu7YWM@ssl^Hr$uqBg*0#>j^!-~#7hY07>l)NeZ#O@(#GY58UWTZYbDD(r&8uxbJO5qBdM0uHB5MA$((+lMqJ)a)HR{N0_7p>Rt~T73W_G^i?jbbA zd-+C(lUPof?RoB(wak-(FN%%ThZC?u#X#GcMKZg(NXk@xfWQ09!5cw zZ*sqDRrrf~L8X*Wy**@nUZHF%t^ydDDF%h%Ibb|I_v0S196 z6=f8p@D^$xy$LiksuIu%v^=zhTMMI?s)|{0s#Pj}46rlB1pT^l2UytxLavmS$$P-S zyOzhWx;8NO)mpQEH&)1!>PGgdlZf&$E>KLlt|vLw*jCD-)=a^b1Cgj<@jCtpBgrZwsA%|70ykgzK=k>H8CsW{ zk9z(_S4PfCJNDG6VEl}Jr+W|TuaC@JNknM}#dEjDo2pWT)&YZXcWx*u#$BnAQ>CGp z4^zm0Unk#sPb+umr8f5JpVj~&&Zm!g59FHlHN{B^Ze{7a7ia27ZHj zm3}=!ioSm=_V-7Q38d$$nX~Grp$0%TKy`H3j{AMt;)t>dS{{q+>D5ecN!nYnqn>dj zvzxHVm)r>FKY&27z&+}D%*pW)96h?X9bt#Yc0xY}fu&ZjSFBb)NIFksO`SM-@g4?h zKev4w_syZ1Q#7sJgTgJi98GwAHfKO?$i)A5-qq)X^C+P01&>l;># zL7)uPpb6n(e#un%$ybc9<8&=qJG7hSmnwpg-6#28OVFJ&u_fVsY!?~mSQEvGYAbFk z1%aZ5bm#i+shS`d^E2;9XNNh|%m-JqYGc))RJKQ)PY(USNe}eoB1QG@Vfa3Z8XH4# zl-%n-7%74k`K2;G%V5P6sp2Bb*u5Q*^M%{?@#zXwhY4i=5xfju9qQSe^N$C9S<}-! zX>>Ka%~|wCPw_s>4(U|dX$l#$D4t>qGJ(A>5mmiGi~rVngMQ7ZO!n(pud?uMd7c=- z<>3qDSUdk`OoN)YBLJ3p<|;v>>mDkMhhyv)ewX@2-*K2Tz0HVI(HyEsNuk z?yJ!XcDL9?vu3blAKoJKMnWqRqPpi<-A}uDAoP^asx(bn<`_FWl1v#Otqceq3jNN@ z(El4--uR84tYoR^0!|-{4qE$tD((_(jLbHCa`pe)fo?T@Lw38f#tS^k{6rBh?>usJcZ#r-H* zunsD%6-HM)SM`mI!^Mf+r7*7J;RSKO_hu6EY3;5?%+9_%!;`mp2+N%uE4Po?6ZTPAYGeN(oJw3$V{-0J~Nx($)Mp0E*# zhTCO+$Hrxl%QAA{CX*HA5z$WKJW_P*(WoR24oy<9jT8K~AK*-YU zS;cx?#fxmeE8V?6^x>sQASSB{vFzuB*OtXg0^ao8aD?Id$ZK6X2M3Vcc`!s2to&G? z^tu=W$bhbxHB`cLnSr5^T1Ry!QB^xCEfG2(9Zi9PdeQv~;r3gwW;rqeaNlGDntf|e zDMwV`6xFG9$M#cJ{13XlN4Z&RMyJ6-uBsNN<0?%ouRq9>E?_(&9Vp;JDdV&t%BO?d ziZx?bbhpgcG4mlers9Pg(19r{DEAfrN8z1mf~2cnk1fi5iAEM7)RP*Y9(u-uDt94; zv8WERm-dj)O+AhX@mIpFJo=d((5LB~lJ5Qr`R@45n+mXH5g-|77Z&kjcRpm-ta3&O zwM*~T*espy%j+hy@`F+Icv@lT%fNN=sRjlHNLWuE8EP4q7%U63M`zO5*f(Lj$hSDb zsHAz%l&C5_QH^U>MY;dkI^+KEIQ%l91awB#zCHBNMo{u_@$9BzxCNPN=%0#-1>(Ob zeMy;W4gH=gKi}GQN8WSMKj`68$S7+0(B{yb1oPVG@7e#{y6KkR6`6n6=)-B1fF=684_D8QZ7x;vV<+kw)_&RiMLTO^RZjd0< zIsJeN2%c?z6;dAI6Z+gP^ht|-5%(*@{Jtfb^76v$^PG_VDMT01!ASt~vhb*j$+-kb zrxkjF)w1uks4u$A$0Fk;OZ|YzGZ-gupF^R~v_3ptY}fc|^kFL+ny0WU?x8dBs%}co*jmd=zdGd; zDvptQbV%NEoxGT1;X;O^3ip~^3}!;lV65k6i~a_KS;nugq|Q(OPB0F!loO2mG?{mF z1yfxR5$Hp?B2_v5G4^P0(ms0Ae730)GxEwb-$J#H>H(Tt#NZz^7>@%JvyRaWB| z`iCEsLK`tpF$xo3^8%z=IXIc06W7cZT+`H#D#vB>}F6V0|x*ok7oHETR&8!zo;Ke}YbK{Nsrf z2|hnz`?)S0mtIlvBa)vz;Ur#;a)eWu%DOZ*E;r|0lvSG2!4u(US~UvkFE-j?6JV-e zAHO+z#Xd2$o$`+J2%eTs*Cd=x+P$3VKd_=c#@HH~!_r9Z#JDaU^oGCCL`S2e{z543 z>cHu@W-4&n@6p-*c*kMram6TDe{n#^=HD6O3(Rv!)UdNzH~by`L$j_uv-4MMR+o$_ zV^8M%Rf*K1x{#YjblRP~dD+9O?ks|=HEreb(bAK!{O#jZjN0ubSm;2X6(kHih6M;sIqmu+M@ZJZ&>npj3}x5k+j4!oV1|AZ3qwWC8}p<8@qnSX zp{Taz>*gdPirRORA?cA?93>?jX{3fv+}=aF$ijYjD)BC4J`(vENAC!@lsM4%x~c$H zmMnD$v^0b!ZR1Vx$)0??VnbPAmP{Sz@yaEgq*b$?ToxT}(0P{rIxt~@=0x-<%Ic{U z`?s*~DHWVg=f-yMJ&Y@+V0@gW;O0%6;Bt@l1wAX_#!Pn;^=<_j-?_#1-EyMCNY`cuym+y<+J{4SU-0b;Uc*K(N-H zY|=SgNvI)wcm|(Vm9l;wY+j>WKYe@L>B;YGKG03#UwBBV18?r0z8zep;?L`8NUA~5 z^D{{LG$l2MIvC`y<#$pc<|%;|I4eTw0w+f8 zfUF>-yn+64t7vrz1+%r06am}zw9S-ltmcrwi`yUfdkMl`&TGN{2fIK-zvFHEUQ^qH zON-pqM5y(*G8I5I5*YZ4%R3k_(CeKU(tiK|AOJ~3K~xYgB-UlcgHLzaUNzbHHk)A5Nt&i1aex?xo23A20%U zhH3M@OZ)dr3Wn^b*jk$sb+&@W*s&V<;UT*i;V8XUVM#+MO|6^2dTl8$D1h=1pm+75 zw5Y$7=2>Gy`fV=Q)?z3&c2B5zZ=}5bMq5OHzMIQmJ8$>c0-b+!NJ{H}E=##}uvpV9 zn8p~foL{7>g>-PK;*r+gjlVIlYP1rv-IT^8q~{PwH-n6wfl`kz2d}W71A94Rp9@dz zkO_HSbk6E|SnXG(hn&xI_j`_ldxr}3;!gR<3Vo~5dl`T%13D;FU>CFUxf2KYkaF&Y zNy}1`K02W&^<3eof{Pe2R5FLdDMcFNh%F03ET6>(`Obh9#q3C6HzlO5>hKY-a%{Xvxnm;D%bmoO>meyRKzf-(5=sJDfHg-92Wjz2@&<%-0E{Ux6|FpV z8;SFkIro0Wgy;c@|Kq>^7gzT1!He7Y_|-i;c5N?Mq2Q7A1-$a)5?*oJ z5?*)r3Klw%D0F0>{akW^>Pi{m%#D5g=BGCB?(*E!-E#bd@ z`UGy>$~&!5{qz%M^}1Mk1Mh4Y&S*bqYE53MiY(G!dKn-8z!fg=k}B$R}E z=U@N$dY?_09`0ERn-ihn4;XkZaq7Q!31W%7Mu}BvZI&355umA6CrXJ*hk&cwaIBOY z)~fzASeg_M0{TH5KdPt-%262jnRJ1?#vo5P&Tn%yw_mU={JtQ*P5}KDjRVVT*RcVz z1N_kYW^6d2aJB_cP6Yb3^HWMno5ZdI`TDNYB&A&`fC=2K8wC+<#my4M_N*YkngE6< zfcrrS;P>6v3=DE$F9!x}y%qZAg7;nt-mB=`0T<7M92g{oE&CZ`DI@f=LO^DrQ#b>9 zG!}S?D(PGA1N71(KENj>vg-q0AMgbnhw8%Qd$TwI_F^70YZTwlk@jV0eP>1k;Cqga z+99Y(v(a+QB*ufkfWqMMlbi$QbQl7h0 zNof2b)$dAm8;z(IaCK*Zw>@zkzwxOXxRjtu|J03rJauCqZ-44Kj(p@YzU^fv@U;&f z85zx;az3L{Ra=YLZ4YvM$uB-J(PH`2AH9s9{^(`#vu}9tDBk?JC!3K%W;~Usk8rf# z8O>YT^^E(R92x%NQ!B|}|Hj@>{J;O}FRtLJkz|04PKq-}=~f z{Q9SE;M%@DRQlNUJv?@O4{v?^8g5_g;yWKbfv>!8O|2@RMgHpsw^p?RxUxIIzy0$o zc>7af`SmM%L;T{C*YJx^Uc;+zU&ar9?n#_l?bqg_zr3=Czw^7#1dsEI6HEBn*WX7apY4Mo-tzIQ_>X^i)!-c4!xPu{@Jml#$G5%g1itm9$CC|vX5jgR z>EYf*1q^uzS&NRH-$^^g7p)1xZB~YyW``iGWh4b0K$8J`|1(yS{QYQtqnd&x$`2(H z?HE@hdrV_*O125L6K<32RH;G%5Uz6I1AWPf5e5Az!HpEqA28NyVtodH?}J$LaGoMc zpM_Q#MS@72;0S2g^ajumK+fxriC!w8zpH_!N$L5iAU{N*-yQ;6c|ob#83LOF7sSVJ zSdWT`dY^!9Rsi-4K!+GzDomALSxzRy7|eG&^>jei_`=T2<}v_=r6VBE89PiR!vNSD z0=rDOuGm!_0#>`gN*7qp7;9Y`*M|+L>c~Rpm26$fLU($tad$zYSAv&_J+yF+8eSQo#Q4`K?8y> z^CGmCZR21lsUDSHB_~QY1_SRpzZw1Q{YUz;TD?18lykxvBfH2w-ld%Z{>2|Xhd+FF zE4jV@(#3l0z#!60}vy@4gl&l4{;T|I@Gm(>Ob!4z;{Pi9F|P9H;@FmFr>$ zj+X$0H7UP|fZYLOmw~+@VUG((z)lWaKPVp6k9t|LkSu4wY7bcJPB2;$%DzNZ?|tv9 z;9(ZM&DJQsUnVCqOGxYosU#gqAfLkv6bAsjzi3F9*r&VIlv{i>(jsrk z(NiM_5ek~*2#~-(E0#)3{3hloB#JML%+dnMjoe@tfP#RtEz0iQeWW}3k6g%|9_6l= zIsL>%y1);={~{hwq_M}gr#JTTt-pN+|NJ#~HYnIy&UTyBg_P~|YJaR|?pPyRsft)A zDg^ks#?3iK?)}yOuXHo4_dB?r5P9C*&zrgMoTj>;y4}ClR~6rP201PnL;#CQ4n;)! zPoLX11APFvV>t^(&#UdRtNZxD_npU?t?9PKN3ZPSo8R#ae)P3>;Z?UU)!HJITMlO| zy5g9-!yG^OzKeL@#jV!obZvi#fAF4jc*~ca#vMyNAOn8yY#i)AxZbbLIey+gITM$) zPgTEt?CKuA|J~JI&)7+cD@8R=G+~(EhBbzSzc4F+-{1Z?(ck(7$Mq^c{u;zW6kl^% zn1H^w{)nWM3!HwXxGsLpTlD2~c_+fnQ+NMMT z8zLbUoYj{(+Cr;P((Tcp%`fy)@^_x!3R{{~YyaNf+>C!^ri!A$d4WgS?4O@ik?n7^TTqZjsMMv&;sk@lh^m~)W!iGTJP((-JrI9q?aXu{f&cRGZ&r;=gRDyBs~>q zU)Zvpdm-RRxUxII5B=fAwEtg=7asrcrCogAyU!&F9;Slp?|A1~y!9*Z$Nfio(Q6gQ zcX_Y=@p~`e{m*Vsd`?&QhWODxzJ!1I#i#J88waL7@W5KXmjAAu^R>O9nQ@R2;mpQ9 zzU!T5Cj#Qt_WozL@gF{R6@T|-$4AVGcRaI!fA)ckQ@NMFcXk86`qVQ1s|SwMr)Wnf zB-8Xw93w-jngB;LMVkKEXUsVZ*|U4V$2aWPan~a7;EEE}59Bb$K)sswsI8&C5VQhx zlWcYl>oYZS`4v<`mbE*OD&UJjLwXHePbfElQ3(rcjt_~YDwT@1MEYwshtgPLjFsdd z1_JG%IWr&yF#$Qc6$1S&fgzW;rlxE^(yyqB^HwE0i&t*Nk<6(?)XCZj$XgBKhUNjq zh5bT~5l!UKD)bj5oR?b{aXeN#(Kd}&O$Pf6T-#?{KOkHi06EtwY%68n`f?Xo%or;j z!eYkRN1}O6O4+e|_5Dpv~f7Lm2?|GO5!*Y=2sJ<_I zBKjSGhm3tD>koL%Bq|)>(Ux4m4}sMXar`tUZ2YU0lZmMAD@FW0ceGSv9tsnq_52)2D{vP$5*FJk@_u<|Ac|Rqwh_(R z7q_ewyuDfU$!q)g-aj}aids#3`)41xi2vs+?`=|Zz3uGgY-#+b*Lou(-n~Do{dUXq zPyFd~_?g$=)3oL7*IDci`B3`uTfY2sYvb*Q-hXi_K)>4F_v{wldwvU#U)wW}0e`*mt11A% znS_*@yzCCfPS_8?;p850{iSOj1BQOw_1Xe z?pDp${@kCBs((0v7IrHm$ZP9wJ)3q7Uvax$suo%lUl2d`9qSwuVG9LByoyfdGP}as zDMq5H$xskMJ15wCepzY=K^!zILB)a!p#X#R+*Fl&k^?SU5KO{bQiQ)zK00LMzC(Ri^RLXH?uneB7SPleyqklBkd&oiDqL^(9v%k02{+P zSU=VS)_cHuw}{-=e@m*9p^?)}N>tvP#2aEF%I61MbjIr83IXOQ_shos<7j)EmZA|D zEf)Do;lHZUT~&6<0CalAg=Xc+XB}XBpRt(}Hur(;QjlnHf_@8Yh&evBBAwr#Iy0JgRKYZW$Ljn3gk&^IlKY9h<`^wvb-#atI$o`#6 z-CD^y*GYDy*J*XkKe@DnfAgWs_`X-&=FJgtb@MixcHDDYhpTnq-&^bU!He7Y-E*5s z|9$sL80=r%KEMyW=lr1neE|5_)m{ADC$8d~Uvez@w?FrnSMfV%H>Q40Z~53242?9S zyH|AAH~Wskhnn{ULtu%qCuc zdbL?5)3@&&ErU@zag!b4k5eBkR^p^mwE8!n11=;~|9tf^;En~w!7K>;j@BoZ*?Td7 zF9i#Hm3k;(jyyX^E%~Q_=b)1w&9&8cqTA-yQYVN5IE2Cs&e(I~yMS0}z}=UGltVU| z1o*WK;D!T5$mdsu{9^VYdCn8XX{43wlN>LVjk{ZFsqK~z8N^f6n5!c5S$XffnFG+v zwyzk;)%Qxdqp>y`kE^8(OYG*pcfcqjv(;9aT-AFAy1SrPVxMlABHkmQ*J1RC&?m-1 zXRNE%0N{Z%+|cL2@gV{K2^+QFef8TPX9+kM@D%y)d=j3hqar zYrwzil*3A~pK*}W2*BrD0CpG9TemI&3sg`>`Wevc6z}!Gg@!;S!sT?%YQIx@mBxY~ zG;(r~1okwp*WwtV?d8CY0dT!^uoRt~Fytaif20Q-bsQ_jpkU-63;}RH9wdADxJ~xC zXuEw!BvIS?CFrjN5f?hZQU)xP14FytF@e2W+8yg&P4a{SH4G_=%W~6!zyS}aR4E}u z{c31paMLNp0arbd4o)Snw+Qf+)~I%xj+PhKt36<&247Q0!*LBt|3u;inMwr4hG zo&FGr>>DG%Lk520Lzj~O`>qJs|A+6nkdy{7jqMj6yH*GLqja=pwSa2-@TFb+)JHDQ zB`ENpT<|pnWVjGg)34#_HZ{Yw zpa3;NV`J@AO8;q5a#w9$6z`S5J*S1hq@a#3{_Llc)|~1>8AB*e5J@CYV^v!14?r$w zCq-N}&@bA9f%~sI0F*Rc74!=!A%lDj=6Af;u`Mfs@nR{A-g7FB^}*E28+T-9UalO$Pp%%TAaByXEWs z;rO+62JH}IAtUstq;WVMw0LH8L1oR~ddC~@ledos^}G=o4T-}kW%B$1+|P=|=eB;) zC$H@>HgYPM6{Qp43<|)%-YdZWQZ`1>+zHogWB> zg8vLy${5R?Qh&i0UfKj>*DCbZcDr}Ar$*oiz#~T&T7i84_~oar z;{(rbxZ@65D4 z{_^Us=-6)N;@8tS*%Rceo-;`Yq2|jSA9sIPi1EGq`LuIh>;PYXS79ec%h!7L2U8%R zV6Y)18`&>O=LaHyfF@Jm38ln$Y+i-nIu<6A3msGAWa6?!C_e~q#nNBER zhX(fj4qyTOA>i-Z|E}HBhI#D|t(_7t?F@>?9v6UK%LpPAfOfIe3+oZE*e!ycHV{uH z`!@1Zvu~_mOUKgzv~wBe<8aT)Wh(a8psX5KKK!kp72@gz6PmHyB`lUW2!ghT zV3O9)(TnC=)cw1uAm8tlm-h>hUzL%|2sqIL*1C-KUXgQ8p@~YN$N1j0O1z<A5-59RMd52qyqwxfJ*-BmUP0#REGf=T4mQ^d0;*04u?@|MbrxCdax>uM1Xl&E+X zT7S~S$4d9~J= zy*9b)cUR(buHl0^Uwvu= zU-RI)7|A}jIcq9{9|MDvS{wq)7l_!@Hj3Alm zVBOBnyzTVJzLky9Hu|nb_BZy2_}M>yKKXdBKDmsqeqaqRJ-&eZjx1nr$avf1*YJP- z#g!y+zh8Um2EORjN;9G_+_$$qehnA4)9=xGzk|=aeHr(z_Hcgd0DpdEw-xKB+8$8E zB#D}lomrQ1ycM>K+XHOu53$L+!6L58QncXm0yCaApU1Y8&|I4I~SL zb_w`~y9)a$f|Z*=a*LWhH-j2MHl$>aDInjCbW723t6;Mhtn%M$QR=>NeAlLi5JV8~ zfu*E@0{SJOPYSAJZrVa(FhT+SzU>kd;fo3RY3;};t9=338qAw(qF3v(8@A`mYpK7r`bq7c3t{H`+zX%X24rl03bst04y*4jj+pZ!99zbO`u> zpSdYY=puYA`kz`2fIQ6xOO4)!!Y!n_%2fL-%jyw*?VQeTrAPMfUg@hgM&(ra&8KhR zQeyP_?|s&Be8j~v5tPj1!M+_|FOOakHc_pIVa{^Yrd7w3;%-NU#4{#m^K?p3_$kz;tp$;G%G z5vUt)**^cyC7kx6@4xo+h8Y+>vc7=V-y^rrYDCZA{EX8f4{Zk*qoK=2xD? z-+JU|z29{RZ+h`DJaTjq-}wh;&Byw)%R6dB-`)0yjQ{&%SCg;%zkAsUyy?Y98>u0` z@$?P+(+@t|sx9w7(zn^Q1Ux-~e#UyggD*S1hL@dK!0~<;7j_Qt&a<2Nz?6guPc8TG zW%sV)#YY#h)XQ*oV;^sS>IR-@Q9ktC)&MU#wjhp2ZQo6as;UJ@5&rD~@Y7FCXB_l1 z;2ZA&?p)BK?PYE<1hmva zvCRcm0!2VSJdhs(nU+dUq(phx4_GL6t7Zd9LVm7OVz-Jk=LPW8{Lq9l*j7fGD;=(d zjEhv{#zj#BI0^x%PR1%?cVl7x<2gRO5<%KP>z6Nc7x!Kc`ZYtW@RipmCuk0^0|ST@dz$1*qRTU~CV8J?4>O;|R=`6pCJXbGljKUFy}u5yp%05QSR(PNK)Q zrY#f=fRO0@S?mj2?~4 zFfMiq7QjLlropfThW)`S{KjwV#(WoO{}{C$O514wmy|l3zJtPF{KSP$0Qc%=RSF6< zH58=MMN-7yLUF7s*4rcdEHp-C5a!HIeQ2M7B3oMQy>1g#yZ=b95ovNGQy{|Io=7X= z{8jfJ!MA_*aZzJ{i16ZL3;3G*j^I}k0QuwB_VLma3ylcc>D4~|-pfwZj{hr9-be!b z-~EacVuZCiW+(!?zR-hSI*Rj;0F}2qu z0$H!;uATp1zyC<%x4-!*yAa%K?_3_WeeL)WZ`ri90`6Yv;m+l5jrJ&|5HK_T^W)c( zj{Pk!KHdQO?)G_iEa7!`t>E28cE`2-AmFRkkNnYd z_|>Pcx9%Tny$r&PgUp8F5{~oID$97=RE%OQX2Jt zV{fQN^0o0;>9FLECJQ_3RyF@VH>C`d^qL`sHDJ-SYH*mt@Z~z)(9KqW4%0E zOW2IUD*wJP2vhK!Qwgoo7%15d{W8^iAuF(Fhja%()oH6V@U<>#+F(1wLb!f&zhpiS z9q^9=L#}m;dv>H(Ja?2T2rO0kazKCA0`f2K0~dFJ&0+CQMnzuu$$okA5EM@xfWI?j zYz_;B_^lyub-yUbu$vd2oBbh`;(0XkoEFN5MIHGb6~KPEQ&I1ME)hCe@!Tzeb*}?t zj&Yrp?#hg4q~@NLDv$2PcATX zMr8oS3(1;eKvI;Ka>F#wen^9X!@2n?8-e2saIDRJnp^eUP^I;(0H$WNpdmu2MEs-F zMy@+E5-?cpqFi7Ps^{smUp~=^<}(R-`vh$4=gGCg?{vzORgtCIeImlguk7LzSMAp4 z$;B>y=+!5qQLZ=Kzm^2{KYn#*1okC^+I=rYu_2>Tp<%^K^LX3p4nO`^PvLc^R+_=Ja;|&x=iG+(Uf4`3y;yBW`W^ht z7vF=2j`kf}W!y2Bx*2}>)py|Q|I5=!$K5>08x9YPwgx+(e>BIBobbhZaB&L0uotZY zZ@dGe%0@nL^u=vqsc|l?*;1anpg1qRFP1rGp{yHZYJ3dTvKLV#-#+rr!%zDg*GP9F zvZ$X&R)QR&x+1%(6%eqc8kGVB+J7SzPztO;cL0e0FR(@_7N`i>JWksdsmqM*Az^0- zY>rsZ^-2{>oiVUq>M&MI7IJNnkPsZ>uv5w%k~tTwnY{|cmq30$FBrR4KPAD@N5i-r zUM1?+1*1pBc+N(1S>fQT@Lc9Fu&c`&IwjDD0P<3#Jx7smKT`8A9Ru!fYR-vj8a`+) z#(sczp>zl=c7W9`i4K73=wsg?G{1yqrJlE z(5P)*nZ6^oL?*f-fyL6=k9P0zO^$PGU0sQT}jM|q%ZI||nQgAziapM6% zFDpDs-HdUh53F<S(x?8+_(P z?cQ@k?5Q|~@kyM$ksj4Qz1FKoy8L;S8NZYm3H_c&Z^J?-D-ES8r`(GOGVtQ#i%G|= z<(Jo#iks22r*GJu6Zfz6qq)=i?JT~(+RgAIue}TZ?eCqzw72VJj``32`SbXO2iEbX zmmDo3t;t@dc#i+miGApFS&q#=UL(TaxR>qG%y+;11itZ+V_4{s$@EfPqxn)8v4q4CGXVlI@Fw zVHN1YILKA1v=5xJXIugI^2a&G=fJsKQZQ;LIgb2J=?I`QcRI^l3ijA3kfESc7Xonw z6}^{@zawFu8oScFuM#uB4EX(B3ioyYKXwL1;B9A6i|bPgrm-NZViB~ zoUt_^Yz&L4A=k=f;aIO=U?1%j&W4&YzjJem0y+EVcZive|N5x9GCd?8#aHEs+T zTcwBT%6a(W0kpye7{f zveGRc_W-zhz_@-uxOPxdO!kY3^k}D~`gaA81(}lGpewog_lC)+nmkrB!YWWGhLqm8 z?O`!63U6m|&espd9lVD!|G&}#DBF@FURQ?Axnfb`4drG5ff}xC==a_SgQ{!@7YlS% zYBDEaFf10~q2uu^o*6kwZggrc8l+vsc+ss4iOlizSBr9`kI@~a=8W^Hy5(=WRUVa) z7go&}>_K`)N#6C3 z#5;>7l`afmvkqR{pf9r_`%P;9sgnq`TN@T zi%(t0FFti0Z#cb%Z++=;RX8nnzFLm|rxNM)_Z{ii)WX#Wf5>rT+}8UY{2#Bs2M;A) zbG4n>+{gPa+N1A}o>;_RxpUd{-H;HW=)l>_gZJmxo=yXuUwi-hNB}eHm^i+e1orP= z>o?~fqJm{w&b{okamx1c%IG2rTW}P4bRvA?W3^WX?lzV`9OPr>z#bP^WS@(4Ulx)vveKp=Q`}2t zc1c_BQHj0rh z4kZ75PsKl^P#WqW>ieODnh-GaDKgGL>=3ZrBP{zRK~Qy^BK=`EFB~bm<$Kkm_~Q5k z7OKvZ6}dQzouU##2pp={?X}_29^q&YxF;`E{I4Gr4uDHJ;nD%HM8J9Sq=#SDzN*2iwV^3qtG|ysrEP;CEugW@OkNAiNW>~O?l_8VYqxh!eeWAy6 z%e19}7=md|aoll#-`jf9ag$GMO+o)?Ec&@hJeI~6hzv+=X?ZyE3f6oHnbWbr}4stF5Gd0A;sx>+<*TDf# z7wAwGCCOAU4Aeex z0q#mR>O!fZ)GvYlVz;yw;vG!YdykR54dN6acxLN0QLZQ z{s4IXfbc0A1OKBP8Znwj42J;&=XQY$yM31}`xfO+EDI1r!gEB#oc8%rxovgUWCwjns zPPjTK%K6zIL0wjdq=<0dzow@UVocGy#clXL4>s#Hc zSFhFGYtM`{BDbqf?Q{0oyLa#I)oXp<_xpXn-{BH9eFZ`F%G;0&0cNkeE2)<~zF*;) zoR)>Ml++8Jp5Qa)=8=IFri;4NS>z*hn zg*i}A-9> zk+@5=beLi{C!+>lN8&#bC|dPBkF8;vm}8t;BaDfq7~Zz+EOHEmJ$|WCoxBpra5y(h zA({PU&)ejXDK2kfBXjS_x5XF+QM&L+`(Ud^>KXnW9wd|usdi~ zue-F@zbE?9wL$0pe9ylSNcVpC;~RMD*su}IH2mp3j{xxDYyHRaS|afF^V7zpZ8IZk z0cJp3!PX-8o}*9RIK*~9_4AFVCwPcOHq8?xQTe)?!}R1h43U0hE%64Y_IVCr7o8Zz zc=P78mUv4^JfQVT?j+t`zo~O6B)4 zk!oG&j|4F)%a0mW7Qpqxdpk$$WWYba0z9>*jwj?aR!MZlUMm&B^*XF|q9hl}r9=iQ zk$s&kE=|TAukjHl-gfdu+zXvh)f+8PCFPOe9%x<%3)ZO0Er!8@eb?s&VF{op2nAJk zW2G9JvHt7c>zLS&T~w&L7OrmO$Fe1XWUx$@$IbDpP}jqyjQ~qWAY;&MDV5IFlE2r& zIJXOCSk%4KE#Wq1Eo+@I{d;WXF^4R~wwEh_bndt{BC3-52`jP3b zQTA`o)gWI_l#Sj#5AcL38cR+n(}*xl)TDGQRd##RMD-!qv0^R3cZqg5l|HN_)J5Ny z^?oR`dZqu?i9=Q>g?}PKo~t)1nv_(NwLyo{m95-BBQm$VI5Pm`Ze~D0{ z5+_qNXty#|UE0po&!t1|?N1fmKN9UX2L;|}!8f0*km)1JTch0OQn4uZmc*?TY5}O+ z395-u7feP>rHWc6W0Sf!&w-qK;k7d90rx#E3UC0$6g^a4>{1e=t(xvmrM+WJs-O`u zWiI05iLF~o2Ve!baKHhD*3S_2n4w%?BB3-SgdhmXND3qSg51}Qj1M;NUE&2g(v=1W zy5A7#v#QLxFK}5Xk$_CfGJw?uft=@+qEJ=-oKcKrA+g|tB95jAK*mCxxkhM;D$ss* zD;y4bc$Q!mtMe8SflzQ8f)-wIBlwmJQ@rm}xADJ!Y3sfQ4!g?&f9sE~;rc<2AAa@G zP6WTLm;S|oB>dbo9BI`E@RtJG1xB&J_rGexdHha9Uo$TZJDqu6;190#AIopwoR**0 zw`dYHmJ7Epn3NJ9yd1_r`1Xg_yz2P&c$HFOmPBE5#9G?W^zf}=Aw`^bZqBOxnsJvj zHDzR(sBbUA#QDDU!W833mUEe_xN6QF%e?>oXNkZg6M>v7;hEHNn&eoF%HD9zm{KBJ z>Ty}9qP=o%lBHGGvXHoVaPMKitB1hmP~xG93aHC97+PFTG0qaI*l{thzYDGF#6^6q z>$Eibf&0N3OgU#@Lo0rlLT8eDqN6&6zD788S*iiZxvgYT=wiG?&P<9z03%*!mqq=! z4>PHf=mN-@IY7+7)0$XBK*9_{-E*Ii#3-gRSuW||%oOliC&Mj9+z=49TKXcka+Zds zm+LI+0>`2(4yf<8&ux)AoW$FQmGN4a7ld3(CVS?YlSO*;Ni^ox(-!5Qc5UbW9m zV5Mh;vY2XK>eOfl9+oZDED&xgE;_6aeL~UjxJZ4iZTBS6m+tScMdBw=*B(ZFe=k!E zfPR8NP-)w+ zH0aD(p@bBcya+UJ7wR>M-c3cxq}SLz_cbvQQS~bms_HHo2y0o1g;dpRQWHl_os?g< zZc5D?#fyVn=_(xNRX_VdUO(#CK(ft#5*SFfuNW}pD&*!63hn1Uk~^9DiAfbF))R^K zq&vXrD^n_a-jQ7`RLT{Ba3rp--(g`eC-}TA4Y5KPljeXItb)(clBqj~OGVvTXzNI( z)n$dHL7=a5q=JJa0ut>qAy5he`M!Xr%dbw|@8Su#FMtllV?&%TvJeZwa|X$3tVg8A za$Kn7pJcO$CmoB0zE6@8emBryhXN82m8}h$4KUBCYKM{15Hg~&Kq#4EaCLtb8h@e+ z4!pPu5^916@Z~!T+zwE`e(UDMofMHD@eQ%*D(&ZB*i~tC-zc`{uN47qE}ti|AWl@Z*7S>D$gtdnfsN+t2!!eMdH<#rQrSy4s(C zFpdSj$#>s5i&BJ992Q4Byq4De;ibRm6f$4Dd2>=~AGySg&FfeI*qw(J@t!_8DdPrV z3Zn^5cB%5UCji$2SS@EJiF$ve-k*RfEtyCqOp;Xcs63<9|D`F;YRnk|sux{AA({7M z``j+!?I%#S*)5o1sXVm_%S^5JTAh3ufMV#lFV!&sRfu>5iIfOQWF^6kc2%k;tf<-v zGANc^ZvKwS4y~{=Ntdk-ngHD(A`IgCI-GNnBP$3Cs5XOrE_P_}qtwdb?;A@MH|WB} zn3&oeGtHTEj{#MMjGDuM%l*J+)*2v(=@?+gI64`2MM851w{Fgrp!F>lPb*~ot{VwO zgMiaRF}FeGXSIkv^RO9rG43M%Q~dk)qoK`HQSR_Z{vt5U^`aJnz8fMADG z_X{bJv2MhYStMGcAuo$|b?u5$c#=UgX^22-K}g+}=u+s9V9pU0NNXzin<dei8wbk=n=Y zrAqh}h)2MqV_JUQyBu5Dp46og4+=0k+TOkyurbgTnbe5@)+)i&fF zl2HVV*q1XV>-rhnMywM1GpS1aw;3J3u>@``RrT^nstQKBzrH~QqV5~zo>t}@MS&qJ zi0XpL9mtVv3Z#*MkP>lJO+1UDQcPV+bxjtG{Fv?m8qqKBj~GZILPC-YEb7|L zml+NMZTF51V@M+GXWaMBlN}L(q{Qz8Scw6^Gbcw4lu{=cKDGOuW&g-_5Q$3vqeKMN zoN3NBA$`LarfJC(G0|uHxZCbmDJ8EF_1Ejyz5M6^|Lr@@<3pGC@!x;?7Cv?}tTiHJ z`-h*riKD{^fA*2JnzjJ-n7R+M9GCa|CsgOAX{{%|uSUS7ov@_s?dPV>9(-pJ!?XS2 zwXk#Uv-4}~wGJ7}!)z<5Z*d%cALCkdlOms1#Wf{O-r5ye11}&Ah!Ne0GoU<$cw9xazi(0sq@21z;3X zs@RM4dg6XhDyk%2C-gBCb5_&Z6VVmRP^rtKtidFfYzMu_>n(saV8N#rEUOrwxZO<{ zsC%h+udS;&o+epo$q0@~NT{(TsIst@5-3P9=oC0Xm2&_K1}~V2x@0tZZ>i$`y}}b; z=<`Q9iB(GHvqYht(^$or5i3{goTFwB2m@H4eu(;lHK6vgN_b7Pfzuc`9Rm+d)GTy9z1MfsqjlZ3x#7?fP`SuvazX<{k)cmp@E4Iii2973`oq0?E9+{9qC6KtXpwez{ z90A7@;KZ=9?T}W}i2a-k**B5qIn!Vk{QF_1sMNM#foqG5zMlwH?@yv9O-`m1nUlfP+Ke zGOAvb8Pk}$CKg}PF9Rk4-!_*jao@{;?M!J>>|~1Cf8bF?9VO~V7GxliC@pRVu_}-Bp~Z&I?tZy28+a@I0E6J|R%#L{`Nto%H7f7J4~Ipye<966B5N7sge5N|nzAXGUKs1gNS5skDWCIE%=Rx)RgFze z#)R$_a{{oV30JyXl#z1-f>G8^L31zZ> zwLgV_bCTe*x5Kiksu}DA^IKsF^D`$$+_G1n58Bku_XF587iMXB-t}7HyAMKa z_fC#ttPNss(T41MPy&|&+H+pEo?@c2XaHF$NJr(oUdASD4;IpbaC{td;gPr)OJ&=m zS>&dg&6-rAaph~sk;67U@rDs_atM6WaYb?c;4R=2+qQsSzwP>5#cDD4x(f}yki;Cg zt_%PGAOJ~3K~y**)$Yg1*ElwM)j3&p#U@%uMIg9gpQ|O{Ts=cTDU82vppw3ix|01is60>0YMTsryTn0N=@)4nl%d z@;gl=rU?t1ao_Wiq;6wPj$+8N0QO~-Z13mI0Fpp$zcCU)QL3l0LRZHu3|vajQgg9T zg38K?ON-=fErA=EV&SS*Ts5wS5&O0aiJ>6nv7V~$HR5qKik&2j#=vr31L{`lFSL!g zl-$xlW#V48Hxxcab@xRU7IV4Oi$Zk|m0A`WtVP9Y7LXuGWzk7Mf+EG}scDv=Dk@0} z)XJ?ny(&N%MJiO5lBJH6QM}O38K$O1KhU;nnbmFvLl*iQa{EeRF%2Nq`8qZr9OI`l zsYLa6Ir-nofa?q3I=^cesqs09WYxKx6~N^MaQQ$5r!n^coEoqQhKaCx==!d|_cLIp z0Ctzv4dXin)0it_8hK-sZ6GRSj~q+_*Wb0qe1B3Nul2a#|(1Ul!_S*j@s6mJ)jz zu)_;R-MOjBq8LQLD3X{Z3Zb7REMk(Vn^gC*mwFK_fHcoZ6*vlI$)OQ}UF-O?70ggn zVm8{BbO6gszGoGq4Sejft!z#H4T_XL_5^^8t0zL-E_7mi$c&zYj8yTjPze2DCUGc* znp6uyPL=hLLZ}sDBNBzor$iOYg&i#?RdeD>6KNd~B`NvXfzPSoBZ!&rOnA z9MHD^5Zk?nXQ`JlK{{eAP}!^m&T(faN$K&eHDv&*X&Y!;vy|hI%K=5GGn2GTN(H0L zsiw*bmrW|QeqU*T`7) z;LT-K3|UHvtk4CFI(0W81_+!TTq+J8M-{5A&YMCE2ka^DT}C=>nGzV-$=o!Gh*Wh=i$Y8pb!)0t>5Z&z|C9Y}pG(bun+b+3BrP||Nj z^gXm0mp6Ke)OGZzYjHLip;6Vf`<{WSXMAA{KurVF!en#9Iz}@G%AN${`X>?VCgh}) zJ-Pp;V2iM_m4FkmHKtSzIYB-<1~w&&`7KyPkS+0Egwl?fXuFZPxhS<&iRZawk4q}s z5_T4fy0@RZTR{ja$sWbPG?tjgz$8&tBhyp~BF3W5HqN3T)8LgPh zs;5yJRd79j4`RYNR(*g2J*I@JfW}a0erbJFC}E-8V8xh9!jcpVBjeXC3J31PzkKS> zGI%LEKTAqVX+f&bv|s_y?L{8cfBTi#hOto241#JcB*Z75pn~EMMR2q4Tw2ItuNs|x z9rX+jjr~7$Y>5Brt(*Ac>j!w>r*Gj8?_tva{O%I}%jfRkdmca18b6rF6OycrV}T=s z{z7kNul>bCWH9oRj0EM9g$>UutR?=$jUVJ{ExR5F&Busscj|1-yH2k=|1ZJtG zs#n@Rivn0g>Txdz_7sl-WmENZ({ z(d~1g9sJ7J(e)n79=ZW!c>t|8%j7;l4M~3-qqkH5M}@K*!w9we=^&Tb%?Mjdm6vF+ z=hhs!Jm*BW0G5T3EJA@flL2rt0Zxr2&I}00QtdF-JeTG@t>YWhDeFLLx2)#bO_}vE zij=kAL{x1_C_xZK>DS)vb%%f|$<;-H0qpYiAG(?M`X;%kPQOd?lr<%n~QQSR%!|r5bx{Df=MpukAJYT8L~^)?I@X9z zL{2f-UmvVuWaio*2$s( zt_Sq&KfIP=998|<(pcb1WZLk&e=g9$oeCB=|a2qsA9GjJ2rz{{av+keO#*XGrNtyFToMdSV>I-%!6Ck$Q5*& zcEr>(R`q9DZdL#SK@9yJMl8$~3n~GfwFEdf=KRHI573Bg0R<)`1l-Pn+dG73cey7% z0X8C~)1Y-|OO%|GH(xslkrEmlaZ)zo1T8YIi*#9#@|ZDejycn}cQV5EQery;b_>Gp zqKexqU`v!mg#oigCy{Dzm~pE~0u>u41_G~jqilO{T_`iJzuPY1K5gVKDp8LbLwn`G zc#FZbfhX~={oljpZs^ll<6#s5V;$dExo|E0Vm@zRy zRb`ij8r+4fC%I;lpF{PQ+*ts(mbS=(syr%dGNl4J76#&Iq4hpr_rA=+#xZ&>U?Yid zOYB{VzNaAJO7d!xo@4U!wNdvNe?Es4cXDsp?U)Ms@DP)ly-z z5|GK+5@&BAv6V?2<^uB^xVj`$4O5zLiJmDD?Oiz=TvlFo7FbDh#)Yxmgg9mHo|OrmBED zxqG3BscJbW-5;1y6B)gb`v0Y>K0m)GfQ$_LARUm%N*%Rr(}E>K4!8y}FfevGo-H={KIjUwrZ? ze(_^B@&8=hxvTSa<1oWVt{vdDr^YQ~y(&0`B>U%P0}h&cFd(e{>o84)bS3(Jow4xX zCHv=e5^ZhIuS$id{>6~%2YJ9fm$vTTy!IjId2^c95;-B%{Tor`M=wie8sSP{G4s?o zt}$-NU_6+?z8=Fb1hPMpIL3{IW?@zL011^Or_3hI3Q}Tpl5LZX{_KdTCMs9x0t5>a zibyHh3nD{7o664tfNxj_{^hl>vA3O5Nx4orhSAzl17;))4I$pPxx@9ZyhLIZn{p}D znyc7x5<9Y;w;XHXzsOMbXJ)7t1dLpmTFwZTu|0Du7B8BMYQacJU zcp-rdl8aqb#&rN;Cs)Ytm{};Jh>KRJVno{}oUGh}q~B_;wE(ap3@@c;7mj?gZ}GvU zi&bO1*onW@x@{Ie(30Rw={Zivxro56!jU_N&H(H!CH4wZx)RL%@D%`JDHS4@2&GJV zWv)JT76I$2nxHZkFRO!7D(PBJfb|I2NX-Lk2Hs|MsF66s{akMgHU|Rl>Zxzg?`?FS z`~##*!LmgQtyy)1JE81C@SS!dR&wvM#*>bUl5|w7x+qt!F{yiWQgU3J#+|6DQM=3n zxj6^!EF^Bv33vE+ZK+rZUPvsKgvC-~k#U;YtxR60?*rjj41a z5Mc2)_L$c_=8@=t5ink~$_=K^efTXY6QdTV%3p5!5I|ZDAj-~jc zh01F>q-Lt>fF;t4fvAcF2}ulN?i-+AozH0PcYX4^@3EuO@(|Fg5GrZ>yuj1xi zv{StQ(jH!SdhA8G%(W||{o&kH)39Yt^}q3btTpo1VVG;g*-27f6PK$)oBF)oo_he1 z{mofZ?_hsf1d04zSWB8HV~_K3Ip8{9SW9ZOa^LEi%Sk)K20AU{Fki}P%i61>V&*rn}} z_c9GYQUherR?=g`0jWH1jF2vKl?$1D>#+b%jnz-aZ2{X$!p;&nTykGO&;3hQ=`Ug+ zUl0xp)k1JX>jFeo(MN$QRiFGqw=}X{V_P;XsOr%lmc=9mnxs+XIEI=9xT1vb7ZUS~ zaLDoS0T&K-GGGT_A#S56LX};gVxq{Z)r6`dk!jD}NTR7<;vQ6dwtn&DZO&qVbj0#4 z)`8^6qsm&RZA->s^n`s zQv>eNW}^B>{<@SI;?6=IjK&`ez=(U;o|9_~RR^+4X(gXY=Qn3qq{THYc%#?oqvP z?l}pUcEcDb=cWmx66AmEn5Q1Zp8bbr%?7oQWLcdXKeFF824C!XZ=V{)bs<5=oVn_C z-JHhlOc~R*mBPgH9-1ogJXI&AvL&l1>T1;bQ37~2zy;y_G{KRCSm2K;LFm@FuyVx^ zP&Q-bx|?XWn?k+zmI}SpR%trHGS#|uTYy*rZak8xb)}YYj^6t1MFC_L0 zrNeZ{{qKiao${{i)>Khvz@pxR(tW1_EN(4<8*|kTxs=@>u3IBgrri%%Fm1p^5I|X> zEkL-l0B$cNZXQbP<^osu2?s1VtglhT1*|jzB5o~6BQ3sGJtj=|*Sc2&W{0Gra&f5Z zblLqF&GR^l6ml<u_zKK3oPxPI%BWeyN>8g14sPNdUOXGRZ$#sprR#jD537;*Bs=sV$RF4<3 zTQNQnb-OvOVw;07j)AdbW)Mc8Qb@wQkT}SI-Awi9@3R`~enz+>v@Sq_H5Ru?V?qi= zLod}aO$I@DO|h)9YV!b15!Ch}<_{UF?zz5AOeB!0@?x|-q_8`bOKyX#QP=$&@(NwkIbQ%#8^SM{NM51KrgIxL?Q^iCeNPOW=IEDZGEJYzD zf0jCaVIWnZp4nd!G;|V!45x=0QqIp^-VdV^x7{sOKYN8-!#7u1@6m}%(Sh`L`P3g7 zMELo)oW)=I?HBNc6_p^m9)uO_&Q22Uad$<6{_%FHXF=?dwN%YX`n*biaVn%=e-sO> zDJk#zcz04p)&E}%C?=epCRpk|d7jto_=O5(zY4bCx)CsM92>>h$$_ZgBC{ZnRDITh zOuzE#J&RnHmc)g&Wi@nsG@7ZI2(chcNn)B%DLe)OM6Q@j1*;3^g~Vre!xH{mOBH)0 zLaJiBVZTNl@s=w-y4$vA-}@s0j6l%J6cjrE13s5pOjoy5nxcm}>nUj4=mpTr{uwRc zl4fd@js}uSR>mT$3T}lJ>klGMmIW)9N2*9#3Y&EdbFCpYWE}YtvMvCSX%lJ{0@}A512;OY}vJ!1d??|fHUEj{XSctubjtL!4}q~+Zta)c@|F`I?_$cfWM2C1@LK!vTeJy+{LOs>rlqw(wpFrVP*hMQ z@^jaXUDCu_2A8bHfffQuSgkYVDyx)g4DGU8LnUNPWuMEGm1if3Dkw#ckID+dexbZp z4+|xs zwDxH&P*o$Bg{C4BmRty`j#C)tS1pga7@;fraiofuF)Hz*6o804b^*rTFRhTwoS&pM zA-VE*J}-L#irrs{?a|plv9=7cCn~G;q#Q^9TnQ*rJUmM~0z0Y&m3@Y}Jw`>xWZB23 zewGOQy|-@S`~L6eS8_`F*YgYCc?8OIK=Pd@+D|@#riq&mRRon%jQ% zV2$O6W@&S+B?@9zl<0WCVyx$`n>|10f}xkt^*JHM!AFhzjvR}QG*BSP^z{%ufK%h7 zQtRdxpBN?^$YjK+*WEk}*#9IgY3EWBWDahvQixSy1hxgQyE-WlB+It4T2Z|$TvN^0 zK4FHQIZvxU)B-Xu!tTPMP!w6MccS+j>BPnmogHYZwWtYpH^HAi2>%Kd0qOWSml$3| zKok)Mj>5dO)^L4YbaJxHs~D;DC%3=|?L2gtS8DjW^+H;`=z7z%^_269L0lo+y0DWN ze(f4Xk7V_`)-BS`4yFSbP;YzKF9>&*^_IqEf$pA6sl*Xy32=HqWwM@-EYa3O2BwxQ zvbM~DLn*PJ6LvGnu^TBtK#QfJb&p2EI47hE9U45Nme7*mPx^h}rL8Ar1EL!A(XpG3 z=d|-usVP-R?BrAyhRha&kQi97AZNt7NSakb24HJAjF$6)E&>QcABrqAz9Fh@v_2J< zP`8P$m%kf@m0YUh$bnL)t}rfwDW1A&>`y@1x{>lcqg}evNVQ#ziB$VD2zc2{4Vq=4 z2G@R}Y|2JLsy-o7G~V&B8WB0vfZfei;=i3sEDKULYFYh&V^Ia+BRx1{D*H`>tAQ4J z?^4}wQ%vvNx$KYHyQo_5Am(ia4%-ezZ$*pcS>rj!3~o}JOLhH1qx1DdzG~^B))gaV zdk>vNYI;%3la4Sx|3D|=1+cTPdgW?`0igu-w6)A6>Q~*41u!GROgE2@)NvoMHOYRi zge13@5_cAac@ErID4`X-|AA0y{6|yub0kq36!1)HZH1+hxxzco3MlI}Fum*^1-8VK zuVBC3gwMMcCvt73;=K90{XJ`RLx(kwOLRnf0)l19n&3q)uN(z({(n|euJy{Ba{#N+ z9f=`PIiV$N0~1M!L0nnL*$Tu=JZM_w7=7hh1K`pM{rcx-u^(wBMd$0geedHN_z#~v zhQhELH8l$&qN;FXiYrokRbNV*x>~>HB_qKoT75Z4{4Flo4SlwQtiW6U*%yM&^MCO8 z5&ZZwCxU$9rEwDV`%a8v{M0ii@zWo=9DJ>J76lqgn$|rUBFH$52&cwz=XY=+?-v6Q z+Vj(7g<^7@u^^?yLEe8h`-!hRj=%8o4R7M%W)e{F@fAhWwP7o;kTXl8Zt-UGIEjLs z2_9l6gg)c;VvsmrqL@{s^GJn)N?B*>Xa-71LG!{aVJ#BJxUj~EWYqoILBP12#7Ida zhy@lb68ho+VLKzEP*DZml}>>6C6{<&%4?u3kV{b}n^^%IvLd_4wQ@fpLN%8PW)JKJ z*8Yy9z?p%8Mq75qD9rIr^`wm|5Txc!&R|JI{t3nei$W28ueGymVVR=I#4TjC_M}<| zDyr7oISYm@g%-}MVvhmm1Vw_%(vcJM7%CP_w6HR_*bx^3gs3!eV6XxRb;lqx0h>!{ zfCoyuXvyr(1p{1N^N#M7Fa6`Wh!pGO3W`x!Lw5-^+k+Z?K9?$gDhRu5S8h97?PZEF znlQ_yUs?v!4MsmP$D7#savpAj}RG8hSjfT7h)+Z#_}|q!{u}S$u6T zQQ4ax?+X4XbLq_ORd1lsE3yTw-fMxG`5fT;_y6jeu#Y zj&l}Q$D8n&97XlMG|?Nazt_`Bzt4#n`LGx2rNLxyo_-#)ivq}@bPzPFVOgN;+02Y2 zUXMjG0-P=pLv!JbOcnx^dTb(qMBBX>S`6j_BBf!OXjihOrjFN>Ul>8)n)TrT03ZNK zL_t)e8Gv8h3#aj)outmmT_5dX02(?@4T~L2ui}!?#t*w++PT> zXY27fzRxv#*yjO-t0RM`b@uARBxp-sbb?Q4x;D&<{>OP@7&mNE-ANYJ#$SlF-??ep zPlE!$3jsxh)8nL87?f6mqS-~I)(HX6?}ga{w6Rd;TJ<<<03~caHz(5RM}ATv?P z91sQwBdofQY_V^5o%iZB)NqH(IhH?QjfKOk(&aida=+Nz<2VK`M8Mera5DpL%~f)= zvk$y@2pmg*W2wY6Cg;Qv3t&S4N8);dT?&Co$ut>aD-ot!J6Zzj`=?S!DmDrNT3js= zDk)C5=Y>cb$rzOF{6pyr^h+aG*gW64!srJ+%qT&AM9($DT70Rk4GsTCX>_;X-QS!$|wYuv(*6a_d zXYki@LynmGbTm=wxq7Dug-ZUnm&y%bYf0G2fbIR}IUEWuObJy47_+V4kX1?t>;NFj zB7i~=?q|y1XJOY1ph7uhSryHt`d!nkmPWE}R#R6gT2ePLA;#FYE;0Qw`Pt>KXyh?}Q|QiF<$ieO&w3kIw~Y1Du=2 zca7|a3RjL}vC`+cGy__%r!{X#DUk;x`&uW)`}qcPZEl|nNcPXqnq$}ZJwu8(=Vytr zcGsCTE+)a{K>d(Y;{C)}7GoSULk$XPmykHj!`7Um zX;T=hkh1FOH-46dL|zd0`KzQ+f^aQxN?J(ZkGHB|UMF8MP_qFPLV2vu7}e9X-i!+* znb9(sLB)3&m{txj>f2V7Q|oGE6ow;%wk}ZpKQ{hP78_JEK(+osb-p-x=Jl*7i}>Wl z(6q06X+Idt(y2$X&X0t$Pn4u$$SgBjB@HklL#4A+$a-Gj3mueh6BkL!);@h+BoZEL zZG{r@#Fo;b`&APHZ%O>yT$?5_FtykeyP3p+tb``(?X(O~3FV%aGB^ri_5EDuS&DhR z1mKc+iAZ9^tpKV3AXP!26ko3AN`U8YLbsh&YxTCpTF-o$RBf6PiU9%u6jA3#G;(xL zf4wisx1VoZOUHW}%vpz?ob4K?L2dnbkV(#)CFZ%hjt6-qfbQD{?AS0Ubvv!BHwJJj z1x_Zwoea3O0B$ZTYrb)$(9g9*QJ*6;1^3L)kDzY4v7}1g+_*~%X^23e>epT56^d9| zim{UFemh>!Ixz|Zk&TQ#AKinj4^J4q{#t~F97vf-9oBQQW;zz6CUZ#@rKmuaycgs` z-8+sSYT_Ca5X&lg*S$&!-@GZ)ovAH3?n{N`M~&R?u@7lx{4*jo;Y^vDKZ?k!N)seZ zxhmB{c0V-~iiUS)P(Sbc1+cf&`T`O=OJI9RSY*Ji1g;)h$TSFPtXfo3T_rXOD3P)F z);#Que#6KR!7Gsx*({C}MID_knM}HUfD3F{fsTG4|Kw_viugn}PMMMKozA<+yR z7@{_9;ueh5OG{<6=3Q!hKaGf$KBH(N^0l@LvjS=$P^G{Nx%UAgys(0p-guDU+Pp#% zN~Dp(3ninNkP0^%-P)5*==Zvw`@9&Kj9+l|4ts1BB!Jx&bPUF^@Gu*!xxeSUc3~Dy zZJ#Dl=efHSP$)TP*cCQ)G{}qa?<{g`2b{xm_W;>nMGL!zO)@y#9JT5 z*vn0T$1I{&6RZYTZXEQVH;xV>oEQq8=c%&Olhm2uI%5i1N1_E)45tUaHGOcLqW!x7cqYpRI6p<1v%(YiKulwqe^=%4Swkj0TXkp_XJjpDpvi*Vgp_yAb z>Ih_EsO9Tc0kfxB82c7w3xq7u%Y^j^G`(22>n(Er`~@Ma6|4K-+d5X)42QCiVj$fS z_s7SP>eY7@0c~*)YJqfJEe+(D3!Djk&xGGjnC;IK1k4h`3;^-;ok6)$?HLS!?Ogrn zqfCU#(Pk{3K8c9+xOCeB{|;@xN7&8$IY`0@qkc?9#mX?>03a-xMwFTT9558jWhEk_pEpI-zS{jB5tu3ulpeBCtuiZ1k(r2<#6??S zjBJq;e`+Tkz5nJ`Kvfm@bG7j9XLaO0hAQ?v* zV%_uZ&ox~Z=6U$!n~Lz8#$+zo-&3oYhitQy+WS%fd@%rVKRb;Zh;rBdfiQ7Cz^^M2 zvK{1dr5RXCi+Qo)=F={4ZK1U!>iZgI4s0z7eEN1jWdDgHgBnYxaokcN=c>pSR%|>m ziLofGVy#&aMqMKzM4WG95MdIFQiWfyBj7n#K#O5j1NFv!n9{#gLiixb^SV$PJE7ZN zR>dItXbQ)9uC-E>$(Y2aw<&1MY^1<5N2>Fk3zbak^)ln6Tr)6D5#Zbs|1FF}JhxP~ zbuwO>+egj7U%xLaRN|j;k9uAx)&enW)O7dBWOIC^s2Bic9LlYnF(hJ+TLii9ngWX6 z@49}1i)tF+D1i@AXCNroBFPL1g)Emk1=3d}tb+v7m5h1f3F%4neb&>pDVZE7zmf2x zgR+f|sowQ)1DVCIf9QYKs^(Bm-AbzjkvD>;Q4$Vzm|!6A+dyF z4Vf+$rHEy%eb&v8sm7U_tA>ow4-K}=kXx3~7+2(spX0^=cO?9P+UdCnz)(@|@65TH zlmWLF>gPEqfxjb>nh2*+pT)aLy|S;adEkP8lq%)Pt|i*ld!jwZWm!38%d-N=N%2fI zT^K|>30E^fF5T1&%?8kDC>fsK+B!m4SdvJ!6Ih^PE%9m2NJcV6brCgR!X6TuW#B>% z_uTL2^@>1DN|0v4{q}lc?GlS|TKx4mwnnASzG2DlI?%faVDxR9edAu#mAy)j19%7k zW?)T#svvU6ljT8CUx@YCD+*wqNi2xU{`6F+#dH`eAJWfjc5jr|%;>iysv-If>l6Y=k~Q{JV3$MD zIdw4h%IRA z)3ofLcS4Fr0vc-5d2W(498PQ@8Pf;j=0Qm7M}i}X_Aoa<0!dcPQY}D1;)3H8B#cCf z`NG)>eY|(FI^dvPGNj{7nEv*94f)7c*ylYwHey&#aHQ@>20$_OicMT`lV)cuYb-y> zqKj0jdKZS}mriI3BZ-I%#)!5q)-8s*s933mt3pd&RDJoCZUk?(m;t9JRRri zzavqh@8-JbOV;ba5H%U8j`mwn6HqeyqJ5%+u4Eq4eQUa`>&o9{GiH}Y!jGPbe=lsy z&?U3aO%f3{V&I4bXuxxI4(u}ezqvlaKpGgCy`3}$E>AwG&S-*<2x*5)d#*X zEC?6e7oORA0WASc%=bu&s-RR_Kl7MLxCK_*^SRi`(pBssPoBZWE`8rv_Z|Q~a&0eY z|8G1qHi9QVG8)o1d|?Hp_dz6r-*b6?iLWc2qMN8MfEt3_#ccTe);#Q5PZNxj_T#>| z6IL*CBKtkIOF`Esy(e?QAdrrv3s<%8r>~EpNua;;A6+{L9Lv+j{#O}a+D^gk0B$rzzToV?&Pv2y$@P+iRJN1L`l%W*9YUA)+(QsqDXoeEhAoW2Ac@$`LOWdC&AHW+{(=R3azhkPT9!Ay zMbh@{Z6y8H>k6H)b6->G>6$~)r8HHlAmjRyb-Pn->}g7>I#1jtBY^$I3gUdTdM~at zP>cw`FbT`{P4D+UzVRP;aX(-@3cUXG*of`?ga7#;+r98)e{B#>q5tsJ1N@nXW*&5i z8n{qf;=H}c@vmRp4GZu$hMli@AyDhURO1h!xZiKvJ=Zo%!qTuiJeC{1@NgsjA=l&N zFvb%bsdN7TFb=4M-u4`)Z+mWMfj_#@zc6uOE$MxIgOc%%>+1TvO99EasV5BgYr; z+67z12pgSu>PWRD`VGroN50`JV%W#wE1dYQp`C-Ff50H_exbD(s@KHkhu9Wz(nT}xpiPe=U^E2I@R!+VmG<3CQA!SSRS4M5l;EFT z02m61ksu6Wgnen}u0bwU zU*%z;)I0YI+mlmm2~`UDvjiAhnY|ZLw+3ZbMcGwJm7ZQHTE%WJq-xHu8yMBMujUq$ znmDH(p}bP4BbV&mOXYJ*W(nwtb5ZoGl4_JDrMfbiu~6O^4`U;n+F*_bhUr7|N2wo8lvw*8n@;-_5vvL=X)TR_W#$? z@H_C=zr2MXdTIkFM{zI`ZXd_{K6yL%eP4fK)Vbdf7lVgqt0V3qMTK+s2-%+nY8+hc z=-)Px^e=8N@wot|#T(B|TK_)@bOLy8XMu-0u7^I}U;0$o*m-1a(0M;p$$l8kzHvWy zXd{Fa@y=Ss1mf6XQB)cOcT?!vWYNOvxGMqM&}}yZe(M_W&XZ~l5yE6?N@wE##eLv6 zu7-csYmcBo&vqvG5?ht$!pum{R*131B<~ zP8$6Ydl~nJ7wU0Yr~<%NRzHD)ScpI?4f4QBge)say^fRIk2TcY)mLL#UZ}H@1E#g)#tmVZjq~+ zD_a)4knsn1fny-TJZZmLo2JeW08Bd$SSR}#j|Ec{M5}vhnw1v+IVdIk`y5HX^WEuF z9rEq1wskGyQ}>+L)G4J5Tp!bZRr9vM=Y35@x4nuy-X{%2jHU!KeG zE1wNZI^MQ9sUiBlgdkk}Ep6RjbrH2ReV%Xo@YMtS)6a(| z``>(i+WGxLlBv5v++PS{Uc~ooZW>0^yT`rDn$AShfB8>V7|Si&D3FEl$JY)zlYJt> z=kF}=FP`5HnFVXT^FQ0pt&x~IROQ=Rp4I%Wa;@V@^;T`Myo;I5ta-b%u%In-7Futl8d`UjqFT5#|Qj-IfZiRAJ0$YGp zF$?9Zxa4zkz~`kX{DLDX0YmNk9swiv&Wwcr`n4_+eX7ssn3ybHS507q+)2Nkh}ABW zr`qf~c0EByRC&GrY1}l0zwf4lG+hwTOaT*(H|=@=O9;qJ?5R@FB~s{qVNjlcN<=v3 z>mh_eodO{EkBIv|wK8)o)B@g(@{qsa!-!5{3@~BX@+npSD)7Fvg6-Z}PNbw%VxNLP zkBkn6;jy&=KEEB-H~+6L?c&$Iu!TSOvh~hhcf0pmN{QdSypR9ngO`J^^IOhLaD@5A z(lIIO{a+5CNw4At04TQ4wE)+Mdxh)+s{jAlo(TNMZyjQuE1i+H_2G+K3;bWt^-rKr z4r9FWYt_0p2qQPQujaNOULgt`NzOFW+@4GKv z+zm^{&saqYbH9lo6uC4+gDI#*V44W54Wb%itiA^ziEw;{WFG*Y-37k94?MH3sP;!v z;8>zoHr%rKMX zNvv3?x`2@}YkM!NlF{;K0o<|%@+jh5O&C^jkv}G1rK?wZm@Rg`MdYuZ^wCU^9l1{< zx8%pXjJ1`8{KAO87n-4)D+dqX7LfvLm58@W>Idv};9>~q$yvMJdn-yc|7&WgEE>;~ zg>XxB^y5oLFbBXfi`t-3$p!Z^FAHVsp+yHYqP^845hyLjbRj^pA1CURUbB}&LcLB1 zLx6@jIpGS65bDm8&`PF~sYO&$o266;_=5nt z{r~j2E&TASkF_G#|KMXcgM825_0U>x(Xz{d=i%x>j^mExiile4GH*UJ2~PF_;J^6D zHGKNk96$Kv22PI?zv!9q{1>(s_#Z!g3%~Kg&PwC@-7nwpe=pA#nEqu@8M_TK2|K%Tt8Jz#QN7p)E^VpHF0>|%O*~1Gv3!Jym zeUp9gpZ~#CJbNc>yyobqy+K5HekUxu)mj-1Ed-DDKu9vKlKsScE&yN<5$1+9Ysk1f zH%lE96$PZHjEiG!|fGk?8_eM>Jt!Jn|& zW045Gf_R_EpzFh80@h`xg7RkX8o;dyx38EX`_dME?MqvD$?$`jYIX=d* zk-+g$f>aQ$>@RV3FT=-f9N_n_9^hj)4^|%2Z#q4}*Pk5q@_FA5ph{A1#Eq8q(_dCyx&C&%W57QSytQxQREM8J8%uz5VKEZwKj40Km6D zGAqB2FM*yU0_P_QUI;+Sf98W%@QdGk4pXZI;L`3AzwpuP_`v18;IXr}EO6~0!^u(X zydTWpF9ss-XFbTf@BX_K*kaOWybJ{4fc=O=3SH+XX;XX2h#?-I0Pnw!2WorANxxdQ zH_ltpV9Q5=>ba7gYOqktmJgHdB$a~z03ZNKL_t)^$_!7{*-Ewd z6{OhIT3<>(C$$3sw^R2kCbE;3*31Ii>}i2*s;u}Ld!i<*hXS3?VyE)HUD<)BpW0DW zvL_WY5p+@6YvWsbf^*L~)M9G`L27Wd+2Qd8%mC!<5xF$_noSl$>3l_%{~`nnjG@{W zQKd?&smnwa^+|i9YhQFFULw_VU`23kC!yctgDGv%iGWGJb3DlQdB#~3=tJ9g6ox>n z_jPx%2lT&((MxFlgRl)E<;Q!NtBDadt*p^oqkjLX4_t!FBHLF0`q9@M!{bMW6?4E6 zp=nG~R+UK4F&9_p*Wa9`-nNo*AtJ(Sj*o&&y#-X8!L~MxTcKESEnc9wI}~?!DN>*~ z#oe_?fl}OyOQ1mU1a~d&0g5|80zv-t+sK zXPF(89xV028Il1MF9$l7m{)@NlmV~M>tx^6uamt@l)Hpu_^v$UJ4Rq|nrL(>LZg-u zT*df%&dt_M{BoZ*(#0R)ANwot)6#RvA|)WN99VT~wi>JtW|q951HPmyG`MIz&}@?O zrK*cx#w<08^Qf>bB!-;@1gTdjmh6qT7<`($#$JmA7+!%gf0J zgNqLu)YebId|+U zq2!VxEbjZ#{w`k#O^dK)pHtj!U#O`Q8V%c6wKp>pblXE&- zxi)>%On-S#nAyOwZaHVYXlb(^^&IblK6x)w@Ud)kV2u4bvJhs*_n?_AUUY`?(IrN> zK7%dbh;iT6IE_86n+K+x7(XvK@k5QSkLZ;+1iys&xcA0#nHi6c5g<@ zl<7Y@R(6X{PF$>#z;uT1ej%OTU+6vNC7bu{93x}Xg-xwVu#5M6_zk*TNn6OJ%Nq%k z*jUC=zJIw$6Qr1WT8>$~Xx#K2rFg6O?s7+iX6XEBZv$C0I^^h(uf|&)BwFIj69SFjiyT6?wIlN5XiJ_C&j*gPNQRxb51)Wf=ijWtRdT0F!?d&?qQ3B9 zuznZGG_zIM6r?m#d;enYnnMrHNft~CI8-?h4aKnwk-UG|T)15#y2E5);48|oqPIvO zNJBdD+%D*IPTwCT8&@D)_Gu6bENcF`Vv$DdHoy)PKsuZXGvyX&{`)@h@8+L!!-3nG z4Ze?#9rTBgZz;cwB*q!PC=D0dUka0UrxRI$*cq^tuu?LJ4p^aOi40-Iqx|7E0}mC4 zikL220%69%iT)O!Ix=J_heTLK`X_DO5^y$01gs6O-XLL~#sM8S-Dz}bsBS$azVegi zN7pfc#5n613XalQ1L}^c=zLEuP8>1-Qi#WX1{Uh4cS#g#*@6ak-~;umpk3>u%*PLt zS>LJTID=lBoG=9zC`q*tOMP8JqZEwrcJ}=oz|~@j(yx8vru3nIs?IzHOA&Dmc1UQ^ zK&+^w2Le`BnIK5pf4*N%YmyHk(LD^rJHl83!Iu0re*s$jI4(y_V%Q2`psVa19LX~d z6gO+U^|WL260$THgxXBw5*e`6&G|HPite%oJUw~yvO%cuK%yGw=1FSl)6#l8B_ZhO zfPe6fWzKs__O{foWCyxfY!f<}W%N-{DXWtt{90P8TO7IJ;e&Ls(Oe z|C{(8nYV0Gjqv<3+H?_;_EYCo;pbzLX`OR7Jp0v`d8sE%y&C&)1*Q+zyEC*^4+$v`z2H@=jtk98W?eFoMzh(ncz(?gSr>D)vKaoj(Eij_gB_M|}E; zY<@HPYX&dVOWv+Pgd+}a*Tz>D&&id=(~!xojJo1?&Yl#4_KR%Ml@`vugAZ5=TUQJ#89~kzuX=O90RI`v;B+^JL8*0-UN7|P z&-52sB)LkQ&7ej7LcXtLg}0dI?a#mcgMT)$^V;0dQ%UZI{@e@rdG8GiB7Wf9IuDXp z*j>KgrQFnM-xRO_S`BpPw2&1@A`Z#^lqqn zS%Tryx>0>iCj`PcKfz*bw(*LSPpmWlBRQK|3jL$dr*z$%U$;2S3ci7I9c_9o07>rN z4vU7ZOu<#=Py;9I^O5}m-nrgY>X2*xq05P!S#*a^;O;oec@Ttb%AdJw3UoxB+hN^D z8lmVb$=vVl+L$arU~`=ut5gGD%~UoPzSbVv$|H){~R*p?ZLozQ|ZfJ0tqr2UXl3 z-b6jF3aZW@!q?iq<~_owyL4Kd?%m(epDh>%luk^}40`|!&+z~B_!s@?EK1Q?QY9NY zZ@w$aLtGy=OKhGcK4$nr1L9;nV*lftRA~_ZSGl4T|6@lT@S0&zV&**=7v4#4IK(yP zeg3K6=U1rNL)s;Prsb~ts!lYW;=PtbXs$q2#&zzhgb%G>@QDXwX#l?akIJ7Q+K;z? zI}BgTp2mf&-n%6>lREIIn;TC6Z3VU+1!AjgIw)h_{OCvM9#Q(k@=eJFlb}8y@&>6o z|H%z{Fk?i(;C9Um5WgW3UCc>?t7DdIYVA*Ow}ulom&zG1yllR+!#@}i>-tfNd zQG{;#d&d`qj4l7Lswg149FLnZ3wcIW`Lw>lfwt1vjOPExjL%!bRdprgi9$Vipl*mz z0S(%=2=G3C>`qf~cOu=K-SO+I#01_oB+jP>RYR@JclLey>KrX5Vl~|*#6zH_$fi>< zO&AH*VMgR+-+shTDrtU534V_TJpF4B{91?~;rWqFuk~iIu3{)RQ9vcm*rbGW+I{fP z9&FXT&!pcuK}Y?{V&yED&}mi7GDT=h32Nr;kMr=GUP&M?hP)w;zK7XBd*8m)x#Zes zce!>TvW~LGPU183ihv>V+`z^JMg9AiYQ*9s6yt|qwx4&4USnx&p4+o+w;Xyz*3X|- zMi^gNGjpxP@1=$Cc%06i@z-lPUFqgXQYa-yyx}x9mzAMo&;$E9;aS7w&Mzl1fN({B&{GK8B2rHsOUz==0*900C<( zYvs-3<9q~{r@eTbgHng5s;_PFIV{LAAAPk@jc}&0!*OmbrnSq8exL){eyiGL#}G`i z5%~Ms-StCp&{W7iy-#wih}I_~NrOH2&btY_3o~3mh~Chih5x)(=bc))iIxs5WY6dR zM~p4$#wU-OWlrbdAK!UcDz#zpt0~d}F6eLmIEYyk0|qw%lH!A)psnYUJ&Fhn$(KD| z(!t(bG03qM0l$ zB^$Kjy6A#bT5I2H9MqsR^+WPdKWQMn9)e~78GyU4cAOnv=b82(wo9J|L2^)92kD17 z0ESiLvUAgBmYout#utPp`-T;i=D*6`lCsVpwa0wjXcvG-=^A{!5_>Z3)g*P{vTBgY zv?ammfWt*JH^w^&l+F9BI$4k%-A4M~I~?$X-t#Ial2!m?7^QC0plp3_1F<|oc}O(1 z-c-hKK<#^?cn207k*Av{Db_Bo!RQ*6d!(C4^TN2Z9BasIOJBgYg`ej^Yx3~dz{8i9 z;p*hAX6B*0(@qz4f=3@$$z%mp_ZDi2>s!bstRIc(ay@-EHrVw*?nl0vT6MEORL#dvawg55z{JQlHGWkm95zHoVHp2ZheyqNAE!2}X z6z$u0s00a@^*j}(tNEBjp?@3srvE*Q%an_fyP=^z=!M-WJe zPxLcb$T#rj-x|YR#>m|gitn8tcymRwoy~h~L2BCxodx~ z0<#ykAJ>kzkuD0Jj3G%sK|eyES0oUPL-pq%%%6giSc=fo^KF^(QuJ2r+A?7i6ZRB! z1A=qds_LAXFb3HsV1e4Tg93LW3aVC5J{&%E(H5ht; zo;X^@YzZ;?bl=}3LpW>P(=C4;c+ll^*pab5(nZqaqkD0JBvTRtV)V!mPko%O<(;{G z3#U=hg_%7mU4XLJAyH;r&NDtiW+y}cUAcpb;!XQ84C+tY4&q&U z!s4F=Yx{s_n0Z5(#YHw zQqYV-G_ixBgvI}%P2xM^72$2$U)*DQQ5auRLIN1M#(NnCJ_O-RT2*Y4Ff2h4rqbreqgim zu*9EnYb)l*lhCP@{zZa716te8a^5GS8ii5w4q|BPfd451!l{7m za%xVdk}qD>TFOOQc_A2C!C}SL3==euybRg4h$ZKGorK zkiog%FB2Rw;buZj0X`3y$b-L!umanMlNwe(0*~eGpi|}RKqX*MY6lk8BvRO?8$0c{ z7|$E&(cSSX?`Wt^#G7cL_EoY3ZSQqVzkh|jjeZLgQ=0f``dgEtLLvPd81N{!wn=%Z zA&g5()GVVP?%aN4p(s}pZ^3HuQfVrb%+#%qww4`JX?wga6}N_bldqxc9Wu#19&u(- zTbTM{BgL~X0}ejBDZgmfp?}_Xz|7x{v@gUOOXlrN7E6DY~lDfsI7DnGHqRR}%`qc-k?pOdWn z;?{k6(>57$UTb%$L(`goYq4puwN|?E6b&789Pmi&Pt%_VR3h`2kbhodpA65kEKS4c z-3*2pJwEKWT(C`Tn2+@S0dhz_&T)&KPD>nU=d_T}othU~+!^FcBpJA1Uu-0s4|#{m zys!zPL33P%))m7!$F)1}674PtXr?lUO?U`2I; z(=SjBjWi~az1R(kc1eT-Lm`TfbiHYn)hZ<0!%1Y^D z;?Xjkp!5>Rz!Sz-DS}_$O5xtg)1dT+&b(e83UX(`{z#g6RduySo`@Il+%E$Uy!X)+ zNkTeDoC4gjPCoJCD_lW3J7UeS3IL?`C(QSM)5$N64qMNmZU1w6?=d!{uNRUE_|7(3 z&uv`<$Zz4w|0?Nvq7$IOOVevwdn2^GSG1spwBNR}M0;@)_Rwx+T#3>X8OeR!d0U!- z0y(dqDlKDw%e!D825@otEFJ;b_IS3u&L1;jSXum78d4S*>(v$Ma$)8@QDCiUC&DMf z;dO{g?-NLG3Fx4a-W<2lZ#~BJ&L5JhO+a80VFuizrXd&4!t6?N-dIW%L@oc2Yy@xQ z%rH#5oQY`S48KM@5jKf8(9tk?-q{rwy%t<_#E2H)_(EBFht%UtIaud0vzAB+eqnb!3J6Ep*JfVs}CM!-wOJ7E(K${dKw zw^WPx4rI{u{0F)4O4JYoha+9nRg@=;s&X-2R)B0m({nj$kHyH1pJn0dcw z6n@lxX~1Bdsh(wmT~p%hyF(0d$EhT7y7}_esOb_imG0lk1FZ!na7Ke>esXuWFDaak zzRw(CaP>}KEoYpMVI0_x?=l{TeL395zR+KpPeAM+Pp=fHZ=Ju9nlNmB9R5|gvC$*O z{Ym``KfNlC(;>I%Z$rWWtCl_J?1Y*pv##pC-?#NNmW!hKw&CW?IFMcip^AKSZH53# zo#&RKC1X6R8T?nt&(SD{me6_x(QK5Z8KLf^BsClknpIsWmgCH#+KvQlx&&bN_5Q&wUG2gPA{$|vs7si>lMSBk;l>k2}0i%4h*? zZ#uxP9wN44x^Hn#f-UxFIx_9Ze^(r;QBW2d^dF2>XboY-oX5C&6HEuhY z3VH5=69TxlhDrgQwcTPU*ln1 z_vOF;Vo0!;9`&Pkn)m9KKFqo69}%Eu4~Z3V9(+IBvC*+%buWI`GbB7^+jxFFuk|A& z1AxMPbi0?Hox+ozI?en@Tby!31cdC)`+BKJ#Iu?{v~hLfk}rpHxxPGZc0FSTA&{>B zc8{ZWKke-osCyr4yWWRh9x67Sk zJ!4eWPtuT({5a~2>P#HcvRFUp3(C1)l+d>T8851tSJ>|Q2@AS4MTi~drr2dN;bt2%AKE+J&{aK(;Cr%`Vp6^@ zuX`R8iWV5~V$?7$=ZO2vaE-caebaDH@IY?1pUh3RqJ5%W$D1@CW@p-Pzt-`wro-Q_DQWqxA3xW8gxKHZ=T8xBWsx*G)EN)LfV89654N&hlT<1` zzwC6cG`McXrg=|>Db`#d3x1_Jgj%nPBl3cS&g{2{9v7q2mfXt{3~n%xLO;6RuC1ji zt131v&uVB& zUiRjNwQt-DJc!+`VGY9eZ(fx=!93QUnA4OC=)8xGp6?#NSL zmMY-5l?aseY&@fA&B%JEP$BGD_@;cA>eWQ$bDef6n?^$gcAf`zh(sL3LXP^v)Q2;e>)_5d)-^1cMe&5_PZY<2?Q6BlTsWdNU#DJ3|ytC2Man6^Q1I4?kv`696 z+;82MNUPSLb1ITZ^uWGaa$S_0-}H+ZuK9POg9SWGrsiU*-JGpkCi)F?;s63fu$s(q z!{k%%55Ql;FP&PQrRHlzU&03q)hfNq>-Z}#B!%xeaq;+_9)g2@HS|X} z=7jqJ?O#Q!b{YbXf6qER-^AhMqc$k_tlsH8NljxiE|}6(k$Sjbx3LCh8l;-8qu+c% zJHQGldoMk5!}l%Yi{7TME=Yrynrk-z3#a@FoDy?3oE%muL*9CSC?t}~d_DgOmq>Ue zlRssOUmGJ(yh1{KaQ3^uGmE23j8PHb_c&=>K(l1p#>Wa~2GkzIT?a8;(hv`?eQl9nl`uqIz7i(Y>dy{S$tIJ^@e zTtt?~Fwxqh+GV@@)GkKMwwe>yAV6s0%zB$;1T(*Zu*x}6&oY$hZpzj@Sd&#%k`S&_HBV`iwjQKHi;tc;0X(xkeQ5RtrKd)V# zt%^3Fhb1njkmx8JK}}nEJ>4bG`bR(4RHh~E8qt&&wc`fifWUqk^Tik1gV?}}vkZxq zZbi1qBzX!qMbv`iJ@O%`#!6L5=#txR_97#cIM$?%LSu!vGaxj)!d6mi;4L#5ny|K(879o;U-7+{>Gvy z{0K9@e5VuQoqMw*!+??(B+oAhzSj3eiT5O(1%%0y?=jrItlb4Qmw*~z@-TtX>OvoE zpt&o{<@q9y09tH1@y)h_A7*i)46UDgWA@*1V4X_WQ21r=8^7#1h-k#-KqhmT2?pj9 z1(th?s#%(uIAD=smDg~6(Ub%!q(R-_!$touWoSg&tc+Pwt{n>ah?Q`v=#F%BKfeFi z;XR{UQ)S_N5V_hg)VW*Kb^yA=Moc5JLoM{6VK=U2kf;-2WZiX(_TN~5gQ$!~hx7HX zce|ZJuMi&?aeVn}2Zpd$`rmQ!hQhe9uGj@S8PIJ<@5tIj$fF}L155}3vzto=tgzM2AN|j z`o+we>@NDw9AmGnW%`iDpmocBmNZ*0FF~E3y7}T-u`2seODT?-R+am zlwD4eO@AwB-7ag=ee46<-+iMNPwQsd1Bz;|ZF#;34(6Hg!C&2;vcHpddt0Mx2A1O{ zL&pMb+HKI{ZWB^f4jB9R#=(UiPX5t&^etQ}X!ta(!T|oV5lVL=UrWemCrO=$7@DEN zOwB+smTdK5FGXkT>tjejkhsr>A5R8&w4r_mdqxvjogcsTPero+p)41Z-++m0J4sq& ze56k1toGWUKVSU)9AGxr!hB?O&???MoHZ#!=*jx}C@xs-Pn~gm@J6os`!h0T?<~P` z9iIlN9A^0f+R=gjpemQ2-md6PR+9!Jf)}#%3ZC~oPMDN$o!c+ECOtN`xf-FQxxd3P z6YYLJ@quzk0J!2QcC^x2z;7hjvhW!VMO<+HTg5NF6{(+g?3hqm5KiMkB9>v`J|1g< zYRSdjFrzmB|7z%T+>il()kmxFpTKwash37??t#B9VQEpDdruBIcTArl>S$&%6F)Tp z&b#4~v51MoG2lML84TKEV)t5dJ_KEO$Y_fK)Zo=#YH=2k z%+-F6HvxB~a1~17TwyK>q`?XBE^JrjZ)T_d^=-951VxqXWG9i%y=!p-EHazTWs209 z;nu5hhoW}x>KaEOanxY(2B;!<$jEF*W-#ZGe_S_B(OS~iZEqQyrEM?P;PeK78{|9` zh{MBLYu^+;#lLVd*`>8v@#Pf~?^`B*FH~U}a}O)k*dR5-P=DIR&-^{bq;+F@fz@;t zX*dfkY(L{_?j6430zmQnNduCNf+8*8ENuOD@n{6C6W+a%J<_8>D9`rM)zme_Fw@L; z9(3o5IdOULUhMz{4@ak;!Y19owFKy@=l5c|@v?W<*JLFxz-fQP0O0Hu8<@`*j&T85 zSM_T%si@fR-PrOxL--=i+qmcf2FtmVIHmhC-|`|QddmNxnr^ku<`BdD!)Fu+Nn4?i zeh!TQt|TutjeZYQCucc{b3raDX_r4xONMNs(<%Yq;{){)>6i@rWU>SCy*`#6wkZ~b zkMqCMgSuo9!lmm87L`lX9T0Y8-4mFvw?2S#i0YXLP>#q0u{$Yzd(FF8T?a?2Gb|9e zCb_%&K0|C^HPs_OSRMwHEb9~XZ{j4QcLvg-EKg$Ix$mp*&X4e@V|^avih_J;`NiDV zcdn8k+lEt7_pt@UVk3jS2hUQ5h2y(M^KbSO1dto1CeZ5WyL)mEH63ughOP$m?yZ`cl|;a;cI#U!UOlZ=h#)zAj!8BzO?(0pQ z{i4gnKOS$1y|a{^Y4*J*xQ`yWd34+5F&+@arUz4cAVAh+j~wOXJdwSAt+WLb$T}~3 z)loWX5L-K&V~$p>d9|OLWTR{YE>l`d^f37O+&^gV5a7qw-1Xhn+MJJL1E2(* zRZ&K^+6g%XR}xLAoEf1h$hfLv`$uBxb-3mMS)(SjtHKe%>InHCbpU@My%D5=9k;y5 z5ee;^T)qRqqUnWqa^2!>l-8kI%Lw$Zs%S|wEec(K{He6DIVqbG7SN&FjF~1;H6$6= zMbUI(6P33U{~8!>Km3#U`&(fU3K__vCvF>StN^!(w+RVF{$(q-mt%}O{Ii|fViZ*9Wi)m#b()-MuX=u;m{v{-?8m-IC* zkQWkscrE)**-WnAaO3KkvWEAD1Xt34xe+lgTe)4Qb2rJkqjt(m^r>N@AWr#knry|OwmE0E~& z@szPe*@zbjTqzI z3ixzYW(2io6sF&}4vuyT; zFTy)sZto?cfF9Z^@9A~|@G+34hbaUOX;U;z8BN27AW_Wx*Zp)t#!<}bsPvZrJB<2o z*MC(11Sa18wGYV`m{086kIHlhs&s*?m6|x96^b7VZ-ey2xIVRNz49V8FyUfdW;s+K zJfTX+I{%< z*Sec%Q6F05^eCn@9?B&;0eFHnc;GZEc1232;DUw%GVWTnZfrUA-jO-SqaAUn^CioP z`bd7=F8~z@!|j_Oqx($*uLf$(myC1giM_YH1P@2r2MN-LVH2wD3u6hcU(7~kbF%w= zJ9*Bx&vihPeswN*(xsPkXoyjWp_M2s`=B@n|50a@Oyfdgp&VZ6g}q`+opV_KW|_|5 zH$6YX>q~MYpv?Pjse`^H=S_n{ar0bBfM-NXK!>@V?Re+Ke%*$Lz+UZ|OoS`5BSN&^>_J^F|^D@Ur zu2BN}i_Mw|4Nh0YmR~XIhq7&7fyO1r!OWbV2)UU-^mjpCF+4;C03C(UyZrny6of=a z&=eLD)3`+^l-PwzCW8Hem=3FzB)V|%a~EKl6z`}o6OMU|aN0V_zwR*quwL6W$AQzo zbQbj9a}c?C?{EYZt=Cw^VOo1v3@Y;-vVosb5-HlrkV91g2fHG(vrFs=jk9_sW1;nuL3R}2!X7h4;Fqfxa@mrjRA1f@$gM7VQDZmm(f77U0}n+Sum2|Y z!yfhc-!!@V-n7D8K;`w;QW>PrLc6R4-rTKz6ByfYd~@D zNUv%(u+&#|`#huV`qW44*uY<3I6Tkgnw&iLI2gC_$JsCcz zWl)+ucX|7!lCN|cD|1}b;wt8cxVTcZq9zM?^ogox_1Gx3X)ihOb6GzU1%~Owg@(Dh zT{0ZZ#>Ht?JBcsitC_|;M7q}qt@(z~D82apAl&GFZ}_emX@|!zdSB@#XTB75o*LQV z?p4G4`J0dH2;r4UY;g9G#uG$fj*oaD4@JWCM%J@(?k38Hj?fz zE~rg{ud1vtM+$#1eB*#WMx?qx=He^518p|{zJeX6ov>j zwymo2RT3uvnT_NDsU!#Ye}wniyG#w+RtU7sPH@=91JM`kJK>26s@Y~9o1A58n(2z z`5Pq!)LIoFnbs8lSvN)Flz57W`^lO*?YUCbl2`Ne{wK9`S57VC+0I`Mikn=;Cqw-FqfnU7FwfnG?rI;n@tn!Ipq~bHCi^Hyv97-ZLaPs1EL& zA?(HtaI%0W7nGA4Ciu-e>E?K1)iy2`GGT|Rq4P2Yrgw422o%Ujq?%_7d#`5+*RN{M zj)po1Oq&rz@dVd>*#g9$O!pd+@Wt7hD98dZ?o^(197PEfRqe2)aKB7tiU1Xd+E`2RsV?fZ?ibA*{6!Lup0qrRsad1Ej0r{Paa_>)I7~v>oM+O*T;M^<)exs6Y|^ON z^tyVDg8geCp>sJNEVNDAvokWV(>YUGSgcDgsO#!gxTcP%mM5fjK}5d!BwCm8f>&F> zTXS6Ee=3%QuxmXU`0pEpVPh~BX_%IO?+_n(sKJm;e2BIz4xY8zyntwuzos1ba9(lI zoS-LXHRG9?B2{fWR+(2uslC|$8q@;U_T@cqWAPL((!rUE2Ka-CzXo1sDX~*XO+c`j z&S4k6UVC~mC~jx)6bk1qc=D1+AAH}h_6%qSew6usjNzrTdT7YV2TQHp6aB;uU4+OPAEL3Y<^K#% zJe|A5{15gp!Y>m2y$UM5(zVSGp9R0!mn9&Ee{{mIw?RgFr)%_~+29qHL_hFBd~h7| z+4yUa*;`jDn)vJ+o(vRj!kxsX-uK-e#fNnNVEixjVqeV%Gyefb-^G3m_z~U zD{o&EZE!e7@+9Q-cPKkzIIvET{T~Iwi;R>+;VMJ|$H3#K#|-X_5)BDaK`VG4f1dmH zYS+Ewjq7OVawVtv^|k|A9VfFYbLn$Yy$-MSTT#r-#XqEQ4&Q-Y$0furq3St9T@nB7 za(KOZmP*!%nt7cm2g2^wZ2Y3o)#QmxP5Zb7Ju9QR0J)wa1TsOQWl3I*|Dhxiq|6jGxIz-Ld(q7NAfmE}GHGpL2ZLN8< zEH`;SA%<$hQWbfT!De_i$R}U}BQD}I<*jqguJUAc0)(C+1(f-HUA`k#k{%SFGOee0!0|Mc=V^aD2A8`)lP!h7lm8_d_GtCCZq+ z<`vp9q90YyAiP=sPpgiI8-lyKo3hpNH8uR%LnaQ|OczHwn|Ik@mfi#pH`0acjlJgr zDb^a`)`wNyXhdLzpyDlUzVDy|JLZvOjKRTbCHj9AEIlWzo@7fHC7Bi%$fPn^K5{e| zz=0L01bug78Jov*w#bZVo)K&zQ&4%ui(ua1`du@bJ9Bh_^Pu$_-Pam&_(=HQF3#b4 zyQcFp5#Fdy$4g5C{VAa4nXjhT%%dH(M^+$M zoq3D;yM0t)+J6S0|AE}OZo7Ea+JIgVg~9>MpPl4cm56{=+hl_`?umOfVS zWkaV8olUZ{_IMOKn#I*P-gjcuwq_~M)&2SB#=bPo(8&KoT>pH}X9$+pc@>aldmSuE zj8Z$Dp?p}Gb~RE35GKQXs!m+bIWQM-HNWH_x6G_cDn{ro>qy0|eFc)a7<>N9yfG;j zhoZRue;qXy&osE;HR=RXcaL;3-e)?w=Z}ms zj2hg&ebq4SgizWnbtIm!(|aC7E%oW>6HBR#e(zL3qg7yrYqFsaO?RyCsK{*DCpHVFX^oA~|ogpUOrE4{-p{W9Z&|DBE;)NC6D@bNU?P6_o7pceL!$ z{13;#zh~Sc3u#sUFn^Xv4<*qxf)3m{^Gq=N^3xmwqoWQcImN@SxRF0vtHOYPfl~=S z>dd+Swfthl_@HG6;LokV{?+QuyB}WVKLc^zbR<(^2_$+cOveWf2yEQ-|3vsNO7Ud- zdIlXFYK{l?KRg*KtfBgex5uHeLK7dtWaj#$4tPta%L�YaKIEa)nM_7Ktp6L6||I zooy5%0ul2;YU9A4cc?&75VEdI*#9-8=xb1OYevTnZ%@m#>)(kJ4ZaJHT1fkcyeRw% z{QCrJvchrL|Fr^#Vh~|(uj9PK($rRCExKv5Ic&o5yOyYXX8iJ9=i9N{|8e^N1jJ`} z^2L(VWMDsieg_k-S?cx0x%<6bwiwPLPI6=I7^Srh|I0QLj?TNQ=_#~zb z6-hM2pTG)*{>{1nlVTn99+iqU#z*$%16|5k8_wkLLJ>rpH=ARrLRI!Aic&5U=36~6 z!tLY=;5WsN!OlU+{r$3k|Ne#E_(|i{yR3_tcKT{T%+=Lj1Ml}JRC5GyG{i1ZnACG) zaV4M#DnHo6#&&--0gmHpO)x&#tl!)Erca3!Z{+~bE3`|T` z3pGaVtGSXP)bNsgPn#E8&(AlyDBur@s;aW`@@PIe`voD?$zoR+b*61rhtMCK7D@0f zIBf#guUt)j*)mBL3ws20ZWb>2A~F=G+BiJXe?y zUMvd-2heuX)y0M5U*>Lxg+QjYakB#v{E2ACIcNjM%gcM&gH8jEW6tmXsg$Ovsp@e%2xk~71%ck3QKc=jLLIij8^|j|CbSF7e#EX@~0_fymu}G+- zr1Ve5ZV%U=v8lyKYmJ*_jE%|5)brwlV7FQ^Rd#z5IWfzPcJz#lsQXg|3dakzT84(P zaD{HqYDf-{SOg+UPC*FF&~rrx_Z{#z=ECeP>b^XQX9~hjw}ucZ#bcE{XHu@u15CP zz6Ui}YMYza`PH_!8ynY>3A#|qCsDpr+ndT4{|W#-larB=K_89*mv^9-bvL*WN=r*K zB|{{#1)Ssm0T*5`Lg?dT;C}#k)^R>vYa-Ye)Oj_^Hh1{QASg)UxKJalsEA?iyM=mv zF!RBmla1|FLC`IkfYVZ__vwmde=NS&ZCA6noxVXM1zpRAKbwH_O619jQ~$ugyA4q{ zFoKBZL1=HU%*kpCZnETa>-N+5xGI8F28UVQ$|bd^H+H#3!5}iOSg1wF6A^`gQ#ZIL z;*gFm)|kg(jwOMde{^50m}7Ws?1P*fstf4JTQyfGg&c&aWoDLmbmZU=dkh6?;H56z zJ=<})?X>9JJ~_shC?s$HDOEYx1WBHC-I*&LAWP}$zA+EF(L+H)v${K5ck5UeRPC^_ zv!mzZdt*JAkP<0@(Bv?WrKP1cJT+B5sgr!N()sxP6!flw|4@b6WZ4u_$R&$CPjQULQVJQ|v0I1IKP z?;)OanA_ws*9;CDox=QR@V8YojJKaGq1jH4;TsgPT^?J#sQ)PAU$II`nA!Y}(TK=s z;H?;%AHTD>EW_W#h`~uEGA3r{7y$Z#(m8wh_e_+Q7GY;7Ii_#xn`zn2ZL`xd&*McO zZl*+#$TOti1^jm;&3>VV%yv98tgw()S5MD!GFMp0_kxzgtUYotk)lMWTs@P^5-B`9 zoUhkvzDiFB-iIVA(dh1ODL&T?$_R8^{Te=Y3n1lY&>fY;!vX!tQUh{__i1kyuibQ; zhg|}-IQiw}rJ|BjPrKK#+sP95n&+$B7$( zj`FBHQJ?KGPLS+unHr+6ehmqyc>)|UZ%9b!>FAKCM7{f4-FNV)sn0wLY*$M;h9}_X zZ)g+zYHV~rntR9RvPKHmlP@?7odFP?VG&IB4?t^e9{l@mBdLtg%OM(WxS+5pg{H41 z5TPd-@ObLpon*-*I9fk%thRfxrKYBSOG}IR_6-kC$fz0;_YA$gy$Id)1;Mw=cJUtG zaB}RtU2*ii8ew+d8z=i&US3jBf#JN;)U)ohnFzOPBm^uhEG~E@hoo>eoB>!!MhPZ> zoUwg7UEorP20iX_8o~+pHKkB!d^}c@%R2d#*sv#|_J3Krj<*|uvnnkIP=`Fa!#AVZPLS7_wh_Qh<6y0gHyVc` z8W;pS%Ab|{N^Ch(EawZCuKS{y&*!9&?fy7Yu8*O`xW|^a9koqg(}8AsdQtq23m?aR zyoXz$f{hJB^lPek*ja~$WexGr@js$BGBSeK*Lt&H!W{^8V_;xVT>a;&hLWh@_m}b3 z`(9d|Y=UUg)6)-Dn%SuR58lek%6`1u9$0FyMu)>b0*?8QkI+kU5|75ktA7q24*o4b z$P?Q?PXZ?>&+`o`I3?2F8D|Q6Fu^(bvRv{>X-BDK!~6c~A8+>^&X(ij;e`^vHwJG6 zoDURANBlh92)Z+~v9STi&;)B<*TQ|Z*wgjw!E$5y_eN{DLH*;}f7}UoIEHr{oL6w$ z{ijpV%d;pF5|Z1jn&4L3e*TAQ{aS3;-1m1nZdZSmgo?)eq(C#o~=wW%mw}JxP zmes_6)x!O)EGYPi4<_P&%@X`{V?Zh5i7`JvZ@&o?&kwv(s-*e!>67Kd^&u&*Eq1=| zHs*lc{$$?Qf0ErB&-&9r zyg6PhDJ(>gmX`hpCg|l3|0&oJxOWbZ7rQ-O`t3}SL?f95*`NCVIC~FpuG_wUT)U)@ zj8qh*tjtIm6;dQ4dxnseP_i|MLZytPC^OlzX9!s(DcRX&Z)N^p=XE{z^ZcIU`2UXo zas2P&zVD;sy7-RsbDr<_YrW6d1qFAY^OgyH7LOKi4Eud(_9%5Y*4y6Rp5JxOn#Z7! z3BOQ|`a(lTcXt!3o3hYY_}=j3nY%SL@=03hYjv}&OJfy6A3uJ4E8V2($wUF=ovwov zbDo8>U8}r|e^eas;a88o}PbD(9U+ds=ef?JC1h-09_dUndsh3MJ3!ZhYdiMTk>xo9SUmi>T=2I zpu<}B3;C7)yY8Y3ybyEPh`K9{C27sHxO=rDzq>9>=wn^oht48byZMfrcX#DhXjz1| z&L!fRqB-t5c4KI#v5Co-EGtcdSXx?Ie&pD)lJkA*7DZ5S@P2mobzi=GVeXc=Ii{zV zXTO2&&;_rKtD;3p6q~ngt00ZxSHpf`%cjk!+YhEIn55$`yriM0kNxurXv?I#%sZ{c znlx*QN1-Qy$Tn_c_Bs>5yld{_tQa>B&j-8!I;@{b)kCAYX9Bs?pH8SKE8jA$4SAiL zt2HHl?f6TwJ4YN(0KZ6nsH$QY5z)x$NY1PR22jz_d5~q*9ED%b9Zo4w25OLSo!iID zyX|JXolleG-@kvImS>v-gM+U2J?u(8|`UMO)1C5!3V;u#+$NuOkQRbf`d>=e0o9eG6-|kDa9Cym0&{}WQ91|cG zUtiyok&^Dp8XEV?eW(dSMQ=WH_N?#k(Io$p9xxVWgdZ{?r6-FHvNrcX#nAjP_;w>K~>>^?cfNlE8-q%$7Tdyfa) zfS0>I+Dgx>oBg3CnERlpMV6BkARQ_A^?iCDYHlumJz}=#Xko#LCA)`hN$_xy>--rb zqy5;c1Q1X$3vc!pAa9HE;5s)_ns70`;hnkC`VAY508#-RPUT$fh}q(Rx^p2?k`xm5 z0|(a6w>wbdkrJ4>yf|-y&Ul!Uv(%TCody*ckep3Ohz=_;Kdi&x@OY#>kM7RCed6MK z^z*NuLNR?D6yz0dTdd98hGh*Pa03sk6sUr#YSOm&??#2tBi{99(pb@kH!AD^f+hg_ zxxeGWW30@l2kMWx&hfCgO`NJ<@79uGih>sCzm9BsoacqPQ9mHuU!99*be`eK8yA3sh|yjFoDFMj_ENQYkTwKdh% z)xVk&o^tHuL&Xpi6C=C30o~ta_f}MI0h3B9RQWB-3$xN%T1*7-V22YXdEme+oP~RX zZSn8Up@P3$Aj*2ABElm z)P0t$z0zxb5?+*HT1&&s{9t8yk)Y{K)GRXg_Ja7Nv0_1Cf1gXuFMpO?q>@^mp?l!x zN6X0Q^W%rsixW4u<1=HIK4qXunt8hL+~>YYFE%VK6O(Vjc=7JQz`(OgN}*%xdiKYhK^dK0Cs57o9UKI}E-X|BuOFYR;ZFStU{`?+o^IbS zPjD~UMIa~*@k*@qiYILi+0bJD3?-)Sj9df}CdKGbq}vW0Yz?hrQb5IE?|e=p=~WaI z1SiWYDA0euLGh!+Q>xQ>aIbZ1=DBx*wmEI&p;%0*0_hM$)Rt}YXXM@Im{N8wE_wL{ z$MK^1=awdR71Ec%vrsHT`yH}8mR*8ELwmED4Ww~YVw)VNZ? zAL$!6juHq1VBK9#EfvHeM3Hu>bS>$m1Ud>|p}9x3>rSM{!WJC%+}?*LVnzX9$(PtK zeeeD6>pHE6D6nxhewLWuQ@k+5UH9??BhG*{J|HdF3;4`7zsi2+tK~i*L(;axA5ut|RZ_P*kO{ zuSgLFw3X*x#G$^|aaHchmBZ*w^!K^mWn}!c&)a!qNh8G-&3^}4g*3A!`iQq^r_(xz zfx1&T?K{_+;;T{Y%ettnOye>)!s+~XW~@WERRk>zH2yh#Q82e=Pn&ItEcy^>CtusN zcX`TstS;X?|6KUo^M)G$iDaRO%n={qB0p6OAWN|_ms4U?esA0JZ*n)JoUjA}Hm$-0 z3rpXl>UJq0;2C-V+6xWk)~#P+&e3_N^YQSUw|n98Z24;9sByOK=SV45XJ_Z<4$}bK z?3|oi0CQCOtVsU^vOJv3a6jS_;E0;EHo6myOLAV z_`?a(N#Vj!BFa#Re`MCF@lH?R{sRXOzP9Zu{?pdA!l56%VZ#Q(EdeF(&Ud;h-7H~0 z<9`zEFWt130gbo!wGYb^Nh!}2H)t@uXn`SxT^}Y#@C8WkYCz>8;G@fJdRtj}IoTg) zD_^`b|J;K!RS9+FHqe0XLeZ=ML$2PDrLNUwRzTzlAnoqB@T*V!Gl7?m-q6!%tr$8Q z7YE7aN@L6x4M5ND$+}i!HU|$LBsFjXXG;EFIJMLgO~K9aGcGRqGwv(xTb-KBs1(s^ z{WyFR0QqY8aV)Z`-)$OExDG?Dx0KMK9? zf<06Xr}-(~ym@o-^yxd-Jr?K39}xj$ZlvW$rp43iC88%pbboIeZceSbPj^VzSzK~; z$>G4ELskqN_w(;M*K)P?)fi61{fehr(hLRLy$ql}@w1fqX2ziir?nU2>1spy=JO&! z!Av0a)p;a8zE=J|N=+7#};>XCB9W?9q@$r7kMwve=3}{J!RT4Bg5D(HvE)=yPjRbnfFs}j%$YMi z-*s&Xc2!nYWwXh_)2DdM(Wx=VDG2aeh>!lOv*-k&3lJwvfR_IJyi3h**CWH3Vt5&i zmf{x5r>fnjP22bQ+Vxgi=_{~&* zb@1~atDH7^x&#!Eb0zA$m0;`v=$||3={XI?(Rj;*fKp_3$o1Ta7d_(F&m()`#j)EE z(x~wuZe??`GHcF%Y0Q)6AfI+$})vomo9Oi9M*_U;J}=a@iub zaxce74jN5;_Vc}`WB19z)H=J78c1rrPx)&BC#k=EPoK=MQIY!b^UG{au=|}oXA`ciePBU&MrRL^F4 zuC6>2v0=ucz8kPx)EMkB#D5L_+#Op7;R*62-81rM)ksYe2 z>-<;+fIN|)>u+v@z>E%k+S2mv&Z^Lmkb7vJ3QxBrE(ZDek$yx$XdGayF;o=vJyA(? z_IB6tq9?Ay5PqRDyw`8(bGCc4m_RE&Z#Fq_Fx%5TTYy5?rd3Vo6isd0{ii?hT~H@e ze0=$Glp}t8uBj<|ykGi2U^2sEqGoC(A(nu3ge+j6T6!in7x}tXsC$f{(H?UgdA3u8 z6m7gf{d$d=GxADGa&~qC%%WF$_S!-#CG8CrnHF402JC}SKkv5KmeHkMp6u-GNA3Di zulxnd)8!>!4`w}j#@>w@kw19-=lk2wL~U6>tYd~xB}Jy>yp6A{`-dYe%;h-@DjOI) z)V-P~>%eM>(k*((`|yu`6EPG26Dx^T>n2Y$jScn;8~+ybtP+`>zrS%7Jff$}dn;vh z79Sb`|Fxedty?lS@D)z1B^`pMubaFRiXD6DBMuBorI-Im$Kvn}=%T zH2*Bqukjz&S*&}|WgvMzp5m$nkr++rN@OYZ^FqL%yiNk|)gC*BojZx5l^;pRH$lV=pdp~l z65%xu0s>?ou}H+!wG|g%%(&1pBy!)Yy!$OM=(_A7z-$k^q%S|qIUuEjdHKSY-XpdEHfMfSRlRPWKj zA7eYyvY&YcJ_q`oI~d`*^XXRZ#U`PAeGuUkGN%P42X5s$*`{N{b5mN%16l4&J39koUUS2;3!fiFq zd)bKW#u^Ktm=lFWQqth~phl`It@G^G8;iA?%`%T3^w)+CyYK@7oNEro_eL%B!+s-6 zr}fTk8~W*8NEI``zit8-;epzH-WCNu(VWNBKTJn^a2J1n>MrNq_xEqdFOCrctT3&GF<9AgI z-zCk>&8?!UTBbO|#h7Va@XfI}t_rX(9T4HSD_+TNI60@R``TguERDr;?w`tMo*dHo zM^D3d#PRPC)0dH1e}8#_VUgX#WS`IG&)9F5Z9fg$fA$N*~4~M6qNjrhkTpMc_quMP(m7bnX z1Q4t(kl(SLYW6BWhwLeiZXJC;!EbPyQ`{#s8t z3y!o^SeMj%{#=!${SGp?9hlZ@{Q^g#<$*P0M+u91LEb`5*o~(sZDjQNI?t4hkjC6^ z`#jPOd$5-(p(nm-d+5F}Q)*kXeD7<#5-}XW+y4M~497}M=(XWgZazh`^kDb9)=D$l zN8XH$-S&Arvn^1M&)WH+q?g&`bi_RqhI~Q%J(N}hK&kNR)Mq^aGIZv1(P`?%k?vkHw0D| z)}?;RJNA20J=^+M!)qew;Ttxjo5&F(1)^NS*YT88N7{K^J-zlGS8Q04hlF-vDlXyW?tAv!Q1) z%_6p>{^#-`6YK0&>OI?iIQ;9cM4W8m6*-mlSZT|j;ShGYhnJw4qJby%+?b4F)Yp+w zSjM{NGUT9iacdMhiRJXd!e5N$;7Z2wvSKBFlP^NhhNM$X>SmE>q z!m*#10K7A!-yFL+wr6gTfn{7Qk+d2F5vN*W(o@6&xCB0v{ii#)^80Ve@Pj zOgD4RsxvtLz;S&-oy+Lf#DBvIY%J(_2+~jZsBPio#^X1JytXnPIeWDuD*ld6yWiEq z;-4Lh;JEieYb?ijZynlsrS#5*C%PH*A0%)5nJ}t%1v#KlrW@LKZ_3o%+$wt+rBcA6 z@xacVJI|Ixn*UKNC~mIO+Q-5-{^CJm@{N`w+tzrFZ@8fd@Pe*bPTydx`(QexwXS)F zW;*tKg!nFMi5VJ5a~!jBS%ZF3%P~g=jb;TzbVoOV9aNxM2>bCK39TKkkSkkDm3G@X z@4L2jI<$On+d@2M{$=SXfOZPS(9# zFXM8x`iV_|n0M;U%6lsO=tC+B3&nZ#a%oVA<9hXE2{a>uKU|XMrOG=KU7BPIo{ehu z_3PI_uIo^kgsW4M#vEYe(X3x%TQtk?J=HKZ?ef+;w}=Dk%==og%(SsxP<19euf_m0I} ze&{rGQ?8UeXf)QHg}bm*pBNEU=90g~LfD?kg`IS>djXxSnp3`IrnZejB@MnTE>!UH z+hop>ir6bxcBJ~i&w_BZK=m%8#hOXni67Q*y6gN^h?`oJ?gG;tDA$npHxZZH(BrSH z9ToPTjI(nd$C*`2Wy5CslP7PfN%VECuH+c`o`Db&!lQi$Iyq-H-TF0}DSD_+q2i4n zE*siQJ32dy;ly74Jzq1v+{1)IWL=@9uc~^7ulUbeq<#c=ip;MU1E3JU{cxohNPI8! z4hjlR^D5{wM9(BI{NWVr7BtoOOvELE4RGmQ3o%71#9&A#R_;?_H96(xCJwrm2FR?!n(iS>KZB=hi)(2K|dA5M8nn05X0qnjxypNu(Z3|N_sFS<7m*@owmS4d@~4afS1IWcwkeqJf|zmrW(aEZc8IRxo}`+I0D3JuO9<% z8EJ@6GyxUPa{C$gY_sc`Tblk%{2wCnJ$d@{3#1~_)hsM5;DBYZ3B@^?EFe$Q5GA|y ze59nlN{==CcVc`)-Jykf*VAJR!wv4XNlg$Z{)T3p0H>wNDmxIQB;B0t5Y%%=v)j;f zNW5zO`t?7(84W0YYKQH#>Mfoq+xqKEv`>&VHy z$la8EdU?X=T?>AJPb;F31QObEY^z3E-U&d9fM*v44hZ-q?c|heRMe1vh4J0;TbKgG zSe=0OV+?13Xp0b0(P0lXbI#sG!-VRsB;OE|(rG z05^88E*)~29}57cGDdwN1e`>|ylbzZBgY({N5lMbIWSpqcX&UMW~5dosfk2O)Gf4C zFjaQNh58*(;9*zohbRv1yj`mXt5W{^I`I|sUXw%T@VoIKNv+`#L+&aELX5Q;bvyxF zO)3&exCGt^7yV0?CCy>*LQqJE@%vkAi2a`qUmsC~DBxK5@5F_~Ep@RgMvf;Edu?Ct zYTH##;5NbuQGjDwIal{S+#_~pvbV}=NAOVc3Q<8J8v=bKO^>I1c66TkA{U7C1?o>X z4#<_}l)Zw2g4cjb5XO-0&Tz?k^Vtf2?_ai6^ARGetM;!uiW2ebYdke+xt>eCtg6`~ zkmT6$RpDd=i{}t|o1RAbZucQMm(%dESlnk+IM2c4KR|#xiCjQxJq3lE zc#CNCI9%O0lR;EbAgq;;B_<75XAOU~Kh>!Rh%D@BqwgslGM9;*b>Lri7(`A^K zfYsZ#ZxeV&NXdOB?om}n>{+(Mhc^>B0dBiD9GCE#F10oQEFt3$n~7`)#q}Aoarus; z570hIpee0w^v`0~>XC|g-LTZKqVf6BHnKq~$qS$YlP8nwG|2{M2t*mO&;9`Vm6@mc z5kB9lh`T~g4YVKfIY>&1#A0wdKUPS)q!+F%`z+CtJuZM6^2yk!r%bT60H@n<@ zu$Q9XAu2u>E+tG8TYxLu1`l*)-gA|)WMzRHPd1HMDlkb&XaGV}qHj4XOm@ey_WP(+ z;2%LjLHl4EK|CjhLpl;nBZxJ^i$Bc8wbq0R0>lTH8cEs$-J`Y5wk{wXgy&ngWp5*g z8tVVT?66N2i|cv81JGeeZs(sICESf~iJI(KM<@VHQXb+SOOtY7kFPQ_o75VkTKQrB z$jHieBQtphQa>9zyWQewPVZ;Wm3M}8q1*Q!zl0FQKfyWF$5OL*gldp<0Lr0B?&p81 z2p0#(M!uq%9Yp6PQL+;!cGriC$|3Z{Z&t@djz9L@^JVH?g6qjg#nC>>Ru}1h0h|gi zRsr!0ni(zUIy*2v0*>WaoMnW>+!ubw2O`@L6LSE@(H3~mBrp&s6R1wMIf~G}qetn{ zq@@9i1t6(f%Ve44N2NUbqJkGtu6^cqxL2$kcbEa@_@$;JeO}M zEW(PD_V6eUdKuZwhyL!5^W@O6RBteEZ{YI#An~Ws5>B5yNkRNc2$k}qoG#3N?4_uw zspVjdJq`@K4ba&`QZPgz2f)09r$-?^`2|)H*2$}HjA_RXV@pyZ^e3VI_Tc%;$;(rI zPto@yjuNP0#BZK2qFru6Bq4$L&CF<9jzMujaqB^Tewy*(#Uq5ZL!Z6`50ki(cc~?P zrB?rb_HZ3*y0=gmBHOEvP*cbe{RgnIelcG+aGR6`{H1;(APPkzr`_H!D*O1)EmE%i z!I}iv6DR`~nhOhGz;Q%N92b_xt*5hPA@U_r27ot$YhI!3Z1-GU?BX@=4i$pn09V5V zE(&~I8Ex%dpsv^O$t~B9BKt$E6CVBio#bHvCBX5V48_p-7r8?hUTpR$zYSbz1Xx4T z0A!6I>~enaa1YqfQE;;gfu)J*&r<9X68g+?ctryun&0R=l2vgvrxzu-5;DuRnO`bn zTDE2eRIpD!%AnB=3F1mQrm0fj{$QR6k9aK4W#Ppjf5n1k-_8We2T_M>)Lrgt z_D40czlyqk>aIuBtsU#vs~uT5R%HBM z4iXJSK|$e<4QdGzQ(G1{TUlAPKs(0I#-fEnR7bzL8yd>!;^IO%Zhhs-C3JPL?~8_p zkKVl#BC_T7?b~f?NJ?g9Wd&vFDQa+FAgzXm1}SAEUwAeLiUmrPR-XMql0!f#_%%G- z+tX8q`X(SMYOASZS_hw5T3Xu8&8;uR2LkK(xYFs?sJ9hkd1|pWi!om~t^X5>GD1ZcLckcXfXTw&Klnr;!iHu}LZ(u_o zl#r0Hwzk&Fy|y2nj=mABAp|aUhDp_SOdOOWSc0S>am1ZmTm%t{XliQe8zMF%zSc#6 zs)Pj2hYuejmA1*mq<4E@bx6%ye`s|MsACX&s?bW5(6a{y28bUZAyFh!J@{5V@#Dvj z@0*)7FMQWb){#Y200rH&;nk_KSv>d}TObiKfuznLH~8t(CsK{;=kChc_`wqdE6ZQHhIVPOK7KhhB3+Vrj8J>UG(i~ald-GX3~nU$6P?wtvV zx3;!YTEGyQn42?$gn|v{}(Nu4J4rIzeg;iVqs=# zYR8-@A9@(9fm0!-dnDbSp|K#pVt4)eWjM{mskC2C;x#$#=$PHU@@G-i@*OnJmf)Oc0wx;~ z;h=4Vm-7NhzI$k>X6Rd@_b|dsn9iZn*Vo5M;s;=vdI$XhnPKlq6HG*qX$s15BuH7{sL6k+Q!Bi@&3t)37STdvp}vc7dH%4ZIjHk(tTK{f7^~(bl$B(AJIS zT_{P;XI4HZbzNqcyu3UiX1UJO928??V?>qg!4`^xka@=~@|fKnAn^=vPCb47{)lw9 zzxGqp(_+Z!O*ci`-~E`!(lHQD zAnQveCgrFz^fmF8yG3L3{>q|8XoC&n_>gC3KmT!N6sPw$k^wk*m=Ah@qjAZ?qS|{a zBNBF}l$0L9{7S#peR^hgR<~Y3cgC?->=#fb`PNu(;KNY!2Z8ZA9=%t(eZ&%U3M zg9A*Ge+@n)l%PK#g!J3@JUx4Ws9`vWgcwG6ELcFJ)kY73^^66E49r z)zH)w147*N?OVFzs1DKbQ&NsVo7#WqkPlY4cJJKxKwOAg#riZnycVZ6Eiefz*u zB}oE?4jnoK+I1R5|BzBdA7Ff7fi3nmN!{Oi4#I#zzF)a6uX}YdYwsbnevM{Ei)qAmA4TwIPr zH$8-$>!wYcNHi%Tf~D#at2wro{rICtj|LGT?8gMvkCv9n4|GZd6ry0Z-gwrBY8@V2 zksUItGF!rxuS37wKx+!w!U!;njJDwA@c7CguwzZ{w(F&{U$Jd7D0T~jR8PX4vG*iz zJ$*_C5oZAT49dR`{rn&+g~Gm0ysU?(M(lD2j0-X|Gm|l?xw$zA*=XmrP=nW`G^}tlW;s1iu+vgXFseNgq zz?SQUfZ@Me^dV%!hcLgv@Ckm04j_!O)SG)O#o_>Qg(y^m!BeS8C#MScPj;v0~-d40Vi z|J>}%420AkbZ?+Qijxx)HH|OPRGOO9%sxl(ilzrUe^GjItTZvTm}|ZmvD$3w7B;7n zxbtCU7*ik#2pFOCQPPUQjpfbFj1CSC$SH9QYKy}h#dACa<^RY6N8s6siHS?dQ`_&o z3gsG86KY2&O~5! zPoxq=4gK@?FA1i^s!;EOh=$R=p6>2a$Thr8@jQ3(vF1>j5@={U3Z36wvjLhRE{9%` zi@H-Y=11^_$-vv`#oCR(!$oZg8iR7fqRpbtX?5{02^bwee!MIzyCyz7d^Z6k*q!F) z=KHzWg5|$_{rWWgdjG({lb0`fGc~QPc~HG7Iyzp0HGJIGgyqIwevY1x%H=f-6^K$L z2LSWwlP6_#O5&xvZ43A7bs_Y#X3d(i^?B@VWep9F0cs7ky7x_+v5Gq>`?iv~3Qni! z;h~`)aFK4@xZwufv}_R@k@Sl#l$1TtkAUK)0*B^_h9xKG14rWYGk;BW^+^O*Np}D; z2O=Uf27eY8xj(u)I*MRxm_WI-ZqHRQI$Z#Vztnj@p3D4vJS1@vRK8M+3ayc%cMjVI zs*!EBB$|OXbiA{Qil&h9DOpyq0f-VC5D@T_hR6%K=x9(y#ZQJ;tw&2FU==|5o(!8s zR%E8S*>hJ?q;w*K&K_tlbf&v`^QQM32f0_TUzg&@p`y`OX5ewy|9rnjTwMJ5H$HWB zbvLvG3Q(xqXa!qrAak~EuQ!1NPm-gRm6fDVV)*#fTqv(@CFvAts#`As_aQJshVl^L zY#y1eud5>xtbl+3rHK+z*zVmsEoHqGy@?E>Zr!?7#I}=1CNA;qTckJXii?YL^YV^S}%l7|GIqSdP=1c6(S%zREx z&f|HM@eHV*#rP|h$SiJ?i7u0*Tdu0MT5Qszx2x)3z5!WUzVrCyD~PB~C~Pn>iCKiu zCyorbL1jY;0`yFML1N6Ne~$+J~#~a;{ie zi6;89#`2nddcm3V&8*C83&DD{w6FJ#Kjlz-vbc!X#>}V?V2fDQo&5acB-@~?tLs}M zF27u})AQ7++Y>qHpLkrPf8J@YVXFnx4u0wi;0m}ZdxyfwLsB_8{yy* z3;J!}gw=&FwN&ofML&N0_!vBD=f7p|excFo&YTa}F8UET^~j zPEN;gR?)gH@XxFn85!}~j0|CKODLw%J`F@$g*rz^|y zmuQM>f*Kc(dZ<`3EGY0wfB7%b_*XbY)qZ@%hjZ5JgAjlfdt=C(B<1vQv<72C4WeRV zyin=>ne8((t3-|Ki^{{J!=$+UsW~!S91_BSVn)vvj6gpQb+s5LL<=(HrCsQherGzr z=#9>Ixi714e_5)}lt+iW#tWkFf}Zs+xPq?j>|A~GrZHPEEC6f}C@mHe4FvJ*Zvtij z-gn-~o{^SbhZatJc6`C$siiuh&p-S7V`&6J19sO`mR0I9P`pkG_?m6L{S}qzwBH_7drnc2KE(Nq ztnB_^`9S$tr0_`u9PqXpQ|)na8*zjHoZ=?h(MrMdut4^e?!dG3jc9f~(1KJ|pOi)L z?aDA!%=m;^9g^%q1ue7x8K+=ERGPUVk%;#lkQmS@Z=<40%gO=}+>oI5;Q4c%g5jH(Acjf> zXO@g9et_`JBx3#Sbdxv&z`VS?u}^=1V0L#^{)b;+LOoRwA{z@u2bLC%vPv^Mni+du4A^mpRG2a`qL+dJ^YF) zaqn0*gcYlPzsa1sCs6D?Moqm|x-`V_y)Pq(3W;ayaXAKwCyK|^zi>`eseY~e_~H&s zJ^N-u%padVeHznm8z~URx%a|EC8YSxo3p?F06+4^SR@o9KMuubBrV%QNxLnPw5Yeg zeB^lV*6jxnQrZx&tUGve?-$1B*~y^8nVCVbHny14WLAV-K`)4oX3w$hihKK(60#pY z6(%HSF`91Q5Gq=LLH#FJ}b!9 zG*jJHG~Um2A;yB`aWYrrVA72(G+Y?v=7Y$@MvN*QkvlV^7zNg!a}qphv& zol*Hl@=H+apn4Hso{5=R(6omCW=r~ivH&~14;FfgC`xp_t%>*Z+lnGnh8f*VVfd!p zR0}wWq*TM!?HL;48Vr*}svR_nZb%*AkK~5YM6RbgT`WJ#7N~4!*p*cG?D_K=&V`3p zw&KCWepwqYySlbQ{>^{ALeG0)>)Z|_#QCC+^#F^&{^Rm90p<1IJ;*+x>tQ0psC;LOQ*t2I3#_M}= z@drlqV!o}*z@EP5;6RuWSnMS;voo01g8VJ7`7YDTny2XcZ`JU{kh)Tmt4Gx7&Z#4= zW@>6`@3@a(^5IQtD&ytE=PjF&{6b!% zwWqaByJl=aTcWwz>pbWEuhNWj2y9CJ{ouRC$VZLs!lEHHDU9^=TkJbRGLxA@pFbFg zt@F4tS{L&$NS5})*FWmBY8%(D$Mkn8xEKms(8beu#COuU{WjP7&kbA%v9`Hp>!0MH zt)nC2YG`K00rD(|CPIiJL3JY|=h3b}M<9IMCejGgA;-)>Y zO1hyDfspq?V@2G;`&Y|}@xth-4+grr;lMpd3z{@FK95T5RLBm^L*2&RCV1&8WL8M9 z6@xyHOsTKBs;EnvUPyZOjOkP*S27O zgdOVEK4|9X9^`HVB;7v24NK3-scLU0%24bkwzqfg-P?%h`(+sMh(bVm-0vU2>OMn@ zSWdr*#L4)7_gz&OpSlI7y{ej8%%zjn9M!y|&cOkUHI*0CYrd;?J}*wp%*?ECPZdPh zZ$VHFbCv6eR}LCb_;(;YxlVIUieuL)BD=vL-XT_8;pzj|bJ z)b8d@7#4SsSuzV)t`gX!>@8;zJ=e%k)S)t6IIs{nl8=+YKW?MYT6IpYI?DHaZiU36 zjTt7+-Xtc{(b1Jd^zbr0f>Q;g>M%d1kCZROC%ULT3=9lcEG+C+SKMQ1|KcJTf*5FM zH61gGtp8qA*m!SbeJ!G^)A-bakj=Y=c4fp`DoR+YCa4)jrl@fp+`oSfI$>T>*xMMJ zZP4&7EiEz2tNF(Uy9MIY*M^3ZxKId|6Q7rZP8$%pqgT#o-R zhs%cg2k&`#O?a-(d%l+Ycx=Ni=G{KlH>q>Fm>IT7*owuU~eZGaXktdsg|Z>+pA8WFHS$t28t;DE|=ornlQshTwx( z)dYDWwoSY-eOzshX~@$hpK5AU8{#vH8=9^pB_&yZ`~6zJt;YXE*lh{;SBPgqU%i|- z`WBcgF_9YqB!rxxg?>#j#SP8(`vwNk(rR#s!o;03ex_MnWmz~jKry;kfi>1PlU{vh zE}AXeM|gSd9jcZv6A70YWzNywnCQzYebh20B>}J|HY;>P5%B&xzh>k1J!c`vz+#|W z{2hrKP$19YNZa;p%!NQ(yfmc%D6}(*6INQ_v_VK{sKe}#I&hF~`)csmcV0UwQ0jc$a*MSr0wSoavVBDg0E5W@rULWr?U~*gBzfU0pH+)BehDs>bpRu z>^Hqgkk_qkW&RfcKska33;KJYc@s7Z^4qU~uu<&MCAk3x*BE59@NNESDeaJBRo02YDa)xaLxWvc)dFaj7 zb1aZf#I(;{xIkPKE309Kc_ReXSwT>-i`mSb(DV;?FgHdNR!_{#fW-Jf3aM2b`TF(i z7W8CAMMVo44N%@=>I=9;%KAoIIL;?VnAjvGBOo+%kBqdZ#7;o4IfHJACq=3I>+*6B zx*uFTy{miR7g1q*fG|FQOEL|?J~}zM9@B37GYf!aA@b@KI4X{%afNk~6O(qc5Y7YU z{$9eG{kSU)VHSjQFv6s2G( z_!LU)0w7ANOl1! zlNU*A%fv3N+qC@yPHt@GUNLHQbq1_2CpWj%wB-R>yIm#nKm`u4t4^-aFaYkBZf(Er zJZhC%bOvGVldZ zgywZ^dO-2Tix+4y?8lC2F`Wz=tv-L@f*C|#R7_k!A&V3x$|o7FeiW3Qb;@6REXS`OCeREPH<9L`zTgfp=tDT|$`>z6L*oKxg*UR<$C(VU z!%#cb?WO7TM=TX)9Rx@Y8FdzMr}t1cP`$_n4>pdgS_!@0=5=bfWqEJoxFZ>MI6^BznxycRc z)HPJePR~_$&_OaP=?v2sz#Sb_1@*1Rpu2K*H(YRJ9*CJoG$|}B+703CqIt@(ygGvG zFaM3etQZa+xhiDSCLfWPxjcy_AX&uhYHx4H@IDcgF@uNljz~f)d-FI9b8^81c^ojN zW%c!6BKp$(RU^aJ)YZjh$L`&=*iu^A*1KQ~p~Fu@7gxcpf}x?BiIv6Ry^!qtA;3b} z&=?cC4eCG{ugfjX(Ek@EBM9l3kj9i*80JydWRhXeHi=>nw~$3 zDh3(4Mv5}-(%W_xR%76v%v9;PHN&6&gQ~gZwt1I&*B+8SV(`k$V zE)22F4~sFu1r|s|n^!jxAad>v5GB!Ka*bg}$6mBua0%Fh-4L#JL_xB6#33LM2wWm~ z{g*QQF^CipmA%u_(nP9_b!!*iEEv-3CqM8|jxBm_f~X9X1_ub^prQzSu){|A-R*$e z+(>i=H!+2wE(t(7C7e4U;Wb(V@0nP2i?+Dyprk}P!}*^8OPhkQoUO$H;({?884wBF z&lD7H8}V;$K=8&;6T_?_v_kKEOrLB?NlC#GgV~2Vavbq8o5uM^$2Td{gF_N46!{<$ zBSp)B6-KVv@$*ygNv*R^>>S&SV7?OW%L0lYq{AFr8;=|skOVid)~#%rYatImpoganiTTfAYhYV6x6@7*hlb~dm+cE zyEION!rX;&L6RJ3MITyP!T@Ho7xb^ebtN~hfSq7gY7i|7ylx#F2Qo90ot@oozSfi= zP-tQ#%H!c7Nqh@U`7J?Y$IL3=FD)|hzxf)DB=V*-Dso;$4xSwi)@H1Q~>1HccPP)3f8cC^N^l2vE zkpf?l7ce#=C3uLqEw&7GK&#kItYIl5Jn6yk3hN^MURM$ z1RWIhZwk{AX&6iq8Q(h$7%3?!iMXLR290o6sy|>g5GDt1{#3cvnHBGWHLiosilW|& z^G;4UtSu6#DJ&}Lr^?0Q&p@5R36lk`N9*{|*%|Rja={lf067Wg5!v;8ChjbVmP=AJ zutUMSKO)pe?|;x#9Ap15;h%(uDD~vma%1;>Psuoj(1~M@@NdlMPc*MtnA>xENvHm?QPY)@P zVn#?Af>sc-Fo9Qm=~9j?L!0XNhYkNK+0t@Brwk1vNh-U$`xN4FXhIWI6}VI_BEihCG}h5tmjImp#+89P>h&JS?kLY0axc}?;ObeJTS$?=TS;MyqN}fQ?hUms5W*?Kb;T2-9Nk*uhyb>wN#057fi8G;|+GqPb?}l7fkvaO|V=;MKU*C_b2e9!m z1%BrD{dwFl0+J#*w=O|OW@R^S&g_G_Q5HrSKvZ^F+3J^?2ic}HKSucu`MS=@{+kS4 ziPtJ}IXXK#i`NhY2aVMoBIzqMpc5kn?QCqT0pu{^I*Mzc+Hi`4Jd9_c6_X^VUN_rR zXl)dPO}~FXjBh4Us*p<($D=7*X^Qjpk-ERcN8(d}@s(h4(RaD!nI^1S@-P3%_E5Ks^mQcu&W_q5JVP;wk1*0t8~aDDY^81wf<_* z0%vfO(8_hnXq%aq?w0=alGKcp+a_BM)(tQE6c)Sl`n(#UJR;r}@aZ_Sr>?eZue^wn zbFf!Y({#G{s)yaS)CKbiYf<*^+tQt^`^g=<=*Q~0S0P^FU9TaMl@K3snq+`Sac6BQ zM4p2RA!G{0?kBDDWuh*CjA#R|p;$fAk6hbcituVj}p*4<_`hy88OnY*UiA!v)WjPw8mWAFf{D$$cSv4!U4E-&7aER!5PU zpg`(IRayBxa_Qu(HK!Vyqp@Cr5=wt?>Jig$d0E*Hgm&O>?g((FrTy}Qkyhn05{;N9 zQAqOL-iJfz9ie^Ld z%Nda`&en+=gC@~*$Y@NS6%HWDGZ1(K!w{Th`+MAds-rK)&NkI0{v9*t59sm7&HrxI z6*aIS95kf2R!6ttQ_%*lZuAcb2*cgp6AfWpz(1Jc|0k5a2Fwz3T{4I|KpKIMnFeDx z-*MR_^(wq5c-*)y<`xEC$eo)wPzXkrR#%_hfs$M%Fl@ZckQxhLUfKvec_ZmmuxEMj_t+Yx4TEN7oc)ki>8|AMDnO z*4F2kI>)E~Zt0=>)`UnSB)bV>2LYdCH_6aRON;iH_9L!o#rY9de{M5Pwf%A&Eq3fV z&lPs{xAUcxp4WVOZf@g}>nl#18>ang-_u10)|85=UwK=~wAm>ZIYyCF97k&R>p&otn z#6@FH0cy*$Ji(XVM&Ax7W|&^QVdlixZ=<8nXWAIHb0(|lZ~v}M-XbomXIM&NLhOv~ zHAl8(`f{gqhd(opVpY4SbMcXP1jmKAe4d*kiK&C@9EJvtA%TW@DUvk91+<`wK1kCd%p0t`O%nwK;Lcm% zD>6^;?unTFDlxGZ$s6@Cb6heu0AT|oz7KJgN(B5X6erMWg?G!7cp2;x3@~9Qtix0R z{2niIh4+mce}AY0Jz}(h+)$aC`uWzHb!6@sv7JYGDcfk zdTPIo)wtEwq~?Z(eV7xx1s5jc=C}bFO?>%sF9pO~@>?L?HMO-QyYXMSZm!>ww1J+2 z%&czs+QvtHm+0WS9|S3ds{4_%G=$`{#ISZCvIw;90VW#jEK)$63j3RJE=0;{;uer( zU}&fuSSQFajH`)Ot5mpm?LLmk>muiucddIZ?kF*WID)7L5h!su$!mhckfsEqODYxH?Ba~(D-n|@35j;!|5MN2q z2e=gpL6QTU9jH?=+1U)BbC~-%gW81n z9Ojnq1BtD}ZCZ8M6U09{eAw5h{2sY12&pxK)ZhmD?>&*N@7@FUg6~156`)ZQIs?%E z0R<0}B9r(dxf~d_D=Y=9dhhu7qp+}D9R;iD{>w%>hQP=rZn;` zaP&x)9aVmV&uJT*QTAHE-HKn9Z>BSPrP;;bru{$cy@yv+S@$i9xeb6V27*AV2nv#O zMiI$Daz@EPKys481gL;0SY!l*B2!4tU<;CSDgglr1r$*-RX}mq@#}u~j_-}%yZ^v* zjBbU3s&n?)d&N2DitGNt?lh|xslh%G>l9ROFy~U09QQLpX+Djoq0ocvj%(IS(M$ZV zxN`pGqM`>#gDXa3cO~|oY8ir ztFN4Un38cbx{kp|r(f_(H7b$LDz&R*QHg4dJ3Z%_P)#Va*a?AweuW$Fle4gm4mGNe zi~3We3xw*@(UGR6$`3rR-?Tb+&v3ya8Kb75b{)Pw^>E-dSEAutx?IYRsf8-)8`)V+ zL&o7?P{GigGt!p5(^Bv2u-I?|-R~w*@PV9OS>0Vvt61{^ZfK9c)u*)TPv1Cd%1<|jy=+mCiMyWH?FwSfUUdgMDIu^~R$d2xA(+^J3^-YV$oior^g$w51;=4zA zBNsb+SM#R7iaV`Ej=IT<4}pgaj#}xNr{}cLl#)K+gwC4ihnX4Dse1~3Q83z++=SEf zqb?u`@GHGg->4V|Jx`>ZgkaNxJm5e>Z~|q+Kkfl)6Ne~10g<`9stQO(jR5Yc00agA z5M9Oip~(rbbvFq7p<0S?+u`^2_OKMLPyWRMtal-jw+|kC0gk%%vJLbBp%5MkC{+M+ zgRh0wJ|8p!F;>)6RMvn30JtbGoHwMCuA~HVpl<+H2$jQ^#gN(~6)o89r$^|V#;O&e zr3r=FyLx(MvYY#Gb`YNngg8W`3CKU;LE9dRJCRzCI6)`% z3!wLJ(#ir03zTtVpe$aY)gm8CivWf@;MoNJp)8MIfj%sft%1r1g36z$Ty)=nI?FHU zb(U7u3Ik$v`r-cu5~C5%1ywb0HSIv?gsSO>_1aw$DFTiD1}y?_U~&g8fJZ}6p5O_Y zxVgC}e4%R$xNg^;r*AW7p^OJ+Fa2FOB(VP=n_HnYzzZNJDBI0IGN{0EE>Pi)1vJoB zH#d>6h>}6*!K1zI2k`!^;DHW7Qe+JRQLcZkLitx}caeW$7>p2b!B~ZaqQDvl&iNR% zw6|LV@K7Z|Bo(`7T}eD3gaZ0@0eu)ehvYB(+U^rumX1^{-=y6 z@X;;ML|K|eje{Ec#_#j%Yee@w%{Fg~r*=8p%e7i}4IGcGP#2s(GhQ}NuYdmCF|>!P zUHw|N2->(6LbTGipYKdAcy z-bJ1c*@h{82F z$6k;auYWas{AQBeMRQC>%XZ`ptAStz&W|G9X~Pr9qQ@p8h+*uH#0$^e6m^Y1JO#oz`<--s`vwf1>(Sggy9Pk*1c=C=mn%9} z0nM5U4Jf1yb~)P!95!SJ%5c08cqud&KpGHx8RWfaPkkiR{c_!{WSMh8hoA}D^m z0lW*?#GBiTAd*u$)O`Ye;+<9_n8W9vKFIxLiBMKxf(y{^!~_Ds$|BG+Cq5X;Gw}>) zBPbL~K%jW#GZw@Un^kooV44FM0F;V2$MpUWH0LwQ{{ziAJ$(8BKxi3FyP(dFB-O8U z5gm6LXo}@U$^B+sLHPDtb}arb9Xx|%y(TE5pC85++|I{fbYLGh1ayV#bBQnlAlOwJh^Y3AK&=D@|FuW4^Edo`A;Q1% zxO+zwd^o5pz6SgNFt)YXW!)OdKo3GYO+`40z6-13Bq-=Kk_Nr!voem>oa%;H15zh> za2}BQGm>i?o98{C(B~Q?C1G3$djj(-R>`VT{qA(YA>KmnweSoAxqb#jE7BmVtIjzjrP+1&gp{358nnU#-0 zn~N%c7HMNd27^O~)S=veR|xn@z`8E0{83f0*3#N@-oOW%M0l)lM@BA}6;0jNr(7p+ zE6;+J9e_rJM*%-0g5w3`VrS{Huvk{;f&w@Zf|S5n1s3YCRH&#>1h&v3leWat0)$OE zA6Z(yjEjqVoV`93#cyogeOW6=f+Wv)>FNs z*s;>(SW6yw%2q}Hcn-yjb7QA_IQsfc<#Ft+E?>1W+r!uU=T97Y+YtSeMyHur>>6a` zWgZ$PwQn@!Cf%S!&EU_8wbbERiWazM=w<%0M5;b-W6o-CZg-O*-!MW61E74!DVyL? ztZr}5LfHrywn~H=*x3|HWt{?yNdP>BGM`4=U{B9|r^|NE(hg2%oLeD=gDlJj+z8C+ zcy;^5aYQvMP%0j>F$mpyF>_&zEsU5I5Z8yyP1F8!ItFv{U<*E_!%8CvOj!2}*k@oX zLi~Cg)Tp3m^ZZ)MO~6m13u*-|IWpo}1A$lw{NeJ-O3%674}^XY_{6NG17!S{F|uQS z*P6-l?-W>I(gBC0etN;5BmHh%Bg{D6IR5hhC^3|Xtxa8H3;6>OzHWfNwjRfs*2`Om z3dylM4*hyBC-#A^JS@Mgggj!@Rai*|s1HCQfs21Ha~u$10LvZTq)P^%9$*dA-OaO7 zQ(qvMv7xveoi(%zYI!dYr2hfcuH^!C4h$`{^;kqj4V<1+-{35J zB)ypWDOUo{%ky?gr&#C9g3%7wVjt<@R#(OgFQCkptgq0vrHj3x(U9fza2K4m5-iK6 z$~wO_&S5VkZE#_Y2Bl^4ZI8}Qx>}djF8(sXHuI)n%*a=-?KecJTK!k83-+13-;JqN zJp?C19M1PH*aVgcxAeL_|b@-|!6z=QnQM()Rr$ zJy)Hb!6Du>lFp*FH#;lqq;d~4CaFXx81PP10R02~uRG9n151Ty?m#X8tc>f6Uip9v z^El}%Kfeq51!U6goQni{~6;dz~dJ zh~hKq=?U>83uL`3ZF+9_NE2t@h_xw%Ee1@$3$Udi|3ZjSXJb*IhB|Du7#|Y@77h0C z{g_w4k$`7S<{Pp%K7c$b4<<7rj6IM47tR$Q>ObVFWwm5@|Nd%5)KY!~krWjCr_Zs} z9PFX`@v!Bu_HwCJrtEUPEMktB48_FrdmmkF*LP26&l5%)blZsjgzAFMsW8_>6?Xjk z+?`5#d;YwtKVP(a(Ag8ayT{!*%(4o`FGeU|zjeCvw%*jlv*-Te3qS2fPafg)=*&Qu zwR|rV?*621!-%!k>Hh23!G>#S@qo`)T@*$(K#P$|!0=^kBmw31U(d)s^R3l#4tAOvh07Yq2`_|?DH$722guznUM zyIhMu+T7an0lEUx7&4&WK?e?yF-4%8060!oTGBz+SYlI)$Dmj3!N=_RdH)q%ZbQSu zyn#Z?p|2sop8KEtc~;`%1KM-V=98CB{y2;MJD=ekTm8#tFIiZaW{x*oO)ApH9BpE0 z{lrn zOC^OTADF1d2F*SflV%L4aN6#!uH72W1SpDba(HNa6SG@1xwMM7HgGNIh}A(45pz6| z`^Wd}@!_E~|0SI@lenMB&aB>q1my$&fFI(i55D)ymkG~nRmE>EQwnBR2zb_Q_o69v z$F^pL`)$R}4yyaw^h-))BpI2}@L&2$?U%lpWTr2c9?xDqT$O%jd&Rat=|{DDt;Bee zcjpV-y^9-7!NKmnuJ`e#vQ=?y9xG@M60?_kc6xj2rQ_C&;$zpETnaf}T%9FB&OOCs zXneSx7m^$gd3rlO3N8dGPaR+@X6T#zwkYdgaV3`XJ@g0C0)(n(qcw<6 zYF`GJEx#3Ce%CbBGk&l?F3)!OLlo;5()ht{fU;rS4<0k8swE+qjX*FOC+VtO{~@62 zzaBr{FTLL<4Wotbas?WTN^L;F)EAmv<`JF1{WgTan6w%maG9}=Sy63!W!#y#ZZOpJ z&9hxuITAnmT^Hk~72>-wjh`}?q8&_vnW5rDW+Bc^0W#FuRXG{Br3+|#FHuty;@KLD z)A>rv$OT$7^G2R_2L%N_k}jS~4EC)XrKN2&3?zx5nL7`y%0p<@%qsT+T;xVqnwy_f zQFa<)KjfdM)BWsfOrADZ7_SjXdWN>Z&sN#%%ahSv!GxxU>zK)<9@5KW^F#Abg?h+P~B9&9G0Nl+@| zaN-Ji1=53=(ANY&?JK%I2|m70FsJ3}Oa(Obhim<-U{qNi$dRy;wq^cGb`IDb5f$%x zB9%nmG&|54-yPcq!QT&D+g$R#5!Yxw`!5)czlj~027%LV*tI19m!S)KII?1A>1Rf4 z)ibZHClKuR;a5ul2b&KR=i=6PkC^Y$OGU-U#`XXV^YZJ>tS2je;~_-J_>Uh4k>QCD z#msq=-OHkH49d4M#Rkh6#xWpTdA`8COr`Ap6Rx`(W_o5r0qTPlnBZOjD4pa{qK{rZ z5?#GJx-tl$xeXZ6F%Qj~et<&>h>2wbM6YdObG|Q$?B1R`{*6SGT6-Tp2dy_>PUd z1~%6G>nkr8dUYQPs~7Z&!qMp#)f zUz+0OR;=?f36Uc8AKU-NQBNBBW{{V&N+6O&JC4`0uQ$M)C>z-@Q>M5+a$h9rCw14t z;9K?qq9h4dq(vV~O(?>ZWLtfE`K;)+R^3{v>1YMku;?}+<5D`FH)`gLK6#l@M=CMi zus=9yabU!d!#paqt^Ap*V+qRBG>8mtAFr#9ULFh1kn!dCmDA-$bz0Tx3Z*2 zDPW(JNgfxzx4HPuV972^W-DA{K#P#)F#;M^ABq*;ND)KS@HK) ze(|w_C-q=&@+lSNKsL5LhwwmuS6w~3;75+xc$D|s_uK9R^CQk`b5$9vf_%(_jl+C_ zR`a_y85ej|{q6PKRPbwF0ow>L5+i-EE?xGdliSQ!-H={fNKwt2vm;KY4DH(cO3s0)|@<**l-cm(LI1@H%Dn;33?MZ_R%^lPaTKoX$;%a^Bc zW1@~AC&x_c4%UpCh)mi`v$nC>M1I~S=Q4%%*0XaP;&todmB4ZUa=bbLrq;rWX1hZ? z3o(qJ*)adgrTN*M+}!?4wZD!@0&Yai`&TkDEf%t?IT)?g8!Wvyp@Xya)P&V0Z>S$= zOYi(m4YM$>?8A^OK-$MkZKO~WuvN>g2C{AP(xm$xU0n-^Edx7rEvYL5GK2Xk=7Vx* z;BAbqp!A?$H~@J+3n%9~VD?i%*bpnm+wV8F&Sc`hIe_?QWUV_oJMBRf)fdcKyo=np z8cf)!f)RuC`%jQ{0f53rd>t{q5=1*v(ZLEUCYC0%%gatMN&Y^pbU0{`eBwr}hKNBI z#Jw;JjP;zd87ZO`EL(O}m62(_9+dw3{Kj`p{Xv?$Y-1>QdCFXT=6Y6YrOLrCw}np^ zaC$+r?s6s-Otl!3I+Eqyt%14#|D0uGqtqrf)j75r<(B=ZAlLmC)iB8xS9ro^5(nfHDbHb&F}zU{Zn_{ceh(Ha56~%Y26gILJKc#wjubO?tDm ztVR{Ie7#z)+(ss%A_fn5BsEY)wue~ggw(G?9-f}_;Rie6snNm8%58S2iPL7?!nLcE zAQ5v1Fir!i!lP->-PHqWUbA+$M2W8D$^|YT2_{L>TzQmz3xL7J2~Ou9PGUWayc2^87~9MkY2O2RdAGD`pQ> z2Lg3DaGk_5PIh3VA0L;0bWC>+b=svUxC9T<~scf z8KYcMTs((Z7!b&c-#XeVlf|df*BP=!K~b@l=j^WxeH331jqU3E(#z{&ZhWxc{Hpe` zh0%}7&GN;Z{IIzIMrPbpT{lJ$jTt}S6&KHW{rV(CQ{VCy$N;xr$T8c`hH;~R&qcTa zEvX0E+mqIO%mDjok|w(#)(Z(>Mcz>)%k&gcQ^>Uos4|MW-UY=NY4Q3)`C+%_Ql$x; z*JId9gfLTKE|ww06C+s!J1tv}x7+)R`LR7VezLM)Bd z7{Oo!jg6I%kPxxQKcAkde^t>t*Jeg8JpAlw?HW42!PsQ8X2oAU0x@&Xk5Xt1ouCkz z00hMVWF8h=myW&rfw;1azR3A_DqEqmgU*kf-BpK-3=NB6zElmQdZcMK=`3iT$-V^{@#&0QQ3JQwztXxwkD3Ti< z(*?K&AD`W9vEj1Ssxf089nAE?df^(3!NQOLnx7B0VRLKC9!LkEOj8LvY;$b8R(Pf& z-EJOC)_cT^Ldb6lJx+FRZX7bi#f*qHQ><)YrhpI~K8b?j@zY?F-~XUM`~Uu1#)|p( z-^fiPf3&v_{r>x(mopcS{Qi=C_xE4_zD;r=_3y9$dHMhHCjY+t|NSNu|GfM^T*<$0 z^3Tiv!uAq1zT!V?vhbabLSu3c zmN^=EqeMnkL;EQ~7Eb2{ywrBZO3*GPjLO}gym9DH3gf4|yA(g!?-ieV;F`4i!)wW( zLWYoP!%Sh!@+c_!Iyt?4?x4KOf4K@TMe&6Zc}qRs^RZc01W$vmq?Rd(&M7A!m@Gm< zUb%GAtaU@R?}G~G0+IiEpRq3QPZy@yRZaiP6hEmp7LPm~iD_A8fM1bVE^RtQaXsXt zKgHwskG~s7{fdvUdyIVih(EnTpsX@Y3cYwQF?`4LID z?mMj8@HOuL`8r*RjG?QzCg~4i&3U^{hkh?QMt5kItjPm=?=K3)ySKH4az^qttw_>h z9R2t4S`LBoC00R=7wao|XnNbO9onD%nsD)}buZ3rWLj@~&Rk7;dzd{*CAN}>L5a9m zS5ab6Vns09*#5Pk<%@bO#fHyX^(jti%t)OIxg1S5c9;U$r%FK4i&(aqkH%&W2K>-w z6z(u^2-M5FV7lbAwIJ=TGsn=B?%{2DWkxg%6^?T7OT;?D_xCM%Y?6qz9fH2NN~Qg8 z4qyXLiupXiPk*m0O4Vep$Tn2p?pg>dI7X#J@%v*~e7E>YoK*u+E?OllggJc~=?am2 zH?2dPU4g|QwPn&_Rp}>-j%%$UZD7Ux$#@sWq(APO)zvm;EEw*cim%wG8mqu+N`+tP zoAe48=dX7OSob@#zt5N#kya-vl^3uO-!ZcN*hoImexIogf9Utg{=$g%_ub-O`{;p= zNV|3|gp|5m5Ywcl#x*}Z{mGQxxO;Y6D7&;hmD==vp0uyeqajq+y4O3oE|&qjJW64cYFV{m)f>d_FxpL5Ob=wpw;VL zNLSrropsQP&CL3`xCYbmk^d}mej)P`WsLy0SMlL*`vc2e!72l0*&Ffcu^Ys$%`OgF zAweiitD!n=1_WO@^aZ z>bx9Zun>~e)E7oF()-v07IjW48KRQpE4?gAuudB}IfEIWZzd+5n*a6dInzq4>JGWA zL}#9n5p8I+q+?MbFS~xlB;h1sZs${N07`c~1#_vos7UExcEF>j%f(9%y}X>=yO0_} zs;^JIoNqUN;&=29;tzryF{w`kp;5j@YY^R2?4DW>qvi6JII9py^g2FCM=) zJT#5-8`L9onKI(qu7&W9M5b-Ahoc;o!&+;UM@z-&_k62ubOo(~u-P1u4;5CqOKz8p`)~yg+KZHbrmvhy3`# zN38w+aMbYJu4xP1~El=O7 zA9Y8Gz5BHpu+pRdbfuF6sO))mSo-HndNi&J61C`aR(qAPUiS#Q~s zP%Fdt935`-IXmX}1rV4bAI7bDr)`_X{rY9r*=~DKK^MmT(vm*NQ;@XjhZD-o>&-Fy zp^wS0V;*>fy%rhO$YXx;bD#RJW8vcS?bQfjjunenZzaYR-e*sqd4T4#z(ce6p;rV z9K^-RW^+ptWovu;z!Rl=Kxn1+(B3t#t;3V&e#OA?Z>6a)9^pA(`-AD72{AG>K3syV ztk;iRXGqa)|K;u&>*pzRTil&N8)j7D^A2Uj^Ob|HHU6rB9~ok_+$!`0t(X*hX(ajS zjn1@HZ=mwSxaOGEI_8G0>qs`Tyd%oR2jxja5Jw>QbMmB|-)2FIC$e8l>x2YB; zW)q%GFSd*g_^&tv1M*gS^KsU7!|c&qU1nN@f!)e%4;vc{c^d6f!&i9Le}7FmL)Ln6 z_h32XntlG7{S{l*J=E7|^2~MvD&YMAa#lN9zP(J6HtgY7jirkkcQC~+#i!G46SqtB z6e6goZrSpkedD*^{X}8(+Ua4OZi>+e$3`Dnl(K`Hk|T42j`U(7Zo@{t(cOuic9dL~ z5ICo2ZQJtu9-5~pjP~<5C>2|B#n~#$#tQXEUC;Jxsv%38;nFxMtxm=E zo<6ef>+gO)BjYf*{QfV-3M(TTc}roNIjBgrl_bliF3Z1iiSM#b<)?7hiD8qBV^kM* z{3iE8KZ;1FzEw)XI^4vSaN>tY46&~HDaby|Ch_?%#$Gx0m9;5j>EEXwRMD#PBa5{E zgX9fGK0eoYhSq+=iJqUvwgWh``MJS<^PM%a5KX`dT#2@A8%B{_yG1Go@4&k3&%kYR z*qOE<--KL;`M5ug=Pz-WyUmIhw%|VdN<4_G{iuhWNvsf#xG`1R(1c4L=JSyZBBdXR zI~}`5-%Fb3(;=Q=WHjp!9C}LfJxs!VwA1mW^#A$BaKCrPutbMcT=aK-wET<(gUY!l zRBy)@nNCoAV4|*~pfJ`RGQ%^6vypehx!dpg`b* zvqUHR=6XY2{uO^G=SXr=S=l^|o^bOAcN?3MTGR;rK8_(y2fyC%C_u>4{-A;|CnVd( zdMz}n>E}-SjLUy)LYB^!YGi;NnIV>Xeq}r%g2gd=osjQjHy~*un7u~Nr>e!^@Wi*P z(tdx!LzT4X5f+gqeDBhLqy)2nc$RWeKSPkagAwLx&FXCW#nkZ*Zl~P0L(7%y`Q*h$ z-4ZkU(<^nwHO+NaN4`g*wkm%1y1^MuO%fgrXnfRp~ys^Y+2eL0Dad<5cLs4zbbx$A2u`DUpAPoCdqmXypomE^v1p~U{y_Iw!@ zi*q(f^uD|g`CvRao&d=Cw{{6$a#azllJc}Sfy-I#_I?zB8C!OKHgeGA+JfME5 zS@aBZ?-|EJ>ojj#8S7!FsHi}Ph!Pck?^6BRjoM(Lp4mDc8f~{gy@S;^^!rU5_8a?d z{JuMz1;wp(g*MXFldIo8XVrOos3Z-IW-^AM_QOX;1O=G;cb;brDuvUx)trj&HLDd% zkBn3fV>o?9i<+6PPZlS*Fwa_7i!zEoKKndQpGU{c2|PpwIMD!dYs}#p{L*IUEy}F& zQjGDzLZ@e9?3sBB>7`k3)pe=g!Dn*AUEfXJw_>xX`Q3x{hL<1bVtd4Kx^{YQ6=FI5 z_P5ODO_q}=2|GKVKF-Gvv|U?w+4b-FK;C`N>;Fjp#rz&qplTMj{aT;ECb7Q0(#9fh ztftn`QO7hdXUmrN(fs%CpFWBR=N<9q_g$P78_-`KSYp&6%@%1XCpizfQ>0v|DS6*@ zu$ekVTKs73m}x+&$p6K;xtyUzMxPd8@!jXRwqAKaK<)RUJs_gOVhxjo27RH-rMdkp zmq}dkLf)MG*a0D=sPb1|vXr+~Ua7#&fcElzBaD2=6)knMn1S)jN!{Ou9<?$?8l(`IJ*rJU(4N?aM{+IIv98Q)v^8@;v&}mBuZ^mvBU{@ERobNI8S+ zoKQzwpQ{_x0+y?fQIsF1**NqxJ_bp;I;SWogp-lfP8TPvsudL4P!{wz^6l$nk$-YK zVF<%j=NqARKb{ED)v`>N6h(P2{+NY~lKNj)G3QZ@ zWL|#GhbWxB#6Wg;(^nJ{v~5VxK1lg)9r_~omBV`O)8PjHWvvPL9xHqgN$zj(BI#jB zO!`f&h$}8|?OZi*?Y~pJ^j0aDKGe1WP;Ncs;(ve@lCqZW9cV(X5|}st$?+y2HBO9+ zF>Bq?(>^Q_blwyb@dddz%xd|cLLOGK$BcV`{3m=29*Nx!apROFUHG zkKV+SCd2Y73u_Y+|MPxuO)|U>pZ}+j@&6YlU^)J&TRdgh`F;#}WE5qm1Mkq)4K8e6 zH1cT!T)M-q92l6#-?auetdZ6s<0tIgVc^YHMkw&dgZnfo=v={T6Rf zG|*7o;Cb=l#r(<&?)&$cnc3Ovil7l=|LBpnpI;T=+UwO0pL+K&F1^L+9o1!#WDt-7 z@}+u&J2ZKb5-QHvEevFSITVqmn$G?EDKI2AkTEIAm_1gknK=t+c!;394GEYHHajDYu13-L-y9&2}Z>Kwmlqc;NO>0FOv}z>^8YZ3lOE zxNxmgM-OLXvAV!K1jUVHDA$*>tOC+p*TyCTP>XUBhcpV6IQ0M$(+~76K{2t)`E_VN z7lTeT^l)6xCTHdeF&rS{*iJBc|3#Q;Z=}{U(AVz1QY7kdml=#95 z+8z;U$i%HCC?x`n$dWb)S~=&>9H08gFD1pLXz%0{#S&Qm5UDkb!GKw~9Lu2&Mg$Ycvc!y--?ox|jg)RB zSA5iq^_U3@%gb+d&*#!JGwXSI35!#IRs=C17CQhaE*DHpJd91x+S>Aj{{srSd=}W( z%~Pv)Id(yQA}%388vxHv75IyzE=`QXWzI=s#7?hy0OCfm)IhHgR^;kO3YquF4|;i( z^;S@P7f|)^@^Wx>jbMBgkvqp$rEbNHbpwj}hu6dldd4Z@%jL2#4(5$=cQ~VXquS9& z8U_Yg0N8~m*LdBrzP_ICjI5rCht3As6+i}1&;*^V=%%6#w?7FbFfJe(KuDju1kcEV zrY{cO?}{SqwJrk*-ZQe$%^C#tbSB3if59cqfL3*_y<8oX!;xl+Cm?F{CZqvsEq?a8 zQ4e?NsQ^Xw?rjh$AOI-ba8q;zwOwUJd+*0MP1sO4EhFOq2pR|q3unLoE0swh{C(My9f%JI#`#(6<60K`C2aSNArXzA$*Uha6TRG3J zqpdv$*aP~@m-_)S1ejD05TMEd1pzxzfCzD#*jIrdK5-ufWD){^DR{#{|3eJ`sVarX zz9$zH+y^*D_w;lcoLviZ188c&N5Wyn03xkipUs5n)Y;dZ5fP15otLJ3GpGHPuBjDmGZwncX% zTDo?a7RA0Rs_^()jY?ZscsO#t;gOx>Amtzj5}^M&CMJ2nK>{$9O<#|1 z7xeBPi~%($v6<(6ZLO5@?i#=f0CBB6eB?V0mjUH|8oQ^rpaDPt7&JWb5Z$fWnHd2X z@|njXEGU=-c?kf5dm5{oMGo*SF3^;O-R2H$d&jYA1Gsu#nqEM>=Tue>mv%W_|EQv> zN&uyW?A%;!82GVzR3;Q=24`ku$ir#lUA=W~O1IPQoE=Z7_B0T7Hb4Uma1Yslt%pYd zKj8~A1KnZEIRKub6#phd04x#$0ZP$O0Jtld&_Qqsq}^RXcrJ;1UGwW#0dy|_eH}PC zfMIA*O{af|Z_Ne6+qSap0A%#^Pj!2enTx64FZjxhZKC&q3{ifu4UPmddLcJg1<+pp z!z*-u94!WD2m-Q*i1MvKMsaR#Z!f??on*LlRe~uT9tprS=uOy_4DAnX5}%wp{^Ivi zeGdlPNqbK~9~dHc;86fn$W3MC$FE~T;^QVwSgd>A=ic`Z*fD*DVOhE_b zxJz0?)PZ;4VT5!>j1CQD!F53oC9AMd6JQo58!PXbYno$5@9J(*u_Dtj5@Ff}VG15G z%j{Fit1U}w$`kPU=1dMwPDpDVOf`6m3;wmZ1sxb?v*7`{Y5lMhK*uK&8FR%H&Nkd# z4w%rG@0KSxR$0ykYt>M%9(|kvZq=t|ET%K6`6xyziCe7wW&}4ZcNQp&0vZ5mP=Op9 zuqxd_76sN-*>L`bsQcVIFnU;cxD6YnHjy0n*n9tez~giQ4Nw*b091kYy}hmN=e=sY z=r7=SXd4+-&2Q1D&QKrEi-;#%f&mnap3q{3z%-W&%8UY5SLNO%FaJ4O8$5 zX(B@t9-g(<@n3+IM^37@xBk-7QV(wdG8r6LoG^SL6}=C$*x=wmoBdXtr5D(~>wWK) zwp$G{jy!vM_?gT`@J&skdjCRc^%^&)$whIP#_8o_IDNt#M3(HVr0<_zafNB<_Yqr_ zojtuyL=XTsFH>dgOHt%zfuJ&&uXYxHSo1ZwG;f-$jquP=04gb`+t~vXcIF)U6?E9- z8BRc)g5VVj3V31gkrIMc0x67E%iipP$*1EhIG|{0gCRtGkGlE-s8Y4w;5u}}B)z!u353`~?kge4?3X)^jtEU4>elNKv^yMJ* z7+hS;1xXmDJ}vZHkd(8<`}tfoxqttm-4+3+l_BvF+%t5d!%f)%8z5#GF}Hr6}upuuWb>resbL~G^AtT@DV0wN+YpFcU{{VDVzjLU>G!^y?f3a1y|o0TdG z+yn#hDlZ@i*>V@<&2?GmK7x6KodLUD5U6n=%BuzhoN5}P04h{yIqK*py3d{iw zf8_Q-Pe~hY0^&#-uc4ZOSvmd0GRuJ|J=GKxBbFL%3R)ta2l=_b6V$hW5DEKZBFo><+63NS5 zECV* z!gJ~rcY$e<0|W^$&dBKo_HFU)LWr8+Ys8^2Gl#1g)B7Z{jQTF*MX@oLT+@4GYYWqE zcM&KYBbNv0F(DyaPwNx0E@gROI2#{nTs!_+!78AHDqbb1^>A`wQYkzmBv@YC-LE8* z7C6i7S&R612n5zHM|9o2wW&H za!B_^#n!Lg zeZ)t@BL_G`PP4Ky<=dc#wxGlVcjz+vAnmIJ01SY#&r*FA4m2{@gDJcz>iD;TNkz-c z*blx}rD3~)u}=hnOE`a_uTR6_1m%%lpn6-yS+}2URX7#^b^%)max=^wWl_RsE#o;% z%O3+{N_H5|2n0Pys00oTT*3l~VbC)%>FVi4<7Y8BurOfo`O@5pI+-nFM`Xx8N)?YG z(e#CxT~@R~fU>GAU!9HBH#QD6qLBiw!e+!kbMEK&+pqV&gQQE#%61Mgrpdld@S z3fcPvrmTypgX_iIW}6$^~kDolB}?u-6vugJD~ z^r^d#?KG%*eUiNqJ^K&T8SKhwAuj=+cn%vf3KQ9UuF_EqLf#|SRc1-Ef<&!6m1LWx?{Uc}pNUBcwSN7O4o*ZF?9pQOKBi2%cq+h9Yz&Ub9TY!b4a- zzqlC6(0f0!Tsd-K0GS)(xB%vLvAY#NQ;Zql1Q_Oew&}orknp z19Ya`C3gX3gk)hG^CRy$oM5;UR4D+^q~Pw90abyqF;n6`dF~NeHz`^%RlzcA4iARJ zeU1Rj2pB6t7{np`=t|*v4vkafRptX;>&~~}Z4tL$`FP^F6d(jOhq^MF)7amyX1oSj zjWnGhn5m!%ON+$9A|jcf5CT~QhZCVv8z>$EAl)TwVGmk#NPLJ~^z@gh)j7a}^>O4^ ze**k7g3f{P8zRqPP(w$cU2y$K-h@Wmfv_q7{mS9-3W|zCV9E#f-*Ur%zW|aanE%1-VacJ1C zfnZ%mW8=L5DKlg-E5yg-rtpn@}3EXnS{>0>h|&wQUy`lh7eN9_n!B zcYOd^ddR`@e&POu{M7vGY&XcJYyxSnQDdo-l@m!ci&tkpPsRX`~6gIvS zHn(q?6Muh5UJ=x+^uH=U)-!Yra;8Au(+P?g^S~l>iQdRZb^)l?iV6|=LDPT?g`$Kt zBDKUXncI3>2Hv!9M*ueu+-fA_NEH5y_Dt*SdKUO0ctVC%o}3o;hhT}5pMsGi1Ti>u z|NNPZq*xHm5{W*F%54kq&+M9-#IYyIGH@wsa4PKp!#7;*!!Le>V)ZD+n`RhCm)U(p zuDKo%N$}@ioYVgW!SoLdO6K7@+V@cX#AhICe4Y4wrv9B>T#peO=eSzoNP@Fjkcvqy zruqYpbo@G9wDY=wsp1;(3Ai`dSl8az(4Al;l26TfPwd?qU5iV%JU_gOPF;x>QIN9T zm$*Vc7tnGdYccxq1M1^1B3SBq&W(wAz`#k3(wNj^}KcdT}#33RRy|e+}r7}HEV-0?Gf&h zovOtskvSPDecLAG*G=PXyF(_#_k^e^j`;PKuUpsc9-?m7(zEYka~9>PUM7^LiFFrx z6LU=+{RR!SLsF^-4d3>0a7!*=hFmY73Vbzb&~V!*@)AeWX~~X2h5&vM>C>e)l8O5! z?W@ru`Z2@@?@fm8qV9J2j!ou=jZgQoe3=i^I=+;pjJC7O-8at7A2q{Co+0eH%k2p& zi<7_p{eTE`yoBR3OC~XaVhpXDTwcG5wZwU5xcWh%# zF{>vBrykUHc1_l~z7bV?RTpStI?cmusTNV4kR<1iKkpVX%>sOG^gi0`Nmkf>MRabZ zNBbph;4%5libRX55QD(F2d&Q-a7ar|hSdHF^&)IRHZMYr0cAKrM%RF3O*EjBT zZS_4?JZJJwJb}zLxT7p(%dx$+7$0$lzsv%gz(f;!PdWaY#Zf&6gIf)}P8eO&oF=_e z3z^fo)y;b%Eq)SLVSA5W3`qPgmBLf?r2Ffty;ZsT&2Om@A$94>Q}5eaPhZmADspU5 z@<_(pFlr7yvp$na$%(nHYidbH6-$%G)2TlAtaNtAb>z{2yFH$Tsc~uUT+(R5j?pCX zK}ttUaqAXTcc*kyCQX6`)_E1a39v?ZB#(;DurIA$4UxG4Z>S=+AY-$;Km0D&+Q@YJ zCbPS@8tcqa7q2~!(FB!N@{_~p{ac2bqXT`$@9-WAV%-~-m|NU@lrJxaUlNaqzV-H! zujiZr_nfz-%dT4VrHa-Q297UwjP9)Bf*KF*h$a2}+A6gm6RqJhT1i!G5Vs&xv}})> zN@iS%ZS&SXvmjHov}egUH_6HE!ZWgWqpr@Z!E7@B8m!W4ra~7R`|kBIbE7kyCAmjb z+XOiK+NZ`b&#xnarGk@tErI&tQi8@Y0eN|~8J3&N9D3i-Imr2? zxonwx#N<5Qs$K7OlyH+p?Pn7CR`Jw;|ANfOebd2b>DA3FR2NAr(F?P4k4G-+f8$|0 zN&E}F|H-b!BiBZdff{nfTlz9b(;RoDgA;Kc$#!&H z@1iCoqH!IUmnu4U7iW&I>TR@N7!m7k*ELClU+Yw#u|zgh-jZ|q=fW?!eQSkO z?te$&I{4@#ZR?4OdsZNQ{HE?^sWXl^eb?tbp3KoIdOIfa_0Gb_9c8)kZ)ktRi*^RZ zHCFFEk_j#BTOtZwRI6qBQ_dH|(BIAmOj!@iwx&OCKA~)`b{6?KG1`C-g3<-{UCdZS z8}gARe=NK!q$;k#%iY`UA+#Pv4o=%t8)5o$H?HR1!*8kXzEZF28ph4T>jK@S{P{Q<)nkjr=RB??yJhb-~w=0@@W=E;&@awvbA8vSU z-UM|>mUMnSV4SO%qpHI>D(fCSZmWJ zo!>0kFbC+>osWF-t`+5Ek zyo&pae9?YSmF;Hd^piU?#ALtOqb^OCwU7B+r*`8Ly%;c2*ovBdYR+hTniHdII8N)P zGi`xwFYZh<#vV~sk6L&6+})|}H(0|8#&PmhUApS3@WMxd=%(8kH9EC= zi7R{2uf`O5Nb-gk2?iN9Y@-j*>rqoz4Nr*mL7~j_lQ+E!k6BZQn_KePfY)_fdQl-u zN*5*{pw|D6&|i8bdi#d+`^NER6f0F_c_H(uKt6jr3ouYuN^;nqc_b%tILpZ$yD#y3 zMHw%Mk3Hrjq zCyE@cjmMrij<|0y4YhhDkp{TI$Fq`xA!J92c8iUtb4tf-4aj zf1WTYQgbOl3wNz%{zR=rp>gjyGEVJmOOA46ym}$pd_wC#l3U zVm#Zgjf4!x%;zb~BTne`IjK z^n5U7#VvBWp6TR+_tP(8FXv;<22hqYnfV1v&WJH#s_NEtOed3-IdI4V-l2pC44 zs}*W{5UbXOrQytKFW}tdpuQ;8w!i@ExQlSDCC$Ce+IhP6;xJdQ_hcaJ!5|5sX9Q*G)~!vkINhJ9POT z`W=PoD@iW6+I9KX8op(Wlh1UQy&}2bBPl&Ph`2@7DKDYXwTpMuZ}yJo`-I4E&2>lmGYA+gsK#g z5(uG72}Lv^1f-b+0wE#X!@SS?JomZxzx(fba?aV=XRrPJthM)ATTJ;?#*cC34aMS& zA1}n=w}X6*#fwVinQNJj$mMK>-W_AgHK0d{ed%L6D_`@Zh96iiRa3RJGqZ-#Q-q}CV%QM+v|O)jtUi1 z4vg6|2mcwRwX)dg9!DxO{#2Y1Qpk*iUT5`OoOm9(oOcPBIbk-Yl?k1)DX1&+h+sg+ zA=`#1>S;$u5-=GbD7|3jRWk(a8awe0@vg-wx(#s4SG=e%0hImjA|60Vk%bMXlnhbj z>eVrvsTrapv$1RPd1x*5Z0%La5uE9eAe~n*rQ@eGCSs9sF9s5_7>7wt4E>t-JGrUK+^4gAoC^g1VG+H14osh8Tma0JZ z|43CT(isHEDr#1=;GL?`5uCEj$~753xezkPooE#Wj3bsX;swwedSftIB`8ZsO~%N1 zvA4IRv^guve>Lk${R2R|!9}$|Jm<-UhPr0IIiHA7U*Gp(Gg*^XQNKNe2zrbie865F zu=O8?jB76zi%#i8B`f4If}%u1h9ZuZPoCb&gCXrJLCO`Y)m*ZGzr^D(fX8%;g64FG z(c&(bm6}Oi9S`v3oQdaJ0Kn`xY*GyaX)&e+1KByQmugVpOpT^xASA z41ge<)x}TRw!?HI<@k2_!5!nFrzu@7mjJ@g12=CF-XB7@BVXU?ayjTZ!MX*2G)$-_ z?~1kFtpQJPeA!+|aJYqlN%10K+nWCp*O9$QS_9*h&{`jeiHiE@herESR1QQVF8Tq> z&u?qMtN$+mL(2|;2Qg!jG_~;;KoF@+@^lr;q=KAhRBS#9zfwF z>Vd^)qB?@@qTD`GcY?yv5=|`t5)Kzn^E0Lu3H@0+hm`!Q(ADnLO5nho*A7NOH{T>vDOP~Z z^Bwq$&MQ=D!4fbiJFVy|?UG!L&YP^XOYX?Hm?xD05CK66AdY`Lwo|%IPy?d3Ss@Da z87a@~VCn7wu)zojpS=yw2)wcnS+Q;?eSvP@tPqYy%&Eh~>vRM^2G>hZ4&1dMB5tVu zKR055A8V|~*8~}n7Ca;+cnZYd6#qZcPij73gG zMV&_E88sQG*?RxSoRWyA0Ea@0(GORlV@wxg;>btXQtZMx_ICz_(6@I?o@01&>hSYx z#JH5zzx%>jeN>sX*HQq>0YQ(2ZH}M8Nt+BMuWNk`s5obTRd(WP0nkpM)Bq6m)2ju) z=x`0C_Ju~<{xRW^O1Yfq3O*it+WvQ)T9qGY?X1XpaUWzh26?K6XVIT7dcx%)I`IjJS;1?+rAB;l1zes`1Qa zfsjvX)gR4{Z|%TJ0|}o{ta~?)HHw}%ny-+nrr<(cu^@8KZ%16j?NPo)^?ua1r?prF7?vTF zEF|IyeQbkj*wsm;#`Hl!suJaLZ0sI2qY-NF)#u=se@{UvCk211GSJV5L?jY2|KqOu zV@0V7p5wj0;A`N96myu!?2z7pDz|S_w;U|())3k?D)-5O!#~+rFMSxT#h!`^(l;%# z!}@N=j_;foRynl}zG=bQfcHv8eQpgL9z+cjFfawi^8ndACTiG%mr9wBMJ>iGZ!S0_ z4aqS&9w6PzcK`OOO0~)93a%(CieyRnlj^1r?$kYTm4b&0Z8H5v(VxWDK%eZL{eH%| z>_y(Uu6AMT@RieIsZ1v^?8aS6Ldpnx$u{r9dl_iuZRUMXnCsUjPmzi$*KjO0IcrccZ8uBTT*6aG{N@4QgcJZX#9&_Z) zUUERREo7)xocZ%s%Uv$?6+-W%Y>M`h8@FE`+@}F1YRxM>M-6{1&dOTjg-L;7R}12M z!cNYow5Ga5sE9(gGqsY(S)(dbuh+y#4PVbS)PFsPT+$^_&qkCh^{{=Hk60VbW73#U zx3H1#uCQY7%R;tanZOMVTliK7L1VqR+Ez8$eRg3l$Zrtj{?87&MQ#ndhp7w{!T++2 zXjjBvBRMymPO>|XaHns*@A;*`&eD=$-3)~N5BizucNC#}q9`2r-L# zG34NjtJWR)oV)DH>LXx=RBgo8Ts{+!k7yXZ?7`c93;xQ-@gAKjS>Y+9ZGooCM|DY- zPS4n`4fNq%o?I2`iYGlA_2-eUGY}4`D%TrH9FT_>=E*w{Lj~N3*2?%C2fvX)@BGz6 zww`+Bs$T-?mugb0RdYPZ;W?R4lUEVTjPRj~9@|At=YPWawey5-_XK&Sx#(bpJet=d zDpkk>c$UlOuWZ*r#u?Ftn9u?CBmBzqTc~2^&lNqFihXO05l$TO zOn)jK7UpC}(tI`laCvo4$eHX4%e<|#cR%$E=dxC-F;xCpaS+Z<2Aal|_h%Po z+wpQ5b)0?UncXQu9^AbmJ760fa@PJ=U1SbJf5w}fl>QFOvEq5m@CF!>#3g259F{ZN zuzAQjNwXghSB_Z6iCg9@Lwkes$&Y@LYSaoqt=F#A?j-NF3~EU(=ntOH#*9s%%ykGL z92a%u%)D@v;G?UfG=%YWMC%i8<%kB$L`eOE!QVJCE2<`PJuTCFttESGac9q&zL1Y5 zmTD*L15-#kL55eHXDc)hEQKxxJHN?j!h_@jo5*#cpt5So7@EAt4wNSOvLOu>GaN;FV3xA39 zh)0L!Z!AmhqkE2xwS_DVOr7;Qo9)y`o%%S`^@r37>Pr6n8mb`L3qJ#6NP~KQi9Uj6 zg+MdOh$4x3_aJwXT5G_uC!uxfXN9q`q$PE~W5hb?u`28}TBuPfLo9ncPxPLdIL@mR z9e!UH5o#N!-pups4Gx8Oc3{Ik(f(9j8jbCTyXvxCm6;c1m>qSDV)1RRXvD!=XkFea zN1Are94}A+5^%wm1>ZitFRvW?`G9oli9sLD)Cx9+W?YVFjZsQj_Qn4Mtfdv2IP`Eb z541UbA=fr#Lr3osg~(9wsu)Q1w*jJ@Jta&i2`x4dLG&tX0ySL`1U9~4y@|moi!ok! z1Iz60^W`fXj! zKOu;^*}swkzpOLob}<@*NnZ6n5)lrRmyD|%_3!K7ml!DXVvLXo0fT99d2hv64k>KH zuzb0h_H2DgGw!iRfxgxRk+w@4Y2})U!Wn+uwA#_sob@Q9a{<;QARDmF`|K-VRlFG9 z0n{O*GL)lvwR?F#L4S?2gr!fKZWyOOKHCyp5#E9&QXG#CIVka)OuPdN#!Ae9GRU`5 znIs1Dj}`h~i}zlgKK6#H08YS!#YsFX&g=VvbXj5-PEwreuV0wk$@hy&_l@k%6H-oM zF0U7ilR0JWS9@y1v930HTc6@iy^bt))b51$u54X~(rpq3YAu%UVH_(f3JqVNEg{p+ z)mPaxmys{oj6I9GU-noNtv+5rgh7RMjZr$RboYsH!)l2)TPuAct1)BNgp`f<_; z(R<0d2s&7S?|eY(^u})!B=;Pep0%W#ZgDlD4J@MW+1kN{lYTDjCoZO>qm){ypr5Wqo_Mv9Ao`!SZ?q797w%QrP z>)c*93HH-^ix;%kwT&a3ZS~vT*SMxCJl)JCPklh_&RQ$b+KYiyF#lsSk!i^<6gYi$Cd9TbEk3*&7io)opA(zU7BGT zWw=Tq=0s;U1)>HWUuVvfu+g2Yog1>xec)JpucCj=)L4Q1lQVA6tY7zj<3uu;`9g~e z1XGFrkZ_m%Y$~#}+j-RscSDG!^BAFms z2UkbUt;ZOv(_%>@wKcPu`0`4ip84nv|8ohrmk9b7!p_|>4a=dxAg?_S1-#GTq<}N4 zc@?_MmkX3blbtE-C<+9 z^y3u|rXd`=y1J5cxoNd8hsk+-b{LgO2-A!8+v0+rsoJZ)3I9!!T&(F3 zDaA{_rskK9-oARGD0)+)8|BjVN0T;B3`qnDx0v0f#k^utoiqpg7Zv211UwbL1SZ0vO99-Pi{J!c8MA6W2DXT* z{kZ@9w4cQA<25H{baqB$LV3OI|-~f}ijk zq+s};Ilv!jLB{3awt`i@b#M;*V`~3w)OlS!IVd z7xg|Cz;98tq-~`nlBbiETLgMawPchYl4;|T|0Qnzxe; zUBd^E*n88XW32tgFwl(G$~C@gM?ks1_FZP&ekd~-g61!zjV~rV-H8HnnWG___dyK^)-I-2^HKSw?5*;A6J>LS4S4Fbk(G;jq!SJ?u`Et)l9t-EE5 zt4@X0@=lcRDw9C6BlTwJ{*uVk%$s4}%IlqZwX7Xkw8{uRvrA>lSUg=wc?cvx-u|=@ zL)`$e>0#?>kJ_n8h=PDft47eb8I}!8z`MkI-LdVX$kq>v?Z^|(2(75@D6q%w!#PJy z`wC6PC*kfgv^^;UXT^AxV$F9DAK3UhZvL}qve0Gr_qWW(7pQ=IO`ec*1%`cb)#ECU z6FoUmR9!sua}1v{oj_a9oS6Lk2ox`!1os+vvc6O6<30X(B~eMx@{zD_ zwHvdG>m?8y#Mh?Fid-ZrScc`=XvI3elCw%0k;QJl79LT6SSj2b!Iz>xJ?ylHyO!DZ zwIk=9Kcp5k%Up9)z66GSB2|Ld{UWdOWLotjS$2PjO~3o}6%mFmWki)BXbn~-(Q63D z=>m<0>Yv0avSmkAUHV|DsT zpOEvWNSw?CHu5fIXRCmodM0-1>LyUGJAs^6tmg%p0b>C`x%<=;(cJmxT9N4@a|i>H7Lrg|B>;??rV<^h#@XY?vc7!#tYd?08G%^&`Xnwtf?z8yi)zbohyQ;qJ+h1-j)NU1u+=eSfAM z9}iwt7R0{Vq%o6FAEct%L!h?jqUZIa6SNC_@jwHHXb9aT+Kira{%!@Y$x-=&=nrl5 zRsVB7^G=$Z`X?x1-#IGg?JN0n&6DKxw!^5e&2G6-kAU+#_j54p@t(Mq@aACm;_ndy zItH5f%qWWsao|-QK`cHPs?ra_ksW)sWWlQl$tq)090hKw?_|f@Vb*62=8a8&w6S;% zEZz^jru=zh{EDC#z&z^zoN33$Jv8c+G6j4+U$XuxenjqI887Xiywqp6gW^(G{!K)L p{hL+#@8$n>;lKax|8QdyL)6kP*gc7l_-}6LT|?7bRX1E;{1?0%CwKq= literal 0 HcmV?d00001 From fbd86b3cd154d313d06349ad22e47a6e59716ce9 Mon Sep 17 00:00:00 2001 From: Daniel Lehmann Date: Wed, 14 Jan 2026 17:02:21 +0100 Subject: [PATCH 2/4] fix links --- in-depth.html | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/in-depth.html b/in-depth.html index 06e99bbe..078989f0 100644 --- a/in-depth.html +++ b/in-depth.html @@ -29,7 +29,7 @@ JetStream 3 In-Depth Analysis - + diff --git a/index.html b/index.html index 87f9f17a..06741d2c 100644 --- a/index.html +++ b/index.html @@ -97,7 +97,7 @@

-

JetStream 3 is a JavaScript and WebAssembly benchmark suite focused on the most advanced web applications. It rewards browsers that start up quickly, execute code quickly, and run smoothly. For more information, read the in-depth analysis. Bigger scores are better.

+

JetStream 3 is a JavaScript and WebAssembly benchmark suite focused on the most advanced web applications. It rewards browsers that start up quickly, execute code quickly, and run smoothly. For more information, read the in-depth analysis. Bigger scores are better.

Non-standard Parameters

From 4d5659c8c756f6a469d5c4091171f1be3d04c83b Mon Sep 17 00:00:00 2001 From: Daniel Lehmann Date: Wed, 14 Jan 2026 17:02:36 +0100 Subject: [PATCH 3/4] add descriptions for preloading and compression, more details on scoring --- README.md | 48 ++++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 173fad3a..523e0a30 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ See [package.json](package.json) and [.github/workflows/test.yml](.github/workfl ### Shell Runner -For the shell runner, see the available options by passing `--help` to `cli.js`. (Note that this requires `--` for JavaScriptCore and V8 to separate VM arguments from script arguments): +For the shell runner, see the available options by passing `--help` to `cli.js`. (Note that this requires `--` for JavaScriptCore and V8 to separate VM arguments from script arguments.): ``` $ v8 cli.js -- --help @@ -31,20 +31,7 @@ JetStream Driver Help Options: --help Print this help message. --iteration-count Set the default iteration count. - --worst-case-count Set the default worst-case count. - --dump-json-results Print summary json to the console. - --dump-test-list Print the selected test list instead of running. - --ramification Enable ramification support. See RAMification.py for more details. - --no-prefetch Do not prefetch resources. Will add network overhead to measurements! - --group-details Display detailed group items - --test Run a specific test or comma-separated list of tests. - --tag Run tests with a specific tag or comma-separated list of tags. - --start-automatically Start the benchmark automatically. - --report Report results to a server. - --start-delay Delay before starting the benchmark. - --custom-pre-iteration-code Custom code to run before each iteration. - --custom-post-iteration-code Custom code to run after each iteration. - --force-gc Force garbage collection before each benchmark, requires engine support. +... Available tags: all @@ -57,19 +44,36 @@ Available tests: ### Browser Runner -The browser version also supports passing parameters as URL query parameters, e.g., [https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm](https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm) to run only a single workload. +The browser version also supports passing parameters as URL query parameters, e.g., pass the `test` parameter (aliases are `tests` or `testList`) with a comma-separated list to run only specific workloads: [https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm,web-ssr](https://webkit-jetstream-preview.netlify.app/?test=8bitbench-wasm,web-ssr). See [utils/params.js](utils/params.js) and [JetStreamDriver.js](JetStreamDriver.js) for more details. -## Overview for Benchmark Developers - -TODO, bullet point list of most important files: `JetStreamDriver.js` which lists tests and their parameters, implements score calculation etc. Individual workloads are in subdirectories. -Compression and decompression via `npm run compress`. Because of large JS and for some workloads large resources (e.g., ML model files). In the browser decompressed via built-in APIs, in shells via Wasm zlib polyfill. +## Technical Details +The main file of the benchmark harness is `JetStreamDriver.js`, which lists the individual workloads and their parameters, implements measurement and scoring, etc. +The individual workloads are in subdirectories. ### Preloading and Compression -TODO: briefly explain and document rationale behind preloading and compression of large artifacts +The JetStream driver (both in the browser and shell runners) _preloads_ some large assets and source files. +That is, it reads those files from disk or fetches them from the network before running the workloads. +This is in order to exclude network latency and disk I/O from the benchmark measurements and reduce variance. Otherwise, OS scheduling or CPU frequency scaling may affect the measurement. + +Some workloads also utilize large assets (e.g., ML models, heavy JavaScript bundles in the order of 10s of MBs). +In order to limit the repository size and network transfers, such large assets are stored as compressed .z files. +Preloading handles the decompression of these assets (using `DecompressionStream` or a Wasm-based zlib polyfill) upfront so that decompression overhead does not affect the benchmark score. + +Both preloading and compression can be disabled, e.g., to inspect raw files or because it sometimes helps with debugging (e.g., proper URLs instead of Blobs for resources). + +- Compression: Run `npm run decompress` to decompress all .z files before running the benchmark. +- No prefetching for shells: Pass the `--no-prefetch` flag, e.g., `jsc cli.js -- --no-prefetch`. +- No prefetching in browsers: Append the query parameter `?prefetchResources=false` to the URL. + +See `JetStreamDriver.js` and `utils/compress.mjs` for more details. ### Score Calculation -TODO, maybe simply refer to in-depth.html? +Scores in JetStream are dimensionless floats, where a higher score is better. +When scores are aggregated (e.g., multiple sub-scores for each workload, or to determine the total score of the full benchmark suite), we use the [geometric mean](https://en.wikipedia.org/wiki/Geometric_mean). +This ensures that an x% improvement of any individual score has the same effect on the aggregated score, regardless of the absolute value of the individual score. + +See the [in-depth.html](https://webkit-jetstream-preview.netlify.app/in-depth.html) and `JetStreamDriver.js` for more details. \ No newline at end of file diff --git a/package.json b/package.json index 599d47c7..5ce7a253 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "prepare": "node utils/version-check.mjs", "server": "npm run prepare --silent && node tests/server.mjs", "compress": "npm run prepare --silent && node utils/compress.mjs", - "decompress": "npm run prepare --silent && node utils/compress.mjs --decompress --keep ", + "decompress": "npm run prepare --silent && node utils/compress.mjs --decompress --keep", "lint:check": "npm run prepare --silent && eslint **/*.{js,mjs,jsx,ts,tsx}", "pretty:check": "npm run prepare --silent && prettier --check ./", "pretty:format": "npm run prepare --silent && prettier --write ./", From ff781d05017dc48a7b380adf613988b84261fd25 Mon Sep 17 00:00:00 2001 From: Daniel Lehmann Date: Wed, 14 Jan 2026 18:49:42 +0100 Subject: [PATCH 4/4] s/Web Assembly/WebAssembly in in-depth, update some outdated information --- README.md | 3 ++- in-depth.html | 44 ++++++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 523e0a30..2b79fe39 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ See `JetStreamDriver.js` and `utils/compress.mjs` for more details. Scores in JetStream are dimensionless floats, where a higher score is better. When scores are aggregated (e.g., multiple sub-scores for each workload, or to determine the total score of the full benchmark suite), we use the [geometric mean](https://en.wikipedia.org/wiki/Geometric_mean). -This ensures that an x% improvement of any individual score has the same effect on the aggregated score, regardless of the absolute value of the individual score. +The geometric mean ensures that a multiplicative improvement of any individual score has the same effect on the aggregated score, regardless of the absolute value of the individual score. +For example, an improvement by 5% of the sub score of benchmark A has the same effect on the total score as an improvement by 5% of the sub score of benchmark B. See the [in-depth.html](https://webkit-jetstream-preview.netlify.app/in-depth.html) and `JetStreamDriver.js` for more details. \ No newline at end of file diff --git a/in-depth.html b/in-depth.html index 078989f0..543eb2e2 100644 --- a/in-depth.html +++ b/in-depth.html @@ -43,7 +43,7 @@

In-Depth Analysis

- JetStream 3 combines together a variety of JavaScript and Web Assembly benchmarks, covering a variety of + JetStream 3 combines together a variety of JavaScript and WebAssembly benchmarks, covering a variety of advanced workloads and programming techniques, and reports a single score that balances them using a geometric mean.

@@ -56,9 +56,11 @@

In-Depth Analysis

- Each benchmark in JetStream 3 computes its own individual score. JetStream 3 weighs each - benchmark equally, taking the geometric mean over each individual benchmark's score to compute - the overall JetStream 3 score. + Each benchmark in JetStream 3 computes its own individual score. + Scores in JetStream are dimensionless floats, where a higher score is better. + JetStream weighs each benchmark equally, taking the geometric mean over each individual benchmark's score to compute the overall JetStream 3 score. + The geometric mean ensures that a multiplicative improvement of any individual score has the same effect on the aggregated score, regardless of the absolute value of the individual score. + For example, an improvement by 5% of the sub score of benchmark A has the same effect on the total score as an improvement by 5% of the sub score of benchmark B.

@@ -70,7 +72,7 @@

In-Depth Analysis

- For most of the JavaScript benchmarks in JetStream 3, individual scores + For most of the JavaScript and WebAssembly benchmarks in JetStream 3, individual scores equally weigh startup performance, worst case performance, and average case performance. These three metrics are crucial to running performant JavaScript in the browser. Fast startup times lead browsers to loading pages more quickly. Good @@ -79,11 +81,10 @@

In-Depth Analysis

- For JetStream 3's Web Assembly benchmarks, individual scores equally weigh startup time and - total execution time. An important component of JetStream 1 were the asm.js subset of benchmarks. With the release - of Web Assembly, the importance of asm.js has lessened since many users of asm.js are - now using Web Assembly. JetStream 3 has converted many of the asm.js benchmarks from - JetStream 1 into Web Assembly. + An important component of JetStream 1 were the asm.js subset of benchmarks. With the release + of WebAssembly, the importance of asm.js has lessened since many users of asm.js are + now using WebAssembly. JetStream 3 has converted many of the asm.js benchmarks from + JetStream 1 into WebAssembly.

@@ -106,14 +107,13 @@

In-Depth Analysis

JetStream 3 includes parts of these benchmark suites that came before it: SunSpider, Octane 2, JetStream 1, - ARES-6, and Web Tooling Benchmark. - JetStream 3 also includes new benchmarks inspired by Kraken. - JetStream 3 also includes a new set of benchmarks that measure the performance of Web Assembly, Web Workers, + ARES-6, Web Tooling Benchmark, and benchmarks inspired by Kraken. + JetStream 3 also includes a new set of benchmarks that measure the performance of WebAssembly, Web Workers, Promises, async iteration, unicode regular expressions, and JavaScript parsing.

- JetStream 3 runs the same benchmarks as JetStream 3, but updates the benchmark driver to + JetStream 3 includes several benchmarks from earlier JetStream versions, but updates the benchmark driver to improve score stability. This is achieved by pre-fetching network resources prior to running the benchmarks. This can reduce perturbations on the measurement of JavaScript execution time due to second order effects of pause times induced by network latency. @@ -168,7 +168,7 @@

tsf-wasm
Runs Filip Pizlo's — of the WebKit team — implementation of a Typed Stream Format - in Web Assembly. The original code is compiled from C to Web Assembly using Emscripten. + in WebAssembly. The original code is compiled from C to WebAssembly using Emscripten. Source code: TSF
@@ -179,7 +179,7 @@

argon2-wasm
- Tests Argon2, a password-hashing function (the winner of Password Hashing Competition), in Web Assembly. This is test is based on argon2-browser library. Source code: ARGON2. + Tests Argon2, a password-hashing function (the winner of Password Hashing Competition), in WebAssembly. This is test is based on argon2-browser library. Source code: ARGON2.
tagcloud-SP
@@ -246,8 +246,8 @@

richards-wasm
Martin Richard's system language - benchmark compiled to a hybrid of Web Assembly and JavaScript. It stresses how quickly - JavaScript can call into Web Assembly code. + benchmark compiled to a hybrid of WebAssembly and JavaScript. It stresses how quickly + JavaScript can call into WebAssembly code. Source code: richards.c, richards.js
@@ -302,7 +302,7 @@

quicksort-wasm
- Quicksort benchmark, compiled to Web Assembly with Emscripten. + Quicksort benchmark, compiled to WebAssembly with Emscripten. The original C version of this benchmark was previously published in the LLVM test suite. Source code: quicksort.c, quicksort.js
@@ -418,8 +418,8 @@

HashSet-wasm
- A Web Assembly benchmark replaying a set of hash table operations performed in WebKit when loading - a web page. This benchmark was compiled from C++ to Web Assembly using Emscripten. + A WebAssembly benchmark replaying a set of hash table operations performed in WebKit when loading + a web page. This benchmark was compiled from C++ to WebAssembly using Emscripten. Source code: HashSet.cpp, HashSet.js
@@ -434,7 +434,7 @@

gcc-loops-wasm
- Example loops used to tune the GCC and LLVM vectorizers, compiled to Web Assembly with + Example loops used to tune the GCC and LLVM vectorizers, compiled to WebAssembly with Emscripten. The original C++ version of this benchmark was previously published in the LLVM test suite. Source code: gcc-loops.cpp, gcc-loops.js