From 6e3072155b3526b2b74e8b87436b8f59fc7f8430 Mon Sep 17 00:00:00 2001 From: ntnt Date: Sat, 17 Jan 2026 23:03:26 +0800 Subject: [PATCH] P1: visual --- README.md | 6 + data/schedule_barcode_kmin6.8_gap14.png | Bin 0 -> 76542 bytes data/schedule_gap_deviation_kmin6.8_gap14.png | Bin 0 -> 63999 bytes visualize_schedule.py | 228 ++++++++++++++++++ 4 files changed, 234 insertions(+) create mode 100644 data/schedule_barcode_kmin6.8_gap14.png create mode 100644 data/schedule_gap_deviation_kmin6.8_gap14.png create mode 100644 visualize_schedule.py diff --git a/README.md b/README.md index 61ad886..9d466f0 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,9 @@ Optimize a 365-day schedule with at most 2 visits per day and minimum gap constr - `python3 scheduling_optimization.py --days 365 --daily-capacity 2 --gap-min 14` - Outputs are written to `data/` (e.g., `data/schedule_optimized_kmin6.8_gap14.csv`), using `data/kmin_effectiveness_data.csv` as the frequency source. + +### Visualization (Plan A) + +- `python3 visualize_schedule.py` +- Outputs: `data/schedule_barcode_*.png` and `data/schedule_gap_deviation_*.png` +- Site label rule: remove first 4 chars, then take 12 chars. diff --git a/data/schedule_barcode_kmin6.8_gap14.png b/data/schedule_barcode_kmin6.8_gap14.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4d1c80c1b86d9d5cbbe48fe92232c8783c032d GIT binary patch literal 76542 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 ke?HL`6beOl_l}G@3Pth} zg*w7Oavc8BUJ`5s{}FYT)pgdeH+Ob>;D|;kKX86*WAAKZ`H;aC?dW7_Z+D%C?;4LV z7sDfG=f_T>yu7ymzJtf!(Sld0m{}9P<*&zg^qf$riwVd-hwi#Oi$tL|t?$a*)O?aS zKYSuqb8=H;-tCauQ5(Ofnw*sPZhm`O%d-Bo)}N(ZCM1@P+Ecjv$HV#fcg6PuB-V|k zZ-!8lbEe+Ecm6Et;ccV#P4ANZ=iKu=)z`(UiQYy|t+*Tb7I)P+e?l8UQuVGSJPyM} zAP+yL-n0&~KhNR+jxnN;dqp08X{`VI`Tuw0aB?Er!0s*!3(Ez%ATG=uee*bU7e`+H zoAn>2Va~svQ)LyKHfBBS$kQpZp>Goz4}My1TGA@iJiuqx^jb4NZK2XSjdd&*AH6?c z(jGs-cj#Rp>f*sXp&ps}>}}##>-TqgLoQusC8L)VC!-PKT3Z|zvxTpar6B1(o9ww* zX>~-rsot{kj=HvQgm4)-uN!St{In*ZaU+mI&z;k&=v&HZ8M zjk5gN7W%#4FK-F|g`y@qbnVX@?p;B~s&uW-z@l4KVolRyd*MT#;re)(lnUJYl17T8 zH^zoP{DJwm3pz?KX_kU}fyZCSG+v&j?Yc$E9T{!t_`P(oYA&l=RZ7B}&?+2dcYVYO z{>!`VSveWaX>Gr#Cb`{Wo?shYD+KezL1aE0u(yMkve0vl*0;(j{r#CVyU?iGym51M zf6pyy?whOQU~oQ1iFvC+jERrCzUM-j#`gL`Nu$SHK}=!wVwFt_P0%K71Y7k5+>5RC zg#ac5$IIWSvgv&`9@K4gD!LRnGb29ok2Ss=7@wT8=PAMx?CWlj zwuwxqKEqBG)U06jIvVDR>XV}kL^pmu%d`1H%3JgLnD~E=oDqNDVC(z)(}`}L>Us5F zYfE+8JhjUWG&tsg3sURy9kRDQ_IHWh<%4z!4Iwnb{c|Qhn`mlDuP5swKmCq$g$R$t z9+S|dlA-Xw!CSl9WmqJis=Da#g-kf3VG%Zk>Y#nSce&K0a-s;Ir_B3aTDPI_y8XRv zQG4d6vSaZ<#5m%bj)}LRr=j;+FK*KW9i_$L9Y!J$$dI(+FPq}Ea<^&)%h@fpzu9he zBnBI_Ha@W1D7B|H$$vG;S$(V7WDl=YkS_yOHg;ip=;5!*^p`$|5mo$@m~ zgmzU`@nsp0b(}?syVydhhW3cfNc&(AZ(Z!M)t)KB@z#)2|Lhc*M!zBZVP+aM8%O zc`nt))N1c_mRPh?mziQC+4cIuNPGfLT?zko1v4gN!1RORgDUxDKIiEUt5Ht=uwXg~ z(ImGKcbw-}&qjCLlkt#}O>$|9L#IPSIu4Bqm zJ6a?olnz1gYPIp0e#p<)B$@+G?Go0d?c^2b@NU0&NdB8Fo9T#K_gTZxM$)zEbHo<#DXy8%$YRmO@vqJ(73;0l@ zno(IQqexrM!yykvpPDk!sLwlj@jOfkliZq~Pef_49s3i`PL53_*oO*G;>K|nDFw?O zNLDCsJ5FPBt$&W5(>lt>mr-DI`8c^LHm`7@0q0BrT2uEo|5vs zbKXty*~)Q7t~mO}RIDjS%Mz}{LTG8VTa~wySpL$G7x90aq1 z^;)4}=Wd(IPtQ*1#1gkh_v_}p>7M-bKS{7?Pd2J*=BbY4CZz1|SQKs+FAUX0a~niU z?(YyTjErwD)$=ZNWh#~{U0$ksRgN#GXf*c;i%=2G85q~-<#Wd;xncXZ`|J0#@`M`P zL)XS?bnpcqMmPo=Qg1%P%snJF4y$Dn=xs^nK)vt6IZ z>6O1e%i`-g;*LMrT>7Y!$;hQwORpjR@$Oo`&ZbYegIR>KP|k0U!E)PfI?wrVW%>2j z$9iD~Hzm^&Rg7fhQWMcJMnZ!BF}(CnBulN3t?-Ncx61vsB44BEw=DeK6JPm)^QC@8 zYN&kY?``44e3prhjDI!Ht>rCem1{p*m*cy?2T3M7*&}xVogS&)9L>#HQwL)klk}{1 zeZac#l*pRKh|vSX*Xs;1L$J`;3mdn__~ zi7(FHl&V}2?Tu=lfnn0Sb}Mo=M}g=5JO0WyH`TJT`GQ<|FilK2=cBJ>E+ub8i@i`2 z%~6cu(c+=H$x!*Tu;RFrvCrltW(NB-+KRuZW+QlFy;4-ok?n8;q@z?Xl4XtYN9SZl$Iq>u zk=$VLtlOMQz$b7|K=NpdP7-%tF$HobhDjhu{4&cJ+7`CSYSwW>E9&?$D zw_ljWnKgvbr}*qFH(C*k>%0MHp}X@6%Js{d3+uLKaRiGLZ|zC`UbIrc&*a}<&PZi! zk$A+9j>GON>h_cuYrla{wAm`_H&(PRDAT4ab?CTx0v)G2Cf?icP&C7rLae}NF)QA4 zX%xp~_Q=eS?tCqNMWhk3(e;2|Dw!i9NpNjV-^g>Y)KVjFGIy&6b@=|D`%8TnOe4(G zyr_;lGv)FZ_4itxw$G%zhT2tlSju=q^drD6gz@M_E>*)|CxL9N>BC=IhCV_wXO=+?}!p|^YfMYL?K~x|Nix* z1eJLf&!Qkp3)x!lZb6eX0U*tXwxtxY7lIN~ll^~%SF%x|G?F%3Q-nowH~<$aR?lM; zDH-~5G_vz+dSI)^*KLdiaXq`Y=+TP)D|gYOU`9|qV$u^>QV znIRJ%djC0We|dbTVe7SI zB+YujT$Rjl7S-_6I(#LM;?beUsasLs4=2rir(n0Y^HeB4@aD7Q=&&Z|bD!uS)2n+- zgv(<-#)!Br>mR+=d&Lu5Gj_3|Ot0HC*}!7tV>F=Go+rD<$UjM&c&}+$b*9N885oaM z(lB=Uq$ch2{oe&Q(LiI*mC$x9YhvOsg(M8yv4I9T8rw*Kn}Rx*GM==P_`S2 zjYo?2dX8fy%#>6Pkt?q3vS@cVr?FO8> zjey3ak?U@!tUX$qizt{#m3e-ejeQN!DwHyBiPfZc?4P5y&R0YKZf=RY-u;r^N0)c- z2xa0wV4v+AamY#4V>TxnGh?#9)qlY!cE7jCCrYA`Urqa6AvQ*&3Sbi^pQ}*cB z0}y3x-_j<4xESU3WQl6*iVAPd?^{tz#T~auTZs}=*{Ug$2&`jkUQvr`@*%*^wCJX> zuW_(yLn3qOY;K-;H@(;Io0)hsA3U?$Dds#SGwqy3>NAQwm1eGmj*gixKG*N96>;Kl_WCS7k|(&^iNyxAB^i$8fU zCkQf{c_XX%YR7H8fE4%Exa(JGp$@X_%h$t=)^E1jt81)(qcYJn5M?`@>Zqq9>O6gK z=0=>jyCZHnw}tWLWp&r&Fvz!>`uh40;wpHMA__B^zH_h5@6eGhtGt3}3yM z5IV$~o6h-@*bbH}yA8Ya8{+sJt6Uf23oFI~F+W3fm$DM<6zIKI)wW>mbY$oa;S-%yT!XWe;@+UWaSvY7 zVp@b54?o}#>r=janP@j$g+6qrc+`OlNwr+e?GO_a%LlCT=9jQoop0`BmoR^ev@R@zz<)p(0EPb+GokL&X+jY3D?y9Bh-k*Kw9bwd>d^z zcMAn5?ma0uIs9i)p%^k3pc1G<2bAN?6P$asbkP0`S^+jJ%U^bve2CSnBc4l9=#h6y zk#RXHN2`M`@-e{$S>Q&K#N65j?ooASA!P~YFj6;jk+9ND?*2OC+jQ8gO`OoeG0NN* zuu1-tB5Xx+ceT3*D*DZGBoiqh@O=Pku@Z(b4OIz2PtEfE7(>UqR;RO6lH%=ZmK)~P zq8@yCf%fN|lzrWcRFz2CK3@|lSIG8QSb>}G8~dOq`mF_d0h3>o~8 z@9&EOXQ44#=UrmW^|UOvsxUoLJMu=L-y4xW2QMg)UAFL2`!`4j^r246wV6Xw3{prT za4vsGz0?V+dqt%1r53c(boIt_0oz9EY`C}4C}nt|0 z4>%utKQE%dWC4>e` z$N@9q@^p7$K7A+|C~zieJDq^2je)TFuit(a9Re%6mIKcVaBK#4fa0^`WLWEJzt0r^ zq%mo=CtEYw-Mhrm6k|w30+wAFT;qxfLbmFV0lNDP?30jcvIp+(mM{ey>K}3jg*snG z`P}aB`$wU;NdC(!g8%dLkgt*K8eLI3#&N)G#FTzM$(aGsR=mt^Skz_y2jAM#s1&W& z?@u!j(^RgTx7_&#q?e>3Q~*(u2n>&g+PxH??3v}eJ7^gw7wOtS&bjo=XY|C+nYl)WG zNqvvD{zBNHvR|;oA9YB6f*;|zpl&)7WyKbRU_46qyrg3$qo3mvfNDbZ2^ZtMF)IwC=+I0jPnU zArWU~v5JNxabn(~U4ocF>-vKcA@I0set&*$r(Y5?ml$aMxal?HbGy?pwmqb~{5@Y0 zfag3FXVJI4jUawxyW|szwxLXquC}ScERhN2o@f^*C{YVMx`(6%tnv18BYk%>Z+)T! z!pf~qr-x;&FAP$ZCSBvbbRUH}`3T4yTvM791X{hT&HT+=5g}Vo0D^YIdP)wFM2NI# zvPl@ec00DQtaL`Z3esO05h~bqF(R-qXE1FUNHLSJ5AVp9+FK5LZpYe#^Vwby?iV!1 zF^ihRr8m`2jqu)HD6{J2C@AaGpAoL#RHi&tmikF&S<-=4PR{HRmn7`j(m}gw^r)Lr zmGfOlcRKMR4iC5BTe}fD&?YX%*n@omGW>Hp4o!w5r%=*|Xdwd5KyJro5uuEB2EN8@ z=1Q}H<9C)4fe3^p5e3N8t!I%GwYSw@pOwX+{+B#1J#nPg(;|$!{0CD()oiYw2kuVJ zrEOb*n_mL+dHAaZlp1w6tuF%w-jH5NY@RUSBTCEzL1sBu@SzR+0EsuA3jtS?V>!j- zY`?jz!bZy?6Z*m6xl~bpvY^sTg`Jz5+nIv8jO1h@RFC>*;j&!-wv*PnU$iBOWe4$8 zv27;@&#iqrL9e7LxoPIQd&`s&xf_3&b*poAEb^Xf1AS9D_8Mc7 z*UER?$GD3-QJfNF&)3)bO)N5JzQE5LQtt5EYcG+UJ_QVi%g7)}FFC}4dkmFZb=>-; zclr&Tlnd;fKaBcpE0}~iLuB`~7m8=KQyD0?O+f1fXhw<6zrXEDVKPke60VoaTHa2e zjX6yGjSuWg3wFQp<5F_sNZy%&J5eSp*lF!Wsw<9|?TzuU?j?W$J%Aufe>@CAFBm#} zyU-1AB07^jIR#;$6=y1evb0F2*4BOS+_{CX(TtXyF;rgM4r24kIc;HHd?h}a)1a_C z{gHWVd{lui0RL>4KE12e#fFdGKF6H?5F#|dW&|t2vLX0VZ=Yo7!uo74=k_*`#rCd- zOa*rH)|=Km>x}(v*usFsXQxHq*;KA<(=WUlr}sSrMOfW-`DC<#dGqOu*BH28IgB@C zj_$30KyRPN^UYE;lH|I7E2Hn1vvFIhB_=O<(nDQ@!>GNn25und?Kk(pg>UYpz-?Ld z{Y8^*4UDSZ3|r-$FSUSkvKNP|Ew<_Vo3`ePQbHO6PAT*Tcn5Zx&lOhNMQ5_A3pZ|7 zK#(bM*D|7bTjf3}n_wDO5t^$Jv-_%DqmXR*MnJowvkai40lkKIPx7Iln1Na^ud}J} zoe3?i7-vDLx~urZ-3_{f7zedmce~WSVfpaJNa(_pXmcLL5>@je3?9LV680tiF25F$ z-U~QJz5Sazw1Y-4z!=XZHvcyi+YYee&37p}Rmr!hiIE?MT@9iJa~6#;bxX@u9E&%Y zH`qg+KG+R+0qYa9^6OoCD7G->?d_LYz;p2Y-j=nDA6l*kB${g^6lzj3tyi9K~$ zY@-m2VUud8zyZ1sgHh$d{afint+v*+E9Tp*E}E z{b;0208v*sRLje_eAsnx6;g?|r}zPh=~RK`$TLeR(iJZ3oMsN5*9wozWR$tPWhnKd zre9vAlm){y$?+ZN8ceVy;|B_n~H>h;|YLSyQCjL!y87Br*I>)@mCJ{+H3LgMlTeUYUa29B8K?2gL zDu7}-(hhDytB__?vERteD6?P2r5^%ZYq64{e3ahnUABFr6^QpSc92-L>Kc(s3r&M; zZG|vmP1pt(-lle~4`+>Rm9lMMB-`7Go~I77%MkDN`n_ieAy(?Wy&h%fhID9>pjwzw zmD<%@s7r>}5M`HL<@tT9sxdDBSW=7aON}?&mQp-zDt^5vs|zcdP5!{)HtOwGZd_zs zi`gcu;8Sz=(&Kf3X27hC`_zjSOmFe(-;r&!+71jU|u54 zeje~u!K%dGX1i~+x4hPxE+AS?BVpnC@_uw1QkY=8gC!$!4FLe62N7(VRDO)?CSZ5J z!>{Jg^SxoQfhuBcy^fD*405~*aoEiSd6y7B9?c#5CJ2Hx+BB{rb+rr5rnEf?{ybD{|K7Z9mT9Ijvqd zzRDGO$wzGk9QMq@hfx(O6EBBZKy=ZQ<~}&3hi1Bwk%65&#VHPnW8`|=Q~2UWx@Ng6 zQBsS`Zkvs;`%+qiOlileg4S}+H42A%+U?I;g-NV86*j)>l=RuznBRd4*$CHEdc$eT zEY2$#n2yT605#`uWfmwWNQ!d5I&8tWl*}}pe51;zK1aX5Ax|y-9BIIOg@gTSuZ{_tI2i6PRK5+w zmwBct6T#Xn`vy|e10kO>EcJ~qXOq?wD`lc^s;YLGPwnNeLc?ZEc-nv^f2J5$0qH_cT&xqU4&bl^DM!Yj!H zwv-D?oo5|WhMNp8#2M$F+qEYY9tpYi>_5FI)V+e0xC@H_-D+%!o$~ap<(JY8vXm3F zANXwA(1-u}iSVoMTYzf3SKfl4>f_&01ZeifpgD1n(l}dE0Dj`wf}xvP*+q;6Og{sy zpD6C`5B8%c38s-UEe24(DAsSy=A9$}vn1BfmU_#~FD`|*ZX?YZX?OPd0#4^>;g#}u zG#RDShOyN|`&^Q+8fX*gD;@$Yu081j2QIphAv5V9aSAlK`$LKbunWs70 z5*iOPuz)#@%!eu*^eEGHc`)ozRB=v@g8?m9qmY#|MXl9y_R@VyXDO_2%-44r7oTh6 z-nBK|Ip6%1_^Ae=k1@oJ1$*BFqZBRneea9uf=&z6qRx*pn;SPnyo1nVPoRMtBJZ>q zlcTh`_Y6QiXLU?`f6Cr!HfFo1$xsdFunh>O8Pk~P+;!Kb4W-fVS%X!I7htd6pYJa+ zd47t{A(;7y{7`+btP%f5ne}*G3y4@Lb8A~osO#=46BwoMRECdlW;V;LCnM#d0ra;* zbFS4_ow`<;F9pqJ9@-m@X3saF!+(1QcsC3>ZIov~BjMCF0(5egB8_~b(1F}3-yiwp z&f&2}oZ&NB7$@?6ceC4p=rIrItC>f^|M=$Qj~09N&A68^%TwZqYG7DB>$cTLFWny# zW9UQro_R(*1JQ%pXua6C_sskbq1gN`R=%MqbId!3Q+{|w0Ud_58fjBClMU#kE%pgc z%xN;5h5?iX#5GwNOdvUSgJag&P1!k^?J=&&}>G#T^F@Xsd>J11t<$II$ z_8Upm+4QW3{~4%Zn!96$`EI00$|Uz)MtKbzsu&zd>X6J_eHU#T-1%g(C}@Q_-q>sT zn}?-oaM$-aRpswL+Q# z^+$mAQX#XvNldS~__pFZYl7wz3I1l8tkfZV9cHQWEG`^y5Jq9H10T6B8Ei^b*6PHJ zAFK8-Mv`efpQ+q>a^<`P6yxKmCRtXUG3SWt1S~owq=kycuHpfLQaQM~0XJfN0^OIs zS*I5gpWNuoUTyc?yKW1hQ*V8!sgB|j`ZK&UX?S0jHKd7&g6O(1P^P$f_EOMzA{25D z(ZsK7IS{0Ag4&YJfGFr6&i3TsoEPiLS(%y@&3LhEc?j)!Av)lcypExRtPt(4Yo$%z zS|&8paAov-bOiIA0^V?2R<{C~=%{Jlck`m{=++P})iY8%kE52T;;cF5+=6#?K?%W8 z8|{S4ar8DUyU=)*&Y`wfb`|}fSxo&zo0|$x5Wm22q(^fyzlz?F`GS>}RH8if5A0Vm zubn5fN#qWy=-)n>BD7MR>Eg`E!Xw1BLNAjC%x{Pup z{sy!WN)pN@I?3< zAv=%psgj+|V08(CSW2;B;gO8DvNz%$nL3}-?&}PnOAKJ-`TL8bRUM3UdcU7#w|6=uQ*5Z!?<1aO$|iFuWrel`X`Sc= z{=`a}RHDM}bPwK}HI>4GkR)^|>TFJ6bI|!Fkkm9~!G<24uf_;DqF<*`yvMW^4wcmb zEX)MNTc^DQ!m|lg2q1C&z+of`0avDg|K{zb;(~U1D6PhGEwymgF)W7S6HhZ&iIQsy z)npv={i}=LAEGob7Xeabrg_!b@l0~+!mbXY_vssb+;#)s!~XuQ5c)L&@K*s&X~m|@ zRiY(-vI5rQ?@WxD4B(vU*PA{^OdjiU>i`5t3T>q8$$S|vu}7ti3| zIfY*yL}_W?eJ7=`M1zuK(HbNsHRph&7$`ODeGPmay9l+jhW z%@W3KND3!=(sXP=#{5_AQ;!vPenLa-Lo=0t;BqpS<0UfM=@o^{q)MCH!xh<~si`ae z{DK$y^^~_snbMuOr0jiLc4~kk24>DRKJQEsPfE(M@WJ-!GlA=VSQd4<^HLtmLg-A|bXw%iFv=j0wzUSsU15~^>1yt%oFO*<-hz_c8SR87&_ zd->D-+p9>!0qhe^DiU&GgYZxxQN6KU=E+CFRsrO~4jLDQ_m`*p3Jjh*#}nd5l@&KP zD^;FXi2z;KyuJWa+a`K=tZdpQKx?E&(p!Kz@U1u6w9fByiF{sF6THOR4 zoFFxOIy3639ClKDV@ly}2)$IDP28<_i(b8D&$5e+_ScH(3C9I{wU3%jew}VTR@n!Q zq~%IEn@LQ)%vtSC8<{^bmzBGtR!ccLXuP*$A=V@-p3UL%k-UfZKSL2<6#ePSXc{fw z2J8A9gxA(BS!#u&<`Wp4oRre0cOBGOnBdw@`g8vJWomn(38NCuc0RU+trhZNP8UA$ zk`IyVrKczh9#3j7N&4~fS2%o3%^A<)@oXfio0L#&zWEcv|P`x+ilf8g;}=B>m`M=9=GW}@q`x&odTj&F^nc%yvl7UIb`B{Qv2q@ZAO{+ z0YmKg%36~X-UXOp_PO5%X9a6jIIHEDn-%Pi>LU5nb@_&^4c5)E4seEG-CncX;?zjG zPzu4lSHM$MtKZjqzVRtX%7vUl+J2{@ z=u4K+kysA(+(oo?b3w1_GT17URQWns7iq?Q_zDA7SiBv>uD6Sq*lYqJ#p78}Nc>ni z&!hHGJhZU}+TWwBTQOGYJ1*r6yL?&!bwwoaUj0l3fLJ$w$!9xka8)1io5lEzpB=e@LQXH zA8%Q7zF0vzvgf6T-pf{De}mj91EDVcN3ZMjALJ#g32j!pSgWqi6+{;>u*o;ea8;-O zgXFhIFYe%|$K-Z%vXgU5Wt4(bbAk*L#f?9-G9u0BvK)`!*3uy-D z8S-HA1%w6 zwmi1b@#Q|dTbW3I5ur;tHz|m=;kJTXeh93|Kc%*F-xs=nRP)KDjIwu^hiZKzZ=Nhp z30KSHnGBm+FmQ(o9w;v1)I6a>;+5^~NDDrC&CEEQdkfm1N@VQ)QzUi)?bcdp+~MD= zc0|coo<==HsYC{aE#)?aQlxnca+8_REN_yKzZZ0zXyS-zHd5vLZQ+9+WJoy}^gF?3 zB;kRpP0V42sXgx*6-XxSRC3?Y%SB2jUsja`sJi!WKm-)kVv@{|Dthu)4YAq z+Lynt6!|`^w)!;kW?<<| z=VnB8UwSuBza_M{1SDZ9>MpLHeHLg}zq_7qV|$cT#!r1!_#2<(LTNYVRJnuw#ZSiw zoSW)84)!7*tJ7BWAaZzuTL}|ixwAfy9ww=uy%5FgaK2x`Ot?r zSKho5UXaN_er*{lygw?1S|1;T2erEXM&|C?W^Ln6q`i~N_9gEZoo@U~qGa5K!?3`L zxk~I@ScYb;Aa3){MIZ!jp14Wnn=x`Fwr%c^01#LB9S(35s!SMcx_DMN%i*@ZPG#^( z^7CqX_wEGORX`WWYR5+nUxlG**l-Yz;V5S;G5gx&|IQ*|`|TdWVJA?b!0`1MO1mM0>0A zuV@-UiiJX}QscL>SG6;&PdnJkUNv?ZyS{^z%xn5y=C_=CCPu7{)f_oRPvp@k$B2a? zI&>#D_uDb44r@q%x%oY zqvX$An7SVyeI!E}VmNy5)QAWabr^r@%A2Rx*q>fNY7i^>&agKW3xWNP3wc39ACsHR z&K-$xBn~5Tq9lcNXTbF~(i*D-8Nap~CJ~lU(^o##1E+Yf-act5*%&U~@JivsQdV7V z7k0f|xbKeC`|jtrGbaKSA7$|781h zPU@EY!Zc`FGHh_KgTA)oprpateFkO&sDro=!+?Y=*lFT(KLThLGeH?%w-DHqRP0lu zTFPSgXl#nmqoK+@cR7%pU(K_eF$wr#bh;we!XFXSxz67*%Xzi+z4Op{sn_y-0V3v| z?&Qrjpk=p&tXlAUB>beXjOb9)D{|(CV^6**n*}!oj+a5_L}#$hP+nu`Kk^+iHrKJ! zGADZ~$Pvn6Hu1Qi9Gh&&`1^LrZL>=XV_9PB+=uNRI;%S;PtL9gl^U`Jk+^~uR~Um4 z?u{5nX2cDZS0){&MuQ8ZBH+jK_Y&s4+57XY35|fSFGJzTkOE341J~=PROXmHaqu5hz(+Q6K6_nEp@=X&U46zCyLA za6+eWiDQ83i02p~X0AF{Sv&Se(IZ8#MW(#RtKTQLlG66CZIL);mOR86PQ`7V^R}1p zSiOS?bE3)Ew&c@NuGA?aOiU?ouxM}gW!gwm%{aFXHSsa89<9Xs>6qZX`lk5vySByq zokVK?JDq3FkBK<|Y|%^IeeR)i5+!}J6@*)>Af0Bn1v!Kac?+=^RCqDTpl8WMh?D0; z(b;$DxrX-NSz@@np(&y0xjrAa>kWMv9bMmUW#QH-GCJ{!RZybltki<^NM97BW}*vA zpx@A6my9ZVVB8r!v~r-CCmMoO5M#g9=}f&*WNm|yxqbf26W2C>A2sa;SWbJ^lB=**?zG})joWZTVee638- zxjY(6h4=D#xLrvsY(dcLWN~i(!UIILRrbcfF3F`Y&R)!_yG=yO!7fisQm}Y$Yc8gs zztRccg~Vc5rIa066t_${75 zZ(zm(Z#&HaGp4+KW~%?pwR&Ri;$D8;;_@uV)?qsLiExgk@68{ISi=Uev>$S}!e+;? zoJEOw%AI&}Z$Z*7;bmxT=-{X#JWtUG7#uu)MgUBF#rQj`h4^8Mwz z#-UuTypwwOZ(WYKxO+CeMCix;XIu*w!5y!>!&=z*wq}7OEW$V|MBWbw*97Lv2`AZ5 z95yhTE*BEdS&e-d#H~H!DdYMIxFSXxEsDXA@N3~5g8X4JGigr>3e%2iMydsB<|2Z^ zXe}l=_HWan(5Ye+E80AlE`hWF^0~vKh22zgDe!4tmtwct^3O4QLc41E!^K1A@w{D# z!KYBKJT#szWo0Jh#2GrnbZ^em4WCz?!ob?&86?9T7GwvC0oDZbu_o*7PR1^C|vp-RFsI4z>-o&Stm3_@QRZ!T-8P+i);^=Ehd4;}Q+- z^;ijzR?VYsIxN_8pp5;VgD_nd?|BwTKr%6HM0Qkqvz>r+-Mx>~a2(OFxxS?k zDl+yeznxXV>6?47kW9`})6h1MsRBjMBz#DWv)GW5x`fS_Sn+RgJKg zH*a$Wu*Du91@ELRqq?cwN7MMSRIcs17-hXHc@I;+0>5=;a!W1?v8%>F^^cKaQ_= z^3F1={LxLF&oq2#6x?MQ{E7D$=xf@NO|K;Xq?#Rrz@&gQ-i0L0n$CXW1$_kS9?D}9 zg?dyDszvq58bl9{_}g%+fbaQ79j|GwLK_y{$R{(<*Dwu~MLTv*U`nWKL-uShFqkpN z>Yz}nXLkm}CX@?$Ry*Go4xv*0WoQ@PjU#Z-qFqf<7`rOI(!{J+I|iN$3!Dkk-@YYW z_O2yaLX7iLRNnKNUoU9P*ZgTBklxg%8{yib*ln4DS!gJhbhM^5wItrSUJL3Ey#>PA z%u+zMYSZS2P^i}5BUk9k%AiQf&@R}~B$4j^Wdb6z_<|JQy&KI#uQ~lS^yE8$B#qVv zd2-E%0^K#xI2`EIedSS|h{B56RCz7&&6_uf$}#gfrT)9rg|v#VE*c~1iri5=pg4J2 zb^^wx4ko$gKvm>XJAEdAzYx`-iD=HGOI)DMmyJjt^wwk0(R!?;e!37J)gha7Bf7a* zKGQBpfhUJs(n`OcQ_Mh8CES%0;!w!pL(GBtU>EB~grKfJ9)PFsB~veW9ZR8H$VT)$ zE^~ba9j$P$C_nSO41pEzzXkj#>F_uIXy*POm{I${rI@-`W;-af3#w$xnamg-XANWm zQPj22VDd#YiVC1DV{_Jc$GkfRoeTrXy>@O?)?b196NuQkqxIn3Y$vxgf>L}OQnNrK z6#>noXk}iYn{#AIk6lNtFw*bqP@uYxPBIN$Rf@egoptaT0S_?kaXM4zN^gDhkKcl% z(Ea|w7t9PPPXz;a<;0ukcITu^I=Ij5<0-pH4n6^lfZD$jy#M|D-!ZY)nm&%Yr;8XS zBUqJlyFDVVs-qU_2OuS`8x^1C_YS1Rch{3f%wbXXEkp6**!|aTyRgcvnv!C6$y; z_L|S;1COnV1>TYwVv!d+cj=>T>Z0uydZD~-p+ik)K;77C2p%NLic@Mw>)Fr{z>&xK zz;k#0JcH-|iv;q|EC0Xzy-fQ+h$(R4zaO?i-)=FtMMJ#H!LX#p&d{Df`FWiC#5-K= z#`|Nv5ezQ?m$lz79Bf4CxBn_nVO<`mSZD7>G6Zt{cf&R!d2m|-@`vw3q)aZg>b3G$ zJS+PfYSn`m?ujWd{Fw}h$vp_S@#pb>|GEB!D&&hozUS+eAhP$_(vgYp5hXK7|604i z%D1`~K%Zyx$qv!tI6C^@q6coPj z5OAp9SyA*rbhRKkXgshK0|sN_F73Fbcc~4;L+lceJfaHS8ZKF6K&-Z+M@$n@gS(*O z=mP5l=2QUqTpzDr_Voo*AX&u+_)hu1FIt*{2v{*2Ja(c9p{X&5=naW_wTO@!5k}G> zt&sy8=&`aEYs7zzc#$%fY5~XSY;7T`P(%d33IRF;WCjw0Q-C8A>_BEC;I;946-v`g z;B)Gei6DWRQuz0d5PcwshZT@oWdN#0e7qY7dNM)v&uawAP0ODj{bxQNIg|f>50dN~ z^s}5C5)T|$E=%y>6=X+TpJ;*#C_bG*f?`2v489aGP-vRe(J8}S&VgQFh&ax#ImV5N0x;nNFj zxYH{Fg%EWCBEUw^upq=bS1+{U7h@5%zHDs~G!th)`P6NXXw)@UDQN zFTsPVL#$a+!+3}GrtmM2W#+{IYVbRErwq|NuD+DoVXVG1JzDQe`Ee!8cPD+oMJ|jk zDO752qX&a-&JUeMoXWLyIrMJeIb8)qSvKO62&y|+(SBYu;FMe+%2bR|z=whP8ew{s z&)!D6LH?|y342GVoX?ik~7KW$c`husYnO84I3`&Ki+$tBG#xij~3Qj{qvDk^s0 zJVC2TxpR)v$hp%QYW^%}%t;Od-!}tZ*d{E~!ETkVL%Q~ydgqUmQESfd^Hp4@o0Mf} zxu9bhep>wZ$4Xj!7vei3+a4I-vF0_~q1U z0^|!uX&SC#tKenY31Sjj=3joERmxLR-t2Nbsp6Xf&mUZ z;@@^z9J(=hCe?lVhlguYU&0M**DVa%QfTWoZBx?TS6(81JT5(RSMK^82AjuHTaXhG$c`UF`Q3VRD9azIu5pBOid<@F?jFP3#v#nX7k6|Z+InOf%x`id^twJ+ z;jGK{5T*%{FPo!-jR8xQ0zG9>6thGcwjvj`2_3NJEGqCMP}|yn{?A{8*3%T|IKQc1 zb8*~rr6au84YE?q_f3vJwKp$UA}!0^+};R1^sf3v+upgO9|hjSkI!}qPpM1D#W%*k znI&f{T^ZHmTM#>uy6BZHMApWPl3vEji>^0JfgnuvpmF|$0K&gJyIX5{Yo1(XJ?aRy zYTL?aK9MbhQff&6hK*X-&QKpp1I~OgM3q$uZFxZsUr39Df1;xR^VP)1x2k}qDp5L4 zzJqBKo$HzLHV5x9<%Wd)@zuTEZHspMnq|4nxhdmzZdmlB3dduQM{le8YFW}XXM5yZ z#y2wbGI!|m8&1~Md*M+%NlQIhpWKh4*o<4*x0?ZPbs;wFU0*>gT>+e|;Nnwsg5K-e zE=(nEIYIc9IYcXEs!G-`-S8cEzyr!dDnc6%MDFTW3ww579)7wHD1iA* zBsAvTuEA)ARiY2JMrvJ>BbNQZv4W-Ry|TfAr2>(uEqtF(?zJVLxbD29^LQjw3li!~ z5P!D|`hu9>5@L!nayo!)pi!Rj=Fbl+)?yE>agG&cb$qbl}?%G07 z?$|w!O5Hq*>i&pWgUaDf=A~AU2EcPvEC`FmYeB1wW@r3+IApIWZr+Tm^p7LVg7{1i zg;+DY5wW~n=;b)*;H3*#^}G{snrh*?V-A_=4*Z-wq5zrVu-6s2_9R6~J6%DsstRhoJVT$1s7VDLb)>G&ne2;tN?<-;1|7B~ zXs~f}dHEQHw+YB$J}7C5^DF^lYBaQ>&UZjk^y#pzFs5|~sC3d*i2U~`ATqKu4TS*{ zhN*`LJU+h(m!ym+KX7x%i5s(Ec-ON`2ae$i8Lg-QB1*9YYD^hAM$R6$^QTdh$K=#Q!|LsiKs)l@o-xYk`KkV4MP4)b*xK=sw`%eSvYx1eLV8|1|_zARZTl z_(RTuSbqee+j!v2-(S+vgCr(IT^|)4-Df$B^awrSwT}0Q>K!!yn%Qft5NVa&W_#Gn zthBZVr(m7+TY}sMAlTw+6U)75ftcGOcaW?NUS6S@p}Rt-$NN>2$ISVP70ccIWUyQC&JMX+>bA%k@%=#56YOp zXa6q{?*VGPSM%TB)rX=qEK0hbbKn8f^dVJ zLh{rWRFscI77wQ4-QOq32$00xhQaXj>O6w#(R04i@UCe9@t06vyDu#y@$l=b9!RI6 z_Q)sWXFclGOo*2kg=b$XA(&RWj>PZKESFp-_apg-&N6es{~4pxv)1HBb?7b$KlMbs zIet^0inLH2N6$N&6{wY=P@1w+_u$VACVyaV2ZPyZ$>>!&G+(UP#s)~5^MyNv?+yu+}g6e#?kr>VPtqP%RJ`@4eTVN-9X1CBiI$w5Bij6Tnt$m8CMEG+-^DlqZqdX$W(9vlr)=mOtPB) z_2aU2!bm%jt0@z-;9%Wt-t$=~>+b@uZY-SdBGT`;tPeCSVOad1cLyqs z9Jwzv^!UpvP!8F^=UhjS6N0sKU>I!6dbORniO`-GZa)0)rVrsjO?{9}5WOh|jU0i1j3!dIO#M&yFY~?`x~}oaX(EW*I}2_;18KAqVWl#P0i+-$ZONXvqw`fxWA($z0l2SML?-P;KjqCz1;eUS6kCh4DINlJV z2;KmzgLAi#nr9t^X^4vvp}ey0MzBs+|BrQ82@?x#au!n80O?quZkcVtAfWfN8L^Rh zKz9Vh04V@ncqgm%{<+liIq;bYC7ZDI)5G#7)XY4QQ)s#XJH+XiZTYt9TV_Ue!3vB+j*nS|ta>4>@}G+lcnH&r z1GLnQbV(6nT5^DkkXcc7YsLf=IJDQ%JV zm3j=1kyYskQfb02?)>?Ox`5B5R!m5srVx)jf-{h_vv+ zrG}JsgKqts!%=}8N0i#&NQ3YffHt5*bU*q`;UEP) z1`S4J{_F>5AufBsEFSyx_lKpOc>SFbe<&hRaakA;G=lYR32nab#`|D6Nh$;dt(J1Htm5&K<6tI)vPG2 zZz1MhiBK5N17j*;Q(OR?389ws{@=Wq`*%@9n0=5~$dbcZuw0YZyZ>+;04AD_+(&9y z_?lX-jZ6;YfU+vE*>}MqC=tl$^{=bBk?(XttgEpBG;QpTJB{k_lI^gq!_>=uv_*Gs zc2qi9u+SZB3^otX~_M5*_>1#ImpOH+qX(v&-0 zP*gvS^k{LLsstpE4Ya+^S#VTR==7tOwwfBarXg-Ly{s8^`KsK7ytwWLdi@eSw7|Kx z!x=4LVl4sc!o8wUW>TllGi_v^eJEw>ONjc;J8HIa2(=-#?3?y4uV|0iABA#;I;@8H zT5cvDP;kxs5+Wh$>gsZCq;<=HnxbgloC{MAPOR$?{QS%bw{01H^Ve>3e=~!@)XQmn zp-G=^Wz8u`*lZJuu;<@Am>&W9|AV_XkIHd<--jQWwt1Vk4DD@}C=^18Ei|VAh00Kh zVrxK2wb|Il45^e78ciuBrO8Z%^fag_8lbAI{4|zixeI=T&e~c{AmGr8f2Yy#A`xrr#Hy zc+y=|ZF(tM`Qt1P9i&15!IDp3zk^!Aw=Wve3lXp-_cz;aevW3 z^TF!s>Sa+|t_+Rd!=>eR*D~u;mW0LMbnEAKus6JqlAQrYnG=fGSw9c) ztU}S#tARlA)N z|9E9dO8EOl1yEo2!iZ#ct{6!!;{H-*`D6Za&g%bI9D}>=JynfQZyxRe3n0 zPx1`!c}KSBK|HIC)NW(wN)X_9QZcY}SbG6ra?KAObsNQqy_-J0lf0wX@Jufw^ZEM3 z=WFfex#Qi^Gv6m{ti-vlz4=PSLuW5KE3iPS$rz7+m6RGb!N>mxpT{}Ml;Xe*60j_cT8=42pLl*-{xZ)=nr%(nBT8c&gRn%nO07nGE+1!i@fj>z`Bl?06!fl@{CdRps`VTxS|WPoea3b0^jgUz% z0@EQ(w_e>Sxr?GA*qU?i{l3on1A4zm5*$MkBMgFV22Lt6GP4LY}+PV86MP zVhSD`b3Wf6DE_sdl867!w+A!P?piqOl!bMB`0wMt%>vTBT>B7hzv`1m$Ei;#nw#Gd z{u|DBTRKYVQ*vjcPa0hk=Ha+!2QatX)V0}RNbee?OF?u!Spy9USxlM|)HZ=FeFX^m6F|Ijkm)AB235 zC!fp@7Fc4kW*Wb*JN;bhb+5X;yFOip|xUpy^yTq+|^;*2wr`bd0@~2iVW}`T)pIrvzJ#j-qNVc`N7g(#}x`k!wJQ< zuO2YRMKSFZPN|L0HKs%x7(+iTy~YAulqV8q>x??dsn|5U7%6!UdCZ2OqU!#lS>I34 zQ6q*JK}+$qn@FYEvhSH+&HEtOSo*)}QT&8uk`iNEiuvfynhoYd??bPY0d116WFF41 zSvmGd{q^I)%IZY^@?tg&0&D%XqCU)6s`LTFRn^m5Si_4UW0nqJDkd=z{>tm+?s zA@8+Y1^`Cl17$R!lWb0wT>p{Rpo!Y1t(%HCbzQ_VS!HnCO<6UK=*CG?@*>A7DD;YH zoRps=8|*bCZW7EQDnR+OGq2wqdPH)5bFKc&k$a;h=iGkCf@&0?MxvuDV2~U( zs%joJ_~L1gMw}ukQ671vx|bqM;>3i#>Ab>(EYoq-iIL;y{6trk%yjyjWkMTh-3Z2v z4u!3oHdU+_<9qE7PITAW-MVMDwWN<&+0#F9<)$+AXJ@nDKVN^{{Xtk*mFabNt-biy ziuIp2mo=?O^f2`J;h9%;(VsQTY!xTmJoS9~a+)O$2~=2n_m6m+Q;nxneLjv@SQGK! z!SgJu1XCApe`UwoIBTbd%Dx)CrsO3)ELW~M@U$#SOQdJgk~F@vrhhF$?ygbuU7Sy+ zzArBFT=V0$8=meSent8LQzPyV(3-9lDtx{;J@ZRM+Xek#0t!<|IvJtnQQDUq2k581M z$+Oh8QGBl0rxj7l91=+=-=hHQ4!+_i8f0?h{Z_^Gdg}Tbdin#KPNy1(9{hYQE7xXj zNYqZT#<}^soWh=uKE9&Gy|Zr8;v+wuh_ko)s#5t=!0hka-v5L-{CcdC-HQ8%0>m2R zDAMfW;*8?EbVX95;hdVZ8Da=oeDY$#9c>cUZ729a;9?DQw^p>iOsySYw3d0gb>oht zrZvWhsJ&k4iF&F9OSmB+!`yveP{IY06-E2kQk;GoOeED0 z(88wIoH;PY5#!i0EowaRqM01ZJ>lyT{FQbE!%{1V?K)T(TuZ4VdTS4b)rRsVa)w>> zR28p^wdYQmg5GAIs2Fx6QO;3OuJ1ldDT74*O!Sd6&sHGC6AXvhJrKAcfOpQ&LWI?m z%oyzr4;7m#ZuDZ6YN^NP=GI#7TZn4^Mk)PL*wHLM=R)^h9!yGoVLDPv!sls^G{1;S zyt@Y4Fi%Yi(S;P#yM{7Ho)|$qPg8#@z|q<>-x>L?U~r6$ejo~p-HrLqD6z!ooBFUg z>H1)iDG-1`<|55+OQ>kD+0Wy%}dDWRp!M?@3=AT_YnWf_+eM=e}+2XTy zE9t*v#EGs^9z$!80z9u!jJ&_-x@LoQDTG5VGhLBGgdwcWP-iN!Ji5djVyf`k z_osA%v8Sdrg9dYMvS_@7A?n$GHUh01KGe9&$gu}agRGQd8mS2|0Ay^o%O%3%zs}7T znqrlz4dYM^#EHB+_nrN7({r0^*%Q)teqD=a_|Wohdi|tkyVT4<4h^ke!r!M^?c35* zl%7U+8X*qlZYF#~>i*0Gh~43Qh)mAtq4&fC_ITJE&zRW0t-4M$Aa`TR;iNGiiecSB zPlI!WpAXFtjn^BuSpEK=gWP}k1PQ|X+dWhUf4eRm?@tMr-6)y5ro}Y&?&I_UYeWP%E%Ob3X(Tn0*K4hM; zo_(O!)}iAjw5P3ESBK`l-Pqn9-P+U{?NN^}B5$O4Xgz`NSqjIi)KRA)FZkIN-%8i@ z+w3m7u5X(xw&y>aG^Id6LE%P-SEF)J=wp0%ZJLk5WEvw`fgDespWW#(hg3Xu*Zigq zH{Hk*D{-*l%J4V`yYiy!t7;-mc(z^a1pq6S^{Q=3PnJE*o==YE=d`sdho&}XFU4c8j?QOCX{7Ay*jHZ zF6)fk+Pls-?#bYMRdA9G__|x^hPhvMletAIe6w21=eJr|q(LO)r;&kxOWaays=UEYxhE zoe{cs|7p_Y)?=x)r zSU-6Al~N!@Tz014Ky*QY&uPHA(5!O>D*dO+_I6Lc?|SH0fP2M_0553s5%OJqgX_Nxjl!37aHXmoe4~8 zuG~7fV1oJt62JudzvIj= zl_HKkOZkN?3wYyd8)bX(9HlRRUAz~f`^G+_*oVVw&~lHlhnB1%a-Vzg=IH!1oL0sq zmEclnMTdTdjj(6q&U!xyA;z0M*J|OzX!5`Gj0l#6bexNk!=cN~f|{v3BQuc_HaCgJn9Wk!Z8{ zsN`t~k1p2&*$>8JnLg!4+H@;mBidk7O)|KFA9i!f3^z?8A03Vd^fi?_io5bD%MSrE;PTgM{hZPLHAX4-sBm8sqMjL3dDN(c{k2KVy*o91q z&c9(x+($K7j|OM0dA7lyQh#ELs@TYY?n*;Y(A>s+4O$hmrE9*6{&^3`L`3N?i^hqH ziCj$Z-?V4KT!(LMEU_7OB8~?K*VzakiJ90C=}HVS}JlFHg^4oO-ex zyHN@-Rg1Ws6TYF~m`1+TEPK070cKsab*&kAo-Rq$FdBU6h@rl$IqFA|meJnAr?ipK zMk{?c(@Fi-mgbV%&LFgu;RvdqO|L9`gEQJN$g9|mXR9Jk_vk#Ky7`^%FRnjVzxz=n zFSSp`Jm?5-jPAfbEr%Zf6Jyh9Wl0@m5tWo82IBF?n&fvC9X*O~dH(qPzFp`4*tQC> zb6cyUe!e5y=d&_8q&?2!ZSZo7vs(73uILMg6@1yj_n86n}QATHBG#4sLRY$n) z8+}S>lB(3ac%$@sZ})!J>bD}_wH9g%@B=_tZNtX*So^-s@|XcUc(B85dnZXnTlC%) zU4IuhOy8DqA3eC%p(D^x)g7*?kXb`an5qLYGzI#?a`*!~If@t}5{*3yC4RyN-kuF5lCBNAp_GQ784Rr~Dhhy{hXCO3;wq8peQ69P`u zm^C~9+LsHbdbD^CO}^&MCZ};y4hQJ4N7>C1Stuf>4Z5e&z6B7F_sk=1I5BR(Qfkj~ zm%7VgJ`3$3GfNY+=Y76U8@TNC<@_zT;K24Lzi$fx0IeyVHPNyYgZ`18&TtlR@X3y_ zW3OhOE*JS+BFfJ}AHK&#C!C!h{fi%wa=^KQxA3UW-ohUBNFvGTFGX|fNebyPDq0h> zI_W0;4^RB|B%|YR(yJHvH!SxJ(7SUUKYOu{TP_YKF@wu;bkQPn2pm^Tn-3RMyVsd~ zJN>}b-9-w&%pQbGbn7Iy@$9z6L+;zMO$4(-^956af`Sx`V}esVJveQwTxeCa_XQ)- zguNm6KPds87Rl$lNjFJw%G$gO|KWp{KfHU+A}#hn z*%w<;g&gwA`B^>Wt23+jsZW+VGKvQYUY1Uh-&VXCs6G1^KR}Nh6qF{h_H6_l`s8aZ zejlwiMfPe(qr2B7)lFthA?c*VQM%vF)vK8MlD(Q(l`v z9Rm3>G(wF+$`eduM+_F3AdINlH+cEu$our1=<^!iu6^e>A_FW!Y@Nz}?!*tpN#4WC=?Bn2d)0gKj*O+#D#I^lkd{Dc>*R<)FYW zdPpiGOOOafrkIo3#;*6H<())>o_!~>e*~Fqvfs6%#6Ff^?OAP#UCTS&)ziyV@$I9t zz;Vu3RH4&Y;fOQS3e&Ex*!vMOW0$bOa+FBr&VyDjFx?ZAt7bseFz4#5c3M=|c7DFf zsXlHE>>Dc;4_+|MuxoNWhH8beBik{B0de9AZaQNtW@qV@#L2u3=rn?1< z4*8AG&cTqcgp^LVc?w=xW7G1Bg(XEI^ zl-HpcnN3%A4ohP!#7?#)H(VR{%h8FP9TL(xKuAzXJ$w&gy%z0}@`kuSUOjMhpNemb z?@|EhDcB5yaar zhZh}x1nh22eIBNK2tj6usq<%YmV$7AUbHSi<>}p5sW!b9dZ-W*3DBZ23Y(V8n3fr) zzd4}*C*E;7jMajAzhQwAAv`hYkLUc+7OSPmfP@`3aQb9e09++K8vtvTQ^M+>OX9`R zF90UUjGNPTn+B=xZ8aV|{~^tu2Szecj`Ur}zU0a(u%c&H5db52e zIV!x#712YgdSgjLvVYlGNEXpbLe#wx;Pu#PAbdh-i9Z$ksR~CjM<0ad2Z_ZnLDutn zc0xAD>db7bb;dhhcfu*2?A)4AS&+~qk?_c^lS9+B%W6Z~qw&NtL?L^t7Z)C^4yV`0 zu4~dSFA};yRiMM=w8@%t;*7&dMGB@K07J=uYYU$1q_Og(Vf%K7jVNuXSVLTK(@)LWJaGho4JCy2g1jCopASu6bmCyp&9{a59Ua$8;-rKKo3^_^RRvg|65M&-`=Heo-$$T&lL>L<0R_O*Jfk zPXKD0rbw(PGu}UOk73)k3-DIhDN4gJbnaS0eV%=Cr|yAR(aLO{3NSThI$X`@G2!fS z<_>-5dDe-7sV|Hh4E}kK<3cpYF0T$oT*$2<`@hyd>u9z6vxEha3Ap zj`?tED#l0I&tPOe?sZ<1%5fy?8|J+Ia}4%jf(I>3DlA5Ck-p1eEFe&w)sjV(Xq4@( zudNtllKL;|>QAvlk$PLd*{&8!YmOZ2vA| zFo&a<8G~XlH}%`e)ctzr67k>ikXsmsf5GV}`|0NT*1NzUif{XY5pZR3l_L5^4HgHC zuzU3rBlF+q`McW`ud;jj$k|SF_+q=+*PgDG`n~wcmsR37^T7LG|E|B00ijcPzf7Gv(d@I%(+ z74`E_qc?Pmdhdz2>{cwZXUL_=t#jvp3?F^~gWV!?_Dx(rc=Vr}7F-*HFCMTn3RGmD zy?-7WgD_7-QvV!_1m5m55WFXZE{rMc~!-mcwGUm7M+Co7FW{^hk5$M&>U1 z-Izo<-J}a$maS1Y%33n)@~e8RGPmMiwsw-ExWWm8STayRo!t)5jT4_vXKhnv^9A?s z922x41}bV!sG8BzdVnVXnPX7-3dQ@yV{@dH@Y9rl{BC(bPsdKC#UD7RBnAnqir^oIO-ybgBIyw->bzD8%>NGA%I>~*~V8Ax8X}g|HYe5 za%^bFVL1z$f_kK`*6*LAr*sVb6>A&}(Je^G*gt%W zx8x}_NoTk5*rk-5>~m{JAC}Qu>r&CmbayHSCfcKaweiuodRLftE#;w=fw5;V-q>_p zhvgxFXvJh5qJS~V_MlDnuFB)T_I;xMv+9p&2xVSfZ@<4n+AL|X;Jxf(iaQ+bI+9bA z%0^3=kmMoo+WEyorKae09*zx1rAg`@)4O_%!BPv%t{p+;s^h(T3>+_SU&Ht3Yoaai8szQ1Ocm5k`=Psi***bg z7J;yn2s-}{TJL6Lw-jMOFt~gt(Eg8BM-{R|ZQ0kD+Do7v@%`NPbW2_|=^{?tn1w^U zk-SbmI!Y-nrA{D3gW`ttgFnWX>a{za%_!gq);Z^2fP7gpdS(`=Vt)r;!9=BEXevYFFe>Y&Y=omSmQmZmgBt5q&rgrUrRCG;_{DZ zD;mv&TSkBv7&$X`DT5IgX;Z|cgrhj07cW`v1G0Cfl`BHmy!QDf>5q?&oO?4xb27lf z^9P>Qec973Gfno!Qv#ua;&2@7)!39IURjFy2fNsM9e!mbf`ycXnQ(zWyOXXI+u{O1 zP&(do1^`-4BMRb31meJ9D_JU@5;U(N9)%hW@` z`-X1BvupDGi*q3A(V{24vI%htc zzwqfNlY+1GfYHat4HXSMV@i4i)%+{stO1+oa~?prOWkE*;Os(2+=$2}j{SeIL!Dyq zA^(4=6zuvH59mern(`ClrxnzF&rHxK*qu9lSwZM@U|PF#YuWF* zSc!ymZDQ`)3o--K=Q;nY$Caw`>1mp$)%oQLu2O~5L=HLWxu$zMcII`~nM!D(mjb0- zN@mOH`I2X`{=*_xlFg57#P76}wA9%Fo#du%#aLFWSGTsYxVUotBc_erC_&)L4*dpZ zRGNFodj@cf!{uvn(y$Mj+jKiBDr(^yjri=B5@r_?(6hLDylz}A7#YH80gv;gV9BrF z=kTuXl`WRW1_?9H_2K9%fg*(EQeB3t&~j}^HI01ZNrQ1K*il^FrWUYp7iade@`&C| z|DMf)$z0duS2*fQA$!$9Pko~AEW}@XROaSlM)iXHK7g#re&@iZ_B!$D6MC&1M{hb! z>RJ>{W*?4C8A=F_Wtt8~#ywtL!x<{}Sd$iFiXG6gs99Ze04U5e>~dlQ7Dk)b&6&`0 zEax^HqbP2jR|y$n~X;!;DbPxiwxr4gRg;6vX#Ns3>rMv@#8BLCf z8=^7;D>xG;Mby2%bA`FwB&yn-o+Z7Nl5JEy+91AdU*5MA5eD)Rhm^>~vjo%tjaeoq zbQJ}}vggTH*GLLc7mRNB(Z~Xb*XDR<4$cN(d0i!680Ufr9;Z@;`=%hwx^o-95#1)x zXw{-kwxSVtT03WP8%=&oOeZ&=gPIdjVYtNMbQ7laVKP=`F8voij0bC=l>RT{KMB-6 zxWyP9@o4U~E*aIG@m4fy!_dp=6=egR;-8U=kdbLogTe$aGGieMtEnH^Pkxz+ z*4ec5xxml0-gN)+X2}k0ROMx!43m?!?4gygaKCilw*OAlaR$Ovu7D9ic0T)Od-fl+ z+^c4O2ZhIBjua{}H=jdCruKh{Tu$8#6sMx_!4-L*?3 zx>OBD$KW_5r0HV^$%u-PVG3H>`g2W4I5w1yyl7{O0UtWdoAeMOdlEbh9XS7%aHCab z^mL15@&+2+jT6`Ue?2(^F2NPs@EgJ~Au87Q0rwH5ADQGQ{D!V`^(c`r6ddB5IhU>C zP#gu(0GP>+FDE4hfuyg1<+i&NNwWqaFk-1SuNUDs8+Ho)4>xBg*!66R{)YROVP*qD z$2w2&69|+TeM+UGgVWe!i?0Gpw8CD}xp$zS4yUu-ywV;+d@hkkTs|ZG;L54f`{6Df z{aI8DDXV7ZZoNZ){H9lc6U(1s0c#^+IayvBeNn@_lN=)~ffFOgXY@)ZNY~Z!7c@gD z{kZS?eg)k38m10S<)}DEtAWDr4!VmxbVcPi^vWl&w@e2FC7f7}n}^~TeTOs@yn!p{ z2@GtWTUfM?laz~tw1nSG|4H>+BY<|`fu%v%gF^*DTDoPClE~si`gws6hP>d4?HSO+ zCa)^S?MmI;mU{(6l%mQ37P+Udr~(@QyZ zB90aT=5OcMf_Ln@xf!bY_qU%2*Q2XTVGF>ai7YJxUZm_2X-<6^1Z1g~{lQ1^>k8{tqc5TMA4*wwfR^_}OY&sG)WtwTR3 zp>3>N;?Qnka#MxPLB0aMMoTYx=mj5(`54r>gb4!4R00_Teds4Hn(mr%{lAW`=_UO5 z(+3<;#A!op69r?M!{}XC5xlL)l%}4$3_I~WdG$w)3p$&z_e$!|+?6zy>AL7f0;oM^D@?42eVprb@-D z&w!_njI1e zJ=tf_ZX}|S=A^B$4YhFAFaWnf*idHQ4(!I!@obOj!l@z)D6Y*@7aa`bj(v@4MNrb< z3%!5J23FT376V2BsmP9eS)W#H!$2>AZ^gy9su*Rs44T^Q>wP7dK_w}T12{u8){~2* z5k1T5f|V(c+MxfB+CF|W+LQ0Iei>RE^`M@f3V1r zjclx=OY9;b)1S{Euo4|Y%dws0*sMS$GpT78QZsEdB80R9wZU@}Bpdm{Kvhhiil)|v zuj*i`jT~+^kJfI2Q~xAgqq)e9)l? zb-aP>SwMN3F_1FM_RQme7L*qoQyDJDiY(B)RKxOHM1|= z2wPTpSQi~C(8s=XbuLB4p@vH~Y=kV{hc$7e4+G2n+uVR__bXwXyPDs2Q(j9v^hi=O; z_j+CxS~jUcD5N5n=b?#Rw*Xi7wtFMaoVkxG*>`mQ8Qc<^{8|tva%{_mD+#EV0fUgb z!J7C&o)}-Sa`3PG4g(!qc}ST#4-qA~R}w~|A4BiePvy|fIL z5R)O!U9FN%yOs&}(`2^n0_;%jmO)Mw-3|Lm<2GN)nRr@d?9J6k+QMAHdxZ%PCH@Wd z0O#IIeLK;mtwgDN!EQU-m>h@qKBZ*Js+(z@7oa`hoAb!*1&JIhTn{etKE2#{5<7T7 zTX4o?T8&e4o5Vw?#@$)C11k-9s>Dh=87Q?PPM;ANZ2(D&td1=_KUx#QBr$sxl&2Jp z#Q_;`Y<#lti^&&49czk9QRZpGFh^MZY;H?Jg<+BdTygc3-H?lFg7-Mt0SxW{nM^ET z?lg_rQ$vXqaqabLPgQk?+C%!=4AX5H2j+$q3Rfz-BNi(Oqj~ZFGoLptKJy5-bS#g3 zk`bdbl!fcS|D>$CIw5&AqC+XG4-W1mUvJL4BQu2Iq_~*nmG#@2-rU(M=4y#4L;)^l z&#>QeN3 z)LD@gw9=zIh@;itD;lv5$pls!g`g3PlUbnI#cV}DxbfN*wQqwXn}=b@6=7nroc(D^ z^`_>vokjRcp<5*fzgxft6vv?pK47nZyVs`_fRGN`0*&bBR|j1}90<{xnLD-;2r)g$ zGyy3rb$Ecs?L`(yCg}WZ^^}y!FN-J!<}diTRNL{iwUv0D#x9d{6VUzRr<~bkV#jH9 zC2Rxy)u@W6AFM`o{P){zv}}M`&(UW{bAIYY_*dxPV5r$v9}u0idvY?DG4{5t`RO=I z@Oss_FuISl*JX}SRC(et3~UYrg1V=~!n_m(TuRoOOLJg=V_TidBIcCI=t&bfyJE%f z=!I%j+hPUDG}a(v5MC2Es%p7~NuONJ(#k-azER6}?E;r11L^NMMr?TyzvI85iMA?M zIoJgPy35sdD~FskT^QdDDW5GFgLeBy^Z=IF_Noc~Yu*-}J|NkhTn@iA=iSgE%(yZf zT1y}5v$2Z&3#=@FKk1kx!WMzd^~rjNg$Ro`DC^!suGbR+JVZ;vA&+v|@4!)nCQPui zKIY?Wo|mAv6MdV_30FHlv+iIQ?|ox~ReWHYBUn;EpECbm+=($uip>q&!qlMN-uMy; zobYms6Yndv>`=+nbI zsl+h}6r!oj?G>&`0nvew!!H9#lo%!BS#3;N>uNoz{USv*>rSW%RTf9~&41pcx=urj zt_Xr39Ki5ED!pH0*JT|Wuo7{t#ug`wo%7k^r@qe(Z;$?Lp`EqXILh+Grd8+Tw9Z#P z*qOF&)gb>db@wiOGFgK^;B$1HFD2plZrJQSq(6`Nsp}QPy^zCR%WGbTzGXQNMvZpg7xoRAbx>Wze^=2dRi>|4!j zws;}#UEbbIwlk`>nmW)4LOhLewhJ%a`D$)wmN5T%B1!Pwl zp&0|zWD#qY``1sDPD-29FpfSPLV!ZsK!<@x&|f3=)x1e%Ep6Ot)1R_q@LluFQNH$IScIpH&FtAEM@1GgS0 zZrS1V%f7V+q<0H7H-csCuFxq>jP>D39$knk+gfvAqQ?pMn-iKl-o9=bvX+m?3+YxP z7?h0lwjIzzrq}2JCR~ip9beY$FH7%36^u!F8%}AZOcg}#d>6O4un#@tkd3XTgWcig zHaQLcAyZ%VoCN1Esk1xZ2&6Ov3(BP8K=;rX7YHg+%8}qqNqNWBV!9RE4ZW)R)}SN9 zXI;ydYCDTX6XzpEC`HC8=+o5#Se~>`p#5-IM9iI%}dqu^FpbHm9 zA4Nxu&OtY<^;gPv>Sp#);Ev%SO3N9e7$trc;4b+FKov@XMK7Yg8;N@1m ztoFtM!lDsU1I$ibCnX%2lgImrF%3cZ-s2pt+kQ~=chK~R-XFB3{clAg55unBXK2eT zBq>g;GUVI%&G-@BlF35LgOK=BHCbZIiT0ooHNPF2v~&29HFqt%G zdk-`;qf^hi_Tm;_cDjCT7jH6O6gFi}RDvE{fCzDBhOW+ucdW6mh8(K}Y-* zl^IB+p%3K=di-I!1ZCfPiYC^n7)P|_4*%VLOwqymM55sd@gLIab-v#tINw1NQYG8L z-iilpNEE$5yh(VuRU6`h$c_{|O;H|)Z}TM%>F5h0-=Jul_Ma1ZoLl_BB^l(3aZKfe zDqf(HAo}Pb%-6($jva{NFpx2T%3<>Trf#q4`2C49us(6X8D_9GPGvudP=RQaJ-wcY zC8V&mU>?o=9KVOiQ2icqe^Inad?I6h%V+mmVKNd*$-)A3P}l*n=W&k8!SjMu#|L?w zIXO1@kEOpUBKcyq+4d@4aj&6ZV8?%z{c9~5pOYX3CJekg=teuSnrNts9o)qJOLX49 zbG+WbKPN=uD4ccL_4(D89h4-Ix{s&^4V4melqVa%4i`RXqCfau^Qj7D2HjAN{3;kz zswWBBoFg-yc~>TqDj|d)q$gsObF|?*PV853iNTSYb*m5_mmX}M#STds<6T)Oe6&jCZDbx9KuDCIH<9?pWtM7~KMT~qC>CQxSeV-j zQYNsPS8sY9S0~e?gdEW!KOeQwvJc^ToagOvV&FzE;uz6)g_YvSL zpw4?cBBlux&FY)Nrzh`O1qy|j1SaNytDB1;rF}i(izAY*46>fU*ozQk4oD@&^HeTn z-v{yMiJ^JRrvvlTB2C98&=>wmYUqH02W2@n)Z}5|GS%_f1ZSdatviWUW)4#76wIy< zS}y!3^@SoTyui-==E;%Ddpc$o z01g_hG$>!_nZ}~vo(pG$Hv($P;M9l^l}pks$MWf+OX1bNuf6fn9)p!Sjdz*&$b3so z+X_3h6)AOWnZ}=iXU_&Nz|S?Hv{Fl8eQL6blsAt z;;TmV(e-Je#S{pym1B1!`*G}f@jBA|6}Pqis`r)-yL7j(CQb?nMfl>dW3)LGtQ@=b z8+8^28mr5Sh2KmbO+?)hwL&Tz#Q0r!Nm#tRDVJPFh$mULd%gF;B{^T=g>idey73$q1_v4;}bTXm|l)lmEMBQS?QJcjxpJy<6Vtl-_tC zU0r8BywyW8=dbNe+MUZzF}?x^sYZ1>LGMSM(6YiAt8m=cxW5D{F$QAR@SpzX86Q!Q z&W>8#6?VLu9IVV<)}hboZQtB^qUNqa`h&7IKtSY}i%4oz@B2D&U$aHQj_qtrJSvkz zkoCUYBrznhhj`=J{uiz_u5Dabdiz{UxWpYV@lcJ!vo77PtoQ4dIU#yY^Ei1;)$On^ zq2ej}WxqD?D{U_tkME06z*~4{hh73NJMFs7FP&fw;rS#7+d?V78Re4F3b7Q>5@ffVFT8A9ZEj9h=;W6od|r#!#F1X8j1I)GEr5EfHomMvc-9g+ z2^2^$bFD?)8;D>nc(Bm1l?3A~=HErOfZo*c^j1yR}(o zIG#B|(YIegy+tG;QM9k(@E9j8h;=mHg;2b^bWM$XF#z~D1(Gh=h$<83; z3J@X+6yR86*%UDE#LD;^H6*#1tU^DP`j)uvk+D^{zunB z((`X8QQeTq$wx*h&5@mJ|KT`~x0Iw3^AvPV+FlclBs5WU=n>4qQGSYqrEfcsVi#{J zeEAVb$Cb+Q9T0{mwY{!~ zj!TXQp7OwDX~$ocMW80Sf^Q_WsmMB{nlD0XRQnIOIq{jnh?tI`8pI2Qy-vK1M2~fU z8$CK*zz-sOv2p@nm_ai@NMk}sObkI#no4aADepYUr*1#h@%ayED_G7ngGX-qcw*v_#)ki-B0&Q1j{o9L3>tiy_5v1%rVFByDpol-H@ zbxj?uMHe64^u>m(TH^%Q_D>J+ADirqV}NO4LpAEM<=S40Uf1LJU13s%GEq$s>hgzW ze2@W>oNW*DnjjiL2<#oiXzjs+2U}tM@Du%?0hhYqBGY~@@WKf>nK+~Ha*I1I;xtw2 z!h#4+Y5C7noRA;`=4a`wqz0`N1OAXQh+BZrU~H!d;I=G!iP>B~(;D z9ja@us6=j#`n5M2Ivgr(Gc;ZzVYSO3-Cqodz_6nDx*KOA(W3LDlFQg6p4=PUJCa$M zJw4>OW3^Yl1RJhKehCrO?cbB<&?R^zHQ}z!lWhP&GHZU|V%h#pL}ll(;NW^W^S_I5 zkS0|Aui-mVx^Jk-Qli%^H;MI_d|{=<{x(_-^H@3rZ5rM2e&zvVd&q$vyOWMl8HgsQ z0T@-=FNN83=xWAeL6gj(W|~P2Pq(VSSk&>GDU0r{oBsyqqAyv~@?e+P0~ZORO`B4Z6Dx_q%s)Z zi>2V=`Mui?mcmk!3LTzM2Zu`h40wO0K`=;~Hs8zp8nGN5;N}`m?@uhTxZPS?Di-97 zli%1qWr}w$y1M=4T_P;U1#vl4Oh{I?#g6-As&&Gw{Ol8Y=jkQm&!> z4D*(B@{q>V)Ujbeci+-K#~cgYUdXPQ4GauQF}m)_^W8{HG`JR>P=ymWVeYS6ThfkA zh;*fptJ88p8@po-+Ztl*4CT~D5Om(#@QFrF{Z>U*aaj|=<8mMcql2j93ZjQDfkE@0(JJmyjI()QPce|c{YmcB5v#eL)@Gbk_wyTQ{zHEMk19eD#t4P+Pi%8+F}mE z&RL&}UrTYo-7}ek{H&&qGv1=VwWaX5*=6Uj5&i&)F_^||rW`F&GyT$qMO{5`PX(&PcEO{$SPe{Pba!1jc3TmFevG(XKaCGZEHFRLrx z|1nT|DH^Nxk}wc#L`(v8(2oQsJsi^du>jdtWI%s-0-e$0=;enD%f>md*)dkADz+LV zp!;ktV2k$Zs1BT$<#k-Uu9U~vPQd|a3kcl4q7PSYJX1%g&_>#6LluU$8+U@x{su`@ z@!rh{eNFH>vqv#IkJ-{p_mn;f~?UW?=xO$S!P71k;rwst=@_1`NdPlzu zZ8`uxUs~3?C3iKouyMTL?&U=xY1zd~;mcNshd&=!Hs_owH)vvLXz1fCP7bIxEbl?n zlnRN;Bpe*F9^22_XQ(M!nVVpNJJ3Sjuc+SpQs{3P6m95`9!ct(52YglK8xkzbUv!B zRtGdQU_vrnyf!D!C|RF`?YZrI)H~Y59F(rvgrefcnnF|+^nndTn_^0|b?)>vxW%L% zmg1Pc_A2;z?-@8q6_vGL6~6ju?)Hiim+wVcz8IagWZ$7V`*JQPD(i%nI}gFZ=GM5d z4nWdG*Jyvyz`?66ly`aq>KB|G>t?UbgHgJ3Ga9K-e`%%U!=`Qwy5u|0N54bQ;i*?1 zdBVkAyb+eR?(gD#w`MqUm=ObwdwxHPbe9Y;gZ6d$y+Up_ni4SWvOD=0hxYV)jo!f@ zXgQJt!r}`9ZB&9jUXZdq=p7Rd4wj=L{1Y~P8IBdj?rmZsV1`U5Fk;$XWvBK71Oo3v zHUaF!QiMGJaSh`tzyvA95u28O796#(v-5zPIL0#0{nkW6#pPVA4(xXq&t@8fc`d86 zK=6{)Yqw;_UO9lhLQbj`z)?+D5MJ5l3kzcMol0!VPcAhWrtJJxCT0Z+cNQ0Zpu03w z!LG`Fe;u8*1@;Y>+z_LX zBeTfBYaSsQ+^nZh=8^=@W}CJJ2Tx~^r4yqF(GlR{9&E;u{z%RU7zw+yKb=7xeND24 z(|rVfGUDU7oy$8uujndLre%GKP+@40@gkNmoRIxsW`xZep$i3b7{NAd#g>Eby?~X@ zn{XefaZ4$~B>k+9_E7qDe{VICPz0x6*2y)@Iy%7V!!2zMRD539ULL!goPbQF)U9*h zr3833s@a0Tp?B@VbYwO0T5BSojQ4$?`t8skUc~WCJFau0xQlmdb789%-J*mPnmX=* z>*$M}!@f7dW~(})ixv|_bkzQpiL*0Zx`!%8fj&a!I}Y8s3YO_VhhN5CO+_^}i>|x> zM)uYMkJS?HX8fmxtPRN7O%#ldNCe{znDjR?J4{+lLh}wi$YndOTGtZ=vqu5_1=;9v zEZB;elx1>mD8YxLk_{``YERHdH;(KyWZQ{v87M8f#<}+a=$ly2MNsxK;+=%j%(gdF zxu-X)NLQZcJr$pl$GIL2Wp{ennWZF`vqVhIwu z&O_!!A*w#malt_R`@SQW-{wiq`C>Oa=35&{m&K&sxR| ziRL>@s_k)Zmiz(Nu(nsI+C75}u;9>!3)H$e_|sXax%2>KY$tKfnwb$(I({%Stcy3= z&p~(~a#$?^4{g@HhRewDc1R6za?WXCun=WAid(**8V`m)^^o?4J>JG69IL(pNp&gv z#q5I}&A%TNQ%;2+1hukNPxc{#TKF zaov0~ILp@9f(R{0;Jx7dS)7lA#31(dr@!ur)hAz-zn9oYQhq59jT5UnPEnOL%Ym#T ztu-_W=Qf~F+OrZvxlS2vIo##@?V4yMkp`LV;pXGt?~70~!3yutKmV?e#_NtB5Uu=i zfLX_XOx%p#QP>;KlVLx?iHt@hjC!i74`lK&yyfTJXdsQV0(98+Dmsr_apFTYsBGhD zl9V+*VbB26b!%ig)>weH*6;QJ0*cFI84R7!k;ovKc;K1~1JW26mhsxgyw_jlE;&skdUEBQ_$3<%nfnJ|B)kt~d1d-(3;bWtkgD6GHl86DBxGaYd+{ zv07Qyt$lHbRC1TQIbx4z05&nGj3cMFx!Nm9#>uziCnn0Os<{cWe)hWQk8$>;-fvhh z!O-Z&=Izb~?@ky+aM4lt6_q}HXTNdd0La`eg6tdi47Q&6953_??xX?-7<}UpjG_xc zwmQuZ2T2&}p6HjG030eHMdASWqD7v7p)L2n_u50q7}mqXws1;Y<8#-RQ$)d?zIWCN8xAXGn79^O@#wAk( z#=5o?kM8RB-B)&j_F!?#2HY7wc})}>?(G{mv~yo5@K*P+*do9L*nH2Q$mXoJ)8eYF zsU((~=uS02B~nS^iO)*Vc{5v}pc!pV0z7mdOR3y1aXLp)i$eCwF;#8JzK0k8Uhu*a z*oD;^=k?NHm35jd1$NMBy6qL^2h2~3HwlPF2<3@+4%3>KX;Hupiki{kc7u#f_lUE4 zEh{nyOsSwjPGh1A5}Y9kXz*p~L@RgAK+v!qzr%q5ENyl-<5!?beugGzdo(4XN@24Ls1BxB?Wnjc9mzrBTO zX0I~Ny;DFF-g8wO2`cREo!fo^e4GU(X*_~33wSKKWk)|GA(sw!wX!+-N zUr4$sXY&w!i1)#C_HY8==|yIixms-Qb4C$fK_6N6UY^y*s2+ zotmnu>LyV1t|~9SXPofGBZIk#z@9+k=vkd|L?uiz#Q=cyF59$a1r`EsOpYE2N&*uV zomyYP5&{u5h`XFnCmDW|9N;dq@_rVOYt9BP#Vr+>7SFnDEr@Thj&V=>^m68OR~D>! z?f9#l)aYY{w0Z*;{r->~IM+|~hpV2{yo0Wy9=vHRaxudy%uzAKuAAY5*Afbvhia`>t&TsMYRty-X1O6()KO)8eePC^XMsuU8MS~iz{$>1q-?wTpHzwSM5fjL%qXuJ&!gR(vjeKP$#j9{V*7Gr1k zi8kppzBf$!bT$g?!B~}5P?r&#pfP$pkdn`(SkGFRylm+I1?CmYQ<~ahkV6g#*hY>C zx((wl#VtD9ib$?b^pd9dGEEOEe|ZK%x{49_9#pD3QSFKzyl-kAM=J@wZ=gFp_qsJI z=0P0OC=MM12RZI1t+oeMtbhM&FEv?CI4i0Iu(8Ty`K*@;!ShM1sIEifI>FKgN-dYk z>Rr9>j&R^I_wPq}n>JNCqb*J3?=e#?fEb2QZ)7e} z)o`2i0VLm+U)u7IOdBA@DOsy2+3OxT6&I=KSOh9@%E4*BNZ$skkUOIyhAsz4v?qnn zqHgdf5J(#EFcBHc&=eWUE*covJBYE)R*~KZQMGk_W$r$%} zCkGl`T7F>C2Pl?#>wzAgsI^6HRn$|CUZzfv0YF-R)nLy?xO(n3tVN>Dmx|*D)ci~r zi+8n>ElUTOUeQ{>JVp*S6Mh8$Gja1j6QBQo{dq__({l)XNr$U82O_JmWiA0_+8OY+ zEBqJNv+2N(Rd#2DX7-u5gXW6BtTNGz2PrlKc!3|xwfB**M2GF7_h*QuvFAP#q;0|$ zQ`NsG0%ZdSn+-`Gs59>b9jpkjr)|rpcjkm7Y^=XwHX$LT1qXY;q`6R-IW*{dc1m(# z1Dz%8(-(9P;yDYxwCl}$7tmEo{}<5NE1dVj%dK&VM4Iy)PC8-?#o_D)lwwZ4O?S|< zDA?!72(pfiva4{aIu6S+0|<1(c=O-4V{9i2WloG2_7=(WWv_3484=@()2P}OT*&b4 zyQ!q6pEbzfjpe;!quW1RROj2p+i{S1nCe>%=5TO;kzdht1hX<^FG^?<*qwdvX2;K_ z`7O4K9od?MWj~z;wiLyMfs$+&{XECi)z9mOuXGrEd>j>VH)7+SFTAViaA9|QZ(O@> zSys-(YdJYg2q2?d(te-_nVF26>iAB@fv2?9!3KUauL_xcP7qBUOp^eN3L{-%%;inO ztZ|z=AK#;9)4w^8oKGf8y(&$;1xph=Hhce%>p4?26{XkH&)bS`UP{AVE?GH}&~uow zv_a;ic$2z1M*)_8aK5pZu2fy(&ZS{U09B(Ok4@%a$A;-is5fHia`yiHNrdd^hn0=> zmA(WrX=d|Y;{yg7nj8a->sXH|`=D=ZdwI`2tSOOpcfdjE8vAKYW_ z%aKbvJ<01ReRZ!HxJ^0<$CMDNwQ1(&P*tErWfXAxDMEMWpF~8B?{mQ1B0+0hN+4$mj?4#^7sa)w#DHZMZfMg@14t74&~z zHXXf$^^G|FL2^dHXSi#(Nz~??sS2CkS9Uz=y5Da7_yOs5Hh_-v29 zLE>Ad%up*XyXz^TQu$%`=i?WY3*HQL3TjL%e{wdo9g~zX5L)_Z6;;=9T$5)Vfmaj? z`iLn_8iP@Um0{0si|aYV^m&ro(+Xhw8o0BWPP2Y6|v-eXHnfb=~=xN zx8GT_^XwU!Z2$Nw_My!M3C%2=2WAUGMf&}Av)M?4N-Sv^2Yq1^m&MaFl(t%#PeWHE ze(w?GWALPmYzQEp6<-u@d+*SUrL-gyvDrYzRLj>S>XF0{e_#W(_jZV@>kd{WdZX{9 zTQ>gALh)ab55trv*S8kv#rxMaDAKzjy2W>ugr<@(LR0lGH~A=FNSRt|l}qn6E|{O) zuQ9?U-MvUhs{K!OdtGE)8?WQbCD@NSYhrnWm&m<#6;(o zvR=ClO&)4BOUrt#amv-3wNLR=uC&yH50}?{tC|wMPU+FMR##UA%j`sx=3-CW04?8o zSEI{yM!$$%k?#d<=~<)pKYZq1mn%}W>l?%ea2@#5m>M47{_EqNI=F7gEmS`%eW+QX zTx;m~!nEjD)6@NMA#<|DEt|fBJ9Q|%)>PX zpgf+#s>Eo?7(4DV*rx~=nVLH0OVO4uE^M&Dl5RQPu@>zKc?nWWX2SG$N1=9(P1_Jk z$P&=xBd<~o8on)InAEAF^h^6kg$_nZ=*ZTEpw?ogFL3#n9J(Y&D4HtaFo4=BN-qK~ z;FWo_{lLJGfuMf|ga5NXo123LS_)>w<~;Ov1shY()wWLrLl7W;A%IpcW zRaba{)NnKNsd-;va0$|aC^+&4awdZ75OBeK>S170i~7(b&M|Et_=fM51?vym22hxF z6G=U3v>tI*2A|1=p!L4c{Xs3f7`Vx@7XNv$^C`Yng?{20>Ox+{d{%_E(NGx54iU1k z$ITmN%|D%cK~DNel(<&lbflgWzbru;YU-x^GfB$d$TsCICFS_rZ3l`-S*5njqiJ#} zl28p$TvT009gb^gkl`Gg2D=#STS9sz&)-sVn+@foJ)8FE_YbO5yl&Py{Bj%`gp=Lp zJI8n~nePuJf!#b$XCP9C8s`l$?^SJdr1cc6ES3u5Hz*!jwj8Z`$$sGT@eWB+=sKj5 zAzi$i{Y&&n&c3q)0cf!JcjG~iYCu=H{4Hq~T6?(|?{SEWQG*#BW*P?kE?XA-^$Nr++c}LvF@41Roul0v&<71c`(xg@>y=Q5 z;QiHEiK%1LG@!V^0}W#PQp(L5WIUQ_XwdeY#`a?NrkLx0OY(@zcYmStXw)w2tI-GZ zD(`W0Y~iI}`pS)Q94)bV+pZBy9~KcO`_gcz_qgxsv`8J<21V3RvV@T=C8Dup z9}Fo=jf0XD)5uQB$&4*hC{be{Bq_2Sq+vQ599#CB#ukN;?A+g<=YFp1ex4W4oBMw8 z^rFjk6=vrDTfX1V_7#(k%Be`JGqj<7ghoHX1`wP;y6T!6m`7DsQF1=?MnM~%AwUt_ z3;N|#)}x7aZbiKL529>>S4E_cV0RXr0JZM9nn#4*AT-)3&{C44-uOh#9E3MsT3@E& z(#Qf$#!)mm1Z4=mX>}DcgZbpstSj(5%>mx9GnPB! zN0adLj6KPs3xKVsvAqobdHKHph<|0(-$)S7@ z8fZqEUk1ZVz#wzq-#x6bUQpkX*TsQJhHHcT5(Kp)RS0x;TaaIa$BjXO<&K@u`O|^Zjj%!HtnB^qReKj*-n&hrIvr(E!S z#lY~I1|Z&7`$pka7XVMEQ-=bzaPZaMHQQffZPHWKuqp({_9|7c`T_!Oy8hdp|jVGT6@nATwDs zBJ{4?rpTCxHs=NMf=_EiVAC~SBRh3`gPNVEO_0xjyf>U)} zQGi%42pWC<>>XV1gX8X@(-ag*StQtn#ozM^Y2N^Y{8)IUvIIcF!pc*Q%U|!Dy9IAP z@pW`04TiMHvZN6zXZHz>N7s0r3OIy_pp&$6bZ*E2P{W>?y0u)C z^&r@+_0e?+8_aUu8W1NO-Rq)t-&l|!V!NgQKF=B5>k@C;Vv%6s^BM&3RZM+S{${XK zX?Wls+VY=hukj9f%0YSVFc{E(lc;!>nI};QvL3JxO4y8&( zf)HqQ4tZ0eS=jiuk&)3Vam=?M=hZ#WRq-Ne~Cm0NOE(C-Cre2r>NJI|ROEE2sO^ z33?%r`VA{&i2+o5ov!`s@+3QxcWoea_z9Ay(W>W@b*9Wy#@B(f^m8wT5=3zVrZgV+ z%r0#Bma_EIzsrgLV$Li=KsKT;5gz=%E3FM-Q^?wANUKbCO1ySLoTiQ+2-=Vt1PWyy zl39DwvLXteSxmd46UfsHr_{z68aQvYB$O=XnVPi+N8HmK?kh8xb@PhD!=MBEFl%rR zQ0D5MYuu&Pz)u20|6@H6x+%YI2#tbrc~MZO1woEZv3?&L`JCpFfaeM#)yQ_xX3Q0{ zCCwKj26Fgzsl!P}KD`mD1`L$~r8wyhy0XSlS{`!G^}xZ?hP<;-yQCpUQ3jfQfQUYg zA4dJctmT6wa=3GB81e6w%OF zICx?$!2r=V1&1-L$THr|1s^6?S=wuH>vr|pRa_+a>qACta3ydJM*Sx4C`qF-DwIrN zeAWV8J^f8&c=|tXgnl~+$AiX5Mg{$SdmzXk;E}Gs- zTe#5-BD1V#lNBiJA9{im6itGtj7Q}f@}ZE?bi|3_-a^+~i>f!okNbE?^G~OTy#oeP z`+X>_mRco3cnkN@qnwBAiTN=kcOTr$ckdgV6EAN3fD$1ag-t+8VReJo9o9i#oFT!ViV6BFkD}L;as25PI(N&j z0|mAr&O&h&C^49a#Cm-jFo6IRO_2M9C5Gk%Y)r2rN+YQaJnBV3sxgSpnyW7j;w|h^ z8TK0Lw2_6=)(d5zQ-y~;!rMy?j%@yd^!Nsn^;4bdRZ(O2CHIB^Z#K1g(pun&Z{QADt53a5@$iR94+qe*o`e^bB*jV1xFYcjR=|tiE zWFZMA;@4~+MeMn}@-_AuIq;(M+7~W&{Y{T&_?!|zVSTGgJhSb{9ymn<*QWQTl^szN z-`mZ{j3OjWYeeVfo465g=_#S`zUF~~IA5VvA?;vnmzZ6j7wI}c2hF{z9$($I)YPKL z_z@}E!UPI8`J}#oKgE2jFDJxp>mdEEpS2>YWZJ-;=(rdFpU9Ftza;0Dsno!7kX04E zb!a2K1ukq&j*Y&7WQmF>$HcZp4Sk5P>lcRFIu$Qn^XC&|M!{D(c0@B+D z@l%jxVK+XaEJ_$Yq#s@Hrnuw|t@UD(ay*H?C%xRs*;kfV^3ej9CHk3FBz?nnH1l-T%7K7!vgF4qSx$qbMxwyKDdaNkpPg?A*F0UJ zx;mNV31EZx4JC4Bea>zXtd~sia$U_ck%bp<9KX#oKJ{I3r&7Bg!YP~X$GkF)Tm1|* zid_k{H?K)Yzh8Ls1FjVO0Cz+}Z0+Xm@2@m3fW{>eca)!E8~6(eBm#5Cp-E}d4y3dH z2wb;xB>fQp;%IM5K@P{tf&YA;_)kSa)&NuhH=)cU9i^Imz@L7@`#w3j%WRRkm6IgNpc4&DHVLH~1}8a?Mp2EG z7>@tUU@e6^uP4_Dc7->)QKXZSLvWXs;+;s0_MA<#0FjJbIqXi~_WK-N{E z(WHMGs+rLmb4nr*sVA=sSe?gsrfb&i%;Nf__pC50R3j6UuD^@8n-Mv2Hzx}N3oY2> zU%>K=B!U+%z3F9M%sy~<)2w2Z;?<>9%ei@@sQQ>{XW5!Cq;QZ3!PlNQ2|87*oBs?f zj}I}Sb~n6~aq&){p}|R6;qTay2-!2;ld!tvWM!{GsNeB=Hm6HL%ZgAWz4RwXeK^4i z(XR;)oH(TypT{yJC++qTFd13v27sD}d>#Q{yfH+Wkw2a{b0XVO0&Q5A=e$WP;03Zz z?soieBC7Rr9BeGAHNVWB>1`K|9NqiQwZR}kIVP?NN$pMy-9O`+H06UZI}my`?zo0f zttD984y`51%iJc&-~6RyL2F{5I;0#qRuPO-vWE@MpYFc3?rculs32?9>rn?LxvDz`Mz9znol~F&iDZ1j0vw) zl>=ZtX1+-nwb{Y?2KRt%|8wF^3a;Bc0aandJmueWcR zet$UYe6oX#;dm;SCQG}1!L1vVJ}d84!jcGEj+$*h?$M=WJ`c6}%JX*9%Jz#zvw^(Q7*f#uVUEJ z-u^p&IQ(Jk3HS*1z2_z-8Q z5nxMNfg~c*-QIjn9$1g=ptiJvTK?m^6gc=^*z`7rg%s*{FCA$S``C3jenzsW!Xg~Y zh}1tM(l**Y(aeFVhOKaUET_oxb@+2Cj+=?-KWu^cIOcm151sxA77}lO&Rb^3duRWl zg{K0Wf5MnH$tfrGcMI9ttGQd7xrBcA%9r5Wx)SK*8(e62ZKshZPezMvzPErESU+ki!&d@KA4Fn=8id!Gh<@uTu9>^n#R%0DHGoZ_e( z{E1GdW=D`}$RcS04O!~)AzcB3%rAA&m_YCWPIw>_+2GcAqSvl|uJo%zgDSm1!fFGa zN3~2(aiS({xW#2}vqU(an_f+U!i7+T)G+JGEzJm6QHOd<4r#&TM_(Ozk`^5Gja+Qr zr$#BtBPRNR`PK>)8Uvgxt5BCTVr;tm-8ISn}3 z!=)=nEro`P)xiu(L(Lf-l(1zIy--KBz|v;LyR^q5m3bZ7{zY)0*vNxOvrGa3xiolB z1srI?6uW0{>*;+d)&N#+U+E$`?a}x_+kBAqERuU*2H}e6FX(pU-7g4l17TmCeNbZk z_2zMS_7%`x%v=@2wfHs;z5#XaEZNCI3>Mj-eUK+7T1sALkD%8devA59FC+{05@JCBb)uT&u zLbzEm)lGB2`v=@?!@p92Jb)i)VZ5*7(|!mG`HJ@7hIDSCe90#)n1FW2#`sR@r$0fJ z0y2259lKD;-R^^?2OxJflC5hTvFb!tP&7{mIkuWQg|k52tr7&*?J}qF2Z;PY13<^1 z7`$gl@8P%r}u0z{D#xm6LjRRFRxh4R04 z%N|DVF4RWc1d;TR$a{EsY2(F6wS;)fHQt{#qXM( zgoSDj8~+SS<7-V@`Pe2V`qgj6!*-LApk)m?X?rww&!8M=sK;I~{i#3Vlo#OyZ zAT)#VZDV#R6q;E;M@b*$Mw3fWq~A^O*<^#-v9!H$v(T$@Z4ZzY9m$378Xc|`!4$(b z9QjyDlkq}Pz#F2sa2NOl*w@fFDC3!w5!*^0z8q=`895Ue*U?l3Byqh7xHg)S0Zkfw z)a>+}eH8!*4$0idKKcQrteSK~f@M)`zvT2GaYe@0Pc9OHKXeeKZT4wHeM!HFh`P3` z+COT3o1=&AQIbS*2tkVHSM`@szp;~yq_fnhy>xlccgRmGcbZ9EO*&Z)s}{}9`Ot9y zQ4H==C-rkdWghZ(FS1=P4*6Nv`@*StHHEC9|AsknJld10TDSB#>jla$Zw2p6A~*}2 zhE(-0q@OsO5EcE4?P)fIs$S%`@#B6DiFa6O5<&$vik=@va#&QVi66x@;~Xp0&&3i> zqy^5L{XBwNlh`8YP(S%3&y^jdWDSqe%$_z4(gHjsp; z)>o0L9#L%Ir)JbQ8%CVA(G1>N;u;(TKzw;$_H-3(RCKBso|`;Gpk?(e)A%g;D(zv{ z%?{QFDF0dn32)kG=%U=`bC>q|f?0TGHsPv5KF9FDG2@cNgN~X_mc36It4JDM!h5~qo-o`XwGXnyrRoT zksKck|3;9}@AigO5^ki*7n|!}=`^=?m1cm!d;fDCvRTBgN3cA={Q^wv(-~X{MM&j^ z^#cS_mXVsj%bqj`eYEW?RVIxyjU<*xrWP1r%6YSna;^oQbLMF3)=W(jEfdXyfqj1K zm`C-2qG+VoKrM9vL^f+^@p+Xa>n5543j6GB&oXsX)GEjcC}*;7c&IlL2ZYjTS3G^Z@AnF!C?ann`0XYW}xKEs{UVi4%UR_J>D63KoRPx0>5KbFW7)2S720M$2;6~>Ch zijV|{m=;&m`v!+Jnr*e?yop|m2;%%DNIi_;d*t3e0R$V0|8fnG;0vX7UIq&GV~ByS zinNnyy=r}69)SkC(jr-Ng)qPP{qndus)A%d#{Q)LL^ffZ8F6T~^ipH|rA z14lb>Oj`G*_tjT+@5_&GKP4*P$#RZ<34e=4jOa)N2_L zIXee2L+uMo%yKSYy_brg*IRxW9>|mJu}%sGS4!v%hV?A2i{I63GO5$KHR1`=>vEsD z$wT|6z$cB|R*5s=XLXYKt)}$FWaBkR2TTrb=Vi6vZb)v|CSq`RYNvg7KZZ3akyyre zClD)s1Db>(L{cV%s_%x)R6TLzl+6MUl7aV2zfOctWrP-5O- zOohN5Sdl!J6Ax9mIzs6a^I%1}t z8+kIN~~9C~A%(ZZy|t6^$q8MEGLfuTvU87&P?4poja{5y3qB zjY#}C2Wi``zSo;3HR=MSJ!9uBDJAf}E7y>`+@&8()Uv4Gw1a<{13|S_3lPgRM8MAc z0zEo*pcA!36V7OMliw=5YUTG6D3q-V5K_;91qdU19mPE3)v*}}%(tSx%jkSWY!oxRX)j1LNF=`A)LA>5W==!bR zGOZ2Qg`JWKQSsDK+Z=xZ`eT!X7r!I*!tP#!y`Om{{pjQM>|iLBn|@S6!0->Cz5Sc) zbERbOF+U`UxCnMwH0WJ=ZEM;lR=2F!2aBaR;h*RR94<^&KUOb1MS~h=8Xk9g`h*Q8 zXn%Shqe@K}|D}j7_Jd7tHH~`7@O*6*g=TH{yB;YJlYB$peZyoLX&oD1HiI60_NLLa z22F;>jp|AJxu%9!A?PVJ6Ot$;9xnc;LNK(5|DoUD+bZ5&vJs5KXe^1#@qfqJSM9IpaE{`(5lwE3v6cyO z+3v*8>YlN^?)>w14)&5+>Px)?YmW*Iwxuveq)P}91^AF=%{n5JLVtCg!Z6F;Pt3Tz zbOx!+cIA(^s}mJFwu#d7uTn@2iM7gYrx;=K3xx-p-qWC$*8RKGAEv zLxvebqNO7N>urwFu6@_3GBxQ_Bwpg~n#Xn~b%Jd+9a23KZQ2I4X1kN9n@y%Go$uS4 z7JjR&SLH5xm}DbEI^2>-Hiio!yKMaz3}xDfQX`LxzlEz&uwyS=%Z~LC50edQ*z)nl z-09lfl2oit)(PC`RIT;pQQ!wvS=Z8^5+>*j)XrC2n;mJKedWIG0cs3fU<{<2h|4i) zKKTfOb=;2`K(!7I2$2;G;_HAAwsq#Wbih!LLa{r}{F=ta#=pD@+PBn03&b3L_$K?4 zC{o5S&yYiVW+|nj7jG-o!W82a=h-VOqF#P9m>TEdMfGD#<_KPk2yJ3ZzQleN+^L1T z=SP{UHryh&HITG615Ea@#`x~gjB32t5=6r@yMw7ZO0)dGaUsde=PGx~)K77m};yz^aO3+jr?f1GlZafPaX1}ZOg-8ltZ<5_^?nqfR!a*NL$4!KRSY)4s6Fdy*jXs8$GL+VT`B~0BfwTLHi)*>%+KqY{ zSItdJSvo)2RyFMWaz2$^a(*NqI@2R66b-)j2N{gF#(?fzqR8K`UuOM~c~tu$wR>9% zGN!D-895TC$MqyweI2AO7d-U0Pd%CWP$r+XG zsx(nTydQM(WwCU;mu3?p!V?i4yHhzX%8Iv?m6HJ?fs7t*S;BVpPkM8Yla%GNnrSWW zMdng$wx(>}562k33xFVe^5{kLAQ~-RXf%i!EIU6gLIWj2T+=z05xH5|&3RcvNsp_3 zbLVF2`TYS8p}|T_R4A(lsS<=1l2q_pOsa!dThUaoSi+$Cv6wHCEr&^12x=I&mrlor z4GCktt=~XFIx1V?pAs}N= z1AokP94*m3E2Vmu>js|MHqNMt+IO7M6SV8>0pPkQZ#E(;_x0{gKZnH~%=&|28csNc z;~e5?7=6QS67`rGU&Lofi&G-3m0Iv+r3mVuZ1hyI*=k5C&l5SW3c9D8;B>TY+9CeX ze&qOR!Oew+IaK3_E2W&dD3`65u>X`OF+aS?S+G3v4c#35$XCeond$aiX(`Xb-w#f< z!s#_qHQ=05JE){}-M{}G&-#lt?;SC&dMr^W^(mLqpE;X~p=@h@RaKr_J!0^@dNhF- zd=IDlF;@FAvL4p^Q_#^Aew#q(mfZdhpLyTVUWU1euKT@@mXQpItkEH1`x`n1`v;oD zJ}!X|o4hRr`jMbVbKwo@xDS7LW_iD8^ff*>X=CM4kVWAeh}?YEYdtPddG@9?+23LG zPzix|r>d6*#6Od3TY)K@-SqV9U=pXioN=1NW1-!#_5;N5NxN{Pr!{{$z9NVYd05Yg2`Fz zA3JbGTa{6-+^z*d#zb_crxWNN-`HTd*I?aQEW>0vp0QTRePJ3WXzB0_Yt$eP?6igm z8A%qrGE5vwK)*IJ41KP8?*vIUm1tv^`AXMZioi@kcy!t~7ES5_f{!1`yd)`1qhB_w zvdvcNa`@wsikRTNkoP2C%36M_w2$%Q9Kr8!Np$O9Ev3b1c!;gpupmgb*0Os-+fdaz z$`Xg18y+lC&0UT^o9=J1RbUtQP8nQ*O-HAUEC%Hf&SEyD*ljJ<{W*}5in4Vm#!MUR z!9!VYF@wD#&yJBb-GXD!?jof{G~+X4MHU2DbgvLxV^g23*Z``{7L!WcO>*!15}tyh zWJoG0!U_|AYQ#pYn1%D-eeSV_kD!%;-kT0yTtSb}od#_8A5cc3u^TXVCqMF?wbyqE zTo%LXkRCBjPYAnS#4Y%HZmtB!cLs**k!V*%j;1 zwkg%{A6kjf_P;mJ-9aex_+5b2Mi_FqITI6{z>aQYT32uu-O-DZ5XC3F;DTtf6gnQi z1#7|AVTsI>ub~MT&A11>xq`$qTWO<-`k$&^yb|fU*uSw`4i!0V-HVcP_dVE$CYx$% z-|!Hg7g%QfRBwqvGPxbRBX0t)n{vtw4oK^tsk^Dpm(mRw-$pp5(}TCDujrT*eRsPy zrGY?@(w|I7KXOm(-NtNS=-3;5dUenCCjA!ZXe@Eh@K4&jLqc_QE4!s|`n*B4!4{LP zdZfwmGQO#7-d#yyaZ@PAvBwFX3#+M!1hqQiCjz`RB9b#ba$&SZM@8m$2_7`TxLvk&?Y> zjUn1|E~+t#@H1z{?z40Pqyj4e&C$4M`9Q>re_8LoWIR7FI1j#eG_EZu#WH20Bu<4tJxaII4GNc&=CPQ~6^6km!JJHa`n5AhQ{eUk@T88; zRE0Mvkoh+!`bywm9@5Xy+dBvdm)4F=yL2)PyQq97alQg)6$qz}goRIQ6`tqOSkg>w z{{A_Uh}q&2r-HG%((wlfd732I^!!;AC!fb=IvWHyi~r=RtsCI`F57iEJ=$B@a%%yW zAl*P@tqjLm2o-izMwR55S@%+ZF<0?QynqOm%f(+H$#UM}DY5F0Vx(dLJl8^b3a5Z` z)9@l)+W)|Yc>K$u?betq;l~%eG{uXaMO5Io)FJD{dJHoXj{3U^kMWt0M0^FQ@&uj3 zG4q4UYS?5+j;0q|{9&Z?AD}GU!Pe+>N*6i37_|n{Om^9e}Z%zN3>#kk@imiWf(@1dI)6DfSvrhF=9kRpyg@^eyiXSZT9=!G$69PHC8aJTxg!s1&MCs; zVTLm6^lL*$#xD0`C44(I2*(f0cGZVUJ_{y5d9`UgH>vQ%Ouw^=u?D0ciBK`={#Zl4 z^k|_&xK(1*+T-5E>UEIT4{aiBz1MJb@sN@2{I^cU#4;_IbO3s9^h@UH{ABC*)WPX; zx~j7%pJJr@dt4*NVqIm!ju{#*ot5qf*!qm1DS@tP#H?32JExN%g}8tXL(s=92Dv?Y zka6g7U$J-=2$_u$xM;M-7}7ZeUqf;eYft)jighJ*>^XKPa-rrp;2i!z!fK>)9b!}v z_Gb#x_YPtx0o#gv(?QQat68Wa-(#r1)QCnExLIdb>Y+h2IoJjsh43|XJ|(1g z9`Rr1I``VM-~YCFG57(lfTV8MO^LY%oOx0p+zZgt?d@fv;8BBA`}J(5-cP z8V%oCv>b32MFz$fk9M~^{Vp5W0Kd;~BUKlKoHt&SN`Mg&HJb$`8>ahEy~O{*PX2$& tTf)18KmTK1@BcQB`u~1CmKw|Jn^u@tD*l=|?T`NJSv@oS3*C!h{{j1RN`n9Z literal 0 HcmV?d00001 diff --git a/visualize_schedule.py b/visualize_schedule.py new file mode 100644 index 0000000..2080916 --- /dev/null +++ b/visualize_schedule.py @@ -0,0 +1,228 @@ +""" +Schedule Visualization (Plan A) + +Produces: +1) Barcode/Raster plot: site vs day visits +2) Gap deviation plot: (gap - ideal_gap) grouped by frequency + +Inputs: +- data/schedule_long_*.csv from scheduling_optimization.py +- data/kmin_effectiveness_sites.csv (site metadata) + +Site short name rule (per user request): +- remove first 4 characters, then take next 12 characters. +""" + +from __future__ import annotations + +import argparse +import glob +import os +from typing import Dict, List, Optional, Tuple + +import numpy as np +import pandas as pd + +try: + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + + _HAS_MPL = True +except ModuleNotFoundError: + plt = None + _HAS_MPL = False + + +OUTPUT_DIR = "data" +DEFAULT_SITES_CSV = os.path.join(OUTPUT_DIR, "kmin_effectiveness_sites.csv") + + +def short_site_name(name: str) -> str: + s = (name or "").strip() + if len(s) <= 4: + return s[:12] + return s[4:][:12] + + +def find_latest_file(pattern: str) -> str: + matches = glob.glob(pattern) + if not matches: + raise FileNotFoundError(f"No files match: {pattern}") + matches.sort(key=lambda p: os.path.getmtime(p), reverse=True) + return matches[0] + + +def stem_from_filename(path: str) -> str: + base = os.path.basename(path) + for prefix in ("schedule_long_", "schedule_optimized_", "site_visits_"): + if base.startswith(prefix) and base.endswith(".csv"): + return base[len(prefix) : -len(".csv")] + if base.endswith(".csv"): + return base[:-len(".csv")] + return base + + +def load_schedule_long(path: str) -> pd.DataFrame: + df = pd.read_csv(path) + if "day" not in df.columns or "site_idx" not in df.columns: + raise ValueError(f"Expected columns day, site_idx in {path}") + df["day"] = df["day"].astype(int) + df["site_idx"] = df["site_idx"].astype(int) + return df + + +def load_sites(path: str) -> pd.DataFrame: + df = pd.read_csv(path) + needed = {"site_idx", "site_name"} + if not needed.issubset(df.columns): + raise ValueError(f"Expected columns {sorted(needed)} in {path}") + df = df.copy() + df["site_idx"] = df["site_idx"].astype(int) + df["site_name"] = df["site_name"].astype(str) + if "total_demand" in df.columns: + df["total_demand"] = pd.to_numeric(df["total_demand"], errors="coerce") + return df + + +def compute_gaps(schedule_long: pd.DataFrame) -> pd.DataFrame: + gaps_rows: List[Dict[str, float]] = [] + for site_idx, g in schedule_long.groupby("site_idx"): + days = sorted(g["day"].tolist()) + if len(days) < 2: + continue + for a, b in zip(days, days[1:]): + gaps_rows.append({"site_idx": int(site_idx), "gap": int(b - a)}) + return pd.DataFrame(gaps_rows) + + +def plot_barcode( + schedule_long: pd.DataFrame, + sites: pd.DataFrame, + *, + days: int, + sort_by: str, + out_path: str, +) -> None: + if not _HAS_MPL: + raise RuntimeError("Missing dependency: matplotlib (cannot plot).") + + sites2 = sites.copy() + sites2["short_name"] = sites2["site_name"].map(short_site_name) + + if sort_by == "site_idx": + sites2 = sites2.sort_values(["site_idx"]) + elif sort_by == "total_demand": + if "total_demand" not in sites2.columns: + raise ValueError("sites CSV missing total_demand; cannot sort by total_demand") + sites2 = sites2.sort_values(["total_demand", "site_idx"], ascending=[False, True]) + else: + raise ValueError("sort_by must be 'site_idx' or 'total_demand'") + + order = sites2["site_idx"].tolist() + y_pos = {idx: i for i, idx in enumerate(order)} + y = schedule_long["site_idx"].map(y_pos).to_numpy() + x = schedule_long["day"].to_numpy() + + fig, ax = plt.subplots(figsize=(14, 8)) + ax.scatter(x, y, s=18, marker="|", linewidths=1.5, alpha=0.7, color="black") + ax.set_xlim(1, days) + ax.set_ylim(-1, len(order)) + ax.set_xlabel("Day (1..365)") + ax.set_ylabel("Sites (sorted)") + ax.set_title("Schedule Barcode (Visits over 365 days)") + ax.grid(True, axis="x", alpha=0.15) + + # Show a small subset of y tick labels for readability. + step = max(1, len(order) // 12) + tick_idx = list(range(0, len(order), step)) + tick_labels = sites2["short_name"].tolist() + ax.set_yticks(tick_idx) + ax.set_yticklabels([tick_labels[i] for i in tick_idx], fontsize=9) + + fig.tight_layout() + os.makedirs(os.path.dirname(out_path) or ".", exist_ok=True) + fig.savefig(out_path, dpi=160) + plt.close(fig) + + +def plot_gap_deviation( + schedule_long: pd.DataFrame, + sites: pd.DataFrame, + *, + days: int, + gap_min: int, + out_path: str, +) -> None: + if not _HAS_MPL: + raise RuntimeError("Missing dependency: matplotlib (cannot plot).") + + # Infer f_i from schedule itself (more robust than requiring the frequency CSV). + freq = schedule_long.groupby("site_idx")["day"].size().rename("f_i").reset_index() + gaps = compute_gaps(schedule_long) + df = gaps.merge(freq, on="site_idx", how="left").merge(sites[["site_idx", "site_name"]], on="site_idx", how="left") + df["ideal_gap"] = df["f_i"].apply(lambda f: (days / f) if f and f > 0 else np.nan) + df["dev"] = df["gap"] - df["ideal_gap"] + + # Group deviations by frequency for a boxplot. + freq_levels = sorted(df["f_i"].dropna().unique().astype(int).tolist()) + data = [df.loc[df["f_i"] == f, "dev"].dropna().to_numpy() for f in freq_levels] + + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5), gridspec_kw={"width_ratios": [2.2, 1.0]}) + + ax1.boxplot(data, labels=[str(f) for f in freq_levels], showfliers=False) + ax1.axhline(0, color="black", lw=1, alpha=0.6) + ax1.set_xlabel("Frequency f_i (visits/year)") + ax1.set_ylabel("Gap deviation (gap - 365/f_i) in days") + ax1.set_title("Gap Regularity by Frequency") + ax1.grid(True, axis="y", alpha=0.2) + + # Quick diagnostics: min gap violations and deviation histogram. + violations = int((df["gap"] < gap_min).sum()) + ax2.hist(df["dev"].dropna().to_numpy(), bins=20, color="tab:blue", alpha=0.85) + ax2.axvline(0, color="black", lw=1, alpha=0.6) + ax2.set_xlabel("Deviation (days)") + ax2.set_ylabel("Count") + ax2.set_title(f"Deviation Histogram\nGap_min<{gap_min} violations: {violations}") + ax2.grid(True, axis="y", alpha=0.2) + + fig.tight_layout() + os.makedirs(os.path.dirname(out_path) or ".", exist_ok=True) + fig.savefig(out_path, dpi=160) + plt.close(fig) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Visualize optimized schedule outputs.") + parser.add_argument( + "--schedule-long", + default=None, + help="Path to data/schedule_long_*.csv. If omitted, uses the latest matching file in data/.", + ) + parser.add_argument("--sites-csv", default=DEFAULT_SITES_CSV) + parser.add_argument("--days", type=int, default=365) + parser.add_argument("--gap-min", type=int, default=14) + parser.add_argument("--sort-by", choices=["site_idx", "total_demand"], default="total_demand") + args = parser.parse_args() + + if args.schedule_long is None: + args.schedule_long = find_latest_file(os.path.join(OUTPUT_DIR, "schedule_long_*.csv")) + + schedule_long = load_schedule_long(args.schedule_long) + sites = load_sites(args.sites_csv) + + stem = stem_from_filename(args.schedule_long) + out_barcode = os.path.join(OUTPUT_DIR, f"schedule_barcode_{stem}.png") + out_gaps = os.path.join(OUTPUT_DIR, f"schedule_gap_deviation_{stem}.png") + + plot_barcode(schedule_long, sites, days=args.days, sort_by=args.sort_by, out_path=out_barcode) + plot_gap_deviation(schedule_long, sites, days=args.days, gap_min=args.gap_min, out_path=out_gaps) + + print(f"Saved: {out_barcode}") + print(f"Saved: {out_gaps}") + + +if __name__ == "__main__": + main() +