From 5314c8279f79032816fedf0c8c25512200731045 Mon Sep 17 00:00:00 2001 From: WeileiZeng <240155787@qq.com> Date: Thu, 26 Mar 2020 15:30:10 -0700 Subject: [PATCH] init 2 --- data | 1 + pattern_observer.c | 452 +++++++++++++++++++++++++++++++++++++++++++ pattern_observer.out | Bin 0 -> 166048 bytes pattern_observer.sh | 46 +++++ 4 files changed, 499 insertions(+) create mode 120000 data create mode 100644 pattern_observer.c create mode 100755 pattern_observer.out create mode 100755 pattern_observer.sh diff --git a/data b/data new file mode 120000 index 0000000..ee636c3 --- /dev/null +++ b/data @@ -0,0 +1 @@ +../../simulation/bp2019/data \ No newline at end of file diff --git a/pattern_observer.c b/pattern_observer.c new file mode 100644 index 0000000..776b0b5 --- /dev/null +++ b/pattern_observer.c @@ -0,0 +1,452 @@ +//Dec 11, modifief from bp_decoding4 +//to show how error pattern evolves in bp_decoding, frame by frame (iteration by iteration) + +#include +#include +#include +#include +#include "my_lib.h" +#include //usleep(ms) +using namespace std; +using namespace itpp; + +/* + +string color_text(string str){ + //return text in red color + string color = "\033[1;31m"+str+"\033[0m"; + return color; +} +int draw_toric_x_error(bvec error_bits){ + //draw ( but not print) error for the toric code + //in stabilizer generating matrix, we have vertex for X and plaquette for Z + //in this print, we print X error first and then Z errors to the right + //use plaquette to check X error and vertex to check Z errors + int N=error_bits.length(); + int n=(int) sqrt(N/2); + //cout<<"n="<L-1) { + G.set(i,i+2-L,1); + } else { + G.set(i,i+2,1); + } + if (i+3>L-1) { + G.set(i,i+3-L,1); + }else{ + G.set(i,i+3,1); + } + } + return G; +} + +//for check +LDPC_Code get_test_LDPC_Code(){ + //convert GF2mat saved in .mm file to LDPC_Code + // GF2mat G=MM_to_GF2mat(filename); + GF2mat G = get_check_code734(7*2); + GF2mat_sparse Gs=G.sparsify(); + GF2mat_sparse_alist Gsa; + Gsa.from_sparse(Gs); + LDPC_Parity H(Gsa); + LDPC_Code C(&H); + return C; +} + + +LDPC_Code MM_to_LDPC_Code(char * filename){ + //convert GF2mat saved in .mm file to LDPC_Code + GF2mat G=MM_to_GF2mat(filename); + GF2mat_sparse Gs=G.sparsify(); + GF2mat_sparse_alist Gsa; + Gsa.from_sparse(Gs); + LDPC_Parity H(Gsa); + LDPC_Code C(&H); + return C; +} + +int save_result(double p, double converge_rate, char * filename){ + mat mat_data(2,1); + mat_data.set(0,0,p); + mat_data.set(1,0,converge_rate); + mat_to_MM(mat_data,filename);//dosen't work here and not sure why. error recorded in mm_write.c + return 0; +} +*/ +//find another error with the same syndrome +//it is still wired to use the original error as an input +//result: it is okay to use the original error as input. They are equivalent if we find another error with same syndrome. That error will be substracted eventually, and there "should" be no difference in a BP decoder in these two cases. +/*bvec error_transform(bvec e_in, GF2mat H){ + //input: original error and parity check matrix + int L = (int) sqrt( H.cols()/2); //side length of toric code + //now, just do a munual change, add a vertex operator. + bvec e_transform(e_in); + bin b1=1; + e_transform(0)=b1-e_transform(0); + e_transform(1)=b1-e_transform(1); + int pos=7*7+1; + e_transform(pos)=b1-e_transform(pos); + + //e_transform(L*L-2)=1;//b1-e_transform(L*L+2); + e_transform(L*L*2-L+1)=b1-e_transform(L*L*2-L+1); + return e_transform; + +} +*/ +/* +bvec find_error(bvec e_in, GF2mat H){ + //input: original error and parity check matrix + //output: an error with same syndrome + //int L = (int) sqrt( H.cols()/2); //side length of toric code + // bvec syndrome=H*e_in; + + GF2mat H0=H; + bvec e_t = e_in;//change name + bvec s=H*e_t;//syndrome s=s_x;//(s_x,s_z); + + H.set_size(H.rows(),H.cols()+1,true);//H=(H_x,s)//H=(H_x,H_z,s) + H.set_col(H.cols()-1,s);//add syndrome + //cout<<"parity check matrix H=(S_x,S_z,s). The last column is the syndrome. "<"<=0){ + /*cout<<"llr="< 0 ){ + //cout<<"-------------------------------- ---------------------converge when i_iteration ="< ss; + // Vec aa = (abs(llr_output)); + //ss.sort(0,llr_output.size(),llr_output); + // cout<G@(ted^d`*=hs$K(G?=(HWwGSS6q)zt891nVm_^lP&PB)=7+V?RxlML%V!^&^}rb~8;{cG2cb>rV` zD}8oyHYn2B{8579+xcZ)ehNMaFXVOjGcrAI9G! z_ zwI5x#@|pFguS?7M;5vPl|5$Xykj%qfcm1yW{LyFMGvbM-He6p)sL#5i%}k1Z=Wy5H zw_3isHTR~C_x<$jv5(&M%=))(o;%`&_wHZu+{P;&zVX3lFPi*S$Hk9azk2ZEj7x%3 zL$7~y!<^#uUtOcm8Wnmyul2@$?>u?mlr68Eb+~KhKU%(eKKAL*6N(Dc6ED#cJwFcr)MXS=lukF z&PZVA^$Es@-3j<#nE-D~z~|ls`k9cR9UBtVcYA_%xgx>1cVhxM_axBs{R#NzC%{7q z?EGg5`tKbH_`H$;@0UP7k0t1j?yz^}^|2)eWQ48u4>JbP8PpfQY#PX_!VmYX$AmOIzN z=Yao6C0)rHJXIjLU3`86hNmg2Qa4cI7OWgbdy&ulU{5}GKpyhR?!{*o${mLMEjcp3 z&3_%*i*jaK@`Dtgk!Tm@&kR}lEj`?4)i=w^|E85c3OzG_qg5{qcj9va_z3;nB=vT& zg=b*=A%67wY=O*xJ@K>1;+`R;~<`da(-^%b1b{fnv`uJ^5+G}PkB0f$y09INiTcoK)uqDf4!xDo7r&- z&(frxZM-a5%HOa=%JUNH&(DRBpXIh&d};-%C`Ce^bfv&*_e=|K1b_Um)LxoxA@av> z*?)^=KLu9m`$C>GPmyyhaA7}If3e$lhgIL+_Kb1erXQm}j zA;!JF>}NdeU*Nsk>wD1CY06+_^|)+{gZw$yvWHr$-T!W-j)I)jXQoxJTKg` zmQ*Y)sty-dg^P-0*1j`dd&M{wGp?|rDxAA8Mih zUKYBdFg&rSsATzapU*dDL2-3?36xP)zVwFNl0t}EvZ%PKC|p%s9x$_`RmDpeRxByMt<=S3;%%i>71c!xLX=_l)v{%LKEb=7xT-vS zYbai#FAF7&i?x0j&_;v!9umf;&y zSz5KECR|!nRk5r(G|O(=a(C;y6y~GC7B8+UDPCM++0NL!yjex0i)zrsqS7;knOaS< z7#0vO){*_Hn(~sHddS|(cHOEJ%?jE2G-yZ9R;4CV$dZc1p>n%A{FOExm&B4zSSUNe ze{X_uR=%;tm6eNcEh?*7S`x0P%4M<8e7LxLarKxnbCwoY-C8t_X)v#%YpRgB6q%sn z5KQ0cOS7|zV7soqByHCpt|%$0M0W^F>yyg0sybnIQCV?GI5ev;s|aTAZojyAR#sbw zJ$tCDlly#gmX?=QR4oCU>Bzm%8Az5amW^$(l0+{?@$wvV0h0nTzPQ^mRDeqR#)*zH zy>w}5RWWqt5@X!d(5xKan39T`rBO@2){n@?GNQG88^;9$(J=IYl45w*sQUB0gcb{ zjmyd!KW@VKtVt97$hyRrHFn~J3FF64^o1Av zP7*AU$u}Wu!kDpRd}GE>7(a0WS%gBq@ff_v6k*mVUQ)EAxcVknzxVYV5n#VX3oB|c z)47@v#^1B$*uJ8N3NtMn!x4OTp&V81=5ubbk)Y4jFg*s}o^8`hq=^veW{hGkffl+1 zavIC#?;6nJf{wj`bDL8O&YeB%Pa0qk;~0~Ld8VW|T)Gs0MYmx3E62zQG0=T`a$3}5 zD(k_-kGXJZb!A1hdph#@s+Sd4f+Y<-R9>*q&CwYFoLSJqTz21wyc1DJ&J6B)a_WyO zp}3I3i`MGdRzdfS+k5zM-_Wzw-0kT!gMUFKIzS0#Y*&lHgl1WGlH0Rv$4(p;J>-E; zQBirTqpX<=3!JgeH|B=2F$+tV!e1)A6~jopT_!9mEx%zA#@apxBPWxbS7F8Ov5B^U z79B%nN#~?Ti;lr)=a|K!imLM4Dwc*_hG7pQw%xmWTf80V!IhWY>go_yl9&!fBc3{l zLT;P4FKbq5@!}%kFF6{tcsPCn=G8=gLa$y19aLAt^|c0Qi<7h%m$~;e0LyH8sApn% zbrHQSSJlLLSss$i`p_t*-=)>`!Gyv0;O1k;Evl|r0LQqhoK7=Z3J!dAcwxx}7tn>D zK$#0G{6+cjTIr*rU&GcaW{W}T>MML%!dop~P<{)BUtH74FACpUS&IB+6+(H1;YsBc za1V>COULEHFS16G*;m7(9Uu2`ON*B*s445q%>|R98A8OPAgdUL;-Nf|;xWtndFU zBNa`B{s#$#4893PMXWk1Z8vHkiwm@J*f-Wu6je042##3@ep$iH!m&k*1-EgfOBXKg zQyu?~0d7TQCoHbOm|yBBIBqD`7`3oi=*_Jc$6~N5N?TTEPqU}VvZvKYrbLzDOoh^(Rdx%mC8bO(u_g|=QY$MeS#*<9Rsq9OFj!*} zWO%3KCc;>-l`mE>+mtWGcU8Dzp;Cq!shR}FM`SHoUR(stAuIu+Of3B*L)=6iE-777 zQhBRVRaFEd$`&!^RtG~#VtRz|g@x)USPR23B zn}qw4kWPg6*m)41j$aQDY4Tg<=e7LLmXg$ah`lq;pNYSM|G5>FPgA~PFc=@EZ+E5F zoLP<{Jc{RAb~;KIv0z1+59nLv<*4=`B^~MHIb6`G%9$1&K7;r7SG*Q2`Slb0n1Ahk zKZP1nlq?tjEs%(5{OGGjL-ZlaWb6Lo&YyuEtmIns-e+!tKm(Pz7JaiwAE1<2ba?dr zh%6^7RiOFlynKQ9rS8uYSMsYRN8;2i&v)6Mb{BrH4dU0{Ut#{+T(})KCw{*RxA#kk z^W2#IvG;q3^NgAOvG+NMM{E$k_C5;nS{H7|$BFaYnEkQ$MTpngAb#!r3F3FVa68^j z{O2y*-VY;Q<-%L6_&D*kE<7V!>XUYDZBdBSOc#!ZjDJSCaCh&{a^coikho`(3uoE( zC)%y^x693G1;r6J(#6>QgBZU2_bm1Hy?9Xx+j;)ON zr`CmI>m&YI?ZWN8!Ndj^j&2+OtaIU3*A{7wF5K!80$=aKd6v@tY;fVH+aP{7x$tkh z@D>;T9T&dSg=e_%HWz+|3*YC$&vfDKF8nMPZn$v!j4zXqy704I`8!?scU`y=aP0OR z7oO_EGhKMP3m@siGhFz&EUeqe6+lZ*k$1T=-5G?swsBE?jrv`&{^?F1+1^ zPj=yk3!mb`kGk;7TzIDo|A7lvraJb2xeHHq;n^-c-Gv8Sc!mp~>cTT!_)lHI`d z;aM&`w@p!WX*mNiMw1g=f3)8(g^N!WX&l0vBHH!soj1 z8(sK(7k-lqU*y6UyYNaEzQlzuci~H2c&!VsaN(<6c%=((aN#$*a4qstsut~6I`~{g zt8WSSGrorw)gmvYZgpkCW%u}5$kKh@Y<#QdWaEmo(2&{Qjn8>ANYjNi+XOw8bTa7{ zL0?LmE~~jg&|^r`RW%z0eLiWrsAhwp&m~RQ)T|ZsnWSlMW~HD{Bb`cmzMuz@9!R=C z(8;9flA76qJ~;?9T~RYj(8oyA1vN7TeV8;|PcvQ6he*@qG!;SbCrww=JlX}|ygj7p zVw&xOewp+z(rtp?LYgk6*&^sB(sU)w4TAm?X}XYRqoAK8P1n(E5cID|(`7Vk1^qB- zx{79{pzkM57tx$A=(|bNH8cwZeHUrEgl4v&ZzD}t(99Ba6=}MFW~QKTBu&@POc(S5 z(scPuMbOuhrmJTj{hIZkMLLsoyP#)~rfX-m33@8&b4j-d`cl$#<;)F&9z&WgoY^So z^GTmaxiCS4%tWYToi%xpoQ90-~&nwcf& zW2EVtnVEtNz!zw%mzXKiZop*vsTa#lco!0Rtoxl(sZ57`GUTiG+idM zK+t!Qrb}dI3;H(FbcM_;L06Hc3uI;r`bN@peav)0FCa~q$5aG;Eor(s=Fu-j`;*Ql z-7e@Er0Lq2ZGxUknl6pmBIrv==aAkY=rN?}!kCSMKA$vQ7qdao=aQz&V%7@!Ow!Xy zR|@(x(i-Xcf*wRVmvn)klS$7Yoh|5-si5hKm|228Mw%{&nJMVQr0IH?>4H8)nl6W_ z2zozhx*F!ulcN1e)5S2`1^qJVt4OyAdJAc~6lRN{n@H1@FgFPLPo(KWn2mydk~Cch zvq8|mB2AaUtQGXbr0FV{m4d#XG+hL9zM$_WP1nFI5cFN7=@OXPg1(J3T>&#o&{d@A z0+^YCzL7MieluOr3rKTnHx)r&OPW)Mde zC8Re9dJJh!)n=oh&nI009t$k z*95K(%n8h%Q>f{mX?K3qiJ3)<-jb@tUi7A8)?27WJ?C+>()2p7fka=6VPLe=qSfil zlZ`yan*z8!)AvPQ^rj4BHHtZ={-|H}-;)&PX~*oBuN%*=9XM5K>ISc7PPd!*bxa)= z^rjmVaEHi=dDplV%@(Z_oVD1q-U5`M?Wps%BP|utD9BL>2swiI0Tq^%CaLB4(PA=> z7F(WfT$)MXS#cA~Xv5rWl-|WEyy$IU?)q-{5AUH=JK49ZiNZA-NHqpQYfQ*S`Ol*! zO4Ef%Y=$Zn;}i5S@@ATSvyn?q;H?o9yng~D7=7IPHj36_E4-OO{X^qdqQI~>lQ%Y^ zB;Ow69gNso%);6v_OcseG#vRhy0I*Y{R)_I2ZlWIqq2-fAZ6;276S7D98=SWJo`$L zV*D9~0pfZuns7D+cvhq{A8Ud}dDOd{9EPIqy_y0FpN|3^_4Dy#P?q}X8BzVrBh>!_ zrea4$E41zdRO>cuW=RsM>s=3N4u*y27UcVDM%k!pooTWv!CK=a2%z*!GU?FAY zWg4_Y5w+Nb`*=+Yh4zEq)Y>T-Nj0w+qmaE!y{2C#CByypt*f?`HBgtdSn8-2O`^pr zvy9*22KCS23UkzAYehAvW0?WU#0_O=sCBr3`OZW>(hpno2#bD{ZTvFr8(LmX?n2A^ zj?;+N3bl|e*|B`eVSI_Qo9Iq9KZ5SOnQ?D@oADrwS^q>(MlKZH1ZGO}Q^=v|JB(#W zZK8|X{0I9UqXd}m3wg(Pcn4j;<`?B1n!eST%Ko7rG;ZWC`8L{e$3l2$TU{N72?!OU5F-^;Ks&I{F~dI;)j;RJVO5SEcqKP`DMb3 z-pqdBKNqt-3njrqS&&gkqky#81chvW{9GdGapW-zSs#}_1|%ScdopAv7Ys3g8g~gR z19uXy-+&ZwPX!^l7vfIef%=ctHN#*_=I`;v^;>Sq5v}!uWKBO}>^_F_QSqHf3hK~3 zeqn7|^jU8zJBEJP_yMxGJBqX+v<$PNW|=6C9b+H4yE@8#i?%z;+n|kKLf{}|2}TPfK{97G2(H zykO;{)@8mYh$I>={zj8P(@V``9s)Dp9*h|8Q4L5SK(T1yMi*s;in$(_%=5q;Lt^C1 z;cDG(Xc-1^?=SJ&G#FpaZ^Va_;i!=QjvP*QLVZnKfi@qK!$~g2pwA$P{z;zRZ9Ktb zNbihKZz8RamZg>O!R4$af{@5T-?0Y8g-n0+epr59$|5q9Yk>$n#dHz zwlMMQPnc*CidF2+c(E&4aR{ zM7mPdpNt!X0rglg8t?@DEde#JC2}%Jt(yjq4_Im(OIGVHlUQ0DOHu2_Ni02%dDOZK zBsM&b^;7GLQETwah-3ZLy15b?5yw*1`l0gPObZKaq9OR-Q0v~o@8~yzv1_{Yy}{TO zUj;_*3ACEYfk7k^3LH|2tYV}*VuVOdywILHS9K>(M z7G}gRuW@treh(SBxs<6ZTf)BFlD6pZ`}}Qc-j+bDAj$vc%I|6=dt6X5pusLkIS9C|((clIe zd|#wJ#lKUX-WoZ92LCQhOy3#3&Ex-4%{v(BL~GZ<2BNp6S^%2*4gsWD0NVKk+97&d zx&@$-j|pJ71)zmH1dw3?Xx{e)Fv0@Rw*L@7rT{kMTJg84b^Gu;x)m+j70|Z^V*xa5 zYXDLQ&`N>G2{i2RdSpSv-idGhdhduUVtEhChF#$ufrj0olm*m^VQdcElN)KZS{6<3 zYFRkD6>Y(!H<>NyN26BnN9*=(xPRZOTf-M=B|D;?yZl?#ynV6hN&cgEoTaUEfMfuJ z9Ke|;utq^gl%4gT7_8BD1lV>4e%W^Ct84Bj^l#fPjIJ-+?rZhRBckobqB+@i5o zhQ@1+-HNtrX+4r0*@2epOb*6I{6)50lr6VdwA|gEkku#Ibm)_4x`AvOwzt)Gy955t z-W{&$4K`dTX}`$p|EtwI%g~Ug^i1?hwqx~M?3u0%9q6SiUkP85Te5{swoSd#2*jo) z`M0keA=}JCT&+l?iQ(bq^W#JE&oJuS-v7+Q7_#9JD$SQ6osJDA`&*dd9Xf3nG8w8= znse;rt;RJ-mMbDU{G&g{B!SuSX3ixT!)XrE8MwSdBJA7}xyV9B#gVftWId+@;n@td zkmYgYID{Z)F6LyO4+LVZ)3Bc)eVxBs`9w@X@cN5=XS}?pfM85|Kd8Ug+Hp>khgF-2 zss)qY6O-w&fO`IiyT8O*aG^KVSc1A?@h_*@Ow*p-3T$0$GiD-(R8b)h84;8*eutc= zE|Ah83s7r;G+a{F0!glK<+5BXFkZqA1f3EV#zJ|samfWBp!X~gQtwMpMIlP2|e{%h|$4@Ox8k-;}a-rAtr1PGBJfjR=m`SIKrTlZ(hkr6r%nt5o;fS8QTfVhMq zE9L}o3H2%F1>zEtAl5D}QL18|j?2vgyaLU5*OOhw@P)4cwef_ zQP3a@aTL_~p3LJ+ksn%!Gey2;A0__dZ_ zza$Hdf(w1tJks$C!VeK{U=5|3e`-8;sJpx4UZ&m6ub&ygcco5SD2K?U)~A5K$uDuc zE8#HW117(O#IA(hOyCz2vRnz9n7}V42#3gS@CzUb!PL0A&#;hD5>e|1^JacgFl0@S zcb-oysn^3E(N=1GI|3PEU!1l2fSKE2m9j$EBx$ztZy+eT-_sVd+UD>Ja^M#^?B!QG zzRY_hLXPXDKd07LGb_J{t|n?J?ph}BiwQg93E@`bG8EU*#C%M#D|kNh^NVO|Jil5$ zj0yZ=LN=={OQ`!C+Axl`Bela)>LS-|`>~5+@{6}=@dPN~FSv!^`na~A5=cBsrq(SG z4US0JePln|vay#@a>tvt;I^`EWF(1Fk(`rRqC!hpGT*KusinEc{hFESOsTP4jZS4yi<>n=r= zjAsubHxHyRNz5-&_}7hxk<#%hZw~WjoYQG)%vpd?7B0IQW5Np9x*V|bj${3~*lU96r{2c6+Kw8PJE@ta}u`#JfwlV47pA4!Mb z?TPqxy7&#U`Q?+}QS$o?S5iKb4!;W$@k`a5`o8>$Ro}1CvYQp87{8A5BkAxvfE<0+ zH^as6Zkyll$uFJ!3gi4pI{c!E_>FS$n_=^tM}C>)mlEek(&0C`CqLiEx%%!OY5E~8 z^8V3+*||GfY6oK3x1%*({Oo9(oUI6Z{#TjG_~@o*U<-4!i`L^ui*ydv^bc-1YZIH6 z$GC>g+suUSc4U?fK5r|d{*FSLnLbCm^Ao|KwJQY-H2o-|I+trn+qK+ulyZ02R9l^VZigY_xt3dkxJ5MqNL63cww^^xm>B~*YN=Ei!=L_ zH*~kn6SIaR&u3emYf5T9@^+8*`hvnSM~ts|5^yH($r5N28soL2kqEB8YlquWi8`iI$Tv5L}1b0{c7E8dX-*pmj z>Ni6IPW}86XrwekN24U*)bBe2uetWsm=r1rw*d7#2+G}@uvgSC z@==BsotCjuO&KEi(Z{x zze`=y!U-c*h2}nrE!^~M^?@Cl{}_I@XQv)l>;8e{$cb;OKYoq*^f$EQ??gUS{jaLi zKlOFje}QNtN>Mjnim+Jr>Pc$d2gs&wye%oxm7KkLIpUS?OCUMYl>z`UulFR766x{) zK+Nlq1U!+hegF{jdRGGdB3=CfAm-IBf&P)M0RRy5Iw*kwh>8OkfRM8UQX^dh0i;T~ zA;-W-*B}4`)jHN2z@SLiU;u;Ex&smz9O+5}Fj%bw*ofvw{B{O0d zp62@^H)%`Aw+j)k;CMv@!_{G)F0Akv=Vo258>BNf%_3==&xt){)B&f3Os=Dy{Evb{!dq~ z=*eIppz@y3AV635ga!l3=?SF)%IXOX0d#gxXegjTfYgn{$E+Tng^rSezAwgcjA}aE z8Ehn|&vfcJ9=$MCpRAR18Kk|Jc$6s~hlrh<>r-0XXD16mX zi)Vbi-;5ZIBAiv3Uo5-LFX4_@G>kpzo?5B6f&r;qUFavvu;N5Rhco>i$G-)qQ? z0?3PvTc<@ssnIFx0^P3%^!~9N?B{Gv@`sdF?_8Isw_5>^t?71&=+$a6g_SQl3D#P-UQhqs`=m8YLHU!^yc%Vj4Ze%-l{T6#KT-B;gzNqQ_kxCfWeZ){+ zLwS%JWsb_z|7oP}0Uh*S==;KlH9B~qCaZiME9e)rcBVw$9l(76^_ie|ILzOZ)E3mY zXzOxQg5J!%hmP;bO!uRPEAut*NROsv@i#S!ZinBDW9o&T$|*_u&YI`?Vznixw_xKe zHwDMJ_O_=clhdk=s4o{5lMn`*BEn!W1+{(+1VgveTwyS0(nITH<*W4zuqwi(FGsDv z2A9p9P?hM4Xyt*_d<^-FOR#q>P)*;`+=whl?SSnF%=jbJ)1XC%lph+YG$DE@kNs^P z1?w?Bi06tTm(d@Z+uX(l!K3knDkR8*Mhz^S2aSx2k*e9d=r^NJFs_{&zvXh=B1Rjh zKGx|*P5-=5+AX{>{Rpf#vxoI&K=M{Hr}h4iWxeU(o{QZJ#*k=}C()!(%4x9Pr8G|% zZW;|YH4ny6h=G8awj(9T@h_-86ZWR%mUIc*9EZLZs{aC;AuF?T^_K#%Y2A6T@U~Q6 zOP+qHc^hg-CaxU_F{6+9N3A1iqQY&^elC`8`{?3{X>{3C}-8EY@9Vgtb_h!K0 zMp$vz7BGgjW!l!ZRo~6IBFCdXvs1@r?=BqBdxZiUNq~T+!PwE1^9aX1eiH%p$!Fa~4viVP?SE?DYlgbJs!G=l3Cj*bdn|m-ZQo zXYPQ$jWUQP?ei-bo#e6y3BB!ejW9{;9Ng|Uhy(k4B7VzbxTUv!y3gO*BkNpEU*XMw zPujyqHQ4CctRijndyGcG_Oh)Jb~sFc=676mTNySI)i`^QL8?IHLa#G$ztm&kp0cV1%1A;x%Yl3Ps~D*ByyJo>bW;7UZ1u72A&CE2OLpdV zwf<8S2Te^uJZuf4YB(>*y2m~>`aBj=nu;BPjLezp}02t6l{| z$8xRHxEykuIiQ^J4egSRZn3C$Uswp;urFjAcVl4c-4~`IRa$Wx?1KG1sBg<&9rj)l zL{p7YpE313%*Q3$;-_a9LKrGVi_J}k8oX59D0L(5&?4_0<#D&1PW9gXLQ+gu+K!$z z(|2+%&cNi?640;og!JjD0eyhBF3#V>%DOs#u6|9r`7gn4$f&nZoj@K(=aMy;0i_t* zaJ%fF*ToZjNa)=`KV~ae;!HQUsUYef~nDwwB#D(APv{F1*3KdMIZJCT5&hMtwW zdbrp4(=H+3aIX*#U|;g33sst68Te297W^lE&vR+D`CdBj`X`_Lb`weUXRYe}TPE#R z>zBb^H~#{O;u(iL{lm|G8y>WYt8epqByCU0-~1b{Zn6ya6^o(+cA1UOa(LCCY}*hgIh2)r=q93x%w+yn_(sS zWv>1j9^%PBFWv#m!8iI*uO7{l2)>pbRDsgbzjliEyqc++zF%~G4XcSI-;=jdoaUq_aEx zQ&h3$9bZew{l?eZ#Hi^SzqnF<&8i)$md>h)O351Z7_4N~ItF6gJ+)qYsO|ceg!P(> zdXYQp#X+}@3PS6NN+k`kD|I_06qS(bx^v`i0Q~&OejXjRncICv(Ez$Jnpdt%QV}LTLPI9S0wK zw6xo$e%H$Ru|Rj8zBNyOB`>-dtGigZ*3*#@kLPZMtF#Sk+->Q({&&J-^JDoK#?e@s zZqh6UpypiMj)hr7Iz8c6uM>7*M-=LJtxCJj*J6_meU&ww>rkwtt#VTH{GWyY>Mnx| zahCCSG!bkeyr<(~TmO*1G0rnTwiu$H&K_X%%ky`rb+@DUVUZ#QW>b;bU4mJ1_;qsz zl5Kv}e@NY!n;fV;krO@x-?PG#@hx>2F0i^7o>y!2wdCqMHGQ|H9}`+IvIIv@_&nJ& z*cls;g(ZtjtcEdI)}iJAn*L9Cen;QU^kdBw%lHI6f_BkNyAUe@IX`!@8*e@xS>_bx z>i^R8S2TUQ7^Nt0uKs$yzWuY`=IejgqGws6B4XC zHd%}29mcOwFNBXaar~!OT7Mg~+JUeWIJLXKM)<~HSWgZsJ;cx$&==v!Ghv+v@rXPO2?}W9B990qZo%;ySrn{lb{oZJ!g|Q zbgsn;0ey1aJUEu-=FK#`APz0ZH!!)2RA>#+aQTv4<5$RllXnt}EKd4ppuqE-tJHdv zof|Hr=t^7BH|9Ri*+#ABq#>Qj>1y3!5Va=@)jE&JuBml{t?V<^ zdirmhIC;W>`%638<0>uobN&W42}dA;q$YZVVvxdselIE+{T91k?5^&vuCC*IMz)<- zi%;0px3nHkf1D7v`7o^yfLfn=gVkZbs`_?X4ddO@2Ax zrnAsX8AnCHO+WHH-6>l=>9_&5#PhDr=;vQ2i}~9XNuT0ahL(yF&<=e^Rp_OXkUEo3D(7`B#FC zc{{#jdz0V0q1Z~E2tz!V{GKDfXPYj8Ajfj>9Omb7#fha9OEp4*b5~89;C!#(Obatd z;*0YS`Ra_~fp1=HNwjIN_UQ7`2W6$lFAe@F$B?#ABaE~ zB7(XZ)Q=(Z75f(k_m9K5GKzDctRWEfJcby~qtf(INVh1oQn2}L!RAiIcJBMihw38PWO!CmW6b`V{qiHqOn zmB=Xs-fCQlOj-mLg){dM(nQRJ>xWwe|1N~tVLrwvW{ak1(QHGDKAmzDIdP-_d#|{t zyzS%yNg zw9ELfnT7v=#BMC!j&?lG()EK{%5o#REHm;d`U^xd7j^SSyPbqF_SsHzDSy13uqnl+ zdf=pGR=!V#jUp`hlgt=pTU}F*B%VD zBc2WDo{b`gzT4kc^9DzykiT=)b2t&Q!LsoDMt#oHK|Qo-duZ$Q?V*zOnv5ct&0{zY(LT90zlvoD~?L%y~3j{kTwnBGvzr)o@gQ=y+W9*g}!2zxXJ4y-Ir>_h)<+;meuog}vxU zdmI>2uoKL^DS1e!(q*+l?;_0O9}86;31A#P#1=_vpPb{l<3@OxT&f>rDuTROJb#7J zZPiALHa@2g(G?5isl0xMM<{3o#zt{u=5t6^cOZN-cL5f~*Y^58wVn zntW{X&UlkQjV_3`Jbl}#ZMoBK%bVhD={sONf|A&pCHU=VXlUY_fSOz4{H~Y$w!LKY zTQ6{LyI#XZI*%9{O}Jrl2wjk# zI-Z`Z0~gF#;EksNaIMAgiUIs$T#e1>#;X#3NZUXnK?;y*ETi~Q8Q7Kee4RCCns~-R z!|O`^_kZErVZya`7kA_g$L-j9%-|398Z-He31*U>f^1%F@Zo2ao|7sTY?_`k3iLSa z@SKO8`H}jYdd_gYFoTCjZpSWPw~+$=$d%bKK=c!woyvn_ps zQ}ZR@9G@zZfOCB6M-p(3Pf>mp>l~k2Apz(3)a?>*j!)et0q6MCLx{wJM~~xE0mPiF zqf?mlLU{TX50+xKcs(%sXzK?!KGliiQ&+^igLr(Zl@BE1DMZh>0H!HUTRwSwstw1d zjszHS`TxhK{tw5eFdmDOH~oxT{v;p!fTz$oMVyMGIbhB?yWy6Mh^_w z_V)T|Xlw*7Insy`8@(^&Vdo2__Uxk0senx6RYb=Ojf&2}hA_HjXt;e$;7d64=zMpi zYtj5nZh?k4ipH)&*K6Yj9s8W-->p8dB|8-lp{HRVI?|1Uiz(cY#-RZ|ORxG*s?*=} zeSw3J*1<&|9-+@(orNddF-WN!Z%)Dk>e;I+ad7c62_#2O;^1N>4lbT6ft1Ke99*nS zQR@asz!N!%gNv0oxcCu@0*`)?lQ_6oiGz!~CD1=|asU7vT-+#u0g;n9xLApUi;qYk zHF6RM7b|gau~q^DBPVfiu@VOtOC>NUauNp@D{*jfh6DyjPU7HVB@QlLB7wBXNgQ0P zOjGNIOJGRkB>Gw<4lbU6?jRVcq0L+x2lOw4u`6+MYfoVGUU_hFw{viDo9KBwxQL!N z%(urnxX7M2Jiw>;(erQwcZ+p!@sptcAE?^bXpWLMctUX)4lbt0u13Y}|G?1|&(K$x*yGVt9;oBqqZFS?gVcDz4VOMkuUUabPsM+CobQ3ILTr5pg`h-aGOP1gK(=bgoDQOWP|5$p5<2?zxF%!;*mjt=vl_RXTXbV_xC9TeA9a(y&nTUMGKmT9{Bj~)!`fL;1&|IB8+E4hc zSVD%y(#%VDp0c$G*>)J~_#1gC-Pan-)JN3wQG{3U#gSg?H8j=lU!h=O<-e&r4s zKfsXMFTtsB$>Bq3^V{AY=<36DOX`~2a!ScuQf1qdt zNhZ(p+;Ke}ojI8zZWtOKOfs}}IDnq4#~qOK5@VU#qh0EgX;qJa34@;X7@BU&ZCFwfIF zYi7dDV>|YU*5Nq!s!R$x#5fl>=I)rD2^nyhTRxY9U$IPsDdSQs)r^zKXFT{@)C%Kb zkBYTZmlz)f!`~XaL3TXGEJ7P{6n({LBD|e&ElMI2XxhYRh&!=Z73BVo-*hzMx?_WF zH0D0&3HEQt>S&o?;>g0CAMHb(*eWgH*26A$A_42<8PHf>^t{O%M=IO#k^<^ji=n8z z=tY+R<74~0bpwvN`o18wj#=0t%a$N>^=|FgW}8yZm> zHt#3`YMst}Sdkpu?ir;R3dRIlRl1Z(JSaDXm4odyqC#D7#)#f&c4 zGM}I@Yy-^G7kdhX9e_Vg%9zQXg4apV8sq&DYcaL{R#xH8muSDPK53t;7=2iaoK$o9 zkj!xJGA$QxA5-hz09Pmzv%6Y9hPTVn5J&V;=c(I0m*V_@=>LrA3FZ2CAS8zsn8`2B zA29tao)G=exRX`l`*o=Qs0WWvpf&JZ1KbBA^hQc z$(Eh57^`ctvpZJx2XLYU4YWpk95B{Ht-`8=HJLvItN47*^E_gnfMX*MHhsne1yB$k zNx;czj_Gff%rioIxV6JIq@*USLo4@9!scbVdgi8;CUdrh~P2)@C_n( z%#R?K^8h5{4*;A9Ua|z72wsu|oCuyG0Vjgjjk3YRiQsifz=_~}EdeKj$9m!xCxS=$ z0XPx7lM-+ucrr@hdH}Lh=5Qi--;qF%2;Mh(01|No=K)A7f+yn$|NjBVo{u*E-yVQO zOq$QOq=^kwO*ho~X&l8PuE$%f@gD*1&~SZ@2yi2oh5+}uk8)%QWtt3m#K!|1AHWMk zei7Bs(H8Bl9tgRn)XtC

axh#y?&&>~ha0<@7t1&NVJIFXnduKYPw zcF>sq3r+~NkX*s>xTARE!1GV0PsK3trFdx>kA*@Fr><=1knr@~KaJNhfMU)hv-5Yb zn0v%~LgH;%lg87ZY)gILbz6;F9rQ>{h?ZU`he5ChH87H1mA}37F_4rlEglDOUHhr=3$$Q z-4&SUK)QgYD1D=R@!OXcF`gJ;zmnI`RHs95}WfFU2fL6T;K2oG{b*R*RL` zA^*}yeh7>15#B&_gf(elUTr}}9!E@ApMGNx^>l`8ei(7UT)QP4OHH zsuvnynTgC|G9G1LWU-L?k5_(MEBV@Z1Z?1BW{P__Z{pcg90`QaGz>Ki&^cXm4GMgL zg_q{pPcO~;@G>Ao+F9}CmQTUwZ1 zY$S%MU@SbDff@H1S6K!c&_g_~M;h0_L9GUbaURZ=xY0SdJ8J_M$LF ziKwCw9*AKT`3w^d8X3AUh6`K7>mIQ}4*35OUc{r1%r#%%Z_GtY&@-LSo^z8ZC;npf z7m*eejwL;jz85prJCf-XsrPP$yC(;^H*tmd4_|a6s1%h-hvD5tg0ppFDsP18Do}^<2sLTz%{J~2sda#21Q5c#CXl$S z+bq(Ob)%KP-BSMj#^XRbqFnO+nT$k33+^?~5{bWOr{*^u>zV7<{QAAf53kC0$M*h zjorWBHRg~7+O-i%3ZO2+MmC^gA=Jtf&%Oc4Jil}}5HXTMdaLmLL2A_y(#XHJDi?lW&+bl9$W^NVaqe9#0e4H!&z&53{9X|=d{4zB;c$y zo|3>fTWf^$Z2^1JGV6-ixSorR3HGL?wb( z4g~uj;1Gg0W1<5v$o(>Dr(fg!qhDfL^WKk`MhdPhKe_2LWN&VOH!2TL{Y#7n{pLL; z&spU~8+pzuzy5u-?pjzt0M8NQ6yC^y+8p*;=dIqo4+UX2=?VOr^@4S_kU#^F8})d5 zpSIfx@#OwRb9{Y+b&%}z_{VhE;d$UkdOKVb4ZW8|$nI}W{_5ZDuYLmW0W*VK|IF>R ze$X6RtS=@xv{-+Pa%izW$#7_~eo1xcR0wHyLKJI#CDuRO`n71WKH{FGMPukw%$*L6 zkw7swIW&5tVy<^+C|fbtIWz}8b2VrqNhm|a<(2uzQfh=SfN9o9{5u(f6 z@xltES;4cd<~%E7HGYk2*Faa!ev$QWjqzbccsE#zxQ?*n9WpXZ7sK*~)3OLT@t8Nt zq4yA-hS+800OM*_XA`*dvr4-FIq@>N{_2l!;W)#)<)-U>SS1>}gi7WhP*o$-j6Vb6 zdj`M|;pV*9P3d|11$Z}#mSlv#jXqH`Oop-l9*y@WR}lM7R$BzIpWzik#Fma8t}8s0!!Zac;!BItLXt%zPkhKX|8Z z8QzK!K4|QQEDbo--tkAH>>fP$x`N7_A_SZaM=jU?HJ0d4i_9GzO)~jxBzHX3;A(Hz z`z^la@(qoS1E;P=pUd?vA0Ij=scm%PTVJboPdS{938_+0#= zebW#MP}jVQEbt0Zd7%lsYX(~w2>;vOy{3D-V%^F+f_g_NwxS=xM5wO4KM~i9Pzn3k z3ZW8?N1#S3##I=UdaLC3qWKv$pFG72CH!7k80<&tb>M(-iR{i+UCL4rZC&MPAyg$V+<`c>zeMHt7E{e5GuKw{QastNz$>rQQ`5?GCFsLOD3yrDw+*Tx_2mTh$lej{9H zp)04cQwEY=#lH?wzZ8=gTf{P7yuKxNz0$2dvo9FCFr%Z)(a@$9nU1kyYlmZ@W2}EZ zd8(Se#f~VA^*9=4I3;1nmJQR70?DQR1yW1@i~O|JsI=AJxHYf?riQ3M&Fj#>1wT7g z1I4Jf)WFZ7y|@O9XLMQpW%!jV!nyHr3=hB41|lylvX=;WES1B|$<>s!_o)%J?sw1? z(uG4|J}e32l?0i0(^l=wJU!&>A00H-CAew282_viF6Hp3j%qcYL~ipZ^r7GqpZ z{;w8aaKzftM$xJ9mDf~f_rh1G|qb!{TrYN5Tc)le$1iaMXyk<2&MeGP9l!$ejgC*h(>SE5NE5q z)qBsuV!`)u6t6Xl=47(7w~D@!kG`@~i)q%`>Q~eUTC-DMRqG0nJ#rFftEb~a(_6LU zZ$;i!arS!p%Q#!TORYP}(RX7O0$KYub zULt{%$O#;-uEF8zDPWCTJdqPPTwR01)srRAFLDBht7~w$`cet>kDM3)0Eesn5*UDg zItu^}S5J~aYUBhCSJ&Wh^+X8_jGVyX>KYubo*;oikrOyvU4z5b<0UXSasr2|YjC)F zoCMM$CvdpBCQYpyD}f<+u`2)^t{x)+Qug8MJ;B&i9IoCK82xe}b{pObyR-F(hwoU_ zzYK_%!s4k0hAC2gyK<9E`>BSZ0qdy-#3)Y?Ax!a3$iG*u^I;s-N?yfFN>Q~H zLzLJRN&c7BHD?NVmkUltE5uSxfm4|KBhGUr?%W>2ub%?&9Gx_FlDe{0!$ zJkhb@v;^i>JhNg9#m#)VVkTEQS#XN7p$`%E)_4K`pR5biHT}@B@=Nf~JsvThBx9gj z5RXh}Tbnhb@FEH$6DcUdn%%`|h|BI|FOG-(Uxg4H18TwC7)HrKY#`yWh;|SN=t7kF zxDui)vM(wbiZ?DLOT6fGz7q$2)?3TG;MI;_qmvS1FmZ;CtF6j^i(^hL@-Q#Q9`5;N zcQdm5Km@|q$pOh4m=J!!%N>o;cW_6{;}xziF`V+4!;176uRdc1qVav5_XX*W4ezm# zMiwuIxEAXcYZK&;7HRFW{E8%=t;PcMi1DCEdsO%#@mR5V`{+Gbxgb_dkHzH(#@B0j zR9q|RG(KMeW;lk^22WS4WBz>{X}id7#gQtHi{MNhT5R)}4@wn5AM)Rq zsds2Jk7Cw1G*+dGS?bUjg%xv7oECet=FM^b@-%+2LkoUa#c3J8J3W5C{6};8IkeEv z=U>?Mk^g|s2M#Ut^SVO|{cLk+p`Yg*TIlCDpyNGE2E6(ipVDZY9&kvI?jF!)A&scA z>;cWzEmjYB#v-jA&`8qm0S}OXrw~PNq=S!G?$(Y!@+&G|!7RlXYTSs7xm>rS6z46> zPG42)XLVyCz%Sm-fBhp~6`afbsr=Vzgd-wZzH593EIaliqxmD=g*s}yi~qojpS<|R zR3CngyKjT870_Emy9Y)aLH*^R zzAF^FDyj7(-*6nzKU1G693I&FUN8yI+V8DAv zQqS~vt|-ijrKN+7{xTAf83{e}BO500p#Sxdj`!Bx&bmZi!l<(kZ&%T`=&h#|(DCy? zY(}!p&tirrA}#R(d*2PF4(fPHj5C3&=jg|v18Bg=UM_3ThtxOGj)Sp~eB1>8wqwY* zNA#t@Xp`q*gZiGJz8j8*R6|?`dmJ5vV%Oq9|E=mhd}*EjX%Ai4*@P~-0((CUrj7~v zx2yNmGjC75^_{n6#Whge8T!isy~|eIhtLxx!5dA2NqAAg{l`# z^%$SVHD?zgLcM|5%#@Db_0ViQ9U5X(K9T)&-GX-{)!-j6SUJllLoorpQ$KD#MA3{VU?($&C;c6cFJ9o3a(gC~!?sfWNA(>w z&*?|?PsJQ3c?mv;l8)k>7v3uhMyUvc?$c7LGi!(9wU2xq7M^G4c^-ry(_O1&bUkby zcO{1}z(1Z4o}j;BOr%XAbdws7UVu~0d0>)`vodl%dc$DMp<|yFN5WmLm_Ryq8ka6} z_b2f@(ARw9lUzFd(^YVt*vP~Y_dnO5Jk0R5Xl!w|7w5To&0SJ@eEi^Yt-RvpI_r{q zr;V=b^|+?j0hn$IKe&8WUh#61b!nfMCCTfZ__c0qb7k4*x^8!}7%upz>$=m*V*Ezb z$o5?jD>15}77^bP{v2z0#He5{F#==!OK-=9lpJQSVP4<`lGFr=m*4U5!L?enpi_$t zzdtYLZOikwhcC~KUGGIR$oU>`ZB5VB-rbx6$IbJ3bN}NHo$hD$l>rJE`W? zTsWPb#=nFpJPm|0X4z$Eu@P;We_wbK8r|ZL8(D^A)hzDnUBG&xhzpOZ*{#KJKw_Q9 zW$k(iPwEyS*o$7OS8`ftAuVxamW4FNk!*p$Tzkl9>tUkML(ls6Dc(S$R{c}s^$$~3 zy-vl66OK=@e0eyI4jW>2ILhI!%oA4ioXY&nLR#XY*IP(q9H|z_^{mW+@Ko)loX$~N z5+ZCs!sk;wN6T}CY(2I7hA|ar$KQp5Co%)(%KQ{C0sFgWvl&-Xtcc^_VW1gYX>`j=^o5ARjm8+-z6L z_R?GID%qY2*j2JD7;`^ym8=8q(7OW~;P9KD<_?W-NLkcz_l0c~7_VpCplrGhZ85Uk z(|3u4no+-@aK+hNJ@Et0c;hSVJjfhEd`0Og0Ix;534C@vbAaf{hjp2M+w+rluTqUf z?Tj~R(@A=@dlp$9eJbR>V0m=9koyhq#i`_EF z@?y6fXL+$(eqnjBTlTiR*ma%3i~esm>2-0ADj~Ab$v`7JudtnD-c(EAZD$W$uB~bD zJ=W|G)y<)0Urfr2|B?p|K!x6l@l9sRmII@FfI^LA1WcE8jX&dIh)ZPjA8bMiPyH(r zWWN`Ywyxb%+Fd@)Az;XzyceT#R_t8_UUnD{lVheN3brG6Tz%BW@&zTQ@ET{0(ZE< zDIh;JqUZ1A#jgxu10`P^d@s*T&9C@)%CLgs_u0HxqIAGg@?%HH3etEq*1OKeYqV5p z+RCgw@Hyq8H{p%5HYMh4|w;)8ouTL(Q22O zzsc;+($;W#`Pw;WG@s1I>-1)FSmfiyOn@o|xyphfXMb3dN zJ6LSB{miK&gQhU9Oy?Tu%2kmV2$n5#w>Ve(mf84&p`5Z#+CHA&DK@EN-4Bh?N z(n2eUZ7D4N1OurKByd?8SUMm*G%g?SwAYcBz!xC)Wm#=fPVE#dx*-1WZHT^vv!>z` zQ}f_Q#O2SL%zB=T(Pv#War{!}YLres#*0G%9#c^EMN-+0rtyzr+j+{7!?>*v>%9|` zrC&KOv9@K4v2`%eVZ74RzCJX5FwPabATN$XI1uG&T0R177v{x(-KQ{qVS4tO>@A)> zTN7K2j%>{I@Ux5ZlB%OK=sncw&HA!UNl8oda$X((4$dQ-vWI+6$yq=C1w3=nTukes zi}4zazU}*a!S5$N0UKDFE8Xz^ab}>%#y2b7iId3>F^Iq$$SHnna`t=q*&loPF(Oet z@VxjC6gl4%IX4t*QQid%ILhLNOmTCzjeifN4NskqyD=-Aa%pJt^BCgCU7ZI{uy#Kv zd@OoLcY<4+@+QR>2F7y%}E_zIG198ZEnBRJ(5(g#v6}WycxT zi2apd*}1Xt8$J7YajgzltieO^E{(?o+B6rEOIHL6S8M~^baIoN!6*(|DN?pLiH&mz zx;#36?cS>Qux~|jc7zk%fun;3A}g?k7+3+QMpn3SjpUvu!38z*FHs|8UOSg_mb*9d z&?w2Rp4n_@N&$qn!PlD< z=!Jd6^X?3&M+}>?18Q2%TLrOI;i&_m(eaz=$@s-aABi9S%oSY0!=n+Fi0UR|NQ4pg zvr}{{sLnY~_{=3`JGzDMdK2mwnxQ^PPt*#RFT#-vh}6DpkZhj7ft$j2#`bwCj^Xmx zgil^Js23GSc&iBC1q%&S9C1*R@Ldsui;82o{9f<~mPf5oTodu=@;ku9zD^8*da@vM zSz_W3nF|(t)d`Dr_WTe0N$l&*S3 zbQJE0ilf5#W_&8j7`|f_{zv`8<$o0dhvPA39*tT=oJhe3?Fo7K)`TIX0HXxPvBAZ8 zWyy$^iX-g`VhAss+G|;1ta?&paPjeF;F7mSdBVyu3nm^=d$japY>z@i{<4Mc%OLD2kT`dI;bc7T>O zZIh-tfG;<+^9rQD0M1Jz3NWapNRu!>KF36+SPzm011q=*G%q{mb~HvENv9Hxtp}{t zz=M-B{YVa>iSmpZ3MKL`fr^AVs^k}v6R0ZeqbLU@)LA7%WV{{^Uz*$r1;k=13xc}I?1n<3ZqP`FeZWAB(fki*)T5d(2$v?Og`8AQpK&ZL0z-IoxGvI@aq#6Z)zD7U z*iQJZMBeN!sr%PO!=={Fdj+vN#+Nr4VaCDH==t~p5o9FYU)6%aUgMNd{IHfQ)JdLkW9)gES z@i2djkK7CtL%I&SYhPy+-Wcn}B(`2-M-ZjwIxfv-<;tqz2*lICFEp3128!>I%`Od) zOK==O?-9{tL+orou)!*laH~ItP=+~HINPPMWLSdtv&uMwG{>eVGh1fQF-BscoQ_w4 zS@)h70kG&PI13HE7Ofc4$)jQsR)T1Cq27IP$|_%T3iiLAaX%JABKQbQSAF!7dh`-3 zBmn}yYvb7u z@!3mIt^$-xt(d;ysV=8As_ap8P0^gk^@MN0GB?`E3rIolB+Pym& z88x3H{)$GykpBDY{=;*`dB~8h-{CppkV^yacV}JVKRQSJ9-aF?Fh^W*3Fe5S(UGd6 zVVxrevZr%o1;{x9(T3FbM(2u2zaY*L7r)MU3`d+BCV7aA=oq);?)i4UNDa&foCW3w z<^){xrV&VZ+I-F=BV$GB9835Vc6oWgTrl3uFq0SXnrMRZ4>Q9|{>pH}-{55MImf~H zQ)V)7!gqcK;Vy)bdqZy>cn-Z1Bxt&fgyVbYh&%8i^gLLGB0Sj2Tb@yh?8A4t5Cq+h za+8d*PefA7?+jnCnw2Zw`(|HBvGT48Q`BIVoUNXZ_KIp$M&(*V#c5?>6YzG)CnI^K}96PN;gD~9WR zxZ-yxhI=jih1hZ&%L_3#^K~~$u?0&FI4{hSk=vYYEEFGUv_< zm`dwQ0b(lmuqJ@WsT5VrUc+b%x0%d{P$23|W+8TdiDJdfa!h8D3YjsLy9pof&6i9O zk!IccZT62gyY)YDh4nn2-5Vb+p(Si|W=VJY+L_7rX;#1uL}+xFvf=4oS*46|E`(v> z;DPh`K-HUAUn%1HEzAxBpH}uhn-}Lkz9Sio(uFY@4Uvp4!4>4fWbQxE^{76{e3_V1 z;%t*f>ry*X=Bp9x!PJ2;gq0#a=Xuh@iQ`Xfn#;)$9c56@rjdeR8mCS3XJp7UC0-iP zlLB<9M|(ES4R|jFi7C0fi5Yn&4U6HKG@SXp>53KQAJg{@&{+Yxe}K*n&{0D>U*KIq zUmQ`8m;i%jN(nRLLySE$9Aqk=fj2e+G%t@b_hKw4A?eITBhNn^R8_s$Gh3Ypn zzf4!dUvwe1p_nnp;rmr#{Lu_HHYY4LG`ugucYe;4iRoC0GNJ9Ji&H#iAY9Oys}jCz zM%E->$l4~}B~!>X(qoN30j@}m<;uCZLMeCAUhX}RS6Meejncz&LY3ti><^gh+_%1G zd-`w)Ff9Ui21a-B4{{&;3RD+7(ybsxli9t66qLY_djlzUPWLKOxIN@v3W`Hl8ZF-< zX99YSI}!OsQNnboDHaCNZ9#_1sqJIJ4p-a*LaY4Sb5VAktP5g`In)=0@9GXsx1j6? z*h6bTVV|kY)CW-ig@9(^W_BAkQDN-SjQ-#e5-=V9!O~&OW&;#}O|6Z0%rFY~qq??$ zmmsehc`*;XSx#No!)lp#8F({=ea3QAJ6xKZoW<8a12o$Pum3T&f-{e=3$K`o3UnHS zO|odHqOITHlje#(JopChF;^%_6goa`XOeDhmGg0@H#Sf_IR-dIGLXw?GmfSTq*pAJ z7n7MOGcUz2M=tm;Z+igB)bY%68Z=NI_@x6{`O+ z!{82ih5z>A(OE^1$zPyfR;3%mAQSJF@2ync6vGrjYD&Q9U^~JaYzaA+NM|0#SVkDW zfmCsb9T_X>%VCy7tYi}yVmo3X=zxp0B|G5iU^{|?Eg!?jO~Nk+TWWmO(!DUL@ETs; zaQyNQQb$PA7lD8x7%rcN5sHKCY}|z7;lg)5$o`Eg&qfN*T;QPMFFlF9px46{A0s~< zhI$V{Q>nieGiMf302yDuIY;}m6xVA{x$-uyP|F#E#&gA2+xHK~CzY-kdp9w+xKTXa zI7VPx=!Od%eK{zXe#<^5pYv4@b^4({xW5O?3352!St>F?JgRwk!<-L?dm}2}N;+#Q zF`B8uO(;Zx@R??~s5Q9ca&z*K%*KMUM#%QKj8Wmcp1_mALbfApHnd{}$8tGCjZb3( z6vm)?;}_#<7MMoo5i{1!mW!S?jNxwW*%W70o93lwvF*%@1<0)M4%3l6hSyUA>rWhr zM#iGa^UmfwMH&uXoMrHy4+j}?F6JxYC<4wd23?8A5oONJ-_lv;N{P8r%3pa)+2+b7 zR97r;K5u8@ZHLz_D1<*EZ~~C=wN73{$4so_(M8b0K;`F0R>LP=edo3ySzm-sUc*a(g7F z>9QvD11#Bx@A?F-tkHH4K@vQbB?(t-<_qz=!OIdQ8rBASLjRESfYclv6?gcHO7*me z_@C+8?2>#p{B>71pbD|K-8(SHpohBI_%-QRXo|oQC>+#GIJD@b?quO9?hv5SI9ET> z0HaXx`O+bVWneHe%g3mAHS&Y2$%UWSkqc`o$D&e-(^R424QwoTE#@**X5UIJhisSxkGh1d+>#GeAW|~bm@E3jF(=#wo(PA!Ni_ydxb{4XDRWv)J z_+S`A<4faW+w=zaX>-xuzKDC>A9MD@t+jvfXKKAKosEI}9(Tv%J{Ag^^djd}oS@AX zfB^%Q!c!-hr8|h`CKd?}`-Z;~zO1F;8!mqt7oAz?m+teVPD2yBkMRc7tB%cyZ% z$-rhTD_E5kv~mtuOhAc)MIRpYfS!|*d}ZxKF2n; zK4&47wf*rN^L&)i`4*%K z&pDUd=_`vcSH7=2{e&xv@VR%P@^llfEW-ZaS<2H(xUvY_gQqG_C*jH>><%8MJbi>K zi?BKPSIW~xxUvX)gL9Rqhj3*Pwgw-rJRO89i?B1em-5_2Us;5W!JAQgl#lMgl||SW zyk2>F2UiyL3YTw6k?V90t}Mc?;HAog=`Dv5%ZW=D;)}X}-dW~md*aff1s}mtVjE6e z8k{()yE*F&C-#iVJ0TRohwR{4XA_;Ick^=a=`D+|sTko!=Okz2#HFmn*d&PI)cpjO zkX{DvM7UEcxHI8eyaf}1*rZM-ytWnGh44RH!CeVI-U{wU_?}j9O3v0Plbb)TJD}0c zp&o!PXb$xRG^jb$3s6>bXb(UK0xDbBTUsUOZMMsl9@t)FPF3QZM>%oce^SMeJ>PR0 znUs$Ztn0bnMe)Kn$^(qQ%cnGjZ(mF)^gd87ip0Kmo;Z^ZLfEJamoa>Bf;NV9Ao_bm zu6U#tAzwb2A|JmrnIDwB1e272(Evgc55oBFm-0j~@L+|6PGds+QCepxDfCRxye~Yp zdl!Zm8gumXMTg)hl#j!iM`bW*F7qnFgW>G3$2n;@a2W+g9?QzC$3*KXJ zn26$xT6$gV8Iwet!qv-3~i|~r@yKrRqz4f?Q1Nt>wT+<80tKm#$RJ}hJm2oi& zUz9PcnZ=!&#b#zPEqCWxMC)+U-1vW(`rz&!JOWMf^|CuDkllSn+c}oETcW|pZu9uL z;mq4vzw9-0QRk4m5wiewDbUfx-R5^3BSopMhQ5=EYa#BZzUV!^Azf5q7c6nQv7=#b zS>&?$(52yS1Ca;*i|z2k*>n|qmB>6AG=n!Ae;Q0|7eieK9UfGC&|d8 zrxYTUd?&lG{5V+>5~pW%{v zwY3jg*|`I@f`ZFX$n6J;ErGcNdYuGm z?Bbj%rS`iL{1O|P3g!C+uDA@b&1b*wjR9b66+*l@Ft`N99QP62S&IY67P%m1>W5wti7aT6-$^g;FKWB$Tfhpan> z=8&693i@EkJ&_bNzmR(rDd>11_fS%pIznz5DOtLgcEfxea+8T+(!yDXu56YiIk~|Cs*~?SBO7zYE%b0?9@DF9-4C+P{NTLG6E~ z^1k-}qVm4>|B&*&_Ft;Jul;K$7xlR7sPd-*;vbW9@b>6*(4xon@2@3bLaO{v21FN#B2G(7&zkKcHFcf-1LDegDirb{$jc+R^vf;#9Kq*Qj(^0D~&s z=v90@-UnIg`}?wgVM^@J+eMN2`-w#K{aTgok3_9XS9*MFegF6#(ofjUYP4%eKjCD{ zKlYhT_?3Q=D%q()qWxs$ai*WN)c1M6_LDce|6Bd!|FFK#_rcDgzs4A>0~j<03*XSr zK|GpZ=h!A);bo)UQ!$=__s-5C8kBDg-a*uMj$ia6+rGa45w83C{+G@4{n>an_78H` z?5WvW96~Hkmh%#Z686=(M5M2FHxF*E@0X$20ev6GndV#uErIYtKmqiDz?1g zpo;wnZ-xx>0{;SH?jC_VRmDC~ax~+K_uT(7&*hMhAq6V-7Ei^dHZO4SQT@!Lc)>i1 z!y5nGmvN^)YMticZZf~jbLWQ1&BwBW#xS{&inACdf7${{43h^z`CUOuAFg;3*}D9% z4SoMB>iZd4xLx%9;mk<%{j*7N&UN!hL6^fx=cGj6&mtxI{^6uV-#>tq==*z-5`8~~ z6m;{D+sML-zW*I5Hir8-sGz>D(LXd|ZWIEO-b~?-;vQ^BJc3Pti`btk)XN#A$cthA zk~2VHls3CNNyyG4XP5{gKVL$`)2WPbpU6|gZ<-ci8D zNa4ZuC4 zBk>``p5kIYgfu%c5~sK%ZH(9tAzQiR-%mb-Oiar8rrC!O19u`EFog`)ShzJA3xw$OWQB zp>|J(HaktyQ(&>^OJUXXjws9wWOR^8&yu(maGz;E-t1}65iu^b8|UaRP|-E0(Oz&C zVb>42DWpUJYD8HWZ9e3FM+%bzR3TELJZ&Nc`3kw~NQr*;Iw{fb7LpQGZ7wNM)t(_G zs@kKZL{)o;l&EUcNJ%b9J3vV;TTwgBE~`jME=x#BnO`C$Wqyv7 zl$m=>wakx@lKS3HO6nUUg+>jzw}Eoz9A*bwU$IYu0!~HDymHt9U-NZX#cPvcjpDW1 zutxD(DDQ5gGv8#xcc^)ff3)@qngoC5e{XoYp1Jl=?IVO|nD3d4cTj+M9awgjqhY9z zBAU;)^Yc*ns!4Eh#X|Hf&;_yAhs2gN(@tjqhIX2n$x?T@?>M*t!~eN3K3k9Sg0IKD zhw><|DLirI$b&$Jt0tJky!uG#mpSjFWg_uz&|6E88%^7B=64c*Ij@wGz#qbkFvi`8 z2%KH;dj)<|@H-0oD8*%^Qqr8+$J67+9l+v6;^(9mAeIOfxKDPjz%4-$WfplEL_us# z!Pa*pWgmtkIj`o0&s?3oB_HlE<=xQC;W_=_wSge_SqPeNF!`~F!m|xQ?n~gpGE$LF zKoI4=1Wqi273mBFVeU)d#&V1zbpAk``w}>^?4?K-AP96{0#}wTC%1V5Sx%Ek%^t!q@>B(Rgx3e)fAK2ZqNar$!L{WKej|@Nxv>`q$YMUw7mX_DM>jEo|e}XfIAUZEiVXnCahXs5KbnnT3!(D zLRhuDAl#L(YI#Ap8)4P*f^bSs1GT&$)EyACydcyA5VX7?)DsZ2ydcyI5ZqmY&>n!` z?$T7YRNP%o&iRJzLU)%fh@aB0vX88+jHsG}SXj>X@jA+sLORr9iyaC}t8+&rE&Ep0xd8KT+MzN{z;cc0}0T{<#shl^{AQY=44CHy5@FMFPS$ zT9JUT4N)W@Y}twggzaaF1ca?&e|c6w*#4zRK-d;25)ih>6bT4hOp$=FU8hJu*v?fX zAZ#ZnvRl}!*#GYqwz(9xsbgCT+W`m5vT28;?R=HCe3iC*BW?Ls+VXvAtNNKp8%}D8 zpWhK_dljKJWNKRgqNCFG3PifOwEabqfVADENI=@IQ6wO3=O_}8w&N5DNZY=O1f*?y znmj!qZ5tH{NZTSs0@C(`A^~ZOD-w{lF^UAFZKxuk6WyqF1v|OVN8#k$~vUP$VFFlNAYw-UvkkqL-&gK=k@55)i#!iUdTj4&x1mf`I6) zRU{yKa}^1Q-ouInM6XnlfaqPJ$Zpa5|3&m(rszF(O-s=`E)82H;`wQq=|(`+q$PKS z`5nbyewq-OjKp#DEu?HxB%YrP?XiEwnkmP}RwJz3D4XVcbKERRqt_ zeJY648J>C)R#EWXH-2M!%++&7=5o!0M|`}wDYl@nc+KEM@;=Bux^-jOXW_h@Rgv(S z4Uw{jJ;V2WgmsrZ#7UeJI%IiSebRo_a1$?Ug894=nc^I^BpknS24tdZvbGxSL+*X=oljb~4liXICE+)+rnx;!zX}X#;lQd1&w$gMn zX$mw=x32A{0vf&Z~ySJ65he<=vA*AWiR+^qB4PEt+re|AedYLqr zX_{VbrP;%z>8xq?Xe&)`lV&ZJ*6^&}ZKVmDG>>VTa9e5i)HD?nG)-#jG?E}P7f~%k z5g6s=pJS;9C(q<3Mngc4&&ZFhjAS-OGI!)BM%G0Ze1Rzve#EiQA`3nPxubXZ&W~^> z2AA+u&@Ro480M#@yFI=(|vM{EuAZhc+2(|!V+k&oE`~VbN3Pxeq!icv( zzdJHK`t6b7%Qqs~do}zI+Y%hnM?1DGahno=mbbQlHfP(C+LX;Q?6_0`Mr3t zsGW;@@ZxbTFGk9$d*|mY;Cq^~Pb8@Zoqr(KdAc658V7CewG+MW{e5tvNqY8{>@T_hf`=Eu$=;8zT%DJ+iQ#yY zyJ@`QB{}O5uXqPb0LjTa}EvfndGbv}B&3nP~Lrz4Th0C}Sjm!FRLHwyMm~C|0D#E(IPFqLfeokA6^UV@C zZ-#Z^`aOPGoV#zJ6APSZ2B*T}K29EtJ)wnsG(P}f(YxwR^XQ54XeK@ym$5t3JQ`cT z%%ic*?k$YPdZ_dud<5X3(%dt1iFs@We*c@+ty56b=Ihq#c+jqe@dnB##{FUt*aWV# zZO$spwK$g*-;x?of2>(U+-1pnPzu?xm~PFAbzcQKl{J|K>pc|cT-IdPt2eU==8R1) zYck8#Z!6HHtjVlazpOylvL>@w{U-&wl{J~Q>N^!kDQhxI)kk3FpixoQWLBzm^X1qc zWld(G`WuY*NYS&b$*fbaQ=nH_lUb&INr64enrJ~_m3pQEL3_eD9&C$bZqH8)!m+Ga zoOUqmS3_8I2WErrz}zdlsUT?~4wS=Cns+L8V5;N6$=Icq3JJv5&kcbcn9Y}@SA`S0 z12ec%+X*kh_+SU&U0sq!CT%TA18!?c8u0(tC28ltRggEM<9eSy8+t-SIdNAxo|5gn z1-XoE(9t8-qg@%zMn6><9g7ceo{Y{#h8$r^nX#zI+x(0tQ{dxWK1ovzJsO{(Dl!EA zWAsnWtRBjPJw<-B$u1kejEVlR>^TZ-6a6!8gs0OiRKeROinHW(oaIKMH28dRTT``r zHC)dW*LYpk-gp_#ycXX&GBYxq_x9khs5QT*yFYF&_Q%cnNRYjS;ZRC&*^Zk-;*ZMU zg(yPd@-!4FQi|O~)LJsI6K)LiFQ;DyERS&+97gRk?~)c?=A46H7yz^b^bWb%eH@=t zBXenrxihzrgy|7-e=DSXW&Mqi@|pEEA>~`{I3eZ3=x8C)sv-9>AyE#TMkAzr*^LT` z5jW(XDkO#mY&jAV0v&RX5E8FD)fi{zQDI^T-SEnsEqS!JBh~z6JKc( zKhjR(Kf%Yr&v`l+TGu5=ToCWtsu=S>kn38ErM@Y=Lm_ISa!T6~ZQGL~^=?D<*-_(Q9wm;SwYRJ`#R>A}HGZaw`X9 zMWI~fd~;i!yYe%Nudk1{y3W{eJG=fO^tzp0e;>VOXV*VK->VWi`UuTjC1UgrDUqU8 zq(q38kP>l;sgpQkMHkNm*i~q%60QlCq2^C1tsWlsseQ$DrgHi%CiO=97~0%_b$~ zdz_S%?_p9>mitIaSt?0MS*DPZvWz1oWx1M^lw|}dDa!?%W@GZDa$#eq%8TQq%5b9lCorj^0WtaXMxkq{LV6TIL{};$NYoZjSSs| zxI@^Wx@O#G(fG|c?-D6$-*>V*;itN`${7yA8H)c}<#j#tf&&g0+{QmvJByw&Uvqc3 zFVFOs84_DXf0@Xw>db1MZFfK0OtjxliaWbYQ`1G41q$1Aq+i%3=e*{*zL2DiAXSgd z<2vy9$h&nT{0h0^Trk_X-Qg;aK9d$7m(eGC1r@7q$P3MzicT&WSL9l4N?iC>bD zG97Rkd#f{JYp$ z3u5NXEqHUG*EQ>g?3_4pcpDa0FN2)1uar11;OWtXZWC}GH;nq2ZNO4KwLw|ar+zI& zy6h2qpJhv69gXqnX7Ummx`Y|=Ugr^J1pS{q-`jl9fC_T+fuFJlw{cHE1bYRrJ;3SD zH;wFwGbegCBKEaYgl8crGf%{cR9%6KIAP5rug7{dF5#FJ#avY(*Z@{dnApobBPMEV72J zSP4Zj7~bSuwAAf0F>nHx@Ft)4*oEzm(@fk71|%6Xm`bR`H+fw1ko}JL{YZQh1|(?~ z-y}uDr66vKm)(Vd?56!ld=rLCscSpF3B#J9Yv4bQu(40g?iI!~sd#{5h1Rx`_95N| zyF`)q$`PBcYCEyEdKVkmIsJ!5YUR$E=w;aQ!Typ{6E1%ht;iyai8#=nIP<<(AMyojoB->DD*k15uSs!mZVC!4URyn z@SMS16RM12AfQJ*crFQ5M&ZJEl=55=s*J*cQBTPo%mty!C_YDt$vkH;*Mlmfa9-Si z!r^`{2USMly0}<*t_D>`;kfu$<+&JC8O8HcG=HuIRYu{o_?2GgQcz_SE{kiG=Somz z6b_5rSB3n!5QHN$5I0PDt^-v@u?)0Oc`&`_(OiwhHYYAa7_RzA=C=IA;JVE1kp(W+ zfEHkcc`dTwqhz`&A_~_5owx>6jWasY`IAqHFg_7{6Z`8D(5kU+UeY`HId6Jyi4E5O z@TMfjF>192bQ7a+wO#|dsWVg8qGVWX4`h-|xRqPtO+)KXl%-lAlJ6@EK=mUbwK%n=P=WeNL_FJIj$W z8u!m)od=f3%H`*LA5Ji=CRS)TC%Bu{G*(fC|2xIhnB;ehBs&LfMNYKJnf!OKQL|Ch z0a%S3fI)CUQqD>kY-eI!d7dc1bKy)rPZZ#1NQnacC@E2ZA0ma3Cge^dh5j6J?<9qu zh;v#<;VB_^EGbcTN0Aa`_cBtV><%L(%I;uNqA2H*5@Y5>P=T7iQs3D0Pj1;`Bc&sE zZJ$|yiPYh7iaa35WCZz?9esD11l4|m@dlaZBgKMXtqa-uYh5@HvZ9Phu-XMYu-Zix z#J-ZlO?I|SeGFpD)JYJ(OyBZVpwPBV9~i`zX_dULjm|RM>iieBj`9Y+J5hkRllEzI z564K#KCq~ElN42_8n{9e&4cQn*m*5u!sIUc?_tMc2Q=daOY(Hw_3S5=AE%K@1N250K9ED)q zmdlj)~axGh`oc;v^eQxdgNNAq+2xGg%GpX?h@lax=FbBr_!Z^Q+2tILrO;T<)maZuOcO*`HQ4vH2*6pnMG!jl3C;dQZkF& zO-g2wJ4neaGKm!AB;;OC3OzLBUO@^44!OSq#qYM>d8OVm1QsBcBSAC!ZY}`WcMVBc zjp!3DzXwI*Ow4iBdA*KJtHZAIieY5*jD6(|b^h3A4X5un^ET1t5gHB|@%6|+jl6if z^8)iiE3$oY+__FXy>VM!JRhc>P0bl0dqrOCL(kkRkhkp}9$_Xnm}i&cW|(^!$Pk~h zBeJp)`Df80=Kr;4^_8H|MaWUCz6+P2U;u^_ATdI$z9`>z0yYSPm^3=wzivdZO$?D< ze9Ka#<}5H=O}{;nOLNojM7ti;0sAkKgS@%+)3LaP2f9C`!x-#f=)yMR79RMxX7Qhj zcXMGNyMH6z4Hvl3XYikdB)}>IUP(F{Mj{v9QAx2wt6LLrBi@X^DnMNVCg4k7?xg22 zjg#{gQeb%`f*uHSiT#UK;7~|f{4C!FtOm@E&(7-GfGee2ODICUqBh`}cqWWACWYZQ z4L|$?Io*=fllVs)aHgU0bWYG_U_lPUlq<)NG5T<=5*%$ns;3-;X6aQ<@}3Pi8sk9r z8rXm`0wOJ?iZN`~qh9!8s0&qO8?_4<;rr>@G!0)&|xpFXU z!A9hcTVPGqcc~l20k7lwu9bsf4JIo9r{nr=m4jgpc2fX8$Mq?dgJBPj(>z#= z?v;aK5XKdN$8mj+%E7P*OB8^^aedFq!6@nZ3c%mEzE|a7Zemja?#A_dR1Stw$ZDft z@HVdRT{#$5VXgvTe5)`oF$Fu=7UX9xj3jQx4z^_rzD}mm7lVPw;LJ_EC*+@<7?4ts zw3=S42wq=^z!>PKDfpyISAjvW6H$)^NdsXgB93}>D*PNLVhf=qMJMJGddqrsv__u6%%H0EoPFO9g*-kU*}hB8JBv> zwHbYMN(fIarx=>4M^it5)X}&f3Ft1c5jYVskm%Gqk!>DQb6#=(?wO2~Y^Vy9YTsm} z;5)SrM;DcG`2D(9c~&F5Tm~RCu(2AsU3&h3C`eVV@17gNz~uWxz2G+DN|YO6nPjqaMQ@mMY_nXfq)+3Rb57Hvu-)khu?#E+^v)g;)2hwCkq4KmwD zt`-ER4@{SYhqu*{U!`lov<38 zLrb^8AhvX`6T#%Rn3<`~J&9?jJI~`vZNjQi?OHa4LZxI?WLX2CUGS5 zyL@PI|F%(_pYy&qG43{scg-l4kBjGh3IT*2#W|8bEd$A8z!AZxQJl6JM)AWRLxOvQ zYS$=kHq#lSm~!YOeaK-!XFAt2itVrxt{6k3nE$C!{0@y%nG#l!5~FwtDVa`QA|*!g zbEITCd4iM}#gCAZiQs-xGEKxt$uw~rDVbu%lY*#(+-pdolZM>ONpawCF9a1nI1k^_ z?Du+}rxJTBG7KMse;68jjUVgvToo+CVKuFppW^lK15J^&qyRKWr0 zXUh8n(005TT=xf{50v)@pk>PY1JKjT`%7~7EAJ0LH!1HAK)+VrAAs_e_XnUOmG=jr zJ(c$dpsi>il+Pc4{-yk`4?tOGCysBnDwlksca)01CoOJycHHsgJM zi8zjB+hHa4$LpfTUV{tH#0?yp^h3RKwJ^pBfCCGZg;b=H1(`IDQ15|1AUps2ZU|{P zz%fhaCWF!?%nhU5Y+Mwr0@}@7oSp&wWLz+D7Dagl_Ch3bY2G>CaWI1q0dc0AX)+xF z-sy(NVr7XIcjRRU!%I6}1l?ZHQup^ttzHE6QbW&+VE+5+MQ|yfgklA~2$nt%!+)Bd zlQLV*N$KaGlkzIg`-v|2K+Z`?iAkd7=cLe&AO)G;zU@~0FXyCS-%rUjb508OM){>V8gDW3mH+x`R>XjUEeCwMh@UP^ZuMQ~3D_!D#sWOwh6_!AVspWqw% z6O_t%DJyiOe;ai%V8d+dXhkb}EO1EQjir<~_D0+kES)hGZ`>MaHG)a23@hq5zn{`#`n|EbZi2x>( z8vO7NAZsMTU-uEq}*gJcFbCwt+PAicI6KU`I!8N*rJ(X@}^$6Hl8 z7Cl`&3ua2%=^|8IRnil_+VdS#XH*zGp!<<$ceB zFGUlzo&|3z?|T-|&P0B`XTcwp_dN@CDDQg~e5AbZS-?+UxZn3IcvgAevtYIIzGuNd zln;0oe4CfJKwS&4zvL_^#@oEFMR~E;7I-IoVOsKh3*=)_@@d|*WSk3DBe3N=f&C>N z@-4uJ{#GH6;9CHfgIaW^|6{%dlm}=2!)ka^T)Y|Lfp_3r@Go!PfFnU92kR_J?Dn#n zGy&IXh-2-UUy-i@D}krWr{HD7oq#ig>w0TLluxV;Q8xXxA&RfF3ek-zYkahzg&eNU(XaFWF$Fc#5VuSJLRZxFV;U zyV8`+G6~ZCTMjZv9iFCXdKskJN48-s=YyvCh$Bdg)7a>Ga5-!RxE_Si1l|hFqR8z# z=m7zbAl@JE(({va{NRwuz|Niw+^0KxE&yeB_T0ky}oAMZ5peJ*;D zE+b9GEQc!f|G0IPUc@7`5L5fD$!7rbX;Gd2$i}ZuEe>bZ1YULa!)12?x|V!%rR@Y^sl<Yzx zhv9p*8qNEY5<%XRln8P+QXd1*BvE z`3ET(K%OSW_v-!yRO`h7cc1Uta)lYfdP0F04H&;!$N@2fQ88WhyG?qms^@$=Scj;X z1kB}sT=gq4zcKU6)19ED%tSU&rC!9(F6ly633?Q_!aruZ#QO%k7?nfDvjBthw4vo- zJ#9!0^8?T@P=ZioUP2kF@yoBlssy#SJV>oTtn=j{e%v}g7cU}cou8z^9Pjot@Fvs`_}n?Deqh7QRRK> z{21i}*7~AS?$XjA?3)tW$}`c4ovbww zR@l1L5QS)hPW=ZFL0{iQglmKa*uCaVs-fcysMf z^xoL<=8x$~V4QB|j#t{bV=A`&`ghz8M#t}EXfGYV|4B;5?-xkP`28d)3Vb=F^`~K>x9$2%f&BVw@pifXZI-XVme1B-QfmD#?0EfOYqS1D{rYSBz6I=JtopMZ z=HXfXep2j4+a6ukt!|LK{Ae^WXgH3Uhk)GA5-sbTbtWz(Zs~uqdmnoJ$Z74SFJ^iq zH1{~g6tLLFi`~I|oLyhXez<7yLT)iCOdNGP+|aNQEoW&s@fY-uf>@G;9Lz85Wi6^w=k|i)a!B#5A>zFd6zG@* z6Q3Fx?zkppM9#3!tUG^bB(}B?AC2+#wCszt zvij600*IyP{)RFaJ~r5=GMYnp@xq*SLlQ@oh7*59Q|WoY+E2cZ7AKcU8?E!Y$x_=* za&hY$aQ%-Z$ML%3$vK|~y2;WheWjbcZ@LN66c@&S$iYEX+DlgA=4hf<{I>P699sV= ziSwI=#J<6UI0LV0@nknY zF)X7gIwKPMwlEQGg7+|@ikSXCxHvD4I7r_jOb?7qR;<_3@ZA;2bZ~KUTq=tCEhs2n z6vgg0d5wqHj78bw}B|-_hwk&x_ z&g$`ZxkW55Yl$wOHY8RTjlBb5v!!<#E59(dymqmD8sBH+g8bN0-9q@?`9rI!#rtAA zqQpy#3VcjU!E`l012xExt->zYJUB@8YW`UbvlzCuCSlCNA<-Jz;>D%LY=jR?)pf=Y z-uNn0G*V8dd)K{-NawtQ>u`e0#RDZiKwD{kuW6ztO`(^jAhyiQ%9)5X1@Ue)gNMXl z>{f@e55c-;`Tj+8ypeGAYX^X2xcb6alXKNFj(y9VWATfPinLHTG2;*9T1&1sq^#B& zI)V+I3^SS%f#FSa1-M2Wg^gn96j~^t{kWr!x!}k9eJh7e*gWp&J5U6oiFTs`J%1W3 zlm=`7dlE!P z5JduUM-Ns6PJr7?h@b-%3B(=UUy(rE(ft$x(%HAXE0aYsKBSnI7f>z`u zZotQ)n*7Ywk;F~#1zgv{7qGGSgp=S4*a`0b;`F~ood5Ra>C_BhpQ<6@8X3TTLw?RX z;qntPxEVcXcLaO8%WcY!N3chLdaMdS42+aLYROrKq?FAzG$YkxDG3~d)#HoCqGmz}MWP-A(NT%o9&IU64T=OLYO5jviTYlVfJA+( zNI;^#Q6wNyUn>%js4o=>NK~yN0f}-?l@bOd>N7jA0Q^?Xz&wF0bu5tEM}S65@Q z;~IgF3y`1d0NMECc<5d{jva0kIsbNI)!06bXps^@;?<@>)d#VtKV9yDF9^?vhxZAYzFp zMR(70yEe~>Sd~Hs_y_qZSBhk%At_eV3{9z`yO|skF)l8LM8MrlMQH{S#qA*xCCAGA zW)F$b`E4vbUh61Nx?5y39ba=(5GZz2KO;zQgXpLrU7XuekSG6$uE^ zP(=cQbgm)+K{`i~fFKP~Bp^sBt=dO!0YcLZGM0-$jDH~WEEzQ?@MpN?N3}NQ7~f(iXUkp*Q5Mzn5)d5~%}uAY6wM8a z1Vr?mYME(5FHiH6OU^toX0B? z5YB#z1cWn7k$`X>qewtFk5VKcoWE2gAe?;_2?*!miUfo+Ly>@R9;!${IMWpg2V>e z;B=8>x=@s=8K6AFZmyudP<1<`g<-dD=Q4E{givH^3W$!%R3~Vf%_qE&A_19dJVw$4 zWaN`aOGPPNefK1gX5|F8{6bZ=G7m5UA>T^W`GUX_; zt1@-`F3Hq!c!ly^d$&C8iac@84rd)%x0GKEA*b`*^*r~BtCzeYtCvsx&8%Mf$U{KP zd{+lCF=F|hB^kPqe-z6Q-E8n@=DSU}Wahh%m84`kAiepHaSM^c7tMzcYJ7wdb zX?Xf-=*K9sE#*ZVW2fI2+BFw54>A&(4x*zHntVu03GJjvKte-`1SGUEUG54<=nskn zBy^i10ST>FBp{(%6bVS^cZvigbTf1T%)8D20 z>hy;Y&HnkgKjNqI`Tj<{J^;~C@mg|dOYvHyNI<+6C=w8_R}=||*FO~rh}TPs1jK8e zA_4LGhaMIm5U;;05)iK!6bXpebBYAS>sdtt;`Ov50rC2qA}z%0@@5m@+7=Vw58|hC zls^G}%n2~>XE@Mmv7G_)az2~*ndhjoTfTmxd~v$tyu|5_BEz|`6u(aAtvVNS?&C#* zyjX`x$9dpSs-?~(D0=I6GZo48kq-^Rc~H~T7$l2X%3W0ksqxc1We_T|n&u%O5Yb%9 zc(OkV?#hl&ISfK7@727nEU1O|Zj6$uOg?CHi>!-Gi;@-YP z%<#R9K%E1^ZqRS{Jjl8GsVw>DLHf>-ngnWEP0ec?g(+b%0AfHmeo(K6i1%l$!q4OXiKfS#3 zAU|es=j0qtpF9k}oCmoH`}Ora$ldniPqrU9e{z=L6d96Vtnc90S@bogE%iCWRA!{> zMN7^#B&Dm`(8lEqTwFcQgraoK0_82HE*I37uHW<)>9Srj3<$9k>3Rs#DAU!wAfmB# z(XAWGJ`Lxr44?T;b`!nG8&KHroRiBMaoTGCaQWc9$ljb()`-(qCt(M{O+OQWdp`jn zpz0(AxcL(R0;*0_fV)2dAfW051-ShaK$md&cm=rs6959Lj#GdeKmj12>WvC;2Pgmp zR2{1Tw}1jbK-C)*;2ux_kggI1xCs;h0;-NtfV)5eAfW2?3UC`J00dOMP62YgUkRh) zk(iOL&5=xO1m$U~-?VYsYJY45-HV~qz0+1t@K0Oqr;*c_L%KFfG>jZfP5%C-Xz^D1 zSM@`*(5%En9I5B|eQpWBod|1Kj3C^Za4iZMEe^uTgx9u$yAb|oE4VA+$6LYO2;b8R zPRaR(M{Wck*Bua!+z3KF0AUwZ5b6mCM{We6UVw1qMiANq5RTjkLcIYYis}{|xzVq( zPgdNl&y=9kJLgPSopdIp0Rl%*J|Obqd0*&7N*^!Qn2Wi*_{jsRp4Jf*)pL+Rruj&= zK`4!y=3s-AGE2E@4}+xp$oAiA&eS|LjSB=TIaHK!&{nVTvkzx*HwWar25I;Qa;+gD z+tnbE{yU_{h4tnF$AwLX##&Dbgc@nN;{s{xkrv!?a9lJ>qr`)E^lCC#Po3qF#Ik4< zVj5(W%8OVuT13A6Ie0p@w#q0G2ho91A`gQ}vr&ROECJY2Vjx0x0I;J(L;*WWKmj{SoT7joB~DhrjuJTv*ioXt0(O)*Nr8@z5=$0*0u3E! zGQ&S7!;TW1gO6vRWzNBYQQ~VkUcvvqvU_~6<6{TL2UvxWR|v~YBP<|)Y_rAmjN!Nk z0y9koCQrHP%0-o%0gl2o3M_?du3jAm))TIc*zzpGRm3z9t`WQl;aV!f)$WSy))XUL zUxDa=aCL(WHWRL{3RvOlqJR~yWCg5nbymO%S0@Fma3v{Vg^O|C@K`HcP1xlQzzSER z0#>+oC}4%_2L-HfZCAhw*ER)qS-9Y@(_!HX?qg~$Un{+1&x3PNCul?F$g3dyADVxW z_b$x8D{uXY^Y6-AJ2L;SytUQ*yYkk+{L7h?6BMUeN{f8AjJ@mRJ#6<~cn2ZYP1UK8 z)0R$!8-V20hReGm%8M80=xSV@KNPcIm4mIAx|{OxdmH`Z(tnk}&PoVYsOsvyB)$-~ zB0CjKAYo%q!DZ|`HF3vrnt7Kxq>W-nbNRklf6{ z2&Y6vjxh+otSEATLG&REuGK@3$r&Rw!FHA>?w@7)1z0^~y&m=S<8Oy6YW6{vw=d>q zQ@dw%(X`mx7+UCKffz&duLwU|A4B*HKED|89O5jydRw@!Z)j@L^!)gX^!51B^mVKO z()Tv$L#U&B(uZDpexX8oex1_vBTV`YztQ|lz`K9`#7kd}7WHEuu{@=0V&wmfNk0v| zTU_I%r!s@|R9!TGDmqL*#iVDCa2uC+>A8fD^jyBz^jW4nXPfj~MRX@PUiv=TK52gY zq?-0Q$fQpP@4mFoOTSjrulLi}nDk#EY!BOW6Vo4o(@nKK^E7?bPoHbjSDExhOyBcO zFFhAYQ2sQ(zNx0ZQ%(AG*0<-^UV1K8B0U!>wZ6F~{bgSMOkY{+rRV&G^t1f*Gfnzq zO#0bO-+8&0o?Drap4*r-|Jmk!HCAeUtHHaYU-Qzp`@UA1^zy!z;TU?;KiezMA53~F z&vytVqUmYovOJVR>Cdw%bLbD(d*xyOEcgcL8K@-6x7bFYlG6|w#1A`?4F>)v+&7(u z^lhE1zULxt0N<*IpC^MsdL2p5-OC$k20%Wm7;sGoo-a`#jmke9Nia-sut`H2*d4uC zw%7dxm)ite??!?bMXP6;SyHREhNOz?5M5fXd+|x-X!AU@OUrZBUwB>0+wS%4c-yE? zyVqY@we#!8q4)0W{^QVFcXs{8k9U53?|<$5`u&@J1Tp zANlE}yt6DX<(*-9DQ~6arM#0YFV7ogd3oM&%S(CPjsEj6GlkrDEHCe4h2`aa%(J|_ zk0&iJ@8frtm-i8~ywvX|%S-)6`}`|Xo_7%3&a}UjXNBdZJo79s<$2QbQl8&gUdj`* zyp-oA%S(AiTVBd@k>#bm3oI|~onv`v?@Y@}d+%p?Y47fqm-;=7U|zxc-R<*L^1T0A z=v}Xp=bdMHdEP+F%k%nKUY>WT<>h(RRepZbp0h14?K#u((w@^SFYQ@sd1=oQ%S(HX zu)MTqk>#a5b1g6R%d))GFWu)~k@8&tRl&56l7%S-w8vAmS8tL3G9 zTQC@!{H1)KT3*Vx&hk>erIwfWpJRDx|Hmya?f-z!%PDwn-_N|~RZ0EQEHCv-vAoo; z9)qoxuS)9YSYGP4-ttnv<(8NF&9%JLZ0K>EHCvNZF#BRMV6QP z60Lw zTVCoHx4hKv7RyWhuCct-?_$eK{m!zy)bA9_OZ|?tywq=h%S-+K@kaCdJz;sN--DKy z`rT!DsozA)OZ~30ywvYP%S-*vw7k^sB+EbDijzv&NBzt1c$ z^*ecme_h_+FD)UUqYUmtmYcUWHPH`ek}zyGql)bBjY zOZ^5~Uh3D+@>0J;Eid)k%komcPL`MYZGOcspVaR|%S-*%SYGP4(DG8h(J%Y=OZ_gg zywtD2@>0JX%S-(-Eid)k&+<~g?v|JOHN50MPwMAdUh4Ob<)wZrEHCw&XL+gLla`nI z{m$}Izs>*fpC|SE(DG8hHI|q9EwsGU?|I8h{r+ruso#B;m-^jdd8yx6@K~APRuL{m z>B{5nH*wj-Ux*xQ*etzTOcsk17vIcZxz(&;j$cx{97ydVFGmzv?>SbofWJE`smOr_ zDK$@>>+}Rt`yB6o%iPb!BBUOFckMku+(}J-Suc%_CaRxsL3J= zt*8%t$|S7ui|~*^xTc9T;fky90GI!no2y}w$%TeST;PA^LW#-a5$6KrQTu>_x%emP zvzXCGHhrnz5Qm#*rYjOIN7(QtCl#psD${ez4lkiy8HG3%89AE~McnPG#d323#WQt# z#Hm3Flma(%{nWdeNu9s*=3{viuGaAm$r>&9dt8xQOg2wBF=q1^61W$cr~TQKDV;Sl zWvbbMY%gQBOG#x+KxE*9@gMJd+N(n#{fDgKF-*VSyBerrA6`x6)gHWxJVvqDe;BWY zo5_~;O6>9}s0J5trFj@L-FXwJJ5q11-Gsru9Blx93yIITOye_t-)4Nqdeq#+XIxnj zd%bmhMh6KHpYd|^OhjMQwUj<6nZy?k#!Wn3Qfy&J#P7zL>t0Yrq;n3&b*$@Uq2f$a z(^i`8=mbd9-=ulUOB0L(`8LvEfl}i$zHAOgML)SH4;3!Gtv^nC$T$IHxN4#tj=GG^ zi09vfUpl$cv4`>Awp;6|Vs@sT0l|oEVS>7rvk8XTQg&vuTA`kxt8Q@;vz#i5J0X z(XwT!d8b^G(P!+ZmNZAKCTzv%& zS6`96B_ECq<=xOF!gKn;n+48*S>f^nad3vZtvA3MummE!zans3Z!qyy_frIJ>kaS+ zEP)8`s|dTdiLd%IMc}sH0FS^Di16Nuz-_$&E`cQw;XM_B+j;|h0!tvmVMXA!-eBUZ z?xBHm;I`fXufP(Ba8E_xw%%ZzZo4Z2xAg}21(raByD0*<^#(WwmOzBNC<3?j1~?*= zK!iIhLauj}3h?s0#7)?@@>+i8a)=V*tFH3)t>D0{4^cauwa)meKgZUvG#srC(UqN> z;Rpg5Gr($ZL^V#0o5Vr0KsBwu8I zu_c!qlCoc8Xe0Zx!5Z1;hg~E4b3uBtzh2=!-t7Ivku7EaEoqW=x2&u?+Q|MJAUe8b zC4zCH`IeQ_6$xxvIaQIsmX%W!fpmDWm2(scY*{%;k-(Of6BG$-SvgLTz?PM4MFLw^ zj#VVEW#wo^0$Wy&R3xxvh2tOU71*+Jgd#!NM{MOE-L!pNFrb2N+D2^U_BL(z;~c#^ z9+&7LyAYp*ag}L4@eky5rAW>&q-es1*8M7_;B>!Axlp1HgYx#P%o5ZWr(KQ5<^0k} z(?$>-m8QKhUpJSgJrxN^Q&^FJH0_~CK$?0g5|F0uiUg#on<4>e>Y_+MnmQ{IkftO> z0@BoUjFdSbO*<3`NYi#j0@Bo=$gWCLvv^!TDowlhfBm%h2h?Uc;c%)fm0z4ii_nv6 zd0Yx6%bCPvBHRmS!4ctXrAP<}%~i-ASEcv|a+oED8=nhW0BpH2TO(v(X& zVfl9ID09IV%|wRIbU`~+_q(*K=U#n;kF*}{ zodR|@*$f5jZn6gzu)E0~P{8gc`>g_YH`#Or>~6CA6|lR>?o+_-Cc9SwyPIs90yIrk zuf0bByPIsP0(Li9LV=(xw!fP!Kejls;A3j-qSyM{$-eZA&?Uj`WJ{>kewv^2QMi2f zezKpupG>!maUsu$Q-&q`8j|9aWoX?pmI_X{jL}t6jYWD(dRxZ&3+hYJ5$Tj7n2J#o zq5Mbu)t5o)#8j*T(E$;fcz6pDnxKFcq45e>5gMm}6`>myup%^80V_f`C}2gXL;)*8 zV-&C=biD#rgsxM-iqN$RSP{BL0V_gRE3oS#gm_yW7opwr*-xL(IJIy-qg2o?+yqg= zl$NwYCoqbRPGF~xP=s@nB1Z$ko)6vuAq&Bt;~&T$S+>F6k9s7;{6%9FIee@f7jM8h z%5nXMTS`*+Jf!6s4%qK-)idQLA1I=EcSapRZYc>Nt=+HH?kty)ZbWo{5FHTF?+$4p zqTecDMRc5V#K~YfG3ltS&HuoU53(1BA0!9*% zs_n8#He@Bq#_R@y@>(p2D4@JnEwxCo-cV7oRcjR$Emgdu;;n*WwH6c=UzK8u+28k^ znP+Ervy0Gv-rxI=4`k1r^PD*|XJ*cs%RbLpMKC7%xgr=7{Y(*ziGHdG#zglhf-%ug z6v3G2$BJM~bhjcH6Wyf<#zg#&(7(g0Y<;iePMKup$`S$yNkoJA)L#*p80RVQl9`Xo$tF zu^lU32hJ|lx##nWsqMOYVkM=m|8s2dqQgQNUsW6i^ru*jakpC8ZL$I#D zsP&cEf4!{;#=7281Y=!qDuS`DHx$8G*XxR4tZSQ#4Z&E~Yl>j3>s3WC*7b@a80*@q z2*$czRs>^RFDZhVnO;FP$en;R4I}aX{wu6dovZi$y(~2ox_GygEt8wq{F;7oc7p03e#g# z+K0p;n9_YGBu!NJDuOYkdlbQ#(t1TOrgXO=7*o1S5sWF_sR+iD)+vH9r8^YCn9}Wv zU`**YMKGpxt0EXvxbiwoh#DBLi;eX4VtG` z0`9td9rj$f>B8QJZW57h)&k%4!#Zmc+i8m#;D;u;ODD+y_v*Bo#I^!clh`&+(Gro~ z|FkBt{Y;HbVsdcOBt{F%gM`EQ+fZ$J+mSegH}=m#sMUlw_UjeFys=-W255?9 z*gsnl%p3c)ieTQ@KT8qJ8~f7~!Mw3QRT0b^`!$MS-q@d_2-`}&Ada};%JLd=-&umIrRP52DA`eNIqba59=fu z&nBH#`>VCU)c)#LPLc7fL(1A;ZDDH6c!uK{+7$b%w9{5gwza=P;t-5yINsw=Fdllb z9|U7O#aK#$V2r0o5sdK^DuOYd0!1*!ldlNIcqqOygc{??Qv_o?rz?Uno?JyR#&en? z7~>hM2*!9$RfIz|o!h$ zN%IulBqH7H0Mo7|HR>SIMMVC#?87OFLWZU&uWHKP7-f^DbdX5Sb+4vuh{;*4DYY@m zRhqIeM(NfRPfSj;rtFOI)N4w1jAtS!Sem-57*+H{D|rSmXy36}C*ch?APHvrs&9*? zk{j8o)642lDg_t4_YbZyNIr}tt$eF!<@=VR7g{Ud5g@Dtd++=whIjT@8|KSIhaA0qDzv zm2~sF<5Bg2J+gK6;BAycu&zH~9#62YhZMnB*Mo{+tm^?qFxK^ZMKIR&J4G)N0Q#=7oP1Y=$IDuS`DdlbP~*Lp=T)^)cc80)%A5f0nBzB?Y(lbyS4D%jg$$D_is z_kS%OR;m}H`IJU1~#JgToNt$0*-<96zx9gFY60gsAD)r>N%cvOEWrwq^R z`Yk~`PeV4UYPUgCM2xbADGN^OPz={-)T7XaKvk@%U63CaYib`R2*jG&4{BVjsX@n8 zplvAL6demAJ`WuUtN1(}v`#>Lo|imSH+4X~`zXAmuj2X8GYH@x1EBa_R73Eu(foP9 zcdviX;-^gq#s7)%Z_xbhnx9rhyB|eR5hb6#1OoqCvHEP)_4%RZr*+KkQ}I&0;-`fP z_-Q4g>az(cs*h9iQ;+Xn{SS+u{4e-d#rVlL6aTwEQu@-U*}eIn7Jr7~&x-L2&3~`v z&nEtJ@e;hMPrcH2W=!8&t?#9pe-`Om`HscE84E0`KY*@3QdFO5ntvjD zPw`&_1pLYIp+>@{;^ITSh|2Yf549gAj~a7)sP!?1xcE?S5`%h2jOw$LTP0;&pB?|g zt8sMSdLIsN_^_SgWfb*LEZ*?JOFKXNd^f+NzA|n6r)7H%9)IXh7)=L@Z`6pyg$|NA!&e*Z*_{)6Q|5z*%kcE54g!S65HckufsA_URF2d`6nC%Ql3;eima`z5@<&*Nai!%o5$O*|3Suh`(M-)Mugen%Lb^~*Fk>$lIu3t{~}GC1q^hQV3Crwz{fJ!Ej!?{>e=k`6r;M~5a8l2mAgu%Iex9qn3jnePo82&id?{+N3n|c0t zoa=Xk!MT1*49@kNYjCb#v%$H3GYro4t28**uh`(Kewgfa`P}~x8=TvJox!>NR~ek! zf2qN_{ksj$`n4FG^_yvM*00LotY2viSL5U4y;l8H`yFL)u3uk+bN#+Sa7?Ao6I{RD z2Iu;{ZE&vNvj*q-{n6lDzdH@i_4}21MoEz|6 zgL4DEWN>c4#|_R3-fM7HaE-xP!K)3<3SMgADt@Mk=ceLkcE{qiss3#-I9G3`!MS=> z2IuOP8l0;)#^7AN;RfgGWf`2SxBqXk@x|@G%i!GpZyB7Me_3ojr^fFk2IuCVV{mT% z^9|0;KgHmz-x&sH{Z2JF>o>yStY3eFvwr`2KURO%?-PTwe(xBZ^?Tmntly(CT*U)) zoAn$Iuj38Q`VBTX>t{1K>-U9;7svX&Z*bP{6@#;WPa2%{yWilf-^~VR{r=nFtlwn@ zXZkPD4eI)MpG6l3c{vDX}=8W?xT^SI5foylI*Q9+08oN zN>%=#%Z~xqZu+1s!!$fj!_f*Rw$O=Mgb_MeQ;Z7H)0I+mY=H_7y8NRa6hj|WOt}^> zjd(iOVa9ujkv^zU4`sKa=iIGjW^0*?1IWJXdQf+tuLOOvlcdkm(ofQ*{Yk?+wNMu| znI&|F7P?8d$6_D2c6mtXIV#^LJ9pV~sYm~`ndeWt8Fp)vOqGX`xG; zQ?=r>djadJuiRICh_6xKOr*Al+LLdDx+1CgH90;5 z8WGoN-*LH8-nU9clLp#d!T1(aV#Tz=V5Fm?q|)CQ33bl*ijIl~zLVE~qUKP*qw(zX zJxp+E$jF8J6;bR(EFZoWYABk6tpQi41En|ngRSGlRDb83K*Xg%WPS%a{`^tlpY#)> znq2h1b#_1Daw!NQ<)Nx#4l z!!CbEM{BT=hnlM?6bN(na92l1s59cy74vp?1R5h46aI*+HQ*0NkhL=qaJ6@}H3T{# zgN6lqh^8yLdh>_cQ*n<9yW;+fQKM9KmA;~l>n<8Yq0XjYJI0UjcXs;cV}SZwL2c`3 z4RnhRe*~7&E`sfm!0bS$m>qzIxZe`!Yzsz${&o?b6PR~ecz#=308PuhRB5ssiV3`tb2A0ZfJVjkfZUw&S$yBH0x`#_ZJ@FOh&mr}ksp-z@H5AE&>cla9vxw_m2 ze>m9a3!@#|XOA1_n@Sc8tgA7Cq0rjO#lSxWo5ZBbeCSIaARN3HhVL39#)^~2y0r4- z9OynSaWdNWbpDUdi)1%Bjd(}@kvt1J3^I~;OrI`I?)ws zcCiZ$i`Ky0Kx;Uk{2dq926I8fx%{28yV~F^m6H`TsJ@#?mpi`xhpK2ex28Zh$vvli zPJ3uxyNfD>7K4+Hw1k?#-xO%*n(e|kZc?KHrs`^#?`mubG|nN$aHtI))9OFeo5qjw zcCif9CCw-bUDevv*6x}YagBGmF{E5oxfYFU;?jJbG+7W+erhJjJN`SaX=l|}mwUg1 zDaGv+`9$Jaf)@(3H;EDFyU!?aw*lt037<@Yc8v}aoxQI%%CK;HEzxC{R3iVyw<%vsU z4Ir=z5cH*=pyhY`AKi=p3xp#vDdf&a4hyj>j76|?{fgKX&Anj!`f{ue$r?)AU(Uax~eBS5)HN< zun=$~U=85v>YnIgzy*^b5AcO)J<$P>zu+w70~|lSCz^wDw%7MWF96&)6Li4wKkkWc zC;A0F(ec>hjQk1e2Y3MRI=~lx+7o?&aKH}%Yi6N5?CrJ#wgN71zH|3P!k*{>z!zE}m+k{rkiP9b(FFt%%5fv$0fdJ93UKTtJ<*de$-eMk zxKHrsJ<)A|1C~NQ+Ghb^1>hdQ2;k}~LB}3(4}LNx0(f8r$_0GkdXx*e@t4pKd&U7b zp?ttrtl#$#ybJlTcU*rr^a89|kNkie0ap{g0qsNZLGTSiz5amvfUSV50k;Fb066}S zxR39omOp~_1*~}#MG{5J#o@h44gK%b7I)_gl)PG*qLh+-c&p4&vq!UO0<*&eB zH|zkzI(8BL0{nG=j$s+Q3XzK7uLblsi8{fVy~IAjIed|0lGA1XV?XC`P$oFDYWi1L zNn)e=tjAwA?CBLEB<6eEIlO|ijmNER_}c=$$*`9=z6xiaqn{&IKxKb>O$?cgF5rvW zh%Vd3wKd#=eH?kE9^p{!sC1>eJPiB16EI`s$rHsyXZF?hiO%6G92HL2@{9@2F-s&$ zTa;;U?&ll>8t#E-qBCoPRZczfw&G8W>WR)mp&6$sIoFV!s~r=at`!**onw~E3C_GF znG>9)i~3AfUJYh>&))dl#`g}a(xTf|*|69w`ZGd{kx4~J?T1NUI*=i2^(lyxDmrtG5$a#zjhiRKdl{n3X0 zpmDkY^i80@Ms)PY3hMjiG=`SY7+NH2otv`keheYB8%#tEp(>VJh%6hCf7ZD@(Jeav za_Y!sHd zKWRwE_hVImdmTuX30><2r96%@(Hi$;UlEkEALT4Vn#!Nm&zV)xA9AxM_NV^14)r)>Sn{T%~r&Z-H{+6(B@bGEZ;qO(@{k*^^C;q&k;7?q#k zN6vK)uVOc%{2v_GR`78>n6G?bX4N8xV~njI+$wkQNu&b!W@6qwJ5kS`>+8=~s<-IJOtxt`sjgXgz`5E0AyQrLPpjTm@A51q6Zs!%w z4o96mWeX}-H5MXH!g^u2zbAS#)!S-^snnHugkcM!#lkRdyafW+#zhFN+_u<^9P{u0y^tfu86-tS2&d_0Bihxzg^qFe5%= z%+FG}wBFf;^~oeXo)XK5>n?FoPxL0VQ^w#^3D`J<)$)+-A&7keh0r zfPc(zY)aj!%6UL$1^)Ix?%sKL!V~SAaf6bpZ60%RybqrWAO0w&&SW26)t|>d)`7bg z^h7U&Od21H?B_Yx+U@WG*%j85NA1}PzC5f0LveiT?DftK_FCsU_^!2fcv78(J{T2jAqV$1LvGd?y~o>j(05LbM!%-=UEXX~a!qyI>i?{B=)U|zaS{Zoj1-Kb|d>@8zsn*K5UKFPV)?wFUl ze`5V!2)WB4w__pfo9rcHERQFx1AObEj2bwJN0UZ<4f0WYR9)5+eH!hTF;eAA?aQY+ zx7r=6QcTXVaYFV-?Xd;x^S@C&nv^^}S79R1bJb*cl3Ykin5!!KQ~T5-fA>{A(MlR; zD^>o3%VeTXQ=W30K0mC_HT+=>h z=1o1(HApAPzuKBFh>!MmYD9S_(`}&7xm8r*iQ{#(-U1vb*-;6kpHZN{OI3B8RVB8SD-^o{#bkQ_(xsF+>UiQ zjgJ73;_GF^44{R&b3aO^`XNZzlNyk2X$sm@I{`?e(esOnGk zS&aSb80=p+Asshgn>oX@T?I^jRmydN?$MDDu?_N8L0${V<94(Au(+DgzY^;#kUm6x zcj5kUnx~#fsIReS?)1`RgZAoS$9u`~*iSE<6s0Jqx||krp?pz2F2MbjxR2oe`hG|3 zKGkCZ?r*^Tm+8J)rx?Axv2|XB(__Ccl|vvon<1yP3j1cVzv{$&jW@Q3s-QiTW2mjy zii%2C>)%0`pQ^EMCplanY(eAqVpxso{ShWa`j1RJtk-c~MDi9Xc`5w97M0-mV{*nqPCevgz26g^4?mOfKahhlsrUSoF&En3RxT1= zt(xbH#o(X$Nl)~|6Tv?^FZDXg>;cYo?zA~Zk2rYytVTVyQ~x@n(K~6}FG(YJQml{b zoU0t|&b5vifDQ0uO2Yf)qIM)BPIop9e^|{qmGmtY(v(lmofHQgZcpgAK>8A8Tm5J>I|f0x~8KBE)i>qpif_5niONa|^2f zbttC=e&UzdU}cQSkFUS+6~)h1O(Kaq+{bT!3l1uNFZdetK+NvP;l!EV;yCKU_ zR*+Jz-ZiLwSv}7Eh9~Jk_C)7`wL7EH0MaS_T@{VJD)LiPou1BA?vB^H4?s>ge0i?PO<<+xPbYC{5qsJ#G*3i(vNxYkzxSiab2leg!Ko9)NnoG)Ir%WLw*H+G5i z3WvN3bceh=Up(lL3-iUZ4!PegUUJlbS|WC4$OlTq|76JfO2l$0uP70_rTkloc%YBm zQ6etOlABA!hODKwjV0olzVh1=@nv86VWD`apM0-Syw*?trBLkZCvPegzwb}&kVla4&=k3^70~aRnAzXU&@ht3dK7)a!rx=#jt8nwj3pYQ7RT6Bfl;Y zn_cH`C=j2W@R3jUKtoCf4fVSWyj1P~IQ~ z3VS?LJZF=C%oLy5qrg+&->5uI4>P)fUE+3TQcaG7Z>~zT6GR56g36z#| z0$|&TJvMQJO}=Rp-&pc#FIz7EI0%O=_YV?FY;x5g@wkoBZ`kC@L1M4%ho27=f3(XT zPH|bkVb43oGyUd(vZMcJsPmJ9B+`&S##`}$L##&@hq%fvH#^8ykiN?S`A;~A@UBCG z1-z46K)b^xH}?~d+T;`caL(F*S0o+s)_$-ad7!WOmU7*bA^+J|JeeW)_k|(R3(VUx z<(GZMu1vY9uUOUR4y@iGt$tso{P}RPq>sFAxY#sMK6s?qHBjC?TzosQ?AhVsU8ns0 zaPd#4MEZ(B@{uFO{e$EaM~c^wK0++bru1*K<+n$QhqC47BgIF9Uq;!GJM1LDeYPWC zm14DB?#smPU*9+u5LJ1Nj#{w2JK-NciZF@__TOV1W%s4IzzmQ!I?o__liTj zZ*M?)u^x)|*na{hIGxwWi`z5hyCvd-K5}2F_`1)yHD%)de#>mvju6WR$lr_;uMLnl zjuRgYlsm?Y_4GpbhHUxu8REGia#M-8B1b+uPW&n-|H*OU&LiZ3k>blE zWn$ZKlK<6kWP1K6`FN>Vb2PE+JzCygCf*nU^5-L_gYf(@NbWf1Y?S%WQgkz2=$ zwPWSA9u%IPr%9u3iE0EG?wFmlw&s zW#W?}N?%s|hz&RXS%SKuGcJ5DQ$BNqxU~-{(?`CMBlh=^ujGi!v*fcmVqsr-U5>c6 zuYBqV@!J9Nu_MF-1LO@yh))K{tB(+O50v=o=&^zF&0*q+Z29Ui@k+K_GfXTUJOy`m z4wlyq6-$Q@=QTO)T-ux+neq=uh?}Ui&3)vaVd9HE^21@Gr;pq|OnjLo|1wNm-dEl> zOk6uat{ok{+48|0@np8V4E4>Pg1cJ>%gcs} z{ey|~z|b3&AIYP!n=5zZh;!vvIpQMu*Br6bPRadQ^5dc6%R%z#9Pwgy(OVEk-;Sa| zE|@qGBdCx3+$&ym%9p(2(P8onuXt#r-0Bs#9PjH873ID?YQv@bia6nDMy%Aq1ex?c@vJw*J; zM(KBKa_10nlU=?$gzV>cL&WV;{$hxDQTlgfi%psG>LKF#f%4tK;wC4hw+)7<%|{LU z!_nflqme{CXa5MWMm|1F%#{xfBXhoK7+D_DAKT>h!>G2u7$%;w%fIJ{XQkYdBlgOM z14D6YDj&}ge;p{V2gUiE4ahr#Pr7la_y@;uf5qO?m1QN2DqtA{tCqP9{Jw@&wAvS zYi;7;Y4X}zY~uB4@~jlY5Dx$-vvFV2w!K-azYqs0~@Nu?W2=L3}CcD)}P7x^v{^xcBFCbG+X`|ll`Z&<(mLE zwaCYoL!}l;EZ?@sKLfibDE9*F2+I8cD=w4^S0LYoaw)*47s@vQZki+C19)+c{5!y9 ztynt0*7_I=dG0FPB|=#!z?m{#_{xi~ zrG*}bIAZ5(abIi`abZ`+*V;217>>|*sfI^u_?Es;-*3@nec$!9{`zs1-9u!71vpDVQA6Uj#0Q(?-t#V_$r+*t9-m^79zshA9$FK_tY5AU<}WVX#A(6)qPF=UkAH% z`zIIlwC>k8H2g@zeHvyKsd^rv;b;wuHLTQdhK9`=&ed>a;GIQex%_(4Kqu0`5KPauvo)N z4QFWBtl?Y@muPr{hPP|@kcLld_=bibX}C|r%u-#xhNCqs*055;85%ZgI9J0Z8s4Dc z?HWF$;nNzvq2Wgw?$a={OqZ|WXbp=stkiIZhRqtz)o_W1H)wdfh7W1@w1#hJ_>qSD zG|U{Q%hzzUhQ%6IYB)o~W)0_RxJ1JnG`wBIhctXz!#6biNW*;^W}czT*Ko9k#Tr&> zI77o`4d-gOM8g|2yj{bGG!#kKr1J7{t}*8{bm2WOS5a zB9;GhU{vc*b0FDB9li^vc)UnbIr2-mPw^r3vA6FQSH`Qnc={ ziQe@`O@tl&;yKTw81?4}O<$Nq&(-uzNp$*N*(OGaEt6FJt#wfy(|fn)#afQFP6Nu< z5`5ZH^vi9ar_$?T<{u&6(&bv~iEW^hUe@~03!JW9_@jDmO{(WVKtGuLT}kq7P>|$X z>&j&LJCo#}2>w*^Pf0_kAKD`M)_T>FZ|S=~sXmrody~oyq>*pQ$*NNQWwl$IF4tNg zTjg5vh2{qvUpN6ysh1^xc#`~eT7KbHhjDt=hpzs1)ehD=J-I&F zN%f(3K~l9d#ipS4wAT5S9IKvVlIm&c>q?SOdZ&`V81ijc}GlWx;DPG`EsW#IW~=<~FkyeB-& zOwYd3bra}=?MI7s)=bokG{6S>~jczaaSU6*;7PVZXK z^`55J&hs$N@2()VH;w$h*yvI_@13jo@yHfmM=@O^aiBO2y-LejyTZfV^iBm`{xtk6 z($MLhSE|p3IUdf>?|32gP8$A`uu)Fco)t`YijK8P4n12>*H10_MIOfa-6^EPpby4; zXRROb2p(Ufc^qma4xE#QK0gh8g&xlfZ}hN~3$?7ZY4|s$p}z@wc8c}ShiUjv$GA8i zdhOKqwNRIP3FxWXEgO!T$AjO)oc!(~Qg?tq8*-BE^!F^sDO@GWzUWyszyvKB8I!0)nh=Fb*Z{2a@!Z%D&` zR~q^|OozT<4~xG~*FOu-p0K}aQgnW|797Viommq;&PYSQC=Gpi8u}WhV;+B0mHRJU z%7bb6x2BV^t_jpe0ukQt|^+n@IDXY^ezuw7c*U@<3F!XL%$;p zeKY9CW8~KMpU7fdTG(5l)A(7c`yK9%uRUqxMAOhKFaUU5t@ChxdPj<`D>Qvmr-$)n z{E77m(=`$YHl?BO(R6wVJ^mVqbM933TbhO*0G<4NvcGKwo!Vh-Qadb6BZp!Uke%k8 zuj=!ruGH_DAN0Evo!<4L>%BB`4y2(Egi@*Wa)Fqt+>$i>&1vZK($KE~-NiLd{J2H) zZ%u0dElkIHV7Z4g@H?VNRSr*G{}0oY8%;y^!9HkQ%?eFm`Sk2NUB}@20%YlRT?9J$ zu?@N(U7F)b=7+I%d6?qX^jFfz!Gp%!&I|Q?`m*Lf0`pj^a&wuEeL+ace@*k3r{Qk| zo%%6b&x5aM{)^M_Uz>)0za{5F)jo8NK-cqW_>UT<%B5dIpi6HTL?P&@^tzJisHa{h z2RIkzS1TSjvQSBj!0eZ57N-RpmVzgmA+pqF~XOI ze_0y(T};P#cv8uscOU3_Jq+C!)3MIH$isZ6 z^Cy0HNz*sIsOT-4j)zxM*7F}}=nF8uXkMt*e(Yu7bdALM5U)eJJd9iG$Gm(2z~#|9l5|bg^bOB@7^i-s>rzdxea^!;y-Q8k zeN0#BgwMv#NI25f+??Aee7?!$(|tA7b@e_U0t}D7oO(Eax z)=-1L)z^f;rD31Ht6Qi5nh5HdTT)b3n3~Dgj4*jVj=JeXSj5ixqPf%G7VtH7wYAMh zmN*Pi4}*~eRvnqs7itIxIuQhx>Uy4vpjzWDs_<4$IH#uGS2>}){;cUg_6pymnzJTO zsPXy2T@Ai!Uz;C6IDO~UMQTcYzF>%?i?%i&#Y`kYiOjz9-1$?d`XV8piaS}`2;N`_ zjL0&t6QOTY=TY30Z|YQ4vtmW^LPBe>A-A!kBSl$7!LUyU-9!Y;ra)rWx;*p)`XEl< zLJCY--Q;!WQ7A|iAkrHQPMiQMA%bC(j|3%(55_YV zq^cd_5&Gsud`$t=4bdbMv!mbJ8xb-P@l+Ay(8o&l7E-K&04HXJV(Nbo7ka;P`h=-o zpLbdX2A&#)RytuUG~s3(0dW#LBe4?Cs;sQ@*8A!wOsw%jO2v<-O_*9;jvSMwo#XRX z=`yM+rpLyP6@9nD?VSsvyGV6>O+{_FuN<9$o+D~!pe-~vfbMAxV=P5#l_~{O{nQU$ ztKA7U1lzq{j6aMucbU(J$hM(*zShueL^|bo%C%D(J)TK5)f3BS&h!=JQr}FQ!hwMG zU@1Y^QXevT(I|R=yWNeUj`_a1h?*Pf^ag9EG}WRR^v&34D5{1{g=lQ}swrkDhD5NI zn8E61sT>iM$5=^WK~S^>+8W{0Rc(Cvxo)bA;^eBL&pEbiV!y=-E{ipiyDW@42fAUh z7!OSdl#4*F-e5xm@g^u&iU6>k;b8N8)!JpoWMaaSOY_xFEw_e+R=K0K+BCJ*`1L-o zclwmNLSJ1my1u%8Dyna}FNh%LRqtC*^K5rf6|oPe z`ME_gK5cfT)D9G)7Rtx&#fDfuE8RY?t=9mE?|*kbV#l_1MFKPk!rtkYenBse(|lxN zjlRZk7dunZrKHV2CxGbEzGlSC^--YGq!zTCmai?+?Q85bBgdUTyE&iwIN%G+N0npl z&8H$e$28Eb5T_l~YevZCtSs5H%3t?z5{NBprCaTk(bMkSg85ya>Y7gf|% zPOY!53A)S53QD|yZvHIu*0dECmX*5m^7D$z@(c0`%9vD?=Pu04D=I85$}24?18bW* zub`y3xTvVaU65av=guoDAvtY@`DJc*9_a1@cTrhsNl{5Div$xr;FDjF@6InOE-EP| z5nivmC>##t`_LBtHaNWS9P((1rktN|e1E{#66y?I9BPmFTgeFH`n+IbU3nuBsnKY1 ziZvdKj34>vX!gN*Xzx6TZoHZ8`QRqOI`&)3|6_|cJOUt`N0GaT8ma#JI|G|v!v zSaB7CUhX)mQ>4V_YwYfJyWRQmA%v?N;lACCEq<(gI{gUjT;1rc^W%eEd;N^~j79Mo z8@iegk~hKdbMxK38nw9I*NkxR-svINa!OZ#ETB z&eKgsgX$qrHP&Js5puj}_+o3`Y=GS~B0&7yUgZ?EAbfr2>`s42ONv!Zq7&z7y2V?b zPeYS!RkfAdO>0aHbj+B|n8Xi%EYubG@IP+4P+_6djdqM1cOH*7e?xFCOdIJ|RKQ2E z__3;K4tYHutP3VgtoFHcu^Kxsaio>0krq-R)A1Sbw;kqatBYtM!4SrD??LV@q{WrD z7I(~;Krw1uyM3r&;^L*rU)!s9RPz?qBlvYES{+91o85-xA)6wWcc^)5pgn0Y_!_wt zA|V7?$A+UdWUZ61GNGnWLSw6)!m5D3BVn{rtG zDtCbjE3VgJDzD{>QhGP^9{V>lm&LhJ?TK13flx=+DOPK-V4PzKR^A93-%cwK^1*eH zB5o--BX)IwJ+ z2h<{%7P>@LHPegT#6^I0(`e{+(;5iB>CxzKZB&NfE~u%Q4m)mb^mWnTiivc)&uI_h z_W|1A=qADYH#LdyMV(eJq2INaNM5`a6mnD4g^HS6yTUC=ddG>6TQESpn&DHe1gJ`7 zF;~P5O>2Jo`kpH z%%?6?fSB1muYm_&U8FT! zox&GP2d%*P9QHO?X2a#B*u}W>u$l{Dz6^9n{vBT$Te|6Gsy-sHMp)w7A#N0!wV7_# z5*mQ0i#M3cD1EcLyM35C!l8C70wdT}+9VfZ?Nm#fI{ou-*nq+5>psYM!_Y`v zxRqf=(;n`CmxO%mOcN{93^NEPlB_N;MqZ(|GFonueV5<>fWrufb;*ajNGzitGr{Z}33#WsC2sfBs;|C2-bDWM zdA$ry9YI?GtBIVZt&s@t^a*S8aPgx11T`N%vh?bIR0zrC{S zHQkot;FD)tFE{bwuNP@ps5Jz3w2djoh1uQHDhzsBPCY?Wona{UU zx#yG}uf`sCJROC_e5}&OnoVgn!~fNRB6*C%wcC=;0G}>G&xtAFsOO)>s8t zThVNSQwBPi;vIG&Z#!sqO0jvOQG>+~wq7_gQ_G+3+QvE`cH+&cc5&E0`+abAIQ~nm zVc|sY^l~?j3-H2`GD;l!#1y1apiWt6E2Y+6ZoT_AuH5Qmbsp=66T-mcABR%TJ+7}0 z&zts|Mzn*Tk$MNz>r^0VL)7MPP1w2U6>L6Di1f`s0}gTHj1av`ZpNK-O;TQB+=Bo-Ul1#&s2H%RcElH<7xG*u0Fk#GXE+ zcC41uO11k;vEsyWeje7G#aMIJ75J<(3?-UfT>Q#_cALqChoD!`K7nhL+;Af>1gzirs*#n8|9 zRfod#ho923P9|cep&HHFv{{RoICpl4=aRg(2#15S+o|G(NlO7fYAg%;@f{X@%_ zx%kz_KrW6JPmB0xYixFVS8hXBu(j#5V3Wutti>O05xGtC+aXUuSUlgsewKd7E&=i3 z9{sQ&WzeaP)`-aE)oU)2xwAt+=}182(zpL$3h_QTH_)QL?{8^>5DSC!Mto7)-H5|r zAM}7bWMS%2042jpU)YF@DA?bI-{GW!s6bHY`;}ZAl?!~eji2dkk0d_^a} z6#DUt*!#|Q1(*ze|=EHjK#G=siq4D`6b`Rf* z==>)!WUa$<+tAN{^@9yV|-Hm zEj|m*0UO26uyE@=@U=fs`Kqj1F5N9L+LcJf=eOQd-=OpJ zZ^^~D>6vtOS@61~{MP&Io6b;tmcBY$to{~$Q&N8G{mHF5|LXE({qlU@)({prGg4KW4^Ia=-{`ZpmQ3(;8FQkSrto@zh6>*E3Uz+a+Tkzr_SE1{pmd_ zs*6>O_5R{IoxdY#z`HC#8V=Lt=Oxjt{6$H0(v>a?4o2E4n{VikOMa&6f2_r*=}BmU r?ZxNcsq6n1O|ZD|n4*}BKdap>|3~(ns{DuPg$!JOqKt7@a{2!c^wl`f literal 0 HcmV?d00001 diff --git a/pattern_observer.sh b/pattern_observer.sh new file mode 100755 index 0000000..b3469de --- /dev/null +++ b/pattern_observer.sh @@ -0,0 +1,46 @@ +#modified from run_bp_save +#change from bp_decoding3 to be_decoding4 + + +#runs bp_decoding3.out and save all the input and output errors + +#try bp decoding for toric code with different size, 5,9,25,35 +#added size 7,11,13 +#p=0.1% to 5% +#100,000 division, 2000 means 2% + +#time estimation +#size 9: 65 sec +#size 11: 100 sec +#size 13: 160 sec + +clear +make pattern_observer.out + +stabilizer_folder=data/toric/stabilizer +error_folder=data/toric/bp_decoding +error_folder=data/toric/temp +#test fold + +#size=13 +#for size in {5,7,9,11,13} +for size in 5 +do + + echo start pattern_observer.sh for size ${size} + date + #for i in {100..5000..100} + for i in 5000 + #for i in {2000..2000..100} + do + + ./pattern_observer.out ${stabilizer_folder}/toric_S_x_size_${size}.mm ${stabilizer_folder}/toric_S_z_size_${size}.mm ${error_folder}/toric_S_size_${size}.mm_rate $i + done + + wait + echo finish bp_decoding 10000 cycle for size ${size} x ${size} when p is \in 100,000 division. All error saved + date +done + +#echo finish bp_decoding 10000 cycle for size ${size} x ${size} when p is \in 100,000 division. All error saved>> data/toric/bp_converge3/bp_decoding.log & +#date >> data/toric/bp_converge3/bp_decoding.log &