From 329f3a849fe1aaffe75c2295b943368544484ad5 Mon Sep 17 00:00:00 2001 From: YuhangQ Date: Thu, 9 Mar 2023 14:54:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E9=87=8F=20STEM-INC=20=E5=AE=9E?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atpg | Bin 77680 -> 74736 bytes check.log | 46 +- exp_result/ATPG-LS_b01.bench.txt | 133 +- exp_result/ATPG-LS_b02.bench.txt | 7 - exp_result/ATPG-LS_b03.bench.txt | 158 +- exp_result/ATPG-LS_b04.bench.txt | 38575 +++- exp_result/ATPG-LS_b06.bench.txt | 80 +- exp_result/ATPG-LS_b07.bench.txt | 54000 +++++- exp_result/ATPG-LS_b08.bench.txt | 9235 +- exp_result/ATPG-LS_b09.bench.txt | 2478 +- exp_result/ATPG-LS_b10.bench.txt | 1266 +- exp_result/ATPG-LS_b11.bench.txt | 25388 ++- exp_result/ATPG-LS_b12.bench.txt | 2931 + exp_result/ATPG-LS_b13.bench.txt | 108874 ++++++++++- exp_result/ATPG-LS_b20.bench.txt | 69 + exp_result/ATPG-LS_b21.bench.txt | 66 + exp_result/ATPG-LS_b22.bench.txt | 12 + exp_result/ATPG-LS_c1355.bench.txt | 55649 ++---- exp_result/ATPG-LS_c17.bench.txt | 4 +- exp_result/ATPG-LS_c1908.bench.txt | 25848 ++- exp_result/ATPG-LS_c2670.bench.txt | 13745 +- exp_result/ATPG-LS_c3540.bench.txt | 1818 +- exp_result/ATPG-LS_c432.bench.txt | 265492 +++++++++++++++++--------- exp_result/ATPG-LS_c499.bench.txt | 25118 +-- exp_result/ATPG-LS_c5315.bench.txt | 2424 + exp_result/ATPG-LS_c6288.bench.txt | 996 +- exp_result/ATPG-LS_c7552.bench.txt | 2425 +- exp_result/ATPG-LS_c880.bench.txt | 2978 +- ls.cpp | 2 +- report/atpg-ls-动态增量.txt | 30 + run_exp.py | 6 +- 31 files changed, 468404 insertions(+), 171449 deletions(-) delete mode 100644 exp_result/ATPG-LS_b02.bench.txt create mode 100644 report/atpg-ls-动态增量.txt diff --git a/atpg b/atpg index 771043cae3b5eb04ba0718c615693c90cf92dc25..8ca5c145d33b479e4df9787207951d502b3c28cb 100755 GIT binary patch literal 74736 zcmeFa3w%_?`9Hi%HWF?*QBhH>u4S!>L`=A7mW%E}7S8GhQUOJ+CUFTQH6$_Fg(xDi zn+1-?t!c%|ueB|`_$#fK;-!>&BU~5MDp0j5DtN1BjR>Lw^_KtlJ9EzNNletX@B4ZG z@8{FaXESG>nR(`!XP$ZHnP=wAE)9gH_H#NN)+ftxfrGKtMH1pO6V?vTZ1Eiw7oGjvNd>1OvVH^(g3Gb}aBSt0A-XXe|Hx&Kam zm;6@;aIbMR%q4tU6dnVzUjy8cE=@VeSP)AdXxWFNIBu>+`8Ip&KrAf-Q08P zYU`sd=d_fZcg}fZM>RK$8ZFXE7wcg0Y13yrKz0XVCL2Xx3^n6S|Kh{n?U?!LJ$r`? zx%{yQzV*M!wb9=^XW?L-%)<}Mn=DAj$Ki>2MEh6&sxr?p!$H{j_Sz37^u8A_{2W)KL)~j%m02Kcz^jA9z;v z(T~IXpl4ej?VZ>Me0m?_VqpK?`8KnUdLQV6{vmzz%jsyB8{eLvANGO&2Yt}bd8@bn zy|IsWP3wdI$Mw-(>Qr}6A`zd^2mHJ~>irb$`gSjPwt;VFIEFb^b;`t6GtVy2N%$Ib zo_3q?cJPz%Vdgw+!3UsT!nd3GTh09MBmcKKGc-v6nkha(6OU@vTW-P~m}iZk2+k_2m|NXcJ-@a&Qr$GGY)V~2ef6xWYwD_HTJI@W zOuu+$s1O%01G>Zxzb z8&}M_6u_}&>3L{vb=87iQOJ5qP(uZBSC@_!&6`_SzHkB2%=(wm6pxWL&a17fz9u@a z*9t*%LvyvLg&i|49J#)+8Z0lF+fcEnc5ZcjfD9M(kCWIW^?l*%(SWhR`r3%uNnqeN zp(x#@=g+T>z`_AFDA=o5T#~^E85B&NRWYlmA~5s(ic3&kAH9zLoH?#yR&hljAiK7{ ziri)U(Q{-xM3PJcAI`6Bu4rfk8>E;O1EmzRYpUi}RMkNWkpN+?s<;LNp}rzq6$#e> z8M_PtFrH^G5w2>E5DwzfojgT$@;7A9SV0X0n{5|jHUs1>XqXE*tC-)?Qqfr5)Z9>C zRaYCizG7h!>Jpvz4Mahb^-a3yyyof%1Rzizu45s)+<>MsDL56i=z1wwz3|nN36w3V zfEtNZ)z)DQmp9cesIF+LuBmFSsc3Ads|{aYJQf)1tE=al;J|_fqPKwbn~W&4qWVQ* z0AU<{%^;Rs_?k>(Mcc|jLN9{?awUI?m zN(g6DwUAm#*S~{tL6oWtyocmjNNoe5sj2FEbdsfgQ4e@iT%ocXuem-_-CTb0!Zb0} z^>fqX1lhdS0I6%3kAas~+?ammhcP#B_9=E$%&uQli-MO_H%Av#b8ZS-(^4ZQkI1}= zaLu)j=BBFpxo9&KZ}?h5D&|430Dv;D#}LtREc9+C^#7aB#a$Z z+#_0S&+4^Bx|JH;E!#MIntZMpJ!)+FsW|gEdX$+N8BjfD@_tyix$xy*Hr8qKsXv~x z5X%-}j`+{?EXM$R2Ra6c=fP&~A&&myDH|c59FAO+Z8;_=+CzPfU1w4|taeU)2Mi^`NA4 zbq{!d6P|NWrdxcl;yVvWIG8Pb2{Hyhoee(H0wUaJgBRQ2h7CU220v(nkFmjz+Ta{H z)+f)Tld@W10THe-+r<$;e~0ziZiCYYVtp+8n)$hAus)W(PxyHj5TRw)6JBD2SH3SJ z6f@FfeQIoQ44m|*(FW((wLUF2IF=acPpb{ix~oNM20zILA7+COv%%dq zxapD>srfeeDYpDYHu!KGyu=2#eBn&?+2E!NT9i_4@Y8H~%58A^0<6y*8{BOH5mwsZ zXV~C1Hn@F#-Drc4u;p*D!96y3s||jp4Zgw#|BembZiAm?gRio|^KJ0eHu%{#_!=AB zoDxLpS{wWvTmJPn_$V8^!v;Us2H$Rj7un$def%#6{>y>?a^Sxl_%8?kZ{om*%4wgd zvG;ORJ^Q6+v0WYSi1h2)sm8YCY!+m8jXV1phvQJ!nIjP>r#qOxhAD?quXlBIwTn0n zkx03S;IC>^Kadnk2tI!+_)Q0lsLoQCe9 zR8=}o1NTtsyXiO$+e0aTI!=T3P^vf`ry+YNbw)Z)1NKnr*mOKs#GUE5BH|x>VYQcr zD%zip(?CW0({UQ6Xn#6RgB0yg$7zV7{pmOjP_#cCr{RhAr{gp@(f)Lth9=sdj?=(I z`_pk6mS}%EPJuW$5kH|vd`ORYc8~by zPj;{G;~w$-J>qZoh`-t+{(O)4Uwg#2_J}{;BmSoz@%wtj@9q)*d5`!VJ>rQT@pzB; zk{k&VvNBqnl@o)8rpU@*dq(?lvNBr|0 zJ^H^#e1DJl+dbm1_J}{N_>iJ3s#YTSTlRXbojhy+!iU|a+>peCup z9cpq4RjMlO4CWdYm)m8|S08^8t9^tLwgIH#%6K?e6M6!*$M3#vj<947W z8BdXX{d6P71Z{8Uuf&w4qM<($DK~n`QK1t5J!)X3Dl7HbDt-4eNtcgx%^@9pC>IZ? z)Qw8dBJS8@o>l@QXRCUfXFHx${VvZMgrP)bPSE>`vYcn0R9)sX4iPU1JR4*f0YpOD zjh-6gQQ%@%1hp;30X&msXPH?yAT)l;%Fv((1#oZb0`Sd<0%$mxyx1(y7XFc0QN=r- zvWQvl4J?;z^R$8(e)zmXK01s^w$jwMEUhurC#bQ_ImRRuP8Fql%4E7lAN!}B{L3?j zibC0s!-`P#Ax|*S+B|fnsk+ZlwOd`{8Fl9X#*gT1HIe=8O=ezL5ylWw4jQt7&Tu1Q z>>&kLUcmg1d3K^)$a?@?@LOg~w0YVA32LvXTB&CkF%Ao9Z-x>PPr32!psXXu7$%+` z^Q>j9XhMDzxsDi4f>GDypRmro#*fI(5b$=s-o368zy!|DKeij6A|l#c2{8g8!$}B8 zBOyYt-sA%$f;_f5!6sfhYcu8$ieP9#L7@uvi-NB+~bWzFZ$tj0?><3iEJ4EGTyn&cK@K$~eu;&B1vIbLr8>viM;o{y6AEYtW)4mA2O0&#C}IOIkz= zl7U8sLGR~i$w8T_N`l{zF{(eLJtt$sWNe#^QJ|2vo-ysf6FbrQ#vVjS?3-wfr8oYJ zXTlB~VfBwwq>LB~CF2?KimwKkA45g|ZM$Hti-0i_GU zdKqk&!HWotsNmcktMROAf@vFgEK^OKdIz)ul>M7WRp(}7I=uk5Hp;3 zY)Pka4WVjxkaiT^Cu5{NsLv8LtwC1sCmBBoAhF@`C<1=)Xzgkw2hH(VWHJ017C#Kf3_zF|w|F@^miUT0 zjMXR%&@LM&L6AN>M;$qv#Bcm03mIlu8H{?F>_+mibh0;{JVPe8m=&PtcaUb3NN_ny zLB33+C#6fBjAZ=|H;6)kK>!!aE;Ae~ml$`sl@lcI|B!=zNr|doRiq|LJw6I;9t{G) zFFv>>*I>Tz0e~XOT${z>V@lAwH!{0@LmnPO`bZ<|V~*MUkaid&H|fh^79!6v2HXIa zF`Ka$1ljYDk225O*W(EjG>}H`4S{9L9F9%}KmL#y+F!Gaz+)YTPe+aG<9O66UUBMhav>KHk2qlFmybBa5z zyvqMQ|5g60{S})mr{KC0T=k-<=l|BHz6`wuX4%msu34Y zBB5JbQP2UMsC_CFY;sx-g+S;t<881|)o12NEu>*o6q<_YZ78Cx##W@8>c`YZ0ik{NRaKkmR<$W52z>~Plw+slQD0wq)n?fh$Ggw*I5zwa=3aJPv>!y!U^}#P7Lv#rh*rhrCnf}XW&nySFsiVdJvE>+j z4F{=hez5}e2le~g5ugn|)%$8>oHfUU^a&t^Lm{MnVZ640IWNQWKSWi^y6r%d4>Twg zrI>HMDJ|x~*w!3lFw#QaI!}%gr+*0ehuOs1&Yz(6xjBVF8<0iwi!j)s_1OJT3W#_Z zLFi_vCS4*<9U)YM&>Bn$dG|%9rhbO`WnQ})-r0KN@kNfP67Nt}c7RW(TCvwC6VQoDd>tUIi;EnQQ`GSBK|S7q zI1mnYs=8~Z8g{5om#1}cu_H3P*L0tY8HjPh_Z<$u)}c=+EcJFM@#jFavhL!sD?*+@ zZ9A0sXJSz{vr*NrZBf0?D{VZ`zpd0W5LW%)5e{&44x=66Z@mfhx2}BKtLH9E<(0?}u5m35+5=tk?(aZ5@$gfm>M@@(cj_((P#2049z= zA`+0kTv-?K3`An!pl=19Qq5xcOB;zS8iuUiDTR^aB`e#(0d!kCyDeXITU(G6A?N!w zA}1cvkmAFT7Uc05cQ(qtY#W=QJhnJP`B|WxOL7Ia40t*SJ%Im^^%9$`3#JQ>r`{20 zAT&X5+y`ouIL5J<1o8oC6_C3H#N`2CtpKb90PAVD-y2r}h>k$SgUAX-PGq%CKn4S{ zp84BaINTEB&a=_E^u4Ywzn)-;;ts!l2k``Sksmov=DY}q!?+CjLb}VNhdiF*4%k0# zB#%xfmmpa*Gc{D!vD-?*AR3Oupq^kOiaRh;*uFAdv;jz}F|W!xKJ1irsHh|#Rs?Dp zh75J-47-s*)^dM_>u1<%dLW%4!3>EZ`&t~1M<_tRa|$wIE;=27u>vGn`i$Dye;G|K z+RPc9)6&gsu7Q}tz|2z$!0_a9H@Sij;)wgc1;`i~FHQ^bEh{wp_b5!QcMNl*_I zsosqd46jmlF6M`hoaAJ#<)AG$M)wEx1vx?eDyaUsFfh@6Xx`4~@XlG3e^nburK`p^ z!O9g$uSO=&Oej}%NR|O;$di-wy96!XP0?qdlQ}LfhI3t%ln7sqK55pEmV^>;>ZsnG zO5438T+$Ws6oqtj@TEsZ${4hjlv3xq{XpUhVuES(dxb?8)ayJgex*!A{F=1#teOUQ z&S)1^V*>H1dRDB(g;7=N$%&@?uxVZNACxDiJ2lm%CT5_zCnX`O)~{zAS*L!bKhCKRB0EP+p=YYS89a7Y;YuD;LjO z-eoVmy6Au?V*H6w6sbuYVM_c~fq6@dZ4A$A$1F%Lzl|*p(PgPYpbqv2(c~NT0?jN` zs!tYuM;qcv(~wxtWepcFLaGQ%BDPV;PwK}~gtHexgqvA$V%%kTh6vw^z}T9C%~J{N z(z@81dIQ2wK1g{^um5g-k4qL+uP9RW23RL>*g&uco9n?_h1;Qc2jom?yEU6u$9%Q( zT;kd08;z+aL?_R6eq_=33`)C+o__yh$mn4Ls0ME+A>DW>~1CgU2rCpsPi;p zVD8|^g2Lr+JD?QY>S@IzVHn*UZMO8I%9XY= zS=8za0MQr7AGr>FLGH74`O&9Tu&@ZL53Wj@vFX-Y;)p(H#>0qPtl8#3Uz=>OhS^+VW9cc_?}1}rcPBKZdAVmV0=&XAcX;= zfo^Ei>s)-;c;_E1LKt{1c%SJF(*^1w0%U3AXdXvu*Mkna=2kH@$Mi|8#$qf3)WrXbayh{4IQLh{%oA=!_y zn4j5+nDG-Bzd+bok9nw+ zjNiOT9;}qZ%{H68Y|dsYGP9Y~2!wCMgtl2Jke>F`slZPsxWG5F4}5QY9lkATd~?Yq zm}PEE46@-@bBZ$caH^KobxXd`maI;&6xKhvNMeZg?aQy4qBf& zB03};Re{=g{f)FoIMs~)NEi5v^v(8H4fF2#u4la4o}pUxqa^F_x#NJb@)2VkEE> zArucKd;or*HQ%WOu*PyelzHEaoNwtvmq*SZs=kVqsv}peV1OBCn7Z-PEaT;YTrzIS z(T0_I-;O>T)K3rU4LLMwhxs2DHA9L-Nw^5yomWe|-R#?RI?cvGrJCW7ZH0Fh)`*sw zsA%)T&fTW!6G72G48EZ(Yz`axjhGJvFHyOeavue$X}#ANdgy38fc> z(t9m(gXjRWT$Xh6i3S_{2Vj|=@01{8FJihQ-VudmZW;kJp#q5|f^5;~*tm3h*|trx zd@oXkqDGI3zGl}J0j=2j;=b+{GfQQ9eqF;<{Vp+DzdXOLWPVG3RT^qdKhyI8lB4Rl6EV}YcVbmXjaNPZA!*6nQcl2-D+tVn9On@q^3b*89^Yi z%;G_>+m)TUzmo9*>J52ne1BwkMjygdQuPH6=PlJ&V!}nFLfRAK>rFSAcS1@mmusfXf!`ccTXT(Tsa}Ve@NRGDu5du z4pQ%Sr7as$3Ezwg<*t1m)IJUsY=Wy*X?p|p1)spy5kE`S1dJ5#L1o$P0CQc6MIzjC zE{`z~WN`7$NfSog=Ad&MjGD57_ptgq9st+z7bje22{jYnz4Y9&_*+Y_DT54ONcO^a z9nDitba|9x0~j0KoONP6gtTp#LPHq+IYv8bLh%rWT+Y(dLR!+Oe-*pCe-`#@{BZQ5 zK=I+?J)Ji*9@5?jY43+LOgJoh0y2tns5!E%b90(s{wH$Kpw!uDBi26a;oLI*=M{?H zGpaK6nV|MeaN|F+#G*^;5utBq1+~x6$@+y9=1D=&qjJ#-%Udq}PPg^9x$(Y5AjSGG z2z5evO+5(6ymmfr&SdZIzg4x5Eq5|JxGKyb4855}>d2WTW!ihHwkufhk-G7p&=~Ki z8@u3Cp4O#q+;D{0Znf#gc6JTK_1TI zN_+Y5zloBkt*ssuJ+N!G7l(EC?q`5r(nN=)33z+tS}Lo%B4gIZEhdr;kFlqJR{ zL6Ry~M&3h_L2AJvE|lv8$rFrOC==4)OTHF9k7GXcD>of8BT@LBkk*_Jn5s&GA%QzV z=q9++v2zLuq>Ei7;mMae`~{UqD~Sjd9HM_&-SsYN-Wk%~Wqsbm3zd-f{m9Q*^C8sO zc{`&&3<|$T!QVs9BgP(pQ`bxJT2zD9jDHzABpd&Pd<%KvUaGCH)z}wKrR`@4)ihd6Wz>WpvYDA{%Gvf_qI&XuXgeL&2v1wwCDAQg~ zh0sXjz>Ahx(UsXBDk3n8?=^Hkwq8KA~@M0^Ak?+$4l zEarV7dTyC_OY{vj;m1h$o(K5HoGP3hO8iN3I<_UxnvAeZR0`+gFo2DJpfMOZSPnMB z3%wXt66-||Y^Buwh4Q~GkcYS!XZci?#@2n2Y0Q0XJ1~6FQgqMa^W;V1Bp@93U{fA zDS1Kdn9eOm*wz>G|1MeHh0u68ov_u&6*L|&zJt)FAO8b+ehgLE<++gY|1afvkZAkA zC(oz9V2N$g7=h=sJpTkpEqQ)YRB*s}1L6N)$y(ma_Y#_2bb=cIA_^A^jK#+}bec|I2~V_>?Iwi*`*0uLCMBFxBhY-xUuvV1r! zN_`sU_!A1l7`kE~Zs!HoezK}BU%}>L{DmF5YnipbtcLqD24to^t=}f|ZD<$Sood0e zvVxZiM@6q?AUQzqNGjtj8EIb7oia6S- z*0|(A`JpJEjJ|Jfn~@~wr@rvG1RiCXr%!qY{VVj`@@0Akne?QtmCEU>`6Jtp!bM#&m1{=5lNZB`e`gpTK@ijC%pk zuqanSNGTxX^Qv?&{P_a3Zh2-sr+)4mSf&p%@opbWNGyx<9%@4F|AK3|KJX zTBhg4cl(r;+cf%ajZ=`RxC>jl!LZBY*T*hnUXd*)z605kT8ZC#Fe1RE%DTCpfqqD| zf4~;y4$vfaxk*$GHUvXn5Eh@$k;x57ZlVrsy%BrrO6kTg8TYckMJr|Fo}wK=t=PJB ztRr%w7&$ll+73sDqmny1q}=l379T z{^(wyyIY{ULZZ7ExmBzzVDZlZ@iir8WYTDn&dRz^Q7KynGr6lMm2p-Pb}6|j2kyhco?^H;rK_)r(*99CX_t8&2T%A zt9rd#)vt!fOYY;)8?v5o#5+VNDWl_p+teB76d`i}p#Q4U@?X^uz?4QlSj~jPB04Jd zD2iwF1(r5Z@7X z!OQAO_7`M@$E&eaPFdKs9&-G}8L%=4nL)9cMg@Lrc^!kIRXr{Pv7ID+f8H0BwuhM}wjQwN z&XaN((nqjARNBz{LK^$%$YF{yx(NqQw7;kASo$1(f;pBRGrcUQ^DI-Y7r;*4ue2=| zNoBNEwe7^={ksyM2Vl_qbo3>NZXPUYo}Fw7j-2IbjCDA9P>@#cD(RVHTiFv{nC(h@ zF6WW7Cr|F3DDf|#Sj0FB>F4ZT#XcFg83BeMc5y0;Lf$u{z7!R2x_|xp(4Q3Vz+sR( zHu}BKD)F0KJR#NM5=T>To}<)z6s|P@gE1cTc{6f#P%rdwJhd(v3wleRNA{BF`jGa4 zY4#p4Ui>E&XonxWnDJ34N`)+Q&)SOIH@KAeY=C7E^Qg}Oi>PT{}fD-tdufN#B(FnT@c2A2cN9B66ZhuLp( z-}`BzmVP{0*my)#)+SVM+LZ^@%Wb8bw-~^WMZUF&!cj!o4nO9RvFML;#@vZ~`Z;3} zC~eQ6Q{}W3iUSJvV1D0$$wKQF3=hR@R(c2Ar8rxIwC8b32I0eExNDPLY=9V!)=7jj zAWR|6Z6B(sCowsS_Q-YIX{0^9cB7<}h{c;_>_YtJ2yrJjxyFLOjW2~PqbRpOEe0fIm((_#&f*$}Yd!=n42*m0h-UP9_-(bp- z5D#pYQW%cxFc+dBtq!iQBOmkC7oSCVnez*|9981bXXqB8VCq;EMkCgoinZp1UI=Q1 zpa;Hvt~wX6jfsPA?2YYauaF%B*P7VCkp*h=jEAe3*t|B*z ziGg6;WtCz7r?Qbj($9YIWhiT#C&qub#WK{qQ&dM~lDZ#rBJ?G=ka}2{8*OL{T7x+V zM?6efo{p0~ssBYzRAQ!Mj6h>JjK6JXSG9>3h;V#C%m8$ZZRfvDYU07P#|(2K)hXfI zgx3s!)c~Yca^|(>7&gG2>ViDN&`ewkL-WVT14DBGo?&PXx(t=(veLwmdM5u!CQp~i zTM!rrk|KEqlX1#}rO%bgOPIV9$+Hc8ss}^GOSV8)=X5^8uE#Q8bi;Z_lEUQq_8 z{?;o~NH2(uo+_U+m z*qh^-s+^#tn|?%9&`nIBn+*W34u+gYWB^}{Y2*E39OoeUbC8@RNd6oor%)C{@)%Hy z7dJ@lxprzX**ep`X%S0S$M3L>CvZ}UpCua4^BLx8jGt_Upn@BCxx_r9j=7ncVq0o# zQv=4QAn{osOl<@?*pJ3A$@2@3a`6rt9q${z-zJe2rQR16w<05WJ&Ot&I|T0-C3wXl zrE=B6b5($gor8A_H{m}JWl#@nkQ0!n(U7sk(9O6LeXSPpM8m+mz$kal=|go=?0MzMNF_Y$i|2} zHrp7{sbw}i)Wj@wyX=Rxcn?4I5t=HPT}5U?O-#D{5~!h4ATXZAKLAt$#>nT1d_D`$ zmU8^xio12sUnRes37ZVd7yAm9Uz)SG?G0^A)#wa*#osJ?3b28{;;y z=Ip5&O}_&;s!L;@g?W;6$S-dJ7=V4mrf07}R5`ZI!@JlS9wnIhg_z^*Nvx2p-&07x zNvUUl7sZ&AgKYe$dW)et4;TfarP)oWJB=mQ0Wp&lsEIaD9x-z-ANmnnaK=wauJ#&D zh)z6;GX`Qgx7QfSBpAMum>XDw&`iIqYbZ(VU_cmXbeWpCC1^>Ja@Jde@}FQwCq|-Mnryz zIqnKrvK;4?Xa>xWTLHRlx&)O85Y83R9Kb}w1A!gL%YJBO1MpF~1qmh06BFg)?1XV5 zY;BI1Mh^HEwcw~a32&b`7G0-KYDI{J49kJb(!d<|+6?m;vOMQoZd7luUa1+rQRp4g z=fI}_eCqmMVWb~nRyRZ61`@gBr{KE=I_YN@dCoo8);$92~C)bV<>Ip8TZOCZGIn?;6#tAU*S`=7scd*S&m&#?6Tq<9w51E$Sk25-Z5@g z&_|S)@8VdA2|EX`C1UXq)EBv_Ux;g)Z>*E2b%PTY5N-aV87CK0O*ZBFlTJ5o6eKhWo}qka5fw;Zevm+ zy9KPLh(fiQ%A%Y4%U;cNBvA_*6CPv5n9Ph_;2KIl7(;5}G2zuo=lWQXm;IWF8S*mZ zWfMzUOIz=_C$eV{1?#4Av1w>yl&DP37B*AmKQd_`!C6wst`q3RYo`kV`&c3i`kfITXKxCt4I= z8jJFMc(B)^5i-+{`qHW$exqd*hzIZdC&oR81_n32l^t@vV?6kX)MnYJRB8_A8<-)) z>MAthx1u3RJcN-z>?LA)!|`+D`;g|&AExblQ(IjjS?4yclxX8QSmRhszceWLT4`Kh zCU#=wwP7`QA_l2(7TB$7oBqOgb_E2pK2OZd@~C)gSxrpFnFp*iMkRJrxxLcgwwqMYYh1#JON}vXOO52MjdR3m*pL!I^1#h4% z!n$G+mP5bpB{?TGA6yms@a4~;5Ahm6siYC>Y12apWeAducUYHZszb2Q(uFjsFaC?P zByr*fim)A+)Y#GNg){t*!Apsu^R0Fj##s8Db#C};ui;cow(3k8SFe|Y>H$HYC6mF} z7Q0O1b-qR0)r8c3LJA~RXP{=q;*o_M89tc(>sKHqi~RB>NL>p@ z9FlxcQ;ib79PrL%#6-j3$^iSJ#b+E`C%Jth^s=Z1LjbrS&T>SA^hV5Zmi*6w{A1=n z$dxi?{)iwKav@jBw*iM-Dc9i%)4nCw8KDkoazDouYO&TgTW3o3v*PTxU8>Ldvt6ox zWf5wZYOB|*o+5LL)BYa2J)yMW^0Ewpg9Rbg!-HrF$1exF&5j^wA3_35N_+&mS=>z{?#Ji?5j=ZkDw9+@$gv_8Ss;hwSeP^%#b@*+2qW2| zhDXL>*xZEX(>xGYL5#h>ep-B7`7*UXN-^skBWl2pL3QWA(_|vi=Tw%gH5E3}2gU z^0fA0@-&L!2T2D%G21v&EmRy7a2^q)C1z}T0SLByY=Vhc!v8?{8LZeu+-4!p6Nr^K zT_P58NUb9^oXD}UlNfggI##}a*!&RC4EPAG8^A_uI72k<_fyi#0%IoAQ{v?fsd=FL zE08W*7eH02)o^oNA@Bmr%~meF4LO8ZegiCUFj)N~E`kf{LvhU8)M=C`6l}E>eC|OM z{C@Z9_pzaZx!Zu&j&YKZ#z`BHK{DxXWU%;C;U{*Ef8Ye;;fC%+W%@eA5w$x&XZe z;GPDUpnOs7XZ>gZeiYQ8z&vcs2W}z$nuzrJEY+p8{THdreGP~do`US@WdW4J+YqwJ#AUHTvq-TQEAKG!g?XG z(i6*-A|mMpW-=lRUcttU66X|WT{n%drz|s<$ff>1bQ(MmEsO zPtQ?~8~DWamh;+$y?BFA>sSDGx;e$T=|6qP*a$*xR-#*2iKYYfU1P)_IkQ71u>M3h zpbJxDfF`7SJmO|gs8{?{s>A5KUurJ&$xa;k-l=YUBU>D9PpyU)H@*in$ok8P$l8jm za&#w+Su7Tt=yC7_C9bP`3vpwEs1t4sFKCS%G@b>pGbM{`HC`twtZM&>Fx_4;Ug4iS z@<{($C7FJK$Gk&CUx?Go7aEt{M;foi-Z%6D4(FQZS20W?OI00rOznv*QuT|mOY#DC zNjlGf-3Y!#gLpHNX?~`e`{o~GYaoh^?AN2O@?s5j!puC}qY>YYHz{#8m6hFs%AmEM zKw+GCb^<|k13DM7Vc(Ut`iu3wo)J%}5B`($pQydt`A^3G!}Fg-|H*mgLFE0vd7k<7 zdouzv0?(93ah~}nKx&D_lcEBg|3ql+pUJb#LG9^~wh;%zpO-HIB%x7wUhJ}?coD$p zrc!aT8Ry8L8b&C0{<&-Y{x7d^7_RfK$Fy)B2boG+)t0iNWuyI(oPx zf?XtNU{I&yT_e=PgTol)Jm2gRhoz#EAp`LI?2`@+9LBQd6CN1mJ6qvA(L5mInPSQt zPbq62Tni(Pk9YpwP;C4-{vPrJ+MC`uygbFL;eH7iNA{fvjiz+wt;YZ2nM3CZgc)J8 z&Wokb)Zw(;h7#xw@aseJ%BTk-yj&AXG!8Sj?J$-3_$WKUs6DBj)8`6T;GY)rilUdlbPkoJrr?uSH?N5G0N`KzG6r(ltW z%YlwXH>LJMlroKho{{=1t-Ry~7vfz8A*%~9LoczvhzOa25w&a$Um%Q1g%&(=SiE~7 znD=)|W0S?WQ`${_RoeJ)W&F#hRv?&~Y#s5-k~_!45zRq~b-D+oD{WwB1598jkY76}Bjd z|IX+H;f=-}d|JJ^1u2f`yupo8agW1+U~;Nh0UIaKaTn{zPhE}4PuLGIypo-#wX51c zf{B~J7~>7l64a)mR``Tr$!Js2slpwsqIIfX2=TZnr}M|gUl>hH8ht*dsBhs}Dwd@2 z!0#v$M~om~h6mUzjWdU>#As?XVVHGzm!F(-V#~Sp<1|K~^dTj0$j>mK=vX|YT&{B| ziVKdgt6jVMK7CKk#($oULso?aPuA|vI}5-2v-6O0cE>#B-0e+p^Ir^|G6gfu_6RN* z0Y~#%Zy4>sdnVz5Aw9MVm;$f74^4>@1Zb4ThV17~?|8;>v} zay*?A#MK*r1+}X4eWJP% z0Oi&<(JHjNwFQ?y;YL}#15h;#8pnR1=f-#3bYhmi2A~Q0z4*T*N6UptP|6yMnLi9U z#t}9Y(FbqW{jPY&O($f>(n+`M65e`H;w_eE=WToS^rkXm09Lk<;W*NY5<`A3HrU>kjn(Xn(;o zejI+d>C}KWIv5_{*9Yrxda?_MP%Y49o!GemrYAD@uj|Kn`zycXfna%FSif^M^Xtof z2oghotR8t$9l4x^ox9cWZq>PSbGP@UF@>rjeOh^lha2xfKZW!=h2ZJ8i5j(?HhGih z=R@I>rzBlJ1xj?{031fTCFtA{^mat|s`^yuM_CZ6YaDQOAX{dB#9{y^b@k#<7%jUl z=VE>ElS$VD0uxl!UJwx(k5l**M-@k|eh?!W)yP5SJtAmP+t}@TXZEl~J zAvUd#zhp-)!eG1%!nc9daH&=BTyW!OIMZC`!TgVFZ9YR)$r$<0kD83F&OG|e$7D>+ z0LdwSlCc#T;Mz2Bz4;X1e^XOPzo!Jzkp7!F2(SgJ|4g#`_EiEb#sliXCT`xekLc=Fu*z4 zZPEAA!$jV7D96Kk$SFUkhr;`LOWyJ~pa7>Q#@;8Y*!VVHvOHou@hhQHRV~H_8GlSi z$yQ@^I?8q$KT1d0TH^;IdH`kFYNHuZJa^z3M@xSA8mb9sZv~23=i51mbq^)DFnv7Y!uj-GomH&k9y#twLd!-qAI|Y!%;QVEp ztY#q3l82K0kOtHb)iBS5hZ+$mZ2=zburB>XITn>- z7g@X4V~F&7#c?Fc(NV_Hsuc)9w0Pzo0zZVWl8+8Nt`?8Hw7E^3e`S=Pc^bt7 z4jp6H<{)9h&Bv3-JYrKR{DQjxxBOb>3luw$fEbB_d<#|7=~t%dK#vB7%EABAyy` z0(SZ2`&g5RzES)7HL)ifc633Z+f34Sl&!5Q^;YqKRk~8x%he6AVw$zlcQR zfxBd{%M#c-hAGERH7}#cyiyObVY5YtTL*-RKE*Qx7Jnp94jYe((|Naw^Ib{VQ5eXA z!}98_2u@J*n7Ux7ymE`FsgHmR^Ce`Yk_QkUdK|8~eS}FqLZCX3ja#sDHXvy$l2l!u zN#PwA)_djV{T9#t49W6-3n?dyR)qNNd(P)U0q}^rBUvxBIcYDwJ3|%1ga%YSLIMAf^B)ZJ#qEdWT$tQ2}R& z#W=WJ(1&w`P;O!_9+sDH^a##^`Ezg_Zttl?fM;SeO0;PcjiE4?!Cq;nV3xSmR4Uk3OJ73wp$l|&8@xEwDu$wwhqH#6;j60p3U+r$ zUqcncdWO*{vLMABJIkIfb8e3%;iHOie$XD}Y@w|46_=EH`bY5U+YK(vFig^KXA%!B zUV%_`ei7S*3k*b(CX;r^BpO7#FnE~K#vZ~YnK;;p_Z*|eSRzvulq0gFsB}fd)8BXo znq)-)b~M207jOOoARAP^B2e7A6br`T;sv`CO2;q7k3Q%izI6PeVkLevp72u%#$Qe` z^9u}qT-xwEK>Rpm2rHpnS*MO}+YvcSSyw)W?>O*qOsTgL7yG^>o*HqP@3VNa#yyvm zQnvJ=hxG9fqQRxwKSnl|I3J=E=}mkg6rjT+8z)MTvaYeHRI9`d&y5rPB}bIDMdb2l9a-epEZ~9|iAy-ln*urXWY@(5f+DP+zod}k*T5EJ zb(MT=DchKEC!^-}_m|$2`W92=ds02s7Hp`kY_ah_KOqKleua**CO*5q62JI?+Wu4bqfUxn4Cv^5|lT`!CXn>~d?ls2O=*t^llbGbc@DHi+& z7UOMV#H9Aa4<_dqy#)%O#z!*%p4kIR+qX$}drx~dO_wn80=>}{x%S_nNrei?i~cA* z1XI5elnKFetBFS|!C&K->!2u4hN85uuVz6Vn(0fC-U(NOkVA8pe`+PAWu@$F+r>G% zrTy0DEWgRJ7E@2+*p!-9*IyVfVgEN3;6`@1h-(GQF1DOZC1|~kP`fFuNL&w4xEGNK8@-5d=cbn?5kT6YH5SMCo{1! z_#YIpI3WCt-R0Q6{y7B`WnV42xffCXm)1X6_N9i9d?^d?vm1>#w2}H#ci8s`)5JLo zAydq!5=JF#D?663>mh2!%Rf$gZd0?Mo=o>{>HwbQevy8ubr-rewJ=fx z-;I;=HU6?t!jsnxrSWH6s_)m!3h`bHwv=??8-nN42PsGlZB>uFs*b#;6_Mf&)8Y2K zxUt<2quW@Fvbr#6V6?~*(m^Ne5z9e`Gj~BHv_*Jk)Pk+pt-?72|5cmCeq!o;;Aoff zD%%5pHTHV=^D|gT&%mm3S`iM(M}`W253f?|$eE`#0k$!U9j>deGN@K@ZcAx<1l=sg zXBqwHFz1a4?Ok2krj75O?%WyM=PcMsqIm-EHE14aq^ru+g3Y{lFxKg8S<3hSH@=nC zIV7!Lnd>5btQ*Dxas)w;p&jVzihbG@eXDZ@>1jNwniu+uTeRaf96Rs@V&yOFz!Gb% zA1`MLj1JSeaG#1eoC|Ss%@_l$s{VK-^XL)@Zu3~3@nzA+DgB|~&D(tE<%o292+#h_ z@2wFM{-+|yl+EK2*pBU(WGBXuhM&&ZYrOI{Ek5J4yE7@Q4pInBU1MXONIJSJIWdgc4Ga6H?wio82m8agA31} zo^X8v%~gVS1$lW&kv{kVSjW$Xyk)IQ+a#0^YT)ZeEcg;Udf53V(SIRtg0(1Z7b6Gm zeY55}LR1MD#-WINWwGf#xJt?26@7@>!QTa56bYOjNUJ#qlSSY z4Hm^~i~geWs@{Ww*SC}XaDKHSKt-alaTVyHQj^DVXD z6R@)^{1(Pc(D|HSpIs7b#%vO}Qo00ri27M3)a6vFeF7`zT1aOVylvkvc2o!h|zmbb=O!A4v}d=r{_ zA6pUBp2fM!lOx}@7^TO_yCA!%U^{y%glqqnp9)wR9mRXl>X808i}D=L-hh4?^uibP zV3D+Gg@*PXiidGXmO+7>z0nx}ftZ~bDJ()NAW3&vFmsLe`Y)>!t=V#;! z(zXjD%Q#gh(NXBJvQ^m9U!@j&z#9kEBOlO9I`IYcK8OiYd3+&601`kRwn2}4r4W2& zzXtV%l|g-~5CH2Q{oeau{C=F$_8~jJ611jLqVvJwJE*DD#FBQy;OPN9y2|_wv{rJk zR2Pm+cnX#Huc7XA;dq4l5(odV6UmVUz0``pTpQuU3~Y98~!3pPHGJOxuCj+w~{!oHl= z8~f2yDci&IK+!!WjUj#Z8njpqpYY6Vw$e8YS4x(7clvReMQPTMR{<>5hP=SEf=$Yb zLMenDhg9Y4O_0VNrP`B%TeLA9*!tZ84vhteLfWoF%GDdOW1L-$sL`^5Y>`BsWUV(a zN^o!cePE)w-ulu{2^KSrKM>gGPYE`N9D(h&<?1Z|MUYioqezCMfY0ke}2V zF=s;BZomnQ)E2BBpo(K}IE6cPm!S^WNxoqleNIPe1M(XEKs>D(bbRU$n6#u_w>f3l zp5MiDMmJgWyMHz|e1r*v;e~Nj`6$YWcnNC zH5glslSF)EDvu*PDKC)>B^ru4-!<-CW^poUti>~I6tJT!I#CV`-m`11<99JRIb|4Y zv98L*u{r+m7w;~C^|&`W+~`DII7Mq@G1LxpJ}CQXYiEDsAP{uEW(*)h;ATDpp?Urd z_fg7UN5sJaY`{-La8^j$9z1feEK&FzeN5nSWU-1P7dWmG)czLKF!#;K={#N4&*ycV zm8w2noQ{DN!D1or%h8ak;i%A#=qsv@TSuRdgm^*a3B0cp=K_x$40`_->0hP|#kC%| zEp(u937Z$Y76-Xt=E~t9ZED%C09wEJhQR@PcEEpT$Mq<2iGw+~HdOWQj2stC2FNRj zn9_+WPj_~{%_~7WjZAOK^@y@=T2Wg^)P=CPxBY2(pWfe~HROGIH75dRpZDqMzCzo9 zV|`kodEUdkNAJ(no;<}?@CQr2!w}@I%T-^4ID(}x5;VOT` z_g?Ck^ef9Q<#-Sm{{e?(|A=;sA)bTL4^m^&c$NznZh;bd45f{|Q(KNfbLoDU=>4jq5 zNcq4@R#{#GB`ZawmRK-a(o$m8hf^PH2h0$hvhbD{`jk8HtD^B8ut9hY(9}ZX78nHh zH7;HP1ererhgd1^IJSx-(>~04CLhFojHUR+F|0yD1xav4T%>qfFyYGyI*(@RE1{({ z0%i{mW_(cUeUdeH-fE?H$JZU#DQR5fUpG8v4}eahON~b_S@x%(4`?apqz|(@uD(_a zlB7ewM3AX0Yfks8z&psKPyAl*m)qH$t{;4vu5|fu8t*rwgWC{NP6ZufEIR&X!oPw) z$}--!oTkN+-`??<{fLIe%Uyes?cAkiV{npMODmY%%W>jZ?U%#ScT2w&9!f zdpG)UZK7X`7DjUX1G-8F&h-rE*1hU|SBYPN9>zTjr#b>k;4=)7{8H_x&68}|Yr2gt zi{Ik(qU1wJ*CpMLQci<7MqKc$-YCZq)Kw8gZ{VQ=(`hx&(? zqw*4gVB$K7%aV@^Xr_&s27DhtzdfCnv%cxM<;(O8>OoIjp!qs_D*B{nkVVhLucyb7 zd%+`1FZ7`2W3j6FI(nW(uHN}G!lLJ1fygHWd1W#+802B3Y{R>t)=1gO_d*ks_)D0^ z6HB0nzND|y=dG!=;e4CH%S%tSIh9JqJ3hSF6dV0+$OCjYU!>tu_Ho2Y^#-|Wd{cuLeanrA?V3*!fh+FuTg~Nl1$vI_C{Ggr>8N@v9 zA9FnfeN*&c@g6v1R&GuWHuWE)nFC%);!)t^j-@bw#IbM3BXM{zM zHC`ZB5GqTcgfJCj6D745^`kZNmw#futW ze_wrv@enpkwNMjR^}A#7p@W_QikjKGeNHiajE8>AS@^mGS@ZeW?HF_Z>c6#IFAL z?!#A5*6btWcsz?2hBW-X!!oo=CTukx!84cByAfLV35IYF#w47PxD;==nZNYl$4{`R ziF0NFJTp}AIk$q015GH3tC}OH7vm1&R(24MGQqiCs=edy8oC#&dMB@$c~|z5#CaOS2wvMHC6TQ1ywB-&9ygFqrJ8D$Xr#&?v7UHQ@YMBbOU&Hfup&0 zLA0(4b&2N8tEy|RX7;ns&hXF7LPYos{&`o|EPU_6_brCM=;|uO_eOl*x~r?}Gkiro zSE8-8bFXqwnq;ecexX|=N>OXBGBaISl+M>&m5)qC5V@*!-b}vY9{Gy9<-4Y;xi(zU z9BHbppD%b9Zm35r8jiT@qjhy|GEIoQBhb{;(BxiJQ(IT<1{dd|0J?vmV~AstBfr?KI z2~Ch0b6+OCC5@Z1%~g z%YBqvp$o@nq_@C9UJ7Y-Y)@h19($8Md|UB#V^g*RVGhDINbA7&Jv>juCiboPK8Np6 z?6rRn-{0bUFVfz^x8-10R}sDjj%BRIcMiUJ_#S*8&-gCDw++X9CgS@MjsV?@ZymlK zd|mj?#VMVqkrr(hjUIJwRitsgd*Ylqb4FcLT_3KwV4$P1s;QYmMsZ-5j2bn{;Vx~c zuSOr12geUMvkq*4ijfbZ(eiO7HLrXOQGMYVIm0#8;cJOch_l;NNfK*Qbu(2o7;DML zB=NCEw0mX*Qr8@*4L4(O@&mOeJ~Gz#e=FbOq4!UF{f4#+ox`&xjK!42orK2PuC5w9 zSJuIBM%ajO4Z`wHMK7-*+}R(O8aH-zJ&e`WitEsqpySsF z>8@yRf}R=TaQp<}jqoaLfm8G@IQ%9@fFBOI8ia+%;T_8;`UUwr5Uv6IAZ-6~)VmL> zn0=%N>$MQ-Z@m%qAUp_vp$l|$zY9QQ+bJpc3-;P%U=Ahla z?MO#hj_@&rtq6A_tlRIVMLVn=?7a!*hmpGg)dCuX3`{%S{jY&8T**jKYIdLv?l=dfPhX>!We3*|h zi9U7Y=1t8Vc9Ak@QBJGl!c)edJ;w8GCbRta@ZAns6a@*yhwuo#9e`6NtPktr$9Y3} zNKn%MXNmJ1j^P$Pg-B!FM?ud`2wi_h!~MB=%li3qhsCm{<+}UL8<;x`5Pxote~`nC zJp9=3P0HZQb;q)n^&>6$_zuPRn2yl37&!5ni|;V-U@%rnry+Dq&CR>5-{jn3Kg^n( z>rS{P=jPvcHNe{Q2cx5b~^>YSRp0^fG$^$+N?uRP_4RwaR~pdg<-`YEZ!O07 zKS2P!@`gsn;d;SCM}n_Yn`$F%Z|An=%S7~m3EPGmRQNO1L=H>$e zK1oTrXpo~6fUq^oN=bfoK3D5kHL?`gU1{j&a+-7D9Du~#1L8lB-$d%r$-^hpi$9Ll@?2paGq zk8&^$hC=TP9{p0%_OI|rWqHgOf=7#G`G1E;?ZERH=A{^T<+{w`Q7|n>J#@gd+}3_s zsov!XlG!Vd?kmplsI@O19RnWCMS0g7#3JSEVa}OoV~_%ub#}kpJUNb@2K?xcq5CC>2Jp)V8>&q}-H# zN%u`-Yx40u3Y^O@mrSKhPXN@PySgVYNC0V~ty1$~R~M)D|I^;pK*x1d=Xtw&vTQl_ z+KE#qw!+#32qf9=>R&Vz+0x3|$UllC6BBZHUhS^sZL~k#UD*%Mnq z=FZHWJNMq1H#19t#@P&Tao`e!Kz-~w2P0r@w^TIY`m1a@XDgCsk&o`YYoq@C6^yx~ zEjuc8?+Zp1h7oV59@oOZ_yFXl=3ABY9P-k=V#@ILyUR;A@#Zr8r(n}N*TW98Jw)y* zV`>t-ya4%X-iA6LP+PAB!{+ZR79YlQO^>eImDOdr({s?Z*B~1-MvsDC_I@6t#~}>h z-RX`|%KseY$B~YW)aS=^{xIo5*m2f_eNbW7Ll1V_^dQQov2Ym-$L=o|i}aH}HD6Zw z-DN$ZY(~H5INH-wA%&58*hLpSv>Ng4<0xnRE10`bIhHPGONnm_wnW+{@&k^ziU@j? zWaK|V?@`Rnk3pDgnlwGM+wNCjtgv6PWyNf*H&N?Kv6|j}`{fHVGFw|kM)oC&#ph9< zns=ZM2((kH4q|Zyd@|^5D3cYwtEF{T@^dlbf?q8b|DN;>`uY}|&4SHQHtVRvW`*m$ zOEF-|>=^5o0_YurkG-7ALZGpIGjIohdxOL%-0i^K4cxaG*9$leT;U&!#bp?`&N1s4 zV=#i=bKS>mPraXMmixUcI_)f@dR>D5&EOZ*lnhe-QHR-M#p0((E-poTLHeuPR?K<4-(Kb_SMW4kb&qlBf?Ulx^)va=q>ER_i^Tx(8Sr`E zWCVog#$}isL543wUJ5qd{G&IP__Ms$2O;tts6A-jQu7fKQyO2?Za?@V=Pn0O76)qA zjd11s-zyd|Ws`yUc^hz-0cS`X{~rd~c#_3w;4gjx>m-C%^`-d_w4^5vbJr#3KadO> zD^DWrIOdcaUB=3S?&3MjZqErwM5U$fRkSXFY+d`qVzJ$YmSfy?ugF##cWRze0IiuH zpZ+|B#+)B{mgD?@^b4=XXq4l|(bp&Oop&SulRqjJlO&%_$Pclq?ib!r={tw(CI3+s zd%r&eeWh)3=lg3vXdb9J=%rtqqdpAc|L2B_#n%JY9D`$k(2xJmp)Nki!lmRZdlo89%8&ut>e%<(g9%O9}{gWVstefMqBjrZgs9v6rrQIf^a_rMuL>>A}>rNt9JiNxJJ0F-j{ZaJbZz%+%%VY zTg*3$2;%K=MWa3n)SU6GXT}s56gBlklk%*3>*K~pJ;t3L^K%~YRgcOj<2D%Q-)VH< z)*i!r%459fF@Nb1AMlnEP@1CAd^2Uat!B;f6=G@$9;cUn-}Cbo;`ZgQ0p^kACZ7NI z923vCub}6LRv-;k;M|7ODj%Zz!pX|7FM!^Q#yvH^s+D91@QQYYjEi&s1SvY^HD6k7 z+*Et(k|$P+$IdaIUTr+@Gx0pTnx5@ELY~)u#6b2>8s?`B<3YnT#J|$}4-E6ihWB=l zd51?#GlLY@i-%ulthQC3v^JmvL0Dp4>VeW3AG9PKU(Llu07g2^;KP6IJD;{2DEFD7I9wq*2 zT!XQuY4Gnn#xD%$hIx*&Bq&zCzl*w^+!==4;;L-bYr7o0fjmz;F3Iv&_WH3p8?WJ;(gQ zO7Y&6CeS3zVP(-yKAzSX^>-RALi|L^vuY9b+bW~(9CNkUP--S{mm3@3g7?oD=BMh! zV}^Nao$*cY%gA$E?H$HVb>hEisA&>N-(Z|e^;%=zZy3|m77W@87ZOMbS^Trefkh51 za$u1IiyT{ERq!i-C0iMGeO^KOmPeuYX9})UK(4RR zBkqBaVHd}*=XZRSkm2PM#SA@6(Yh@H=GHPy@*=ukiJs$leAuL#K(Dwiev}Q;F z%L-+Ivx(jp6q=T$DfIJ_BCUf`U~&R?I?Aw?32FSyYK7PJ-o=FUTE8y;BF?YV9WSc( zfv*yEg5PIWsf0y-*Y%v|_im2=HNR`VGx=8yv_I!gD(F}EPKNyqcQec~oMd>2;S|GZ zhBFLj8O|}BXDBuZ8GH==41)|i8TK>W%`nSwlHnnSQw*mW&M=&1ILC0Fq1edfGxReI zGVEm7&u}-xEW=5LhZs&VoMt$~aF*d5!+D0{wW|Cx{aZI*o)hv^+|t$cX8$EShsV-| zF@Hy(IS{-&G$!9d?`aGMg3W=@8x_7huk+1|6)yTMV`uPUQpZty`7X-)CxV`%kfKu)(hqMI-$o)Iew|o=oyV=`XqA&l5lWiW`27 z*!9nD`14Ep+#c(NcGP;j9KTlVX8m4{zd*R@7cZ=W*2m@PVLcr3Oz~dq^z^&p@sYz3 z47}Hf7mE%wdWyCZ`fw4iilOhE6#DU>@S6YIB^C?8fRO%DyLuV_AgABX{e_$|{Fw3Y zWPFhEbm>0PzlHH}#=jnTw|dg=(NOy7t5ia{R|<~ z{|@kO&x6d%|ogJpC#%(J8!1 z<=67C3mM(&69r!O%V$-3`c6xM_OwZUG96~CxB`v?;n!kg0tNbxNudXLH~Lp``q`jL zr~eKzUa;J1{2s<@e_i9>4LtE#j~6ahd|2Wu$M3yNN6!N^od;z4Nh?BEI+c3qO5oY` z(@7CzR(RS6OQ8;mp76VOsCT&s6_0np zG54cgPW#dz)2p=hzi$D471d~3VYNQlS|xq13jPrA8|{So`Dm5&GZGK^xlARbJs1=o zW_;(T)w|p?gU4e!{bv+j`(-aPes)0N^*-6o+`=0Rl81S+mClsFcMpF1wbRpsA536_DvqoV%1_I$H-=*GX7;m9VNd6!FnZi#h zApRP7{HqA}QF_$VH?N{F3}u*=>3zcgG4)P%ox)4NQ@OJ|exK!X|M*-bSH4M^OvwFx zcpQ{?g|q*?9(bbT%PDMvBM-e6bUc-Q-8Y!N;QHwOXiqcV|9(Y)_RvvSiixYNCo2-# zt4g5{^HwyWBD@oLNnjhG12IGW@7K#j=oR^TbU;C4xMjhJg> zdQM~mg(~=mnf}a_N-Xz_;qiw||IiVI|AhkLSQS0x*ipQ%Zo)g)?pH;z6R>6Ob>1X-iHJy2& z@Lk3So7B5Je}l)DtI%16g%%o*+U~1dLNoyHCJ)dpW^?X?3G2V}=^txT& zt&-lif#~=|@CKFs+X{$LiRTv^cyAT_kt+BHs^FKvm{Pl({?+A-cluW+fcM+#p&u_K zJ*;1Bu(1mMgA(r({hwEfP0sUIRnkAt>3xkV;YEgmbr-vrdt(*+QHjSm{kY2iIO_-V zb?$U7240Sruu8vQ0byWb;^${O@B#0Z{`o5Dmq1Xd-+hCM3Z1o~a1rn%hijix?|ucu z)tufRRR}s;Kw(_s)pOZj`;`gSHQNUZp^(*0Hx^hpvY&|bH`9UV!DwVKWQD__Hr#rU z#H9^M+)nYXgq4bB!>NEg%Ad_;vVov@WgMyB9h( z)QChR1BqxZwwKryY8p#ta`8ki5eK#q>2K+w>sSU0&3mKyy^+C2D?C_e$G}3aLPouV ztw3W~wPbKz3vQekwdBnX`7%*>b<1kw3m@#_^s1Jin3akq)4ChLoS@YUE)=4}qfjZ# znUIt#s1*n(dM}5DsRX*0a#-2SXfie-qoCVLb=2cw>u@liuk`IS> z3|RwxLqQANYlHSnjN~95Qq@M&g~%`^b=AF#td`9FowC|4<7BO3xkA1$hU?8@f;7Mg zuJA}esiv&hDDDx#aJJ$ZYh*Mtj4q6$uk%)PY+S@LsqAQ?kcbD`gRLR=M9`|~q!rEO zq7xRzMQ%du$-(eh@v&5D0$FTtO2gTcmab#5te$~Q+rk)X-Ij%1Tek1C!o7^_?H&+T z_uIE`+7{_ToV1Xd3JkFwkuSi;35!+xj-H;u@Q^jMY4g@FQI%GDj}_Z{U1#T(t&z=L zR%4(k&a5Wnx4w60ydHf@erAuzH9{1|%MV4*|V@MH$|nlhCe@NfmAPvRgkhno~dGT_5w zdt9luK$7!`@V*M_eW*gCMb0AbcOnY#AKK8mOg53ONS+}3%Y`;`Gxoq7C!#6WQoBPH zB(B+x5`SBNrj3SLG$-AYvK9myG43j*OgX)*toxvtljInY4`jDhQ2v97QCtTW$`?*y zty-&DtJdn)N=CU`E0C*dt(3)r4kT-(%v?A%(3eu}Y=_uL&%O%-tc(>LzhH>BMYCmd zfD$_ztzpTI7GejPz$#pjF3*DdLuuVjc6A<5j5`ZXg9Fk;Cdc8OHA6kwoVQ9hAJHA; z&q+^PIeq;}2ghgxJ2)2E0cR37lv#9n7?NWwKr{<`bD8~MUEGq_!#Oj-6^~lOFcN7i z7A?f~+6OtbD8H3y;-E(xG5k}BR4kQs;NWLbJ*C9*v?M%S!i3tWRV7V>YxdGI z)@=eK>koc&{gHH}u-8h^b!_nJ9WAFZ^V^O>63A#ipBzbt2l~(_Wh7}NqJeOo%Nq!J z%xB=hrQ@TH>7MrKc?RohFV3Kr`S2ekZfvo1L z$|!fq2RYZlPi|^y@MBbNvl8$xqOnBe%E4AEg4PUn&}<`2Z`%h!rosc=B%M_`Zs38E zG*|OHyR-05Nz9Pw?D062bVkssu+`N}QVO4G=V(9X(9+j;^XtLVeS^K^t1~}rbD5F~ zePwdkYL~;!r_j2sHu1yr|BKeOi{66PZ6}71#}aB$wq9BKYA!~ZI)EZXXJDp<8F6y7 zTqSg09mpm21T1T0eB8<=a`_Bt%ff`UPp&_e{GBFfh-?yb`FsqQI`Ujz$!v?fl+(Go z)rv8b9mCXZIEq|w(IZzv1Zd$ayssqintZiI1*t|u9VIoI8G&PT5-qCNS(+*r(+#njeU727y(h{Q; zX-s_DG0oqf!~#}0#-1F~jwhWijg*Shm~=JENfewfsL&=W0?&O1W>qQ3qC;1*{}&2j z;)QiIOi3`Q>>oV43^e8r(4+V$aZ<-bDr^kA_-Mbw@y=s0FupK6$)jfTbUIVf3XW@` z2(^}^!rGspTeqbrn%-ZrY@2o6 z4tqJ09+O`wFs;B!dJ6NF($Z)@NWcSwp<8e}bunjTrr2&)s}$MP@V--43LbTvtx_1J zt=jC<>@OD07aTIEXKD+RO*L(yRTR4$eMXHs8*Fb&EQ4+In6kG?d0eom+|}bRaz@1`xXR@BJ#^9&LMOE2W`7tlyvf3zDV{Gd=aveUM*iQ>7 zSRJu1-2|kVX}#MHqoAf8q;6?VCzp_P>{$>qoJTsfs;;I=r(p_Q*j*YV=-%qfc4`$< zu1Wj>E!#l_=taxs2)?1aSVC(wIUKWM`7vpjPG16Ddfa9@X{IEjuyTf5EeA^J=$texro*aTt?;LiROv8$^KpRRa^%b6^F zs^0_&4>;`;eS%mJVEW#t1o%wKNR3h7(oD54<}icmONZ7^jy*Lf5$m}li305$ar+bl zHxBzk`Zj#FwpD&lrs3{B*ca5kZEqF0F*F3d_{!#oEiQYc z6raoOTBX2?Kz<^HO*4RnoPvAx6D`c=vLb*V&PfC?bqdf&9;}y6*ige`$gI+wfFtLR~ybXnl-rX?J-_qBv4&H;p_l4Nywmw{EI@`N{!)=Tzdnbop}vnm zrB*cbGr>Q{e>&^0^Xv1<8jf>fU4NZUL)x}ZcL(TqeXdzUS!tx9`cpl1{qZQnLHs42 zmh$uF=NX3jJ_B98&ad153C_P+Qp0@;HuD1Yn4MuE2(W2dqTcLCV*>+{(qXv<5FI-iEqj{N!@w}x|? zu}nwj)9|Z~{QA7HhC6TKjE?*o`=BGgJ{PVbj(e2_C;uMi{H1DAgD5bZE_IAT>;6}7 zIKPDl;-Aj1&zWo3tRpysv;2Q|HH+zs9dbe&U}lU!RxX&H2Aak+$Hs zJ<}td1E((1`SrQ__9sBaKLuT`ZWkTzvX`&V-}nANCKq3El&|w^_&UVf^Ow%c z%&GiN`=j%zSe(yBX2R+E>vKx$Ilo^gWa!Kv5MnX|@q$EW zMmQd)MunEQTAQ}^EpOGTts?bC!Y$x6;*EMKct1l_5EYOr`F=iopEGkZCe`+N`p570 zIC(PX?6q%euf6u#Yp=cbo~8caxraHO4(rp;@lyvwErk+NY(^BEo=#KjC~^#S6gy6K zxE%u!pM`%bUFLK9VTi=Xdb(uL(GO4N%i&8e&l4orVLh$d`DDJnJ~_wA80+cCmSN`W z&sR6U@NtXp)br6hWY~Jz^NIS}%=8)0=Hn&YdfM}mHtH@JpZR=6AcHt2;>X03qMqAfH7lne$(No8)xNFzd^tzZG6<_Jj2#pYU^LZOxTujXkq=?#SAj zx=7Q=rlPY(o;7w<VA6&`~(rV;dL{q3A=$8-l_I_KNmRmmc9gp>J2`x4}6?`q(80?_+R_L=U08;v$hZT<9(D<(+B+4 zKHzWmfoFRk>6i8azo?IL?&%}_y?yl8HGR-|BnC)t{c?UE<#+di&$2$!=l79*LLYc` z_5s)W=&vvO!2dUWz>n?&eoi0!zqqe<^#Q-DkM>z2`0o7-+)Bo9R`v-ZB&JsHm8~U}0TFW4N**Tv6eu z2+S(2m|N9QHNU1YT-7kEbV}{Qx~f@~SJqa^xZYzfnRfon@Yxj=p{Az7!oty4RyNjz zP-a6--TXjkX1K60R9)Fn5pJlg2{#5p{+X5d@}C`AxS+nWp~_!&e#lXA$+Vf_vuYQH zDr>7s3jK=!m>C{jP*D-CZdkauqPD7Tez>}#s-aL@n%?aiQ=v^;IBw z(cFancfIwjVu5!h}vqBUp+3d>7xfPYQ;6g-znJX)<#6YO42vvqd)hG-_on=oNs%#9i2w;`!-6^tn zzb9SB3N*mcY_#C7>A-8j!nt6uiup}V74=mOjSK54Yiq*SR4gh$U82{%2M-8zM;F=A zt!!whyr!bA${J1rbvu6mg;L2N6*cH$$w0l(&+2>RMFn%K!j(0(7^`IsH4CaL8mg)* z8>=ho7uMEm}=9*ytf(4>iQ0Vs=Ic7z5i^V{}c>9jQD*NI)5{(sYD+3C> zFhBSwqeBI^Pmv<&d-iHNbsx;yC-YN8g~0RSD*p^pN-$wVmEcZ^*MCytf(S(xXb(oS z3biqO23rWuDJ-l|*^O6T6Rv73JAY9MnX0{!<#?Vz2q3WwD z=7AvqsK*2lo<|4*ki1oxV?@+~ss#%cE@B=IGT_!!6Gi}w8crLWiWXGX)Hxa(D(mK& ziRRUC6kJ>7K;F=TdOjMf!Xi|EjRQFw!*fF;MsNvq7K8IcD2ky%hC&iPb;^{AF{26` zQ_9PIlLHlnqsELXa!d^dCIf(ov7-tzf`#^^-X2Ludu?$&V|wHoXOENb6{AOuO}!PS zU&o|hM~^b|AuSN&bbT0BTUq$$Uw^EwZ{#=ehj>AQmu)+8r0!s+rkHCLF zhvFD0p8fIUn-iMC0P)9nCm>8K{}|#r&gpm^x{Rf#mHp(J!3^yNj2|az++xPJBHZ-S zgNRog`%PH&fnP#HI>M0!MTBKkittd!QD*oWk$$k_6e}#^2RY6(!!JL06*Rknj-Q(0 zt3~_(N5Bk6ME)#Cxfu@U-2u}5$4BQr(5=l`q2_zX6j`Ye2!_aD$jrynCa(a z!1uPxa;h`npPBIb4EWb3yeR|zPZQpp0pDlBmuJ8an(&qkc((~(l>zU!UgFuB0Uv0> zU3+A_MF%U~wp+qMd|?}qA%|m&4Q^kTb=u%(Sc&o6Zi5%t;5%(_lk_6iu)$5z3wXAP zrxT%ETRE%Ec7X|n{lbdcVuRDBVSOz9n(4h35Kl|rCtM6>GtScM2|vq(@iFI986cYx zC+kyfgJWQ&KJ_*@$F22gvca*$NPU`ZaMo>omfPU$8|%|zgPW``qE^}9Rv$B>)dt6a zNqtt^;D@K6SQpvg5Fn|~S{r;w3hHpQ+29z^sm~T0{D>43HYXcgvB9_7;FM3+XQvH5 z%mU(R*x*Om;CpOv+R?1f0UP{i3&^L*hot3?Y;czievA#CZG-37;5jz9X<8PsZX5hK zTl!oZ+%ye~*a92evS~A-$Ob>rR!*@E{$m?lwZTua!OLuLw+&uygP&}J&#}QzvB9ft z@KbH@dK=thgE!gWr`h1mHuz6$@Z~o6={9(a4W4I%ud=~M*x;=;IBf^kXSEGJ(gNc7 zkPSY{248D~pJ{{t@cIJ_%dL1@_^|Fy zHM-HYK{UI2+!-%89DBP@8-a&%l7s218M8O}PIq^AiwIMJ-kW?W6{h06H`$&FQ(@kl zd^i=RqP#cx+fVJdNZlUJw0RD|~?D^p=Az`a9f5&rCu)m|#HXn!h91s3g3g}Jao`%_^m zvS@!QOa&J0Plc(tqW!5b6;`xA6{ez!_NT&BP|^NWn2IUdp9)hUMf+1>DxzqADoh0w z?N5cNc%uEOFcr?dNoOidMRRZRvu~{SyG8h&RG5k-+Mfzjp+x&rVJebne=1A`675fg zsW_tjsW25rv_BQ5qKNjV!dyV2{i!e&MzlW_K0}0ksW25swBHJYn>Rg2ZZ2^Menxoq zvpvJ58DW1$cv41qTt;|gM)KgbBboe_RD zBm8_ucvD9Bsf_TW8Q}*q!hgsJ|2iYQG9#SG2*)$ROESWdjPQbta8*Y5@{I88jBsg2 z*q;%elo1}65gwTlJ}o1BVn+DrjPTHmaQ}?(H(SmAH@d*p#<>txLXvBnjBD|(YP*eX zh*0$@kn9uG#Mn(30uJK_4C%r)RqLl}Q(Q)ND%S?1MC96GT!v>*+i%>9F{f%fj3B~K zQ{DtoRrN69wGxlYuVN<8QN10J zBN>}*?0_I)BbEVgwf)0>#tkg>J!2px8M_qMR)MNo z@U%7W5){Jb$p|7S5^6EeYG%N*Rb*s)y&d5}qG5kPrl5YmrxQ`7@lV1ftRM&TvZ~+h zIRIcVF~=43zSnpZ*x_k<6sge-E~5_Fx(ue>&NSNY6sOEW3_C0+kX-_5MOsrtI-8OD zQ}yUtz?)O>lSHN+#xclb%=jl`m$Z_KBS}Thn#R|Jl8RQ;w4i>vjCu!A;4Vh_S0TE^ zMijp+tfg=pDqN*%vsdH4HR#=MwIA_Du|Vrvc?Vf}K~(1TBd?!%mDqH)0E{7Y1*lT+SPwhu zh=AbEM7`74kL+ma(?v*Fs(oR6gmBkJj;u+Su#0yXuiDD~KeJ{hQmJ~h6`5513BeTB zxc*;66>e2ET|hORX^cYV)2CFc`gL<`q&)Z)!2p3AjnxnYP57@5c)u}8d5NgzIu)_y zsh;&qAO>7xaSB)QLhcm_Aw*O?OA?5~w?HL< zUL%em!wVwK5?8?cb$BS)B1goo6|uVo`HcI_q`yZ}aOsntJ%Tlz)fkHrFpk7q z^0xW12)FT`AZ!2U+6Wl>JRcaUZZQOl4OP1}i|-V^F;A|5UJt32=s#winG$2tIJ95Z zBHE8pxszCvAe&HQvQ~_@o-GUyC@|b%)CqiIp5@GFlYSQ>HIbf%_<5t0lVXVHgj+21Mc+lf z3w^VFvu4l4%Bg%V`1iD2L=#=Lur1nsm=gaBmOSfj|KK#Is(on~`?|Z=3Euw{Z+{z) zwDXkR;DilihaJJheJuceuHF~au9~y1m_>C=sYaJNI-UXx{UDcu#2kV5iPYhoP5!J0m-#rjafaB*PT|mq7%u|)REoy(J znHNy%USYUxo>IG2O+>}~(GlH)LWm5?Gw?vZ}io%#yixwaj5fzB&h`N}MP1T}J5DzQnkw-Nnk9SA*Ii3v@C-{@5px zM>w&*KLdFwdFHAkya+Y!Ep?#Mkct?(cqvQA>o4q$3fN>8 z;OgEvPvB+cXH%OeeSm03WW;PWI_X-zs@ezPA!ybb1dRXL19Hs;uABQmg|PE-_LH1UB9)&40AP#sfU(a|N$nNS$wt?t;?;+1~g8F=@Ig5(|-Y=Bc$D(l*Ux|_4 zpW|2zwK>0j;Y8>Le!Z^9r>wc6z^|;ip|C`o<;gOhg6V^;34|`p1tT3=<8YMdvphqT zHEn+V+RlLyUn}G@CqM2nV@7&Sidu$m-@D;lurS*H31B+7q z&n-kIy0JLmeLFnXq+d{<092^VgY%7hU|9+17eTarDymY}Y(XhGEXDhF3#pl=t#5`f&^IcT9RnB<+!uPEX!xX--AgEtd1fekzh*5Z? zWCo-NPz6MYm4J7b5_=LeOi=T9eA@Ftkjm9{uHY**)ah%!{+I$sBs<=wtY`zF5FUu| zF`^-fai4)iqA_U6G+;}qp?Yh9ajcSMVw%TZry6po&MXh&3mxI(dW$d4VglB**$r{E-ltE^_jW4r4xo*WUOKio)~&=3 zLM1~}>r3_dO#$yKN-Ty-0@`a>>S(o`Lof5VHORHkecGWCKu+j72II-syabJjtwK@k z{DAkZ@YJ9_f(y@!QJK%{&yT$6(=W;|Yy&L54W#vHQ}d09R%9Kq5hQ1Rk{!_~Ch|9J zSBZ{lRD5NZfVXrY;2XcRAab~`=%PX;cAZ2RLt@;udb)4^@-cL!7ED>ujjD}>EItKd zt*|4;+QLIpHTwo_Cc?`FoKPk9GcX~rTG>A6`Q#ONC-oSQe##FYC8^v30-;x1*sBGy zS7T=YDW<*5Osm9m01^ERE|};vqNj^Oij>$!(B`l^c0|ICY*()C&o3W z;x{8+*o)0EI^I^tpBVQg%?62~hn6`UkFO`K661=H2D8s3JdB%xhn!cW{H3x+2@}x1 zG1cm(9%^+pxEM-gwvq>xrDK^J`0_)^2O&dMLr9w(zA#Mzzl!-)X8a0^nSfqe6wv+X ztu5gkDR=a2HQMItn4EKHF4nq5i^B-15ADBj;sL2Vm*~Cw@+V5Dg-b{o4n5`!IylR0Hmr>x@HKx zSvBU1VpZ=KZOQ_Nmv~%}qz~0(iB(-6 zVqEZMJ|^9Whw&=|>dq;slE20PX|dLn8T!YKAG_G!dIeOFg+;1%y{E`F5MsiV zhXLt*TZz%HGN66kh2<&uW^?gqX8@gA7MKwBlq<32E)=5;P@|h&0S#c$q2L2I_(0Xm zn$!_x^=kB>Yw_mhrqPbbMl(LLlT^cs;XM3LE+A8L&?vE7)JEQc1%^D2w``IG+7cx2 z4P!uetlE`$Kj`IZLYgQssJE&e@*QMB_71_igsmn3A0_WrVVdEy%?x*%&z*Q0Z+%HY z5)(#JRbL@3A{g`46ag$QmtS+#=q_|+Od4*$zR?K4C~TKIyG z7;AKDB~t`7kl(Tyt&oL+^J9NOyroC$5@A&bMJ|v-wU{&_>+APHQbMpk!P05)c?eIg zbk0l;2i_bn0ez7gn6Ri!i5-Na2%s^`MAqQsh6Ms!m)bPXUKzmk(-VlIdcKFj8!szQviTScdA zc0emKJHR5yI#DPFEi^XL1(fKNl#tq{7?&oUy)sUT|Bh3lkaO`jp~-1GRQ-5qfp7Z& zG4VGeU2JMKi80686e!$hoWfWELu@YR1=06>sVAL?b#>a1)QIFk{a#Niq9CEdL1J%+ zbazXGk}0E(H|4TTPMyuFq@0qh3}RRU$vBRY&^dBMk6=53(^33ISYL=XhE*Bw4Jsi*@a{?10)k^Fz=F%XjDFGvp5Y&?Y5w2795!9WjT$e{W1w)HT<0GRb8xo?( z5qZT7HzQ1ZcA|#f*t<=1T&|oe?d<)J$geE1i&^7mxMO8%xg z)(d}gP9-IJT(Z$kgs4_xA0jbH3{Y}mSUG&swxWswyw+1m0-L7C_S4$_g{w zQ(<`*3d=@iSWIM3HbLtZ^Gsq1&^#z9Sm8noK8GYqj~CH2nhs7q9C5ER&Xjj{JkI?$ z@OT4wY)IjuqQn5?nyPAV7&|b3CL3s5CqY$c^r}Scf6?u1=R<7g1ZyT(1#?>RGc+WX zyi6uv+-vf7F5G@6I)pB-sk>|`*8rI(#zdoRE{bTrG}&-F<_ z>rR>dZ~S;WO7EeWv5TOYu``2-S~)=L0RwXgwI`bkn1a->Rq~`x!e@-z_MkbFy77~OXcuO6jCHOA3~rQiG`-4@&$l0spf#~t(ZA{33xvak0C$$F`azM zm6N`T6{{mwE$0IT=c?`h>}Om8?605hdtkJ>*E=LdDD3{bKiQx5_j)S#w+9(g4IeVb|T0xVjc4JB#dx5_yQ(lNlowT^T-+m!e~z^!ty z@upHK`yA!yv$1&HlpWs|Ig9fX`Nbkyi8jKQSl~>}oh4$9f(n-I7oYY?AiB{-lEgm| z%9crD?+Q;Vib|_s@X~mb%exYkZ_~qy-olWy<|!yMJ>4^Y^`;!Kpl1*a3yu_=$(Lf3 z4os;9d0({6Qy(DcIR$oKSkX7&pev%*XjfiFb(@ zFqoVaNE~cakjI>dRDD1X?gCpJ6v;te&OQTFE%!Wq;@O;mRA+PnxCI;---jlX1|&Ze zt9bHZy1uJfpI8i`(gMz>Mb^Mgw=M4JwHn(bjE>5GNmLX-MTa4|H4iTbS>!x??%zQ_ zu%u)~SPdXn#Ji67#7&mrV7=IlkcI=Pek2?JDRcJVPWUHDrnKoo#$l+#nu?x7e_8KI z+j~3S({r~qKh0LPZ@3i=$yt%jA$w9fjeXoUZwD@N-1?Dr3B8V@n=rc!--MPrjGeC& z*Cn0U9Nn&V_zeQ_+$o;e06Ypt4;S5KF1R8~83FBe^>I*=A0;(w zMnC4}3S{${L2YL+&k%b~w0@ldnO5rk;Bh?Aqu-EE6n`f+y_}t@wpY2MJ(#ykjc--r z_b>sO=WVg^S+p#nCMoutYK<=+tNI&=$6jHA{GKtE5+Dff-bup zLbJ#2hQMEYQA~$f9;1-t(b}1{5+uN!v|H7Nc!GJK8s`ei4Dob59Ms+wJD!-+hj@&C zyhe%*@z4|D7hSOIIn*Z($Yw7k<+b4+q4fw|>AOrgM9o4J=|jMVbaqi+V6BB)YUd1Y4uS*G zzbZD*a#ek5fjVL;Ow%8*mjiiU24O;P|Egag`Zatao>8OQ;CS`!0QRtc5w^%L$`)JQ z&d#700%;960sDer6IEXdRy``9eWm7g%A(o>(XX6~t`J*;#@(;72WCTk2NmJ%gmrZ` zHV%QrWGEx+T^y0m@T<*qa!_jF7BHnifaFNE_603dBDO1wvE;b=u=5jHXJJQGx#=;% zcF+Y5@g>^fgbT$vrQV&&P2UjE{!x}OT;S1|8_+rgbMH}KGD;I;JAjfZG zFO8F1MA|7pH|?4E{wtUQHSFbuV1phoJ>eM@)Ecq59zyP(dj2+Gjh)RYIRQP(lNo6$ z-&2Z`Z%eypFmFF6d-bK=kc|hyalj$q-Pd?b(EDL{C9xR~Y`S!7y#=rmyB7T$NMOw5 zy&iP#H*%07IZyJfn1_5%VhV612Qpdv$CKbTx#?vn)@AqtbG`((DkF?{(ox6*`pO6y zrF|~MRP>NjiLEE;v^@ds6}8>KX4^9e2NU^U;(-CX+gOhhg4!;~D6J!)Z8Rn`oR|%@ zA_5-+D*NaU4v{ zhdw^FfLNDm?}|MuAy?YFNS6n;fi6Y(lG41xn22}LahgBZxDAz>V&2#w5ZGb7iD$-m z^IcfTxzltx65HkA@lip2s>`+n0smwDp&5bwd!S2?cp2E5xM6IJaH(nQ`0$kj3YB-&6P_H3bE4HvFXO8j}W z7j(+DW-!Y?K~F+cMYg-^F|K!}pyRH} zwpQOqSo#H$iFtntqOv?)|7YCvQmQk+e$wJN4KNmeE^w3Uod2Ak_jdN==LUxVYy7+d zrT-WB`Ry0M&(-*{__-GEDSlpuN-ci=Tp+N+7z`5re}JFg{+IlG7Fzio{A^039xT0( z*#t`$^knHkUo2fEq^wwP3BFGB%GZBM6ZHG?_ua?v%6Ub&(T#l?UJ z5&mwxvU|a6@V}2&tT(&{n|LKda=uOB(`WmXn~RXtEDQL{_KmU1Io>KK)gNW>2@wt< zX!Q4J?;?-c2hEZ`vLD7|w0A=p7-8Vg&|!6?Vq)Adyh9l{3J>F#&q7m8^VjUcZ9-Yp zr{$CQ>&Z{rh55>|xn!w}Fdghc0Rvb7CcDt^U#QN#Kka^3=*5Mf6mE;d(|w1sa=liT zZ`5Ldc&Fr}3ps0_Y+x-S(gh{|mB0fgpl9n1;0?iP!Mydf@jw$Lk1fiv_zN0vr{J%} z`9be94SPzwuN5mRH+9`^@{L*EzbfklJDoDi1J?V{RPW4u7MncV8s}!Ys=kh#TcXb- zy1_hXJYNB6;weg1qum$~^F=Pv4_5hOOnj5)%YOd1$~)%UyLq_;uF4@$>>AADMnJQJT3 zof;7dR=sR~npNlF9jsc7hwpZc;3wO7}o3AT$$g?BS z>nL9z;9!`N8wh3H9CYr1U^UZ6({dH#7rY<2(69TU{_YT4ivD<83D!bG=u5Yv#B;px z?DFRuQx0}_mtbW$gqmEo)}c?yM^a$R|8{Q&yb{~|nm<46@(+5h$ z2k18)g`7UoE)Prftai$2-~Hb`bN2ERVxw zC%Rg?L7oKn$*ixqa`TNTMtQF{>`tyn?7Wumfmgg&yas3BMZQ9Rd>_2j-tZc1;YClj zGy{G&e#*`7AcrOYQ*=8u13#Wu`=0o%M$&K5?NkfDTM(PZk1VvJBPkB>C58@|n;uo! zc*m$Z5)b1Sn~+EFiO`?z=O=P8I_fc&hV)p<&|zMm+C-yqHaGgU5UJ*6PvZ4aN%^-gy4 zwWA&3v(?by@a$U!RmHD+mct4Q$6vg|)8T}mekWZhgU;9VBSz>=c*Qh)+h{zI9~%WI zD)JboQ*#k4*0cId=&(3TfEDxmD7YM{CHycorub!+70p#FQJstYWG&JS7C^#CZhzK7O; zpPQQ?JI{bmV;i7q2sn=YOg|#N^@bny)2TmB(C^3h5|?&_f2s0-_gN+Ol#l`? zKt(T9Lq7^6Cf=dnNecHnX2P9BeChGpF^KT#`7N+cf*c}Nb>7*GNHy9H9{YP_eKKN| z!}6==fNCrR8%O1!oJguYAMkz|Il}U9)9+(~pngOkG^jK&{8pcScwQ2AvKvnDX@>*m z(}(Est*lU%lqXAx!Z`xPv?m`C6-s-JKEOLr`3-eqGyKa|QTeiBJQBn2Q1@?FM=T>2 z&TVRF8*F$Rdib+pM5~a+Fx{1rbg|W-Q>lInJF-;2Nn+ob(#OS~VK8*;l#Ze% zfc8Zo@0CFN*O<`Ou|kIrTfwk(9l^>wmbDUu4_=GS*N$as8c5Rc)3I!M8u(BOxYm5b zHsH_U6z}kB7>R!^0yL=K$Lb2(&Pz=ELl&aof>tizceRMeovXw{j1r9AEeOf>1@s|4 zUq{ve035!KlKyyb7g;_LK|>!RvY?C*ZzjVeKBO2#%rb*mM@80>wBFZvc0|&*V{(zm z0pa>_df13lHd0?$3x?z8q+sZipx01tnzz2Yds<@b1EPlZ5BkwIS@$$;Ci`(BjIA^( zQbD%XC`$#|R>PMHvdzY55rhd}2tngi1o2MZ;WjGmSD+u%GSvBj3!$#TQl5z<>j*h7 zkzW*ucDRg>o?>1<_9*s8{(;4_zwi^|WdReE>>8Gq@enH{u9ZKR(}wZKRQ@j`|G#U2Q_(?UY70hLv;E( z9LR}E|60xRCj7M?54Z;ayP$M4Q#BFA{3uE`4mFA%bz(oa7#ZZw`-hR+=+~#jXrEO> zesK_Ey|SVmi=yW1k1oI-{6iv!X6nDTv7$9w*(SCPQ`{jnH00+|aVh`>>klEp=8~fe zoTc6`!qvkY8d>j`1iW)C5Gmxfvq-ar`+rR&Abr4$>F&NlzO}<>o9) zr^8J(11ws&n+U&?#I3?>B&gjhys24}!PE%nFd@P&^SM)$#@i}1^EL)FhWoyV7Y%F0 zlOMZFGm^0Hq!*6#Vql0#+W3MG-<$b@4|m&v7d9DcJ#%9s~V8eSQ&9NW86Nv)ejY^DD zDP46)cU8}o)JB8YmiSnRd7iE(ndN@^KJ0FCKm7ocr@Zi2nBkuLU8WZa&@l*W)>cgn$tfdJv6#J+$78u9%X z@h}=TV)bP*Ua9v}CH5KX2G$(gIJkqcVxWU-J=KC8akLeiOZgshF9$Zeog0a} zjq7o4RGjofz=vJMT7+%g%I?$;2U0^yw0B077CH4+WG&Gz$@0UmVz9P;#O#UAI|WRu zg6GI?%|FpFaKeK#Ra_yX_c}4fzX1DK?Adcd5_3BkM@&e`=LBySV^moDcgR={@5|&Q zF^J@l3u5azb_>NMykW{|_QCO$Srm4&JOw8I!Y|AkjP#=hY08CQ`5fw@C0L*+(5naI zVkZb@%=wTw@)OjbT8@XR$6NS7zq*6i2#*Oz7csvC^fL?hVI>?Xz}JF8P(lc>lI3B~ z5hcrOJ&Lg&QfRrqz#_K6^MMpM%l$Y*_y-i*ykra}i@WevGCooe8RRS4q{MDT&>CBu zotK(?`>pYVu2zLk@vkPc*T94S!SJ~wt9dGid&7aWtE0RdRq)aiCl0YR) zgE>U-BP^K3_9?fA5VAyB4^Q|wvUB31NEheP7J)O^5;5fiJvkFq3wN1gVOQwkXE>FW zTYiSQXtT}FaE4hBbsTtg6(P2FSHr_l2<kU-Cozrcm zuL!wAcj24s+v+ zd+9n3KNf2}GaP;slJ}*^%)w+9>9mlscTVIsHDMljGif_wJ7~Bp6M8hD$)kW|X2jR8 zBjTA}BHm-fIWWAE?mfnk@P_2Lv0F~Rc+lFd-jtm27wf$vxfJi2`!o85){drjZhrC- z%;;(U6!vDEEB;cPE0!i#T^M45`X7r?DKaOrngjda3Xb?=Gs4a`bydK*(cB_MfyN*d z=+jH{;U@@VGA`gkD%e+;IWfFh-T$^a;y&gqY%|SauZk^YA5?JT`8^opW)5-M8g;4r z-%v*gdmrmko$KMa67;?sP=c?h&{uG_HLp`RA5m{4{>f!1#kPMc9D&k4pVKjo!`lw_ z-{ItcVSky|F}VO(dbdPA#TmjfEEQDT{-(qp2m1-W;<%-DWL)|H77Od!cb(+yjP7)z zW}uCvuv1{K#!Yw)I5djo;ZRhkKhY{s683rA_kqS0n~lS3k@*VD$?}P; zrvyPxaySp1uZKTysQdp8>N(qjdF`lId$bJcg9)fH(>O%wX~7Zo*e4mI0(n$jB<^K= zbYh6AT3kg@wo%#0GVHjTCWi!kDx`>^w`hTwp{H|RZxvG#f(?`1G1 z+ZOP?d;=60iLCZ(f`B@k3UAe8!$UDnU|IQ4i66t5=u?6o%FlP8=|NqjqvPEUzkUN` z1h%8NPw8VjUj$zTV3yYJWHP>y5f0R4}8z8-vSN#d1c8Zwvu|km7G-}Tnm2hIipl-HU8Z9PA zfwat85}c}CQB4}kn@e)1j7MjC`!?>%& zMzWu@fkNfgmSE(F+_1ukC)SpcKSP$bh~q?$VI^gpuo`o1-bZkuq}$S}!2bP(ZLp8O zqF)1^eIcN|7zcrOkner@#yS{ca7m5H4;Y&PeQ}y4rV5rgsn34i9NC2di!5^j`c%Oa zIh3!x@sD|7h`i}TO^mx@s(G_V&pSWLbg}p>E75iK3?$(v|J&Vt@fAD|eS~mx|0tOE zp`o&kG@9>*@{^>tpO$ZGVkIf6CYH2Ne17vHm7OK4pzyRNpN0%A(eGl>P&kzMRD|VP z#b3BpY%rtWDcsE~Nic%B`nV7X&py}Tn4xOxfzl;F$#=2u68hNVUROJ#Kln%XY&;hT zL?;Ds_X0v?IgtU{(UTBR^GGu_xRg}Gq%Y5>~^gmr(FlDCqq zqU6nf2>uAzwOPQWvWD5O3#+*688ChDIV?_P-P#+%J=yqQ;7I@egugAI!ICCWg3mCz zr<^A;lo;-gGVes&#k6vn4Yy_@0M|<>}8SUd<=_WYRKnmzWy*=k@PN)#Kn*0j3q}4CNk0! zYylZ2Hr0lAJw^Ql6r!#E88NwasuNUK#0c`-(O0S*()8nA>I&+|25=ZC01n^3zck@_ z85{nkI&@j@Yf5YyGh?9)x$P6DX>pCgt6`kd8~ZXdVB1vdkQcY!@(0k{!svKhh=8X0 z&|3*rAXl8jCdEfGpv&g!k=4K;)c-&|1iW`Mdw1ht{543u;?cYHD^@3l2$43J)_b z`yG1Wb$nTR-kZO*7DpSB)sO{TFhFP}r>5RJlJ%+g4apeZ)8f0uccFE%K$VBcvV;0h zZ2B?e5tN(g(j06FG^4p z5`l)k2Wfc3fSx`W3saOe5O%1|#=XPHy*OilUbL2m8_XkaO8hn;Lw_cTO9XuSsuYN~ zfFL*#l*98K;6``qJm&`M?18HB?2SKH96NZH$%T*hEabqR?+~n*#H|2V(XRkk4f}wyD|3~M4P?+x$!fwv|(T(MnNDv;V z;tHQXmg-Afr4yE9E3q$8XdtmPJD{CoVgMT=ZI~`B=@eyIf5zh|A`}+9DQg_QoeV({x8xHx$#aCAz_=RmSo`qk1W2BPi9ef`PHdpPYkYYZ zr*opHpObt=WS8>qasD<=k`CH(-2zWcwDWSblm3Ki;yN@D=kIFC1gRF{hlWh*zlS$$ zoj8{BlvYT#k6Q`Io;W9cSA@D3z#WcQHq;jc_`P--TxMBY@s z9Y&tWho9Jxbi{1KY^d9KFr95ea!5DY)*|WGZfmE&lU_!~&Le^6JJ1V6eb&Uj1(G%` zAfzuE?oC`*1X4;PCl6WX7&nQ^aKiL_Ts<-e7cn3nJ;Ga)=fLUjMJ3iGxT*=F9~kna zo(7K!eF}ue6c^KOo`NHK(Iq*%QA-Wwh-!`-# zA6TQ{M6JB9brtQ}eyICcWbv>fal=t_<>s4F4DNTtP#OYD*4FSf0sUC0wgp`$srncy zA=OYq3YZV(DS6KE^~fw$`#j)%A@UZqg=}@g%7aQD=JAjJ$v3~jhB|V62jLJna5v4a7L1(vd5u2Il z--)_Ky(}f#2K~&$ArbQw2=sC49@7bW-`EIr!4~A5W070j_M>VTHv5elwnSfHB6BTk z;GF@nlfcxtC+=sWGHf)aODr?S{i3@Y+qW?nFTcSCg{Y2l2nO?36ug1 z#NDO~3dGPqjJ={+7(z3QeI?oM{z}}DC6Vn!hUTJE!@tL>bK=>=1orEd9C_gufZiJ; zK{pDJ61xT*$i}oFo3x|t=&^x{KshIOLcC5E3(Jzq&&AM_N^@QEVFYXjAj$Hw! z;z}&bPY?ruNA3BZE2*1Cs-;iHCD1*M;+L$hu63ER*SgV0v(vmn;$3h zY7Cs@*yt8BP(3i?9anFP0eB@QTB{&64=VHyV>%Kf&jZ}npU5198{8jx+eZm`1ivJs zCT0R{aouk|D2~b_(XKyzME;0kjWTeF5PAaE zFbpty&hwTg&17i(YWL>iu}K%WxZxT1x9h~KI)UID?7`^$?En|RVAb{DKv2UxP+|Ky8h z$tota6Zww#lxQ}8uLnik!6Fz%>}`{mae=5z&Z4&U$uXE_=m-Kz*z}mR{67i<%J-O8Pd{{k>b@(Wn$fbK& z76L-rIRxKO+JF*_;Yfl4lOC$Ma;SPC4&_kYi8nD+Kg5fWR7`$=rD9c4gt3|{z+lyT zrHgK&X^xTqCHv-I{>IVYfWPENy}n4DP+zRX-iG)~c}f5%xRn>GO{m98WOa{NSMoAJ zRP!#n#5Fm_)W^^TKY@JG7rUb`WEoRI&g6E^c#_kV_&7u+FT_`BJYUKlLp|lx{HwWw zg4PB~8fS>UFvoHU91;N)1G#{1ruYAx0~tBQDE^TsBx4Z8J|%t-13O78s>&V6#Ni$P zEnP zeWVb3fXoQe7s&`&_wVVquDb*JqblBqMIS*!@RinS_s-;B2)}Qu0Mmtd}I{eN|y<-7ad=Ooba^~Q#@QJa!HUqqAh)m z9EqB+LVSpZ$d&$ccoQrA-vQL;wOgPdadwSBGU>1l2hZ`f?==N6*3J>~<)jZ;9W78pk`O9%e zHj*ZHA3zL6BO%8NcKDiZLAovud@~(O5EnFVHr`@&rp&R;jsyvr z1nT5MjWK5F=?RkD$395vFrtIg(Uo)Al_#Ss#r<2UdJ=G&4J4$ms~EhK{)!|!FwX5s z=1_RnOEx=!3EoBm<0jMyX|P-(k~~fr>>*^uwKOm*46tHGQXyiC(q#&XAq)H`is{in zhzzTB!rHJ;(1!y7i&(Q^62ox?xsoCOsF5Lsv4>kHyb}TJdZHPt$yoHdgR#?O?4i?T z-m7FR*iOV2$k;c{*isn_2`*y!o0cfK-Hbg`#!}+2Wcs=zcC{HhOvXYT7O}6%*miRe zeZHL1D00QxfrwB34Uy7r1r3P3BImU~KMZO=u#d$8rY4#S%=wORAv^(M+?*6`MK{vF zFL|m-1{0l|M1|qo;LU@3-pfBno!T3SdO0sWRlmrn$&5mG zx{{X*O;?s=t#>T`UW;s2iL01xFtQmx21%@Cd?ThY`QDNIQ|f&~@&ViX6}IB63@?a8puTldE;gw5k5{#wMDsre;!Gg!lTe;`g{;%KUJ2mI?e1Lq}ixQZLk@jaYB zs9jYdU*Vf-B5N?FS)eZTn*!V^Sjt=HumTe%V>iv$SgmzqCGvrg*xgu(&~Lqzw{sqk zLR5%INNk$YAZnr76!E@Yx$9r5y@Tz2SfY0X@{$4P-@8uYK1l$_fc0Sk?IJ`>#UiEy zT6Md-6xX6w(Qb`>$OFQ5eZe05EJp-4{I92}D2!WXVILA2I}KA;+)Q2+hAG03sp}zh zT?r<=H9!hW$mQo|i(44d`oiBud_dHOU%1lP4#>Cc(!_xY++cY~^&3%8P;{ViOQ3lV8J zh)ZHp<0(+|$D%}2Iv6gNPIDvc;|Md>0AgGqP$$pgnmhRC=Y&7TB#+hAW~Z?d3A)}k zMU63^DUod{p6R8T=w~LeY{)hrS*-Pz<_uqawRNMYSJmrqb>1i8>DV6bIx<~|-2V(8 zt9q|8?Y}CG3LhDvsF3eF&>6Jq_E-wBKcpYaJ8Ja0Y)9m?uI(whFM`L%5{Iz+8aLd; zt`Auj-!EVt3W{5rVdd=(H{uYAs+SgYongo4a@y0v%W3|l!58OJVDSASfUBmbsM^~> z?`M%W1Nv+%4Q6MPZ%IE`d~vZbY&59Y_>-s;V9ZVrSzlqCk|K0lyV<`Qg2pMB-Q|`&t`x*} zeb?P$f17il*c7@7!yl!ayY=8TUOkArgt1%CB+jl|jWa=vbX#rX4Ssxr!R1tki3+#3 zMnBF~^+hOwcEX9C9_@vbgwe2+yB~`&79dUN&dW<4acLEtqA(4`bjor4O#CoYkMRIu z3LN)^7s?HgQgb})Q@yW7F2!E3it8pY9?jD?9F;~vzBVemMo0yOjt zVU_0s4@4Yp-UKO}!J<9xJ%OD|Y)2V~1kMng@Gi4ZKRL&JrvTnjOqti-4ki*tWY*XA_Q zDZ;ZM!dJj3EEcS^u!(7edtJl~i}GWDCKu(|FwnZXbnH-dy(j2xa&^}rlZ(5KF|ND8 z+_s{fbrdohTk!?SfjzZu_zGJ;QhgN5#66Nl#Bcxt6u_j1H6XT`uw8hj@nx*MUvCoh ziqvIjE8S$xuk4qh#n^Umw{@=;uC&mHw`iT_eN3TatWdK|w{E#eu5o$H3sLjF3cy(^ zbYuYc^CBs%2(Cr#f1^Sy`F!k)nDOD5e%7hO9}0Tg8$Rj!z1Z(F%fT%sN9to+RQ+~Q zVBSI8h{~eGwQAN?XvL^$$m`Tx;NX1f*yTa*`UYO$#;ec-rilL@cquoZ){P%d7RtJw z!fUXJSJH(@OTS5#_pk6%Zf-&rsV=7R8*Jj2ytKFS{uSMno8u4`nfQ&d@T*4Tzlq;= zWXZ&DjD?@vy6(OIq2G$D)j-`cY@{6fV{D{MV2>xp<>DRc#f`^-A^TrXlpycydxtMe zc{{bqx{`?!R{Y$;hbRHo!NK4`T)PCf=GPHA+|i}92v2G6M31Qu>!+87@;&G2SzRT% zIG8z5Z_2_{z1_6ooQR=1WkS}UBOSOez)^@1f@29;H}e==G47GlVAA=>IDo|S`ybh;es;<6y+GfIDIy4g2qqp}iML9t)aMzmZ&I7rmu zRqW6;mw5&&Ymfj}nGJC${tcA=Hnl|Rp`w+tanExca6C3I9qWLCfL|BQx)C?MMUF=m zD|tN*=vS<)*_V7wbZ|3>gbUzMyKRBP{5*?d|LqV1>3Cg?O~lLHLd0T+T5a z48-sI9`d6s@1F3FQ~Hp3-blxFlc6KEA;0ADg{}a8zphlr@7L)gpFW$+D`q=kpQo5(o2{)&K3mN&jZh4?;b~N&*{RDWngIcouxFBEsH8_? zxdQ^2*M!40bxICjw(zSRje{4=LN~7A-pZ@EIm6V`M~HszC<99Zeiai`1_+RXt&=Z! z&cROYIRsP_z?XWyD0%WyiZrhBS3N9TxzNr_@&q!@>#*741h;0I9{6j3lm@i2wu$Fa zLB0PBa3}oiRef9;-qg@|VOhmZU28F+9>Q%Y7)iKdFX@`xk#(CuJv6>Fl!e%_hXA@6 z1);CEL=tQuY*$ZungKEX`CAZ&7?>trqIR>rzgEaIy1cAyC=pJe)pDJKw=%v#&yiiC z+J3p^j4Y&$@|RnF&mP3ZMq*xp&jFv}E`^8iB7eUHXN#!@ZRhW|;B*gu%LW@zaL&M* z|D|9e|5YT!;vA-8{$NdSKZExNV%E#g;3Wu$ae+UB7r;FhJoP|-EV^gvGn@FUEBImd z`Y4V{f*;w+Z>0vW$1W z!W!~U6QAbm@H2G!$ZveadgLKIl-N$ROAYnIFO$XroV5wQBsk)=vQ5L4a7W=6MprsG z(YGP$RoEl&l=fk5a#o6YtY0}j8e>g(*~)7=NU`Mokg6^6KJhgXP_zR;rV>B>Rc_9< za5JVc4jN>S-({&LpXC^zG9R}XXlp3OI-$PQxrw{*H2=hE+1d2*#q2^DR|y!Z&g2nk zc`g)BaS8nnqw@et3mpZJAQqd%b8BcFS_~WXLo(jHqB17YjUI%tXgQm=77V}-e$fG1 zd#7?!98il}sZDlGvew6)+ z`|zZm*WvHS^w}BIb4ua3^-2)G4N(@?zPY4wAR{Jd&KD-|vUe>(y1~hZCewBOY zNAYJNxLnRLiijs7bA;&$!;rgQpf67kph(qfla1DKo~LAi5CHfsL$QLwf z?G_dHb#yXCF4T1VN|@+^Vu%mB@VVjF(DYZ(kc=%t?(N9yWd7Jlh`f|UTqgsmv6{Tn z%g?iHhs+i~PsZ%Yp9`x!$U&Py4)t61sQG)7Wh_=6$$)ehG=XE3^=m1AX<(%(I-!4r zkWY7%MY%zwoY4=3(G{Z^)$)8*kO*%6AoQ&QD(BpT==uR2^Ge$okqn~B;?K1jd8GS0Fe~xJ5SX3hyK^@6;m};%} zpQYY6Bz4<+1Kx!m2K5vZ-$vI46#T>I2MYW^fgdRF0|kDdzz-DofdW5J;0Fr)K!G19 z@B;<@JqkE!<-})dWw>g*`?N8Q?%eSB)5bQs7mYt{uDiZQd@tm8qj(i>1>(Dq-}CBg zMF>xZ^W5%0U410nINn6#%7qJS-BW5BLXn#A`0+K36^klsYvxvjBqSGJQu1@@;)aEF z^DlSLtF5UA9&_{Ejp3>V@@-yaq!vicuA zA74>g(NI-cTe~n+QB&7g)esgP6soMNTNrkS5EZUM-^?99es0y(kt%m>WyAcc26wo+ zvd+DrvZx27)a7CbdRR9VYTj}S_dh(^q-tZl4f!3XZ_?k>hToEH3V$A9z6 z?rt~!tMR`baeMGT7UzOu_|N}kclY)9e+%zJR&{st4A{r`AA)f1T}b~c+&GH=BK+_9 zpYHBf{5Rv@K-zEc&-yN%IX#%-p4!?ppNV&q)9^k@aALa8zl#Gdon7{C7n`cytR{_u z0Gx&}SzdfX3l~*2RLsYh|ZO-GdWV_Ymn@YcccteSB0)(d1A!7O%|4=HdHloNCQ!n zEk2XP#~MNInc>QCO=Gww)aW*2dZd%E-o7!M#OJ!kCt6#`kQ(3E; zKu>{;S*6p-F`6Eo?9emv-2k4E=V+{15UH(%JP@OmursW_89&~P{vm#Y;Drl@U6J1)6O4nGKi$n#O z5-L+^)9DH`(iQed=RCgOgcH#DlYv9=#ogUyc+bA9ySoWbH=Zqc?!2PAo2OOBR&;ky z?2r3<`5fSI+>GZe>@yCZgZ2$_IF7^fIXp`$ySqC<|KcmVyC1=Mui1F!4O` zlZ)%|d<7@2KE*SL^YO#6|9n}t!%;R5G79ONf7aby5BNiP7NOqOtGc`Cl<%(X?jDY9 zoZcfk zt_D7;tIFRuGcO4V9Rj5k3M~UtL~5rqAtAx)ZoY;j5FjS0MRfONGBc1_GRZhIfu!sD zi;bnYX- zuD``!?vKp5@7#0Gz4zR6&pr3PdmjPV)-M271AYfE2{;bea?muNCwM3LLoVZ=hAsfI z&zPnM@)-ksJK%A^7Ql(mqC7y~mrb)9a+o**x#M~8E07MOV@hm zubWk}vuKe0MHim2d2hbR8zv{gQgvSB3?{cvyo?jwd+%&HsgSggPy5Cjnoxjgr>-FvR)OuI!(QCYcT?IAXs-ePqZ;LDB z-JJ4v)Ox#Wy~!GHe~ougTkGA8zhUj&NH)Axps(?+Kz{J4^_JFpi&!&QcYyy9l(PkT zDaxtOEvG(PP6L>_7rBa^cr`*jSO9;c;5YMwrg<~sEJW=Gzae)$+8;&xfkFG5N`Mri zXaw0Wkf#fIdb4falv{_~w%+JigHQ?Y_W=5A&yA)Tqw*oQJyiZKcMU}AafL(=pzRw< z&@HF|iGfiax{&WE^1YS%yd|H!>xI0lU0=#qhc09%9>-uSUIg?!3CZyOgBr^I3)%Z` zRC8ZOa)qqXN9!zo)L7!`b}R}i#C$00V<=-n>agbqAibm7P~onEJ^EhHKKFjt+d)I$ zJf9DnQ~~*V3{juGq)&TDF1tMS-W5Z7gE!#1r`Wp!7>Gt_NNowLNB+~4AGVCXf9bha zgBIng?KmJcWYK8T7ir zJLYo#q`=lfWGTZVmdJK`Xr=T!H9r;D3R6>mI`Mab2gz zbt^_y9Us?gaR3d;4}rD|bJ{xU8=LK#qWc|gre&LGHBW0xh!=ybx-k#_j^Z|6HhI;1 zJ6y*dwFNRETh|O;KHUC1NNup`0CZT4frGX&5GrxcKm~KgMN2<7;D7P#kuJ3^rg+(OjB-p}0D!OptfnqnqrL--#cr+U2iUeml12F4S?gV6Ph3TpSe z*X{G{)%O$(6}ngI{!&-9pSjuqkNcVXL#|>tCXm50@OUfA?}iLsMciY6$IOCK$iTIy zV6VQ!3d^hqmKPYY4V(_-<@!4$oG35Ug{Jh7ge_n-Rp!NIU zKIGVP$Y-da9=7~8*m7{R+H%>?r4aas(8f!sjgNs3^sZo+zQ?oIy^mD71%KtBNp3OC zC9p-F`#^KH@jI-!A0h3ko8qgWRAKLTgXa>I+eGyrqH>3G<~!1fa+td>95YQwhX>NH zM&KR-u8%ONM~+|6ob?OVmb`P)FQ7KOgz`=!-}}&Oo>i(1XYfzpBdu|^%&?9^F3qUR zG4%U9l1riDc?SOuaw&2)0NHtP1Uy?I7t%k^Bd`QExsd%k3YyVxn`R}+?rzZ7`om_M z8{jx@$XbD1)67U0=b}L)-;ug_z2JAQ^D2$grzrp9ruj3(g&y-U4_|SYr-AJ8dZ=Ir zY%efbp9E5*whSY0`xB5Ml+E)Z1j*a7E_W`S^j&Fg_==<5f&_`*IPrT3J{!sA`{0Lh zVYSKYa(yb1TZQ5vfVVV0&mZ);OA|znn6B3+Cek^uxVZcrSGQv9n%ik0yPLTW(1_?B;FBk?_5^Rcd~9)?~O&i4A`9tuk|DI{$`#(I;Sc?*W z;2JRIJXa}sKqs8nJq_Lwm%FCq^i0})vnYv!=zE-bhn~-izGqsX1P~+OGuHWd)G&N5N9(kVGYrd=Pc4-G) z`duzI>Jk|#&D2UC*6{c%t@f0Q-Q-3TxX_(MazxjME@r2T5WS`3lKmI6ecmNNJnhwA zoWt&)MTujxD1NeZ2~tna2H{O}2>s9;9SEwy(#5>yRPVFa;iT5^M;H63tiv_^VE3H% z!Gc{Ev3ra3S7x%kGjzniK0`k>ligNK@%xJje@6*nsI(6t3);IxyEOhXtm6wF{iQ|P zjfEe%_~arsv2eqrxTroC{e@oVj_PsN{~)9|DM<6cJGAn0tcLG#-{SfGCG6mgXS5H_ zV<$> zN=^{*plkc*-Ml@ectW15wWaSs>`qPpa1r~arvIT(d(3?bJU?9U3GJgr>{o@BB0zt+ zHb>XDYNQPJYI-p{I@#fz-<8@z(}To&bp2p~c6$M$UnW#ugZRlSbX4NdV#3RI9GI=mAX%el zvTZw1p{@LzhheQg=hknZqaD{@@qBg;`$Mt*C*f%cUzP9$315-Wl+gW{$X6(#c$)tG{~`fR zR^%97FHlg=PuiZJme1HW7QrU~woQ3B{GfmfyDmJ?xg-j*8f-$Q<5dL@pOi0gXn&gmb_#i*_fFOzv$4ig0*lQc z9(>sHr9k`I6x2JROT{C5NhT=#$Q+TN>b+SqlGV(Xk8ic`py*!3@fAWq&K&he`8+6J zuH#KFPgnJvkk7?3{bl*A&f)_f@S_P zf8gp>ef%-_7KzBsHT6jY%EO-HXF#o~r0*J1_DF^G$wXWhcciB`4=$X57?ktMprr4V z_%Up%QfL=|-4Cc?G<8UO(J1jJ0Ey4s z(Sc*4e_qlnJ47F#C;TfCPv;jX&{;!`EoAeh{G~Zzr#XHR;~z2xox&R~!AJbBUX0Nh z0196L-l;y{ko4?EK}YZ9DO>@DR3G14#Iv$@e~StezCz;ZJvfD%fOq0QEa~YBx)hcP zz@C%%u@4Ibz4xRLhan{XcT0Nyju7}?!m1Je35looixg%;Q3$X63PryYcnv2sS4g=@ za<&V2r+R)w@?nPsU;d5}(FY};Y8#*95?>|p+~|V-q{Iho_>y8#&*x3txDHv{if zpE5~578G>qm(CVYdnau828maGm7@PE;7JZXTm9o4e<@S*rJ^5}e3ZYY@CP~lJf`Mf zh5s_}PW8{%E;<9CVK(e|QgN7sPJF%xdipQs#=kL1N3o|lp9Rc5ubkre%d+#Z%H_cX zE~i$7;_&i3_-lY)3OSGAJtBpe0PH%6KRzT7H%t6-I52ZSU-~YAm@V9C z=pP22!WQR0X170>)E z0HTL3XUvCoF{%EmJSe?;<`kBOh_+eU%l=cEz64tUa^Kt$mAc}7GBBt1JQ@Uj`~n?&!L z&D6R=q%!t6=cAq`A$`b(_>al@%#%qv{B~aMR)L_ijTBaJyog(W-vd0=fADUB{h3Vs zI3`vn`Fs|5qVH%Cglc@Bc52rZdGO5~k9kMd=gqQ!NFMt4178Y1 z%08d&2A=fxV^VJiC7-VXPxVZ;3k03rr|@wsRGjMhXde8l9FKmN^*kZiu~Mp;Hmz0|7Y$Jfw%iVPXmuEQ-ZeCxt{a$;J4?&Kg#hKr>jH}{9Y2GPvxP% z{!Py1et_dk+3_8M51q57@FeiOz3avE%>uB8mN~cUYrs3vk6h_Y|0Uqbo^;50oX!|h zH~~EA&-|0(*(U&-0mDf2W48#zHE248l^iePIlpa@R3_-}Wrh*%j2oHoHfFsPZfx1u zmI(%pdb*QsbcWNhrj~NL(b*PmY6}{nP_PpBy5qQ(9>@Lr8)8NxoD3!Wk=~wkCYkC@ z`UC9svjDs9DEMsISXn3T_XmT?6fTeQtMKX2j?kLSKr&X=6HdgaxGYr#Rm^f8_@>G9%QMsX|{NSEg4yqoaUEPgV5d8wa=^+->md=;>UEzM*AR%3I_)z41ntAcU0& z$9q&aKsW)T5mLy6JG-H!QZhk9YAW=&$}pm_OgP@X#%PMhdNT3MK(4r;&{Uq~?edg2&&G}7>oS0`Z9&?gi&_C|pYH%T0|+vwrA zph5g(Kx>lWcuJ6!8U@0ggw=v_K1+B4n8( zUE!2cq(}%F5kY6dQmhuA-Dqkn=L4V|7C;#ovgp<>J)aVkVy$nhFogM{vfFBC&`gdq z6w?;##`iyh=}hiOtFVkT#5cCp+;Um`JpES4wXT3Jc?=St|yMTW7q zwPr&IW~AOQ@YJyJIwRC5k&X4O%&33&#+nUHbxjeW7(m9ZcrCZkTNF=K3HgB$}Z8CxoV+F*~{;syn8Zmjrd(%!cSI92r$??h^ zbSh7L^eQXgRe~Xn;m*FTj!Y|{p6OU4w(#(M13F>>c+ zmzK*mY{e8D3nv`QtPk2bY}ttNUh5=YNrNYx;^xU(eScZdNx#IROuBpPVJ_l)LdLv* zZWHnp*LQWk33+w?37IE3Psm{BI3d$yoSl%@@Na~X&m2m$u1|<|RzYL<%Cinb%PI+( zJn7VL2q$xvs99;08JMWyo^VgY$nTZ#<9$Ol5u=Z9VLH!kG#TU9I{HWx!|8N!63}UMvE8qTRM#2(>RDH&&DZvn)rmntL8qr6nt0ejx12BMp2sk{~I`kel#zuupUZS@<* zw*G!28B3*mNlP;W#tyzGm7QN!p?i{XY{sM`_}HD?j3K3L%T(}B5!!dWXnmgS!-Bgr zj9l<@n$|%_XfrIdgS-5cS+UQzDj&{&JD;9gr#Y$pv=jJ_PR;V)YwS~$JZq}60u z5IQ5idMWpG_-;)ok!azIOtBo7J2zuvv92Gk+E1aEtFW`-^ za?Bo4c%7BGUT4m$5$pUBTn)v5=Q;VoW$H1ScQ7Gh5uH03!)l4G38Q^Oom!;xHBna0 zp^Y1ao^#S%x78n%D;_mlN|T5Ak0xFI1}gWsJ$-xw6;2@Do+RL8X7|8b zzyiDcp-^_>p4>V;FLjWUa=uDo1p+VOtd+txWTmB27_O_WQ*R`k&g4wD)H&R%o?H_M zFB7&T>t;HyOoHVQeNPN8l*HQ#%t<-p&L6Crp2^R$L_N#a2H%;3{dDwip~5!9xC-kg zsp0|JoRY5-;nOi}lF_manyJRZ>rqnLsgT_Gi^ka0tqZ=s%kT49)`EVnCd#H)!K4d+ znhXOi5>qkG#*zaGooSGfw~A`;1;9C2a+|aufUJgNrp>gur3El+Kn&#sC1l7FbxHjAiT%kyEG=%bFL#nSpn?%X7} zDx+gN6#|=rjh}6?482cv+Nu?AOZl-1xvwj?b@65(fZdTwqcy*Ir5CFe2Hut9UE$RI zA#S6mY%!m42)>cWBZO7YRpBW+#9~kM!dfSaDa+WF=d%}8Q(y<8hV^xhuzKiBh_3~Ff{#ciM0ofG=H}!;KA`v6j zABiP1I4?&wlyeoYF$E75Cq7gSu;f(^C*mkeaEI^1@NzYgz>CkE6M5(LfRnI{j*7Zu z?)maOuYx#sn-hrE8gPt}-!WDBt7Lu!16E?h)wz3xUTw?YCG#tYV~;sO9_!BHnh-0* zpDJJ7-&4?+r4$i+{_BB$0e4YV{!v-Jg4HsAfrR$@hk>Ufohtu?%&%Zl7a6IJBs-NK z$G~}r$S;1_NA)xA>%pV=cb+VU&xS8e&#JrxCU?J6hO<@a@& zKU>W)NiN}dwqpcd^}nQIk0V0zQ~A}sI|Uc11ew8J{*P_>*}q9b38V6!jKpU3M?F7n z%O8DGq$s$^R-o;Xy$EtDg2n~~bzf0I)lVXIQh${k+-N+mhGp}s`;iJNx_tR(AwS7a zm9Op>EBHf7v;?0ePEopdN?oM#tNV=#mP+~4_@|)iquTWVaMtqG_Xrd`Y%5>oSCH=2 zTJvY`WlZqm`2Tq#V&YfjQ@E>;nQ*H9>VAv5H?cwyN@&j?kmUz#bSgiN%jX2DD+MdG zsVGlxl=bhR&PBkr3jPgrRlc%cGk{lhCpr}ln &faults) { CC[suc->id] = 1; } - printf("[UP] flip: %lld, stem: %lld, fault:%lld. flip_cnt: %lld, stem_cnt: %lld, fault_cnt:%lld\n", flip_total_weight, stem_total_weight, fault_total_weight, flip_total_cnt, stem_total_cnt, fault_total_cnt); + //printf("[UP] flip: %lld, stem: %lld, fault:%lld. flip_cnt: %lld, stem_cnt: %lld, fault_cnt:%lld\n", flip_total_weight, stem_total_weight, fault_total_weight, flip_total_cnt, stem_total_cnt, fault_total_cnt); } } diff --git a/report/atpg-ls-动态增量.txt b/report/atpg-ls-动态增量.txt new file mode 100644 index 0000000..a27c943 --- /dev/null +++ b/report/atpg-ls-动态增量.txt @@ -0,0 +1,30 @@ +-------------------------------------------------------------------------------------------------------------- +| data | fault coverage(ATPG-LS) | time(ATPG-LS) | cube(ATPG-LS) | pattern(ATPG-LS) | +| ----------------------- | ----------------------- | ------------------- | ------------- | ---------------- | +| ./benchmark/c17.bench | 100.000 | 0.11560654640197754 | 4 | 4 | +| ./benchmark/b06.bench | 100.000 | 0.11869049072265625 | 10 | 10 | +| ./benchmark/b01.bench | 100.000 | 0.3559579849243164 | 13 | 13 | +| ./benchmark/b03.bench | 100.000 | 0.8975160121917725 | 13 | 13 | +| ./benchmark/b09.bench | 100.000 | 6.73541784286499 | 20 | 20 | +| ./benchmark/c880.bench | 100.000 | 13.738963603973389 | 38 | 38 | +| ./benchmark/b10.bench | 100.000 | 13.915901899337769 | 31 | 31 | +| ./benchmark/b08.bench | 100.000 | 44.885215282440186 | 36 | 36 | +| ./benchmark/c499.bench | 100.000 | 72.9014344215393 | 59 | 59 | +| ./benchmark/c1355.bench | 100.000 | 354.89149928092957 | 93 | 93 | +| ./benchmark/c3540.bench | 92.932 | 2000.0045857429504 | 126 | 126 | +| ./benchmark/c1908.bench | 99.452 | 2000.0044167041779 | 85 | 85 | +| ./benchmark/b11.bench | 98.485 | 2000.0039746761322 | 59 | 59 | +| ./benchmark/c6288.bench | 99.653 | 2000.005141735077 | 37 | 37 | +| ./benchmark/c2670.bench | 94.881 | 2000.0041010379791 | 75 | 75 | +| ./benchmark/b21.bench | 45.309 | 2000.031025648117 | 21 | 21 | +| ./benchmark/b13.bench | 98.602 | 2000.030693769455 | 30 | 30 | +| ./benchmark/b22.bench | 30.701 | 2000.1147837638855 | 4 | 4 | +| ./benchmark/b17.bench | ERROR | 2000.1162934303284 | ERROR | ERROR | +| ./benchmark/b20.bench | 48.958 | 2000.1155791282654 | 19 | 19 | +| ./benchmark/c7552.bench | 95.832 | 2000.1170272827148 | 134 | 134 | +| ./benchmark/b12.bench | 94.418 | 2000.1147434711456 | 123 | 123 | +| ./benchmark/c5315.bench | 99.175 | 2000.1144452095032 | 139 | 139 | +| ./benchmark/b04.bench | 99.659 | 2000.1151909828186 | 50 | 50 | +| ./benchmark/b07.bench | 98.687 | 2000.1153008937836 | 34 | 34 | +| ./benchmark/c432.bench | 99.235 | 2000.1161303520203 | 28 | 28 | +-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/run_exp.py b/run_exp.py index 08b62a2..8114a78 100644 --- a/run_exp.py +++ b/run_exp.py @@ -186,9 +186,9 @@ def multiprocess_run_solver(solver, input_file): (path, filename) = os.path.split(input_file) out_file = os.path.join(res_dir,"%s_%s.txt" % (solver.name, filename)) - #(status, time) = solver.run(input_file, out_file, TIMEOUT) - time = "-*-" - status = ExitStatus.normal + (status, time) = solver.run(input_file, out_file, TIMEOUT) + # time = "-*-" + # status = ExitStatus.normal fault = "-*-" cube = "-*-"