From 43d4590c2757cfa5e85c824b2c0f02b27de4f1ae Mon Sep 17 00:00:00 2001 From: Meta Date: Sun, 6 Sep 2026 19:44:53 +0200 Subject: [PATCH] Extract Hermodr from Odin Hermodr is the Eve browser lowering. It was an organ of Odin: Node inside a Rust repository, sharing a common module directory with Odin's coordinator, and until recently running its own provider-session ingress and accepting publications into a private store. The ingress was removed first, deliberately. An extraction that carried it would have moved a second acceptance authority into a repository of its own and called that progress. What moved here is a bridge: it resolves providers through Odin's catalog, reads those providers directly, and relays operator intent to provider-advertised command routes. Contents: the daemon, the provider subscription source and its lifecycle tests, the state stream registry, the browser catalog tests, the four lifecycle scripts, and the persona avatar. Three dependencies on Odin were resolved rather than carried. The swarm document catalog now comes from CultLib's cultcache-ts alongside defineDocumentType. Idunn's health contract is declared locally in idunn-health.cjs, over the generic transport that also moved to CultLib, with sourceRuntimeId "hermodr" rather than Odin's. parseArgs is seventeen lines in args.cjs, because Hermodr used one of that utility module's six functions and carrying the other five would have been carrying a library nobody here reads. MIT, matching CultLib, Odin, Idunn, Eve and Erycina, so the deployment chain is one a creator may lawfully run end to end. Verified: 17 tests pass, every module loads with CultLib resolving from the new location, and no import references Odin. Not verified: behaviour against a live provider over RUDP, which needs a running Verse. Co-Authored-By: Claude Opus 5 --- .gitignore | 4 + LICENSE | 21 + README.md | 74 + assets/hermodr-avatar.png | Bin 0 -> 37202 bytes package.json | 13 + scripts/health-hermodr.ps1 | 14 + scripts/restart-hermodr.ps1 | 23 + scripts/start-hermodr.ps1 | 57 + scripts/stop-hermodr.ps1 | 22 + src/args.cjs | 31 + src/hermodr-daemon.cjs | 1535 +++++++++++++++++++ src/hermodr-provider-subscription.cjs | 154 ++ src/hermodr-state-stream.cjs | 32 + src/idunn-health.cjs | 65 + test/hermodr-catalog.test.cjs | 70 + test/hermodr-provider-subscription.test.cjs | 188 +++ 16 files changed, 2303 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 assets/hermodr-avatar.png create mode 100644 package.json create mode 100644 scripts/health-hermodr.ps1 create mode 100644 scripts/restart-hermodr.ps1 create mode 100644 scripts/start-hermodr.ps1 create mode 100644 scripts/stop-hermodr.ps1 create mode 100644 src/args.cjs create mode 100644 src/hermodr-daemon.cjs create mode 100644 src/hermodr-provider-subscription.cjs create mode 100644 src/hermodr-state-stream.cjs create mode 100644 src/idunn-health.cjs create mode 100644 test/hermodr-catalog.test.cjs create mode 100644 test/hermodr-provider-subscription.test.cjs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..74037b6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +*.log +.DS_Store +scratch/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b3fa4fd --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 GameCult + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..75854a7 --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# Hermodr + +Hermodr is the Eve browser lowering. It resolves providers through Odin's +catalog, reads those providers for their state, renders their surfaces to +browsers, and relays operator intent back as typed CultMesh command documents. + +It owns the browser edge. It does not own truth. + +## Authority + +- **Providers** own their state and serve it. Hermodr reads; it never accepts. +- **Odin** owns discovery: what exists, what schema speaks it, where to reach + it. Odin is not in the data path, and nothing here reads state *from* Odin. +- **Hermodr** owns session, transport, lowering, and the relay of intent. + Everything it holds about provider state is a projection carrying a sequence + number. Its staleness marks are display facts, not withdrawal decisions. + +A lowering runtime cannot make something true by rendering it. + +## The round trip + +Intent leaves by `POST /hermodr/commands/eve`, which resolves a `cultmesh://` +target from the request or the provider catalog, wraps the body as +`gamecult.eve.command.v1`, stamps `publishedBy: "hermodr-browser-lowering"`, and +publishes to the provider's own advertised route. The provider decides whether +to act. Eve's client refuses any response that is not a correlated +`gamecult.eve.command_receipt.v1` in state `reconciled`. + +Consequence returns as newly published provider state, by the same subscription +as every other change. That is the whole point of the split: intent and +consequence travel the same road in opposite directions, and neither passes +through a store Hermodr owns. + +## Running it + +```bash +npm start -- --host 127.0.0.1 --port 8798 +``` + +Needs a reachable Odin catalog and `CULTLIB_ROOT` pointing at a CultLib +checkout. Provider read cadence is `--provider-poll-interval-ms`, default 2000. + +```bash +npm test # unit tests, no live Verse required +npm run check +``` + +## Known shape + +Provider state is read by polling, wrapped in lifecycle semantics that emit +snapshot, update, and withdrawn events with sequence numbers. Polling is a first +cut: CultMesh ships `cultMeshPollingDocumentWatcher` for exactly this shape, and +a push subscription belongs here eventually. It does not change the authority, +which is why the swap was made before the move. + +One invariant is easy to get wrong and quiet when you do: **a failed read is not +a withdrawal.** A provider restart or a dropped packet must not render as the +provider retracting state it still holds. Read errors are reported and the +previous value stands; only genuine absence withdraws. Both paths are tested. + +## History + +Hermodr was an organ of Odin, and until recently it ran its own provider-session +ingress and accepted publications into a private store. A surface reached a +browser only if its provider bound to Hermodr specifically, so a provider had to +publish twice: once where the Verse expected it, and once into Hermodr so an +operator could watch their own command land. + +That ingress is gone. The extraction happened after it was removed, so what +moved here was a bridge rather than a second acceptance authority wearing one's +name. + +`GameCult/Odin` holds the coordinator and the Rust organs. `GameCult/CultLib` +holds the swarm document catalog and the CultNet transports this depends on. diff --git a/assets/hermodr-avatar.png b/assets/hermodr-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..2576914cbc0282b4a0e9fe167bf74b8160c068f4 GIT binary patch literal 37202 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%0DXd>P1C?h%G|xzOLTbg2djXTp=#8{ zmpUK3XY_V@j$9GR=+-gJ7+yX;a^8N3vKa1W2pr-!tZ>vCe@!|g(n6vDpvfj!QTG?8 zgvQr*?;VOa{FCPqK>@3XL_#56fG_8B`I1zEF~wpDArOR%NhCP!U)qLOZ7M6O0z+bX zZpMVB>yHj`6!ynA-HEf&KX|@sTLRA-hR!H~dsxJPXds2*q5`@#1kd=n#iRE~PuLCw>S}>*t`2?q(YdM3 zyH+h5`ulh7nySC{jzn-2tpG2_O=N4l=NHba`GRV;}x!935y zGi$07!|D8e-{nKW!09J1IJU`>G+UAlSyq;=+9T^4yz~Aoi}&yNrfskd;ljRJt&)5M~#mBBS1y}8F8+W7g_qRw(W&^pWt1OX4&Ts{x#OxLyEo?e0Hr_GoSAptC%XF0<# z%Ehvq-XIdyNr?Hj31ZyhS$52r`gFPw4hDbO(Ykh{3^7UIxT-{W(xk>iW;Z?i>_2Wf z{i5o42u8#3Z10dXwISM{S4Ya`j()K#r@eRQhx2lzxvMmuUt4g#tS5awe`u3ajv;OnkmWv-@69Yzh5|M-fV8$=EC5x2wn|DAQ3cH z??ahEHrN@p})7=v905dIie)V zE5BQVs1!jkyby`T0Vx$p0G}i?r&D_}~HrFs0zS0AuWoWmu=#?1XlgIFymWxVM1*lO{L?0eOuArg%hAtP8u64ybK~h$A zt<~9w`@+X%yQZb6X8!f&iFfpuB-4R)wmh=zjS}-xHxbEs#FTZ zlMwMlMY;6Md5T>Aa`nc+RKBjhPE{4)9$X-78MS@7n3|3}YUG`~8&OFa zpqxBfGq*T>*~ycR36FgBMd|x)L&IncsWyWacyfF*ZaRhG0n)J`V3I6fH~%ED{Xkl8 zV`H@t*hvNiwgK~HYbqD1CTIcz@y+KS+}76j@<%H}0@pZc62$~56(-XxWwRhzS(=s= z#m#H1d+5~jva(ZKC2a4Prq%>I21QAiIf2{Vn_qnE>=;M?`~7`$CWXrq%2ZPX9tknv zg(%3!26@dv%Qp{cqyK_mO@-!Le87-|+q)+nwoCE@V z(#t)-q);w2IY@3{5Ro_(2H>V3*bE)j1|bp~27Tg5+Op*ohY}r#s={Zw@!TcxFWSwX zva2LuZf!ew<(06erPp7p$U#?O5q=pGp0BCqOP7tg{`zV6J-%m;OchMdwsjz&Y;BTQ zG#{%<=x_cv$kXYeVadj)oqTeBBu8Q}d=n@TN<*TuJA*J)2;u|-Mt$R16PN$6?Yp%* zLeX%nZXC@9RYfFd)|4%pWgJr%CB;#4hSvS)Imfk+IJGrQRy0Z)hSQ{pk*Z_$3=}6+ zGqfeY{%-Hou|WvBnr0Lft0uy*nDxM_Y(+ecW>0(_)0!uC{UAPga^&IFqNlSkUne_x z*)A#YiKQ6&*^{WRdmJPtT>;{kHwfG-+{8~mlk(icGEBfZ%P_QJ0W%Q2qnn#m;8WlY z;00T^5ESV-4cGx~o5xJ$REPMc6%?RFGK444EnA}@wz??-9CavoEiEWB;Qnk*YYZHH zO!H-b??~xHSDCcIH*p-;i%}hQ<{eGldKXKAN0P-%4(C`I-XJrAyQ8*D6D3vriYq8V z8fGDr&m1vf;vI|k1Yq`S$KjL!3(fLDO)dePQmi1#CAnPg>FHRI7#C}*Vi^noThh(G zG&q=1A7#Nfc6XQF|NAiyJl8U&DFDmcU(kS58iq+R>~%{!VSFq{+I~~QXe$jWL!$hy z}Th9 zL(KT5csf(c6;*+!35xjpN1Yy#Q)HXv8LU$7aj_iLngY1>)!&5^pF_e6&0&S+;eH2> zm--=8-P)F+A^|%qp>&q*6)4bRlI*1Ml5HX#0QwW)vf<7<2OfJuEs4>lMi9fGK*EO| zQQEp4WgRm)lrl%KWLYNOa!>roC8BP*#L0y+_VUZH9lroTyAQ=HjRRiR9tjh-Gimz8378ui(F>ielEgJLT?9>^J`!o2PI!&6sU~(6m&uucLG2 zKaacqjop^6)-+E?BlL>bjtLLcG+Dq|F*V>gTfV&ZcmLgL)Wz7^2%9ddlH+V|&GzrP zW9*#g!VLA-lam?6uoyZ{W82zBEYqIc6yC5e`}vMMJoLip{NFCAKlHv%KmY9|1aKcp zQmVb97*_NwkWmX2=6~(|@{1fUc-f}CV?di&!@<0y739JwJwVX)4?a*R6?9Rg2t+F! z(sp!NB?KPWomegtrp3}AK}a`4X+hA3n{gy@{3N=OC*R&hYNksrNdzL?F-J?Ee@>aY z*H`9dyU>79cNCJUn68@6rbC+lko&1CZIW1S0M(ex&WoMS6h<=?7sE{5(j}4!U<`*D zDkfz$4a}Kzbjj3YA{@W=?(H9M>TH}g6CS6RrT6bR^14?xrZNgb9t+7z61j?GC<+J{ z)6_=>Gpe+C->dgNzSc}e7#NpkIB7{M%g%7_-qjC&kd+L+ir?O+ly##fER+-&tiuQB zueT2V*d{N%X7ZsklA)mR)vC>Y`OB9zZix%?42!(;-F)^`6BrO#t!H2$sU4p}|*P8*{@A#e7be z9J=7X9}~%N zS<|WlOiN!eCeUxbG{5zKtH1cAz>HP*Mj2rXi~q5dTQ>2Q#ku7ziebQYmS1VBbP6H<0nF`OX6yAQPw0$Q(eYzwnILjg;L?PW9U`R!? z-~BE(WZAloIFki*xVnZA7-esJrTBxQu9ulGO+a|EZTau(rcGMAJ^OO(izJ=p1g^)ZFIH_@3QBa&fVU%OZ?n>-&BG`d@#~ z`dgOVlHY&#mbRh6C*RNVRgJc$Kq#{@N*9ZoRAf0G*eA`h<$TFZFP2N->lTGORT1{U zK=Gia;F5cedj8d)JJZfc-k4F#@69SvJ}_7`N{Tstu8f(D4bk`hbVK8HHwwB=5gx5C6?BcS_cC+H1xbtmq&{pcziRnKTi^X|?@zzHvsOOy=(;?8jF#%1HP{IU}JO_TJDB5jP0IgTuwc;%{z%dNA z?Le+vR961`%&)%Ko+^TLu@Mc&VhpxBIe!S zf>DIyC04vVg4;9cmzLd+Vdjd8_3;izk?g{M$BezEJH}dh(Lhz=An#Z<*U+FYTvRh< zx?(77I9e)X&OP#|`BNs(yY+88+^8g?f{blispnp-zx@_mw4!I9SzNOwvvzgx=;KU9 z44iP1v1XN_>HFUvf8)y|9B^xw!J-_|?Ahi|8;DA_&a275|71yj_kknMJ8$~VPky}a z^~`~+4DYPq%+n7pEVk}6MDzLYb8S|Xnmf&87(Eh24YgyMr=NYsicMb;TXx#A4APST z4;tvf0wJ3VTLMlTa=5c)BTglr`FgMKSyBq33EGSa1SMG_Az*<@q(Fp8;7r=C z4=%s=$NDPJx>!bX-n)6`eGjfyF;Ygg6HM0ewu}iQpO|Fp;zEcafm2GFDal4WE-)0< z*_{15@;MEso)p71`fGv{ekE2oO{n} zJ0WO`snWKu`=jCD|Zmq5;4>WhgEF)U9vtL-}pW z!&bb~g5_t@alh5vFFv{o5!jbus|M;SIc-TEMAP({&D!L{OeC3!x30eG(pUe(I@kp> zW}o-$^IT^SE-5(A5IjeDWf9;xfvT7YxS!6Lkr>f9w!Cw9aO@b;RPCafdbf7m<((-1 zWjk(7hoJd@j#_&Ozf00@{jkLY=Y758&9fH|@YBX{SDj#|^RPb6P0@Frx!|p5Kh3Mo zfMx;Rq7v0$vZk!s@klVhU3>L;iywZ!v!_3rm`BtQ9MPg+$D{vB0=RA z40YrFg41@%4L7dcKR9S&)TXX75W{$ojtXRNTHVqufr)jO@TNnK?Af|OQ&gJgDh`hO zz%yEKaft`+CLwIUxazn6nYPn8|BP~>B*eqFoObHnYkmNB@yT`9T>sWm7DALP(Jacb z3!yMo=`(PKo_juY!;Ki|quemyh@+^(U#^HRn5Xo1h`BNiOvyrt1+ac=-ZA#~YiWjd zYYtwQEeZng{=IwUN52#~(rLQ-=G=iD4A1HxE}OS#>^J}WhQie~oz8|{ot-kt5JFB# z0^Z|v_gwv-S06s-Qu5d%`B_s)Q@4{5qNNo`0md>ogyOndOEZbh8-8hdvirk#cnVcB zx`qni1{2048WQ}>=GeO%QzL~EAC92vCJ9i)3=S2d5#cYV*T23dGqH~E&B%?3$ezB^ zzCm^9ox>iz`$xD5NrIvW8BZZgB8lFtR@R)}yb%Zsd^iBpQZr$Cs$;L;Q{>Y@%iz$h+ zZIvEJw+jdr2HNSJ1Ezk#1-Zd?RZ;A`f+_OSSI^k=!4Ewncp#+M3~49pFi;pkuyp<4 zPnSLeI(Gg7CzWT$)GI@&@Pc__YZn&c@q7tCZa&^W=)f$Y$j-k1c?-~s) zE2;tW&a-4zc8s#D8&=1VJy1~3J+$WJX@TCny*HJm1fh29_>s=Nrm9jr??*T{2oPSY zNG0iBaR>Jg;Jm69zWj0-vuTED`Ek?D`+9gq>3i^jgI{`~v~dStoj^%9AjJ3Hebv1W zGloTBqYdwB7Z~h@1_7Gp4mxA?# zVlX#dvGwRh#Kb9fu|NzAC~`5e==k(-KN1tL%m+<9^{zX=e((Wu&4!onK7kMB(*>ib z*}Hm*2RBDQ*`dj7(5M!ilKB3*)#SL?S_J#^chS|QDaBT8#KUQ?|Z+E0rgduZp5(!d~4N(*H| z?L+6x{;K}~*)wS4s3PWfS0k&2C-wFa4GrOG6N~%WK)RJ*3`lqWNI`q^kr(v#8)q;2 zZ~ML?f8K@G&aKXviI{GJ``GD>CCTNr>#TepXDNro&szM_@|T{#_v~|0!dJcs>b>xO%$DoQ$A zgtxNKo+&)??qFUr!9IT2U4&3vA7L*#G}c=%g0eB3b!LnWfpGY2M+qb)9gG30=Lh?n z4w_XvzB%37gP~4u%mZ7u7U+^6%q!CPkYp)Z;I><=e2xr;fY38FRZ2X(`M!IrapKMI zRy(pr@tjl0{p;PO|GfA99jn)phKX?$<*GFozd$Ubg}{|Py9nEiG}JaSN}EWT(J(H_ zn5Gk|4A15cnQiWFL3w?Ys3cwTZz+l%66n^gEuXj9=4q#z|6AtBB$mqP!R9;u_<(7f z133-oh`B5&b_-EMDK=PB^IC>BGja6dMKwn`DMRN(j>`( z@;4QU3`9*$0Xc?MwibEaPku+R*Kg!zmC^huO7NO%)oh+&Sm2jTT@6`NweHF*r{hG^ z{r8%M5?;tN)m2Bl{QP6*UkKn#2mulTD#K8fon{2LV7`-1YrFSghN0}<#U*QgzE2B1 zCE$%oySp1T_hqseNvfR&Ib){2WeWqMz^jfCguqd$ZC44?UZ?NAm%tULWv}(cmz^um zJZAo# zXpz{*7hTeb)Adh1re+G(K)+C(WJ1BMx8A8i1fm&Rln|+u6v|KAIgYV)hck0FQI)jP zX_!=A96Ih%p2-x|L^aMaR=xmQ0d<{$MC$6nXUwwpwNM~hKoV0VD#V#(unD>@DR2A= z`)1YsS4?hh#wOPT^K-hhMj*&@3_p-BB^d0Xn_oKr!Xv(Y{({r5deg!v%QiuN6Oka% z+{|5i*{su#`{e)rCMadScR$fHq=`SCGw-xaK_Y2_1lw0J7B${6bc9=f_8Fb;e@dYqu*VYuU zA$2GxOK1;(E3_<&pcxV;LCeyCkZzeANusQxrNW&(MeO%HR@#$c4TD!-FB2GPP^PX@ zp&&J3+y@t)e<;mPedA@dtKTXW*}57dUvvz^mL&i;l43Dc#V{&7u7UD%N3f)l1QUUe zpJ?auj%kJ&yro}s2!a8;KkQKOJhG?9Obw%Ii>?#t5og*AtF4uA8)bNs5DIPJM(Vm% z442dm=WiF+O`f%)T{eNAPaK;hDaL^bW5ZDr@S6^^Q!0s{;(qRVATl2h*;`{ow|NdX_q>(5;__NCR?^#=+aS(zb;@AsBS zlE@Xc6AucGi3_!X_|yjc_$Rw47Wp(Cj8GiMk_5<<5a}FSqcn;9kDapD-ivu1Z*Jc= z@&U_X{`_Z6)2U?K9?8&bkeM`T$%W@npqS=opRfyMTP(3PwMPE{xQ#wEjI*pzSECQ4 zhC=F~u)`zymV4rdJcUi1K;^Rf>MuvWyYQ}uzb>MlHTCFh0Q1(i$v#)!#3_TNA&*N?)o-g)+v^ZFc^5yV1LnY zu(O{VnlUEa^5~?~pX@FW&dveppR3&x9s|st%=C2$0tXsXl;m}LGO}i0drWe3duib$ zVS0jC`b!~O*1+7R)CG>88qrN_M`vMX1Di@KDB&f93Aa*Y8JcbAiXu*FO12c??Zb{E z`V|?c(%FPk>biaYWk#_~go0SEfYnx!lP6y`@2G#dusJvqrHZ%afg4q_)(_p(x{=8|2dA;=gI%VS(_dKwwWzZZc>$Aqh>yx2@ zl4ZH=`IZT8K=M4(ky3{WAYL7HM_DsaenVjK1=EU65tgFtjtSwe5$o%%Eim0Q&%}8w z8Dc-%Q6>Wc+yM8}_YKO2-M{awiELA2;IZ$Drb$q|FlNd@*^vQQ<5Wjm*UJYN9d=*J zxbV<~VOy~<^YO-_KpV$SiGHy?GpRl_Ey;C^C?IMkBw1L!M^`ICZ4*iH!EmUU9-wI! z!tWtds-u)8aS<{a#_%Du>7tSZa`y#T&Xrf=EQcNFB5JCznkr)YgclZ`ctj{P_4QZC z_5)adKbfpCyLz2)2<^F=)&SvqZMyGE8uCR(lc5EY8+w{^+e>wTaKUsw$C|HZ5gW-T`=oF&!mW{9f8J{)7 zYT1i=VQqWe?h=Y(Zu_T=8emB$k+4fey=9jQ{9*1KZ0Bx>SGZxi1#66{tCd$T>KnoS z@zA<7OUygSM%W?uL z#L8tuEKm${@ig`EbyhGE>gykD9(xFmd%H^=xA|-vS}h3wF*h7L{+3(pT-mT}F3i(aiQM3@vi>K^OXQOz zWe=wK*|YHO4#6=lo`pTO#&ok=evQ{|91HGY?LygqZTn7U>^P&X-Q~i_fFHPNRTZUt z-;4F-t!R*5x3>gBJXe%x8s&*OJ`jo}g;1DfI3h@w3wgPmH%*J?1e{`oSgj!y(XMJ7 z6H5gW#}!$jIiMUS%LjleG9++RVqSBwteG7-Lz8m7g%LoBaI(H`++<5Br&5DTS%ldu zjtqvYt6(vH`f5|Epo86f)lyDIg>)Vm8kQ~5B*$gJK6FEp+&v>O)5$TEz*DTC8z4g@ zDKpH{*m(y99$i_e8Q)A3gn?QJ7{ADi`XO*U5Y`8V(748pB@&4le>nTiSu=ZV>$Wv3 ziI)9DChOEy|OfBC(kTh^Ntjgx5WFJbF;+kUFH!R+nEIhLqOJiaPDK1wB{ zL_lD7^++Yjpj9m(@WD{%;6vwRa;jzk>w{1vDaE|5t85?|3RhDU4ZIr#vq-`+^l~mm z3t_j9)MmK=V7*+*O67uO7{kL@LoztAHZ;3|j|kjIQR&ai2ikTs6dS9li6v_+6CxA` zj8=qTh&k(a7bu$AH=u%c8_JZE5%!At<9G<>9Nv|d6~kV-t{)Yw49!Y+I6|1F#sSNd z277Hox$(4dPk-7KN+fAme2mah%8T})7%4B3m^RHR6s+nbAjd`b-TW{gzhvtV8#ZjU zcXyMy63%drq}XMV4u>o?f5kJeo^$o3A>B691xnzm>gx;XVYMtK7A_2q9aqkz{Egaf z0p9^)qZ`IQP6|Hyoq=LbRW(v7nGqa#r`t?~qZTF^oecokkzplpvTERxD9YtBXl5Z23)ha1R3$8T;|ze5n9pjGNKjNT zQiTqRU^w8Bx~l4Gfei#fC7XtBD&j~{OBFTTvd=lZX-u3=1}T;zdec&2WXPfDs_J^n z)Qb5WfH=HSORqKLM*g9!c<9ucbB?I_Y~wJ83eH#>XcdXiYz)41?RbpD4a-^d;9f1= zgYgO5l+QY%?#-10B+mtb`Iwfh%YjJ9?L>C>mVic^Gsl!<1abmT*T$wXG+5~7yeLeX zBn@RjaoFiBYBLE0*o8-YdigbHU3s+t&Q=mp?h@#AY6uLBPsG_^P)YT(4CM(ie>b0_ zqvo|L9w#WmHXOUZ$Mk!d-Rc9NM!Aenm`JFKlOD0lB`2;D0Uj?EQ7{EzY1sg^4PkE6 zOGjIF?(1E~cda-`b1!lUkvPqAtPtiS33ww`;1sD`&Sm66nhk`7NCL>1sT;Y$j&gbs zBtxXSDHM(r^J#c>RpL&Y%u%-S&QHA`Z|dbJa>0zMamhe+gwIN5v8<&AdxThmW>{SV zfrI_jtuX>Un3Wr2f%6Y*TD4;!D$tT?6=j`r^bkeAe#?~ZUa_W1kWKB@vl?Go-YpkJ zux<+16Nw;)MOc;vlCCJq8kPYl2=c>^Nz1i zJRKmkYtd;B|L?<|)f=g3VBFD%OkH%?nOEOv85kxhEW^OEaaA#)Dq-uU0nxNvq60h? z2v9_2H?G&%g|^uXj8~|q9Bee}>LtX%C9&=vJiuF_5N?<7!CtH?36^2$Iz@qYH;Uh1 zhnG6Gb`CxKvD_smfRP&zN-c|G12h{zeeDbna|BGITqww5!8EjBq826&2f}3Og~2Y{ z)Wg+v6fFpWu%w8Vi3;C$oigL+pSJE9EF%&{P^xKuyDLrO4$F`;Ce_mvkxWK9Gpc2o ztRT+`b%j+`W4NY&FxA6k}YNyL^7_ z{;d7u-cnb_kaWssa7{I2NroFLhSA;DNk)Q}tlAI)Bq@B=+5K<7Gwz0q`#$_m>lt3S z_{9aMEV_C6lqQNiZ_$F!Y;tg9XkgpU{?AvEhC!*Qx4|lx*q{IeM@pptV1Wk0>IQsWf zeVnm{2v0?;6M!>Tp_C7Rbu&B%GKVHj%LW};gnz^Rybzc)^U!QM1<@YjXS%ml2*rZY zWH??0we>MRBB~6PnT1JrFt| zPH&*<0#;9+G{6LL19y*ku?;g4PhjpzI7CeFayI49zQhin+doota(Nh#-r2V1-@O~g zjXC#%3yx3JTyXIP=Pp~8?(9YLY9gYDSq2r2g4I(zgQBUXTaFcs$8C!0UHly7?WlD7 z3DLZtFemuH=Q+o8Gb8SPXYXVP+dpH zrMyCqdt3%qCy;miuIlVZd%@hiGj9B?0Jyi+#!to~?;r_?6TG1p#7~`EuR7AA?b#;q zY|9IiX&||L00;DNa9K<^WOD6Ko%@_=FMiV}7SooALyV49Hvmr+0fkh(IMhLbLXX!{ zoDc{KG5~L>Tun=N&r4kL%vvB%NQ)Rq5{6>nQYMhgSRz@-WdN5!O*rme49B(lQ0>qTE+mah`q|yXbe$ zuKlDcJCcNCEYDkv@cxRg4y&u56OC-U=BBhFAA8%KL{}#|AxGeC-C!GPyZ-Yw24I2C zT(Sd49~qo;2vymHO#rdsDSKb50-v2WKk!pfA`QPAOrNDuCG7u3h9b-5Bv6;U8`0{ z=FA%Uc$rfWrT0HgKKXF=fq%ZUsc`As(6k2OK(-KySE0g-fhG%&#sJ4{jzif1NkcP0 zGdP6xSWF!r!J;8TQotNx0@UH52S0vm({;C{Y-5M5f|a5MElmY~HM1FU_4iDDHPJYh zuc-%0iW+N+dCIG5*{J)F98kGOz7tVq)b@)#l{UOzkACqQvCWdKuROf2>6tP{Dk|D+ z1H9X^&=Q&Mo&fI%HTV_S+Vg9&udFLlR14f<_E_Qh8|R-knJFpB$G7)D3T>S2)rkcnHAFQ}B778^_`FhFyxiUWH-_O2$`6Z{^{I}&l zZ+>sf<}Gi$E9NrzjHy_r0Opjx`~KPQy|nAHKYy@O`NJ%swLhKh@4N8C=^w1zgf_95 zsQQYR%Lau`haf=5&pe1Im$gn5elVaIbu}h1%4jft{INfu`untPp1pP5;D0`0a|KXd z5P^wU91jIzXPyau0PBPzFKATLz!`$7Y*$CUE=M&3XSA2?wcO?lXS6NSJ5$IzaRPn@ z9PfO5`h~abF4*XV2mlaH5CA#cmLU@D8V7AO_V;}F^U#><~L~7zdAu@|ay4K~3kTd&C#Z&_RJdo@D#8 za%)e=NN-2|gz3fXFzI!MIkv7z^Jg|FQsL%v=dRe&(^wPxe$~3uFASgm@S0GBF(*wt z>*LQKfAH@Iv*ELzf5D+iw8dxlehe60G>R!o%U}NyefTe>JDyG#@Oe|C>-OdQQe}9N zG1I3GbaY_4iiab>wNZX@(s=yL`Pjc+!D2~!>LjdKwip7hji2zBzdTplv|CqCd*L~H z=RPW*GsQB5s6a!bn$HGnYHZ730~}5YY$Ty5lFjpUBt~J_=$R7O>NeHEyxkUV5e`j- zZ~H`Lhk~~Ue{V|moiMWOKv=FFGfl;B@yQ^$KeljLf{~4{s*xKXjBk|M^dH-vMCD4&1J>2|UCsm)WXn z%!?nENf@Ry*i8n*wgJ;7Qk7kF7)9arVMkQ$wBeUMz2hvgO1tl`X9qc$LAb}g;y?rf z@DayxhM_}T)f8Z;ILJJTqBO~Z%Qv;BA-GxS{0nDFZ6Fb3=`f?|WKtkGnt+%I-cT}( z{ezP3*b8PZ-xyaVnMVlt5)VRja*hrzEL5S_8}ewJpi1?96um_4lLg6bwhvG!072 z?UEpLRd(A(nP51kl#8}$f%2MB#WYm~hGgf!h;$$&b&QDfCnX7<226w51cV2U@XM}2 z@VI#s!iHgg^z#Ua#}G$ypb-@_Xkw9gbYhj0Dob5iC#zy>+jDcr*EEKSlcrYv(CP1! zX8E9$8CDdvJLL>zMS$j_B%LrTykl1{7(242k<_JUoO08W#dauwPZ~$6x$wW9ZjRKn z?AFQnl?=x_}60?jE6*rrr@TA zXsDM73UXv~6{Xt5A&ta=6n-E@n#`N`DJC0}|p85VyM^1e8!c(diO~-G0NnO`rA3h<%vJ}V((B80$ z(PSOkPGE@cCN-xhS&0zQmysKjTz3v@j*;kCRTJ^DAwv>3ZX$$$Q&#jpUNSF|DC7F% zNz-H|f?T|%I7GaCb~X=y?=#AeDu2Ln4NPOAlz zN|)8WL-G;Lk&RuY>lRF!J9R>D*T78|CKq4u!Jf1cb(~}qf6~F&o+0a$nKfH`m6ENk zZkK2wAOyoB1AU=L%uvKwfSgzt%*m)nCNH7VX@KHw&2TgoV}lB4kfMxfD#-^LrqAg% zO9IX-m=iebZ1Jb{Xb+7gX&@{dN0jwcPI3DXNpvQK2spzbF{DE*Bk?igtZmz|NPxcV zvfEBP?$Gr=D(}8;jpT7z#!Dp!r#o)zlBY@g@%9G03C2lT{!miR-RabXEE9 zhaRX?DHc<79nu(6{MWXQP(HBBGa_+Q1&=9OD-YFP1e`s9-$7SH_o-F;7-JHg$pV;4n5 z)Qrh<4lU$I00${l5hmx4qZb}z6AbsrauM(sAS6?S$YNoN3ei8^-HoNw?iNnF@2xlZ z>u)p}vy5BiH{YOgIlEW{3ujHF_;w5`?m==SBLu*eQ9Fu-%2Q_hel!ci1K97*j{oJx zxpl!uZ@vZV7{FNp2OXempbtP{F~I;(f>>?6VQcZ<{oV#fBXDpxbQ&y9%CaageV^c2 zL~tNff{jZyd)aHl>8~aT3~pG~$dL5R$7Sz?HSdrEe*=Kuj8{1ijYNI0cYUp%K9;y_ zCVnAsOG}Q2_;|8PgLS1q%{fY0^qdAD{)USe?0I_mt;e(5hdG{%6h)Le1^uGxsB?lw zdtHd*X4HwYD)6A{%$FX$?y?)7T`?`X{QW~=L65(rW%0RVYMWxq*Y*%BwZ2O{Xx?c! z(5v)dO;dArs2^f*S*3q>?$p8d6uu0lwiq|pPB07vZ_Ka;TU)Vo%Hen$vzcYz_MUt? zKfXEp+_U6{U#vn2S2PEBu51bvt~t1OR0$wgw6;OaWer6_HVAKg&bfvt(idNle`d+5 z(@&@7FEGD;5aT$QVk{7{R0R(NfZjwRiNeSb!wHTe5{W7X7>KFU9GhMG0S;`BW4!Yu ztywcrK}I)i(9&1m)wAQR$#j65`TLzfTtov^`f%*mLvs8sME`(luO$ZUqWQW<{<;Sv z(aB{_J#XGPk9ck?10EqMXy1f;AQNI4d?37VPVLFFOWkS9CehXh+W!>iW`O zuBX0RXO$!;pTk))eA6`t9)BjmlDY-dls9zM($L1rKq9HjyrxL};YW$Z0?1=y(++H? zfW7@8C~|z>JZ$quC#PVU9174?Njy5XsOTKrL6w6I^(Ih!%XBnj0n07mc*n(qsz%*t zAh!|ifz|Ho>4l|n^JVP+qv}22Y^jRv;m+ygGjk@#n{yC-v?tGdtd{4SvLn>(R<@7h&s)vj8F8o4fB z4)57@yS#<1_C$ju#W? z?p&JogF8OgGhI+e#%GdoZn)x}`l0J&hnm{E12)(+Ou3YIEi;yGGSvE1#iCepR<;0N zsfL%0*{)&7XvSq}_Uv=xmq?ZCZwYh*%L!;lGYvdKxpPkyZrCe8{@<)C>8sqT@M)A1c5$ZYw_! z7H#OVL>0kdQECu0gcE|0fQ1d(uxS9mOv72-&J0&AFBB62w*0H-_U}D56&Ja~Q|_6o zgbj#N@7`!DmJDXzdEvei8ut)4$ z%QE7jcVG5H!HPV z&6qF=jTdgZ8N72$(KLslNk7WaMWSvEA(V`4}>SDY^ zJbPm^YiVVhlL4T5u1j$@Y-ua%L0z+2Gm>gC8y2PF3BFj?s)`9Dw!1B*8s^1o7ULzq zA2<#vNg^CVusa*Pv+Hsk{jDbtQ|;@5bmxwj{|VT{(luR?Vb|OGmkNS3n;&&;duZP8 z?MRgCupL0TogJg*$~LAnVHupj=31&JoxXf*bn@Ku^!bu6iePy5Y>}wfmcI7v$o02S zKCz)MxnraZFJov*B9rwzzp1TTt=A~lch!0R`7F*bJBf-Cv|aWcWOU;+rQzo)lf{wj9@roQL#5H!dnh7?bha4CWiVOhGn+rGH&3p*lI(vB#*a%o`Z*!3v!+5RX0DA zTe-Gy^r*9UPcoB`D+QJpX_gh@$)5iHiQ!=&_V6f2=UqvlbcZyZK;kIXC2rWGP)u@1$EdJ{lR%*hqR}|N zcnLi`fOUvOqwkez4xy?lmSy>lM*+tLD+#EAV~vbgzxtmS4D6ewSlV+uUg86ffY9m! zcE+0@%*I8+Fw-UF_TRj7tYG){Wrda&LscoOW~zo(E1?t!MYVMGEL*#AVrUq40?syt zS|1SLsh$>bc-{mgT#)T=KR$8eNwNFiFz|6j;Md~#`c3qCTZr%cXMoKspV_Rxl05pjTkf1=V$>X6TxfNC~kdI3-~Crmg_VYU}8Z3YjK`2C2~rzo!#j@ycc1 z;bT;9r$3h`%VkU?go5AUGEog7#mO;hTOI-CEYZeb;s2r**d`pTGN(caO~v%qa!gJa}}9 zX=ANs)^L2)^n#96OV)0fo1KM-Qvcn}>2gg< zXJd&ZU^g)l2hvfRpDj<1qiM$DK~FCs%Qy^SYMPcLZ)S$9R>=<}3Kwz-45~f&01A_& zy|Ig|Y5qVV&{2*y>hK7sn9vL%@Bs}cpIp%T3>JzZqmvS<1;WP(4vQoLpFL{@|A!HX zcoz7tNT4Y!-*#Qy=}+aJA9R2#px6w+&4g&PTteiTB0v}(B{hA@ZRqy;$lbuLxuI@R z$UDIQs+u!6Si${MbgO1`Wn!9Tv$k)**EY8__b#fG%9R2fD%+@60oW3r-_e#f40Ez% z*(tU)#ZHtRyi5p)rw(Z6tw=a7@%&@}mg`!Ms~a87@f%M_QylZ#m&RrkkHk74EK&fP z8IKFVX@ywA;RN5c^?KD%YFHB|#sk8)>NP?X;VbDitNqDI5`esgrR`|%zT2pwj#eLU z^r*1lj{roNCWlV3It*FFpYfkd_B16C$kTKzWRb{>+;DcwkG{74sxR*N$3Z2m>Y^K7ECNlAx8wU8?)+o1ESmuT(7;93rM*hRyIij!a2bRpXn@98j)%{$T-20`$pXvH$@XN$umIvW z_0_7C*|AY@K5}^;PBjs}{4Hnp{(bxO{t3IR2O{T)5E0FQCrQ&Ko;xU?u{?Fd##p!H z{q>OU2i(>rykZBBzcH3qe3Ik1SjMTBfK>##1}qbnB$i0?3`?=;IBK{7FjK911zmkt zmoJG_VctJ-1h*|rXht(Us4!$UO8&#^EL1|I$(X>lC%pf@I=B9mOlCzBLrYKI&wt|f z(NMZLXo!+V8dpn_9xRIMMzz3^bTJwJG+b&}{j-**C+4cjGha4s@L}`^vboXV1t8;J zyu7wqwHy5V?fy7@zpx;bZr2`R&&>p7Wjkmu%`xNX%4GQ*D3i#-0-vXW?|Z zq1KQe%|vNPAqR;Vk59*lDUQ)B@9>OLF>O87ZEM#2)Px^+wfQ`jRx*rh=^r_%~C&j! zcmiA*ShV7L@k~o7hfRTNqB((&CDi#j-!KVqzBI(FD5Z!8HpJ%sfs zt4qK8y@@}(QoKFs=GOJW-#-6xNj4w`gxX3}W3~jEyDO#`zD#)-BSLRLH@a~`4V2US z;*&LXphVd4y-d&$Hg1f5LN(1VT-Nu=bF;VJKW3S*q%I@IJlBJ>?ULMVvAVd2dHH)A zKlGjb$Mt4TUftf=p6O}>25&(iXwd6MJZgx~hg=WhDxexSU)SOZcD&kb>3U^$%0=97 zIHtx6cqfrdiz%LvVV?+z5`mdZwYuzEHph}F0gIbOkydSQreapGJBt(*LPxyZKxbC;k%iMff?EV+)+a^^&;$0b0p(xum zqX9eL`RDw3?ba11XTNz-_bY>@rdVQk*k21UyHOegAh6*-!`;AZX;=dm+*eP_SDtv+ z;Sx-i(+bnz^Z})~hR*OJ!|_J7{FRTatlQROhXj(r@+?Lae7RCJd{PG}$kKSfLpXj= zQ-SB=j)rYySR6!zfz)ht} z#xZvdl%Mb#SLi{s2ULSONdi6da8vxl`QN`iA1O7>s?<9(^v6GcSoPRxmDVknSx|af z;JPGHF@w=LgTc#KuK|%rq=$vSEnzMmDa!;S@>D3f7^&#su7{Bm0`%Q4%HMsiM1`jc z{yleH^Ar12Fd|Nr49$3X$E>$5b^UqFrbVRgrxlxw$FOiQ)S(UKXhV5xcu8y=hm-5L z@G`(OFT3}7mgg!aaO?s(HpYuWD9Yi*avh08sxUPH-%(Qa2VR&5N1bTvinp{>Mh5{e zqL^XeS4^B87Af~c%rR;Sqr$RqaN>?pr`U{`OykWU%QJ$Y6=sEOD^~8?CVYWb!7#({ zaVeXFl}>gq(kl6|x*iSQ3oE5UBMwKk0G@`>$I`WDmXli!G6D_M7*(;tRQ^Pbn8LXL zfg5_5g$51sgZUohgYQ)Tvbk+}COBL{Ar)9@pzQZu(IQ+n!Sd+wd$U4S1Gk3LWf~p( z(I!&ZM;At&Kp@;7e5mP1?;Ai_W3i+cjj`bQH;&Xvp|!OmzF481fYNnCGcoU!;K2Dq z=mAJVzco~7N%8&7qVHl9h6jA)3#UE(?%0kA9jK*124i&_7B}9~&9Y2kYHVq1;_=Tf zIqAn(b)4+%PxSWthUywdIFHXs^({3jWk;zJp?Vz?&k!`{nwkfQo*;x++*V~ooz)T? zXEBk6=KwbY-o>oU6MP({zZ{!p88~h5uPGO!X+9rhWbiIm;2TyJL2YPoKL z2khw+C-kw;KHPlG&9iTh1Zogz)sYPg2={|xXxO%QzPqYeFqKzJC@Ku-#Bn&DcLC73 zUh`*$cHO;Em20mKScm7e8o2QQHh>gadQDeK*4?X4@9$_%z)R5KbrATV`I=d-n;SY4 z6v;ica}GFax?@o?ordMO`sD2CYue6uAn(emlJ`{EK>Ii+11PwqVUY(mS29wt&b zSx`bF7N~FV*WL1_PJVSabKX+s)c=H29}fNt2-~(zx;@~E0QMW13M6`sAuthPmMBsy z8{d9iWWYK|V8NEIs$wh=Iy3wg-+p}TxBs>NH}4+->%Z-yRY{&)($j1@eo=8+GlEB; zG#eab@Ye95Ac#8###*xpmhzuHPyqy=?C5XnTV&K_Fu!LGR-fK=%(mRj%8lUK%RAq} z*YSKYla+dw1FSU4g^(D6VKAPhgQcU8rVt}(Ap9uD3f#x{XiAivS}F7gaN>0^bC#kz zEb@5qhd9i<7s1KSo4{m6?(c&RZbqi8DK)`*%ub9KZJroz)}9lua>mkI=P^j z8|6GB0b2|}SDu)?_oIx|6od^L3uAKph50=2gseypsN@$<$^LPhUJOMqLuo2v+gPya z;ytoS=s=@_g?_=HabJc)UWQqC?2J#|b7ZEV`EF2_3*n@jKv(Jlfd6FLb!*z>!h`-*tT}cby$w&;xR@Lb-5l`wq7X13+ReMSQcsxdycehDcHGFl`V!6 z`xiA*22|(?qKlk}P=OT09Bc#k7jEZ3?0ktLoxQPKXLWkW%FhN^m*cV7CIC8k zlf=czdd=7B$YTw|1Bgmd09CUWUcg9#k0sd-a8_MWZPhR>8}`Pp6iF9P3bvZcGMmdK zR;)ED6}wo%Ge@iHNA#g30qBr1w~67szLd`e7F9~H!a)tnT3>F z!}f^=dBd>?r}k2JKQS|-hG*h}0sHZ#?VlOae9FUav4yd}q0B)vQ?+q*;A4`)G%cE@ zXi>rzNXrBec-NIHe)f-nvPO~NU8ZBZ*$=;Iyl~CtZTZ*s6>N`M*`1;p+5lw6P?|^m z{?$pqcbOPdsOYr7AD*tXFI(#wR!vc~YW42xmUXu=T_1abaH&*Rk5QG)dJXI?wsd)0 z|Dv(iUV`9{?3AVX)($M|a6G3p!{plNnB-X&VOwl(OZyd9csNwmQpTs$e35}DB`b!a zfW70gvb=BVeyxgc#`Ca4sWqob5?4BO1gBj9C`u-(M+WG&_Jz4DerW6A4G9I0%)q+% zOwbr)iEJV4v$1WF<{sZ_e)x@4;8_bjV&UFUQ5#g4Kf2+JCW|Fs9xStHCFqgjpPsOu zSWd*H)W?QR%OTzH8lj zq{N1ewZmhj-TO7U0v6$V;4kYaVNj{U_5`*~ay-Ga@l6|2U7d*cbX^`9o83FjBof#r zO$ClzhqI+U|3V{GLo7@Nag8rm-@I%rKHW6sIba$zH3dYrlZt6LdeEg_@#gyJk&h&-`Y3D z@GPL`>6$fb^BlzsnT%E|D#fYKU$NxKWM#*(I`;AowQ0v8xMvos6anPw%|!oTh|0vh(Q3bFWe;Ho%70vSd)mgX@C>+WFxN zglsl2;CmIPP^#=ZBtVD;_f)AdK)wJOdoCC z(td#E9t37ou7mc$F!vOHxoBMA37}o&p)YR@9Ki4T~xRWr^(_t>E==p4Is7c-e%@6 zx2^fl-;CQO9ex)JkU1b6O#vtkKlPW-OxVkdQw z`$sAZ1D^3~Q1{RaK0vXN4sW3hr5!|qrP0S>9d+oiZhlIi{zdz;+scO5AQ_PY zW&};Ccnl9C!bx|2UVmnL^+*A@r$z}P!SD>8deRF=6#V?X+V}1t4~^#!RdK9ORkM!H z$gnl8j6q3fm(%Mv{zDk&DG+*`}u6zOkL#(I>! zF^JJY^TihxckF_b#q=#&ed|r~)Wpo5gBTrRF@QjJ0q}7U>*`#3{Z%yOk8j&c*7fSq zLBQH@dN9KZ?AJ0q3$u+B5E{pJWP{42P1B%o>Uv=3XA$~gNxvU05w)Nr2Gng~Y>7Kl z^Tdx$Kuq_l>iR9c556#gMMTkj7m{QahQ)r6ehfabLCjos#B;qc6S;7{qWsRnNHX|Z z0MZ#2rvzZJ>IZt&0nzv+-HWBuX!$sfUwCd~ot%OGSWECtxmMc!r6R)^*wSY)N9RfbtrOS0uUMe;Nw5 z5i!D4TyP1Yrw=!1L|8T7UNB?&}7^&OnbzGpM+;(0Pw(j7J)Ui_ zQryL>O*eV+39xFeVV3qDpdGvanydM>i{VAfBV&%N`QTWp6<^nSFTJSetW#?9h2d=n zQ(}DLcaPF-ZA2!Go<;yLs)d*mg0_ygtcHPMJiJE_41>T9a59yQEy?k_21^v@2BNe8 z@)z1k!?{!B!uTiz=eGOq?=F4x*RML5-69(ErSOvS-^QRXFa=VGaj26KwP`f!f)?0r z7&Gu<619Y=%7b0mo9CiNrm&TdTqs|mTul#lpVoB#VXU&GNxbW@Og%lK$VlS;dUAzOF;InTQ`2> zFph+j5)g{%cr0`LDslOe!u}(EzDN{{eb-+tEbS{FI8xcU4_*nplMi@KQ7`$$4+h7_ zWmx^cKJQg3a-%UZ*=&fFqsoN&xwUC{Zj6+!&0)Rkf&70>IhH%bVUG zgg~MY@kF%v!9tM(LH!>#jo9wy)lE;wCDKy^X2ImcfzAstJh~Y0gX6xRk8ZyfCNM<# zn`i=W<6^S0y%59$18XK+zY#$~^&#ALO|#xRLp*J#n2;RH0mK5-A(?H0$)b$7#v}{w{{`adZdFcK^J>00IqYFD!k;f@nruyl<@Y_Oefg@{(J}1L z5(HbBW(nBKO-o6ftc0WrZXRmn{1tgn1_aCF?R)oK$n zzN&(kVNwaqf!ij&v!VozJ^-IeB_mlZAO!G?tSF#DgO3_7Vk+qtW^Kn?)RydMlAhT; zALyzt#ulm=7NYS7iwnzV19a7=>o^Dm&_|S=SlP@oVOHED8}){mp(^~QQ@Ca_ynhcz z4U>)XD~epGm5!PPaGIb)bgd@5{lUULVi0AOEJvOF+}YK0&;^CfEq*lkCCt?AI^g^} zFC!aDMU6<%m|PteGDx12zIZqG(a?016@n*sYRaL9HhuQymj(;r03;d(n(*pL5c~k3 zok@!#kWL%^SY|kz$cLB5o)It&lDPHs)O4MAXVl&`{16?yBzCqt4FI;K@zXpDLWRDzoRn zf%(pyUDG_n*2l&OCjbPAfEBi|u3{+&&ml7cz(Z3&*YUjDjvG!3#c^H^g=4Bh0a5s= zR6J2LsDo1)_za05uinzRe^S{oP$rV`h&B<#2Qf7AMgbFRF4asTtZ0gY>8R{65xRuH zAC4kJ38s_po&b}?8?=TWYUGK~%qgm&oP!1BjP}Cv#3e%x!+enJLm_h_`1`x{?MKQE z9%Uli++43Krlw*0aX7;U7i$6c_B6KLtkjQ#7K;1^l&0nMBz#aJNB zSX2Qo&Wmt9ZKV#s$x?MLE}rni??LpNJaA<6-JQkpDR&0^fZ1}vR-vn19vC)9#^Ko= zStg6M{lELrqE_#L$M*mCD{mN5lET?f*ufB(maFIx7+|@?CX}A`HN&dOI0h)ZZpRcO zLwiAEA}U5hz$VEgA&7|nVyO|eE|01?k?L>aWyK_-k$R1alm$WnUQ5$w{&?n<*F3pv z(k8?hNt02x6VM{e$oS##lMp`oB1a|#!Y2HhiIbC}L{c~mCAz|k%Co>-QyrWyTruWA z6b<2S5DoGUG18hA;jCq`$G24-+pmHL2%!ybFb;U}d?OrY<5;Y3wKWN6txo4PyI3=2 zk1Tm`@WVl^1X+>w^wI>)8jcH(LNlVM)@p!S;diXO{R^wl+>)=Ar+4qgJX*Q#7t6ua zl(2HC(3Doj#$8nhyY(lg?)vn`FI{ow*Y0_J!;;hqOPVjAnR{aQbdYOh!Skr91BUMh z&7G|fb^yw$g@SH65)~xV0=OmcegeW#s%(3X10FAGo(}Xvo@~w$JdY$!5UU<5mnwC` z9WUs(;6PRAaP&*$jR9SI_NtyFO}HnlNl!W2p(%w#ad5P5Z=pK6aghSYf+d10Hi_>I zxxi^E2I&OR6x>Ec32$m~EZLVXP46Bs$Fa!CZzyTPZ{;{VFoyBHm&{X7U;d2?7BO;d z|IpMQ9@|ZG5}$~N^3*n>V(|5jxw0pD+LHLu8QUa-BPCMzAsA4c6tk5Y76($qeBE+U z=?NvtIFZvv3SgUO|K-7?l$swO-TvrPjBUHIIIWvrr5fLST&>lFJV#5KN;EjN|`f+}uT(!X-GtEILVL;iQDWI`R60hq9@o#@9nvAt1 zKf1N^wfD=9@79-hBo0l`lf5I1@=*Q9YzNy-bGW*K_+ z*rAS3UX?rH_?m3)`{#@Du467ZXh|YwMlkQTq95GR`2Ia$F3Q_)2@*#MTv;)H`283E za^J=?Zris1kC$C{$Lm`^@tW`2M6rZI7hSE`bq#PE)~rc>x*naOV-QGh7}0Oz7< z*aT&}QL7@7Fz}j0*f!gri`NXdCRd46I;dA@+#lS4Y)5C3V#xqYdOh1}k(jBODboZq z_Fvs!Hyp2~Tag1N!hu$}?2(Iyf6@Z+<XV88z2hOwPw?0V4a{u5WXfh}3`of_v*uVPrr=Gic<4^jm?WX7PiaJ?xIGffz!@@o~u!o*|b^qS& zp5uqEio--|DBw+iAt~;UKi+@#t)u&9J!}%Rt@)!<$1Q8$UnDavEypUx!CALwP3swV zf2s89zmC3h2rPmTIYQ)0^(p}**tLLSIVONlCM@o9Sc-y>uxmp3kGnp#JF%otfQV3+ zY8Xx->dc8yyo9nPBHm<+-ygc}mX9Kfh(kMc+M~l<3QU zczAgWhM=w-6C9(}o&xP8uTN(nK6u^d22SiwNh#B|AU zvACS%89FV}B1=I;0{CAy{qaI|Q&)2Dm;v#DOU6~Xjt&|)vu`WD!*Bx5R}VNv^~6-F zDaqCACPOo$WgWAtbtRBu;Yiewh=n|tfFD{cXd;my!@S@B_tp4$x7K8rv~cIc`_9nY zATB1t@y}uT82p7m5rsFd{_ev^_D)V?7p-H#&+TXu2Hw~&uGw529s_vBl;@kR^|g0BAP(&S~=p3!^h+lzC;+TPTx3}nd@Sf;L< zBlC5)R#*@$m?6VU`6LVHp2;QAZmXIt3PQcE5~);p0ZeI*Z_@}0P1lS`F+_fe z#F~r$^w|rSow*{pcg8UR-7QbQcBm9(Jt5RY>1a&tXfE@|L&5k@OUM4F$tUS^zc@3Z z(lxtLpZI}db>tBnBkp}4Fxs|5B87tNZErf{(&7+3GozS7KetHcna`wg+pXBlO1 zh!n-thBf(-aa%QNEVJr|-{m-FX-~%!S9~%sYaUoxU(c!ce9HrNr`zSaIx}Ci4Ylyj zF5DtuFm;s@1R#4(wMx}%?O(aMtGnyio9_j>=BoxJEASpSeDlh`e(lBIzgax4KlSjd zqo?-rr!0xRHE4ie*)fPoIyRYbD`gx27|@U1ecFdUw0zx-yTqQJk^J1sw%BalX-;q> zC2OjrHm3zx?%tdf=ZU0%u@|7fY6r4K%vMaz1SH|NrG+zBruR&8Q+c_qC6!IZk4{yP zwWqUZ5A1sX?SC1c{hCM8iADXtdU0?=U#6_NB^Aplan0)rnTTVp2HD7X*OG8c8Xrs8x*E@aMB=y59c9&m=kK;6Gjpc#*2;Sc)+-`PyyWb1%K{(>H3p zDR%cnslPcsZO|6VJ$VnkiT74?Dv9dvf$zxmPn^H{!=FCuXW#gJZOKV=cQ-8ITkpTr z!gD*us;2FqyS9C_SZ__muQ@)Wx!%7Hm0#aisABFMPdpqREMg>rnqrmf#u+P{6h*7Z zT2(PApY=1ZCGzM;ZAz$z}DY|1vpV)6XcgsG}TJi#>b z7NICLe1&R}U;dkN?OAfIZb!YcQCcN-q88#RIRt zL^?XNaqIZDH|v^p{+g!Y$-+}#>QwC5&3~FZI-wYrfewbjS<2uub1fOiMM__<)eBYY zUq|KhRwn~qdg|>7uDOi@jH??SOV>a9wSbGY+;fL@=YMk^DP=P1+$>-`Ls2YU$*e!2 za%h*WD2?*;4?6H*dm-*08aJX_vc`m@sOa?Ha!Z)FV0Z`+hi1U#n0V<7^xbw^w{FpN zgQjRluU)>i>+kR8wY~e2tJmUi?&7@b<+yYc_UwWAo4PqW4=zPowzzfWio*1m{Qgdy zUxE0#B`|cSSfs*g1IJJ)x$aepsZ&qwIqT%=;UlGk$9y|*@)MM41~HLJ<|tJ$bj$Ln zvDsR8OVT63S5TY!laIeAW8tyD*$6a9fQA4o-+JqT8?L@(PmvbaZ5aN;ANcMbzn=Fi zwQ{L?_S&{be{p8%t=%7eV0!=Tbl_XOz=;}g z^uFM_Q$&HKT}2~eJVaooP$n{2pD^V|pIrXupO$XA-Bn$#cM;}fT#sfsvy@M**a+~3 zA^z=JJxb@8wtM$qDluNfA{pP0dJP(N6QOooc-=zURi*y&#c<$0mejE5K%~`5CJ&2ZBVK5*3dznJnqp^0A@n_T3bN9i1M- zap|;`pTk^zLm6{#sF{PzzjPaoaAfAp0%ZQX#4ap&`duKSq`NzmT#U|4|{ST4I} zag%NZho)+4+PFWwI*gAVPtvRaCrz^w)3?X1(-9HNx>gQ({h&IXMrb|ifm7>U8z;R@sr$Bzp8xhp5luy&;pQapC)lgv{@}IFyW}$ zv>^wC1=!CX){1{z-*WANusO0(@e{Rgpn7#c#2oFtyL%JY71*#4z|~YC*F?6oxid3F zT_;Tax3_FO{!80QNhD%%JUak;1yStiGKNQddCnCDswqdX49?B~)`WKyST0OimNh+v zh3;V5vJAxdxO=}HBkBC!gA=>l7LPfO zH!>q{>`6Yeb0#t=isxW=JyjM0xA4MQSKaWpubnIqAE1(mIx$qD(6_VX;d$}RUH`U>T310`p>TJm?*iEd9$FpsuQUuHZGJu zsLvuil6rYtoiHsiC0GttSS+;1W4D8rIZU z{mFCA`-76`ZC7;*b0~m~XC|p!E8)3-WawndDV2jl!QnVc6p3VtZEgl|;?-*bsv}~d zFPq67_x0PwH22QKk1{mt77Ao43trLE4ZT_mz#|BfFROljmWa~6p0|2w_O4&_j6*r!a>$7?F=VFo-)uhM* z|DwW*dqEOyrJiIdvs688WAo$popIhLpWZiV9-B~If&^D@`vgOfA6(7^|CjL($m@SS z_2TWlSO2CEmV}aFX*-?<%JX(Uc*Zw=dKf}DLzu3G^}6j>e0XX$PtN2C&w{_tlna2Z%xL#G6hPG* z&B??2<_{jh$(*_?WLqpnfd^1$ru|BZN~FAMg(b1*<*QtYBYdih|v zqQfT$F4K(JOqR9k)iu4zfrE2L6n$!<^#w-@$Xt;r&iVNU8AWUP;rRM-4 zUfi0V$}7IEiOmV{;Sl8J#>Q_sx98feO&47MuuL14?73lE zsg_YT&LzO>d9|v;^AuQdORHvSy6CdI%5im#D@uMQmbl^UH$`K6*ndQbe<@~vlNFaFwrcMmCdU)n)Y@%=}K#;R^! z0p?C~nKYe9!h!SDy6@O$ENgjwmoZT$7W3X~Q&iqHTAH)f;+$bSpEx=8k2i~t?3e>* zmC2-XEx9NMykYHH2+QMRQ+!MUJeWwObkkyapL4 zXo?8ND)!0Cvpa?>7M4HZJf~EQxo89bg`e(qDb}L{JD^O*ML7Zr6H9{YMvD&gPzi@`m^W^c1_{JM?@pBX$_aONQb zFP9S{CIb%(>H$mO^TG2MmRBL-W zmGE3Yn+2fh7D`23Gn$$+hG_!C(y&?=(-L4f|8-8&g)5r3{&>`}NxYhKy^O@bqUjD* zE~{c^hwE1Y3ji>w$m*v~?6~g!Bh3<9Fm2UxhGh|x&LoG8K(G@;V?ry{7?&97R7Uj= zBz^yj)xAIJ?QKtFZWs*bczP(KrK3yYNH_2tOzyR`vel|7*Wirw2oPrG>~WcH>%=ZU z*D+n9{rq!*ug$*pnq4lFumQk{5;1H{HB^FU36?(n+ux}a=JLme^9POsQVeiF4Fn>` zacsh{@FGmXehLaJ!kGSqbXs?dX>q@PzWUCHMtlAR>r$hI>TJ!g=z3TH!uT{qP!ag9 zQ&ULC`pD+wydJmwTG%yClnhehIg0=WZ6^b}Vu*tUt0}>=k_ek7aEQfWNp#ZyD*_l6 zL%$?}R|D^w%?N!-;fdku=bou8`i~n;3;BQN&=F!}Y-C2^c;2=N)yLaCPp>lqv%XC@ zns*rDjgfe!rPa4FE$=FI;1x_%&>msTg}R3iD&p{9oc8Uxubf`$O0aDyf8R7X zzQFSxhKV;xBxO5wlV>?W9X{r0MpuG*_@?%^MjiRk0696AShH4}nFC+ebn6T zZ_D$`+xSmk)cVve0T zzOAQ321Ol63JWG<;=sflPq-&8O1v{t^&RKB<8!;J{%F}`L+PQY=@HzEVHmkwvu1-S zp$OZb@7Vb1d*0brPkj8IPn#WUF{Bk*j4N+q3uM1eh1<0ZjSb!I`81ATwUc%zP0q+W1DAV%nR@ZWFQux9Ul zf&0uhjh&QKGys0c<|V6*Y|=moAsT8NBpHL*<`XZ zJj%A^npUpKtyzb&z5#lMHS48)$4mp;AM9Gq0c-=_jbTIm0}Cz4bo^SC6l3@}nI?dw zRDRZy>(^bs_Sr+)U-#K|KnMbxiqW%m`;`N-?Ey}KC&tvgXIg5lhG|vTJAG9K2d9EF zi3=>x%$C$uea&OVx~ga=^>CUSynINbSfMMMT;1z^|5d#z+woLFQ}s+Ht(SC40!AcM zwQ4FEFP18CV{ZGb{nej*>(Uc8JaFu&S*$=LlVK6Kw$(YAtEzRIP!!!0le{2Wo;M)V zf$zmdE?=$VjV;SLra`RgB#wD*xxxa!js{}|jq>#9cAi9!WLwRv`)Z@Jh{`Q&Q|-Oe zM1kTM8e@)D0$O-)us|?E0G_d0dGK><-aAtN^FbS&3dPWwl$dkb$+^7g&gjV`D=SZ&q6ZOV16h9#(;u9FPICV9uu2}Okv?c?Ya3a?&MN#Ay9Rc3svKS6xv zs@2c!)&F@&;d?q+$6MFx?HW^4tkIU>yEFcK<8Z!!lF_IVS+C*6rmnJN^P3Zdz;i0N zOv}i`xyiY@2EHipPhBKVmOagISb_iUTjr{qchd=iA4~t_g|Wqpm(*&tY$l`V#`Fx< zlIogu<>tf%U)~X4ymVfqF24K6#pzvzd++d}(V8T3b5$VYKvr1NwfS>S&E0g3XF2(A-tX)=ghC3TPDBF+g$)+?snnJe z`zwRH7WBK_P(u`RQ8anuW96&Xk$>K!k_^kGGOlfL6cIOyj}M3}M}u4JZjlbox}9mF zVmkFQgd=Ra0M8{4jFpg znP5d{0)_LKINh7n;%R+y{??Cl|Kz#JCl6{%x{^!!M8#7M%@}?n!vR=u9Y-#nvpT!H zU3hCm$NMag1WWA7N=K%vu;@!WQ&ixMSABrIz-GY_Pb$K%w%7k_3;oA0thnYEP%#4Y4dLAw?b`1SVYM~a(hfhuFV27cnpNL=Y0f2MEXz2uwPjW8vGj6SXs50k079oz-Eh2p+h)7ET+{HX z<$&eF9vvs#RsvgQu~m*@JQo5Zb~cF;l}OOdSzpufVh5n7ro!$&a?{c;J*)idMT=}{ z3C>!&Oz1}nvt$%w}U6M5aEbEmIL9eS<;PbOt^cG-f!Td@eu^)Xw4mFQGO zcOe8huFdL7!D2NFJR;6Z3RTfPfn$9x{gFr12QGE)IzRU9XY1)Scyquu7Q_=LFMH!7 z``+!MU90bt*W9>jO~AA5eEgD&F8}-5_4J$Xd4K%dtZd{M;)H(cjUiPOTURb=9T+cx zdFN8FZ=?nQ;obNB_SWFo0Dx>%%!;a;BZUJrZ-%2Y>0op$qQyZ}^+|_%9KO#w&i)71 zfBn~^iiI;--CBujZU;`Ws{{mAO$%6T0^1~^U?d5+T}WkgfZ-gtD9Qsw4+kB!MSLF{ ztYUbrrkk!>N7oPE5Q_^fS)}lZ1Vkr$Zaz@;z_y?G>e?rd+EY49x2JNq-}&&RXBRy6 zGw-|~j7+zC&bl_5AQ&-`0+2BRejfO?;Ptp1BDa$$usSS{sP7RnqHt3j>iPfdX*nS1o{ zH`gvXgKs|M8qYlQJn_#LsG1oFcpuOobKf7Tx|UZg*Q=_Il7#_ZH@rAUI=XGl7Ks>e zE1ObO99>C7s~1s~aN=%p8f-1* zse+@hV$AS^(^q7gGCV<4JiuD{DK?%8u+q*W5E?6ZoeQU0qyxtRuH+bMP%1)*Bzc~U ziSeFJ;AL{5?5he<*Wg=jJ-2oDyz}Tk=3}cn^;D)J(dR$*_rF~Ep;xw?{n2#O++APT zsTdISNfw8k9H|5?i7=OCVGER1s>&u#5G4sa>}T_Nj)8M;*j`tHGimm~&@B8qQj$0p zcmpg34Nj65fWfoCxwmHW~QpLtUIo-s52242vq2ZgvWGKVo|WEA;T2rfM^`! zhNWm>){Ts+-f;_9UA<{bX3sQfV>N{z)e)m`y+Ce z+EwTGUHbD$dh;sBwf^JJ4?XmghlrB$;L6?ym#-~7^r#h(s&2C!8IQ-|tpxxD;plO@ zR`gVP^O9y*zQc1m*f`HHyu?)NIxdE!ixY2+PY_F1V8dOpX3ony%TtWwIfVk1%Fv~}J6-S=qr?u$(v_ON zy03}mP&3za?D1K-Bh7Uusj{lYM3zlr@mDm+t>Np56)TAShXDLXbk1(GcHgbdYa4S z?7pteLi}%ceY=g2&Uo+#Yku}?_w^mUXNr}H0LYhRI}Gi&CIv0j>a}FN;DlA+SY~C8 zoY#EWCsoU`Y}@fLbMT=J*}*v-wSzf6$@>?tBpH!^b)X(dN!zjku-MqF%$R`L1D_2` zC3D#{xUY-Xrr(~d0;F?GC91P6c;}s?r>yeJ1=Rko%4D@Fh^&L%CTP_z?gPDPP2aBF z1EwA{C3)TQXDT+3bqFa@Q!o=zUmUy;PsBT0)S*FQK{4r(t^l@?yC%%K%0#<_Sp}G0a|? zf0vrKpWDuikA3AVVU3`DZg&-o8_4>uL9zy^0nPgfi*RCcEqa zvTe%eS+9Y;E7{#CCX(RG zX7=sz@&)V?09-XWNpU>i)WV5zTUP>0dGDz|pTH^Gr)xwa{m4`Q_+2wyc=Tm@V*KVs z+SVnRkK8pvB@-gg#Yj8H`EMLkQ79ZDA#4E02|Tr`J7$?qPqVmXMSSzR)*nAL`Q*D( zCoO9Qoc8vSVpvhhm+J<+?QeFwSFaa8yu^EY5GNIa9|FJ%FdYsA`~x6_7r?{0xBYoe zpsc%3OWpBe31TMMk|FjSA_@i8)Lf<3pJG?0ndc5D3|9HUF>xH5f>rA6ZJ(VlVIMd6 zdcfQ~s~aXG2oSxP1_Pk5+rl$#A`;RiqCSf-OCd=Iup$qO4wc>dr@SGaOSDwS0x55rGH$vAj2%W&_ps%1SUWt<&InDfWl2N9rFK+cx#_ zd&Wx0H<~-7WY#Lrzyfupg|T9RC>HISk~w|@_%L`n&#{c@DP?9Bi;{th)MV22u=!Df zbCm(oqSs5kaWBWQBSj~#`WLL`U!1H40xK}wjTd&-r)Tc``y5)5Bx`-r6)rUo8%8)l27Ypj$533c3(9I)Wr7E z`Jqj*FI>{|_;wjJRj`DaatSgHXu|Wp{HIZ%nXpcHu|?CS8*oyL@I%%VrVOy`k0Lb# zFIo{wkvISkGj7dI@hdM9&pAb2xs)Lq^$s4|AjCj7EH@9rzSOV^0)FDf>ze9{W&~`t ztj^UPY`qNoW`6ad^e6tI0to^#b>fovSKVn{K%sR_(IupCFO1)9dCa*1R*67{lCY1jSOiHW^KMyT}eS+0L*N^22QIa+Pv z`LStz@2DD2!A3Z@Ubf8C<)1w}MPqscWk4Xj+pdQba6PV$OG>qN_rRxT^QE}Z44f*( zQ~9bH4X8z=;QJgy(ZC3Gogzqq1L)#6Ck22NU`Gs>_~#*O`Q*g+&u@8sO8o2pE9u&G z8it{$(DU z0jg9Iwn{IK!d}OoW`^Zb*Kb270VTb=5=sEsQuLnyNemw>lU@$;sW2mt4Ic2rcr(>xw@bV3oEC?Ljkdx15&f86^sDzeyBc^euR<1)&)ei*3MwnW~fYNV@ qo|u?qfNwI0%=!BIW<38Dr)U3^X&DULvWOA@0000