From e467aec64c74cdb25af56587ca4c0d012532ef16 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sat, 10 Mar 2018 20:47:30 +0800 Subject: [PATCH] auto commit --- notes/Java 并发.md | 124 ++++++++++++++++++ pics/acc42b0f-10ba-4fa2-8694-cf2aab1fb434.jpg | Bin 0 -> 32768 bytes pics/d4a05b9c-f423-4137-9510-b6851f089edb.jpg | Bin 0 -> 35840 bytes 3 files changed, 124 insertions(+) create mode 100644 pics/acc42b0f-10ba-4fa2-8694-cf2aab1fb434.jpg create mode 100644 pics/d4a05b9c-f423-4137-9510-b6851f089edb.jpg diff --git a/notes/Java 并发.md b/notes/Java 并发.md index 92f271a0..db61c1fe 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -38,6 +38,9 @@ * [1.4 线程兼容](#14-线程兼容) * [1.5 线程对立](#15-线程对立) * [2. 线程安全的实现方法](#2-线程安全的实现方法) + * [2.1 互斥同步](#21-互斥同步) + * [2.2 非阻塞同步](#22-非阻塞同步) + * [2.3 无同步方案](#23-无同步方案) * [多线程开发良好的实践](#多线程开发良好的实践) * [参考资料](#参考资料) @@ -661,6 +664,127 @@ Thread printThread = new Thread(new Runnable() { ## 2. 线程安全的实现方法 +如何实现线程安全与代码编写有很大的关系,但虚拟机提供的同步和锁机制也起到了非常重要的作用。本节中,代码编写如何实现线程安全和虚拟机如何实现同步与锁这两者都会有所涉及,相对而言更偏重后者一些,只要读者了解了虚拟机线程安全手段的运作过程,自己去思考代码如何编写并不是一件困难的事情。 + +### 2.1 互斥同步 + +互斥同步(Mutual Exclusion&Synchronization)是常见的一种并发正确性保障手段。同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critical Section)、互斥量(Mutex)和信号量(Semaphore)都是主要的互斥实现方式。因此,在这 4 个字里面,互斥是因,同步是果;互斥是方法,同步是目的。 + +在 Java 中,最基本的互斥同步手段就是 synchronized 关键字,synchronized 关键字经过编译之后,会在同步块的前后分别形成 monitorenter 和 monitorexit 这两个字节码指令,这两个字节码都需要一个 reference 类型的参数来指明要锁定和解锁的对象。如果 Java 程序中的 synchronized 明确指定了对象参数,那就是这个对象的 reference;如果没有明确指定,那就根据 synchronized 修饰的是实例方法还是类方法,去取对应的对象实例或 Class 对象来作为锁对象。 + +根据虚拟机规范的要求,在执行 monitorenter 指令时,首先要尝试获取对象的锁。如果这个对象没被锁定,或者当前线程已经拥有了那个对象的锁,把锁的计数器加 1,相应的,在执行 monitorexit 指令时会将锁计数器减 1,当计数器为 0 时,锁就被释放。如果获取对象锁失败,那当前线程就要阻塞等待,直到对象锁被另外一个线程释放为止。 + +在虚拟机规范对 monitorenter 和 monitorexit 的行为描述中,有两点是需要特别注意的。首先,synchronized 同步块对同一条线程来说是可重入的,不会出现自己把自己锁死的问题。其次,同步块在已进入的线程执行完之前,会阻塞后面其他线程的进入。Java 的线程是映射到操作系统的原生线程之上的,如果要阻塞或唤醒一个线程,都需要操作系统来帮忙完成,这就需要从用户态转换到核心态中,因此状态转换需要耗费很多的处理器时间。对于代码简单的同步块(如被 synchronized 修饰的 getter() 或 setter() 方法),状态转换消耗的时间有可能比用户代码执行的时间还要长。所以 synchronized 是 Java 语言中一个重量级(Heavyweight)的操作,有经验的程序员都会在确实必要的情况下才使用这种操作。而虚拟机本身也会进行一些优化,譬如在通知操作系统阻塞线程之前加入一段自旋等待过程,避免频繁地切入到核心态之中。 + +除了 synchronized 之外,我们还可以使用 java.util.concurrent(下文称 J.U.C)包中的重入锁(ReentrantLock)来实现同步,在基本用法上,ReentrantLock 与 synchronized 很相似,他们都具备一样的线程重入特性,只是代码写法上有点区别,一个表现为 API 层面的互斥锁(lock() 和 unlock() 方法配合 try/finally 语句块来完成),另一个表现为原生语法层面的互斥锁。不过,相比 synchronized,ReentrantLock 增加了一些高级功能,主要有以下 3 项:等待可中断、可实现公平锁,以及锁可以绑定多个条件。 + +- 等待可中断是指当持有锁的线程长期不释放锁的时候,正在等待的线程可以选择放弃等待,改为处理其他事情,可中断特性对处理执行时间非常长的同步块很有帮助。 + +- 公平锁是指多个线程在等待同一个锁时,必须按照申请锁的时间顺序来依次获得锁;而非公平锁则不保证这一点,在锁被释放时,任何一个等待锁的线程都有机会获得锁。synchronized 中的锁是非公平的,ReentrantLock 默认情况下也是非公平的,但可以通过带布尔值的构造函数要求使用公平锁。 + +- 锁绑定多个条件是指一个 ReentrantLock 对象可以同时绑定多个 Condition 对象,而在 synchronized 中,锁对象的 wait() 和 notify() 或 notifyAll() 方法可以实现一个隐含的条件,如果要和多于一个的条件关联的时候,就不得不额外地添加一个锁,而 ReentrantLock 则无须这样做,只需要多次调用 newCondition() 方法即可。 + +如果需要使用上述功能,选用 ReentrantLock 是一个很好的选择,那如果是基于性能考虑呢?关于 synchronized 和 ReentrantLock 的性能问题,Brian Goetz 对这两种锁在 JDK 1.5 与单核处理器,以及 JDK 1.5 与双 Xeon 处理器环境下做了一组吞吐量对比的实验,实验结果如图 13-1 和图 13-2 所示。 + +
5h1UtcFdjC4=i$@69);{kVBc~C>~t^r^ZXnAx3B-{!PoW@|WSk#%}Mz@Kwoh2Af zvt>U8*;aKGSKuy%09b_0<<%c2$dY8pNv_#RMAG+h)n9k ezjmGkj*e6tdTToaz!Jj2^{DV2{1UV1^%QQb&D^^)4p2 z8%X&_#?lv$y>$WHWAcvV@X 0hTo=aSq)}gyBy0Ok^HC%r)dweDBL9bjuaJz%F(d3*!F>ossMi K;)WjHX{MgG{=baZr~uqnd5W vB=d~#X`#fZMETLGmb5oaK$KNp-4o+56i5DNJt ztpxT$kKg1Dm2eaLE%epexT 43SxS{1hG#*nk~BKAhKzgWE}%arcDH+eP+KKsJLxMDcAw~5ALGYB?d7MS=^7;nf8 zRTl4Z8%N&t{(xgSCn@NFs!W w>gkoc| z_c61I#7yHTb~eIG9P)EuS&=`*A 1)e`YB4m9epop^{1H_!S?Q081Szm5o1Bll z`B|*QDk9?hc2}lqHL9F_l hw{o?(~$;{3I(?^b-AW5ZqyLtC6ao z)go5-^>OjDrZy5FZiyS&SCO#h!)bJ6$PX)9iB%T46#AXRUrpvaOIw#`VpK1oD`*ES zDTwtuo32G+-d}sE{x&|EB4B%_8pRgGfrTc>*nJC9N2`e68F_7@`pw_9Oo6ufvx*;~ zP>?W$S1JwC8!e};DL0^)A*fecq?aH(#dhLpoh{pyiw4LDmf<0;70UsakhoOKZzawg zbM5SmkB- 9HtyqU^;9T zU~H|bqGRf#ZsA&0J9v$Q63!#yDW4dS`N3QtaqIgUF3dke3^i8hnd9kkZMTO|7uN}A z(CLy+Pb#&&T}o#Cu`GkB-Yr(MhE5ylvzPCYIeT=Wu0z}Sig*@RKW`#$4h-;YggAks zN*?0C><+uY@w#^l(F@VW`)e0us=k1cBtGQ%hIHLmvaEw*@X>f4X&?sRBtW#EDBXnZ zf|bi1Q-Y)UzxsZ7p3+yIujB)GmR7`v{tg#oT@LQecK>p{iuC6en(i{)_8%_)Xb&Y% zZ*!GzR#{B~Q&={_HEdJ#+9j7D&0yS_iPgKq>tYYx&R>(;Ojzc$37!FdM9UnSEXoN8 zb2jru52f|>>K?qVrF!@|)3TQ^bo?ClaFcB^= %0xVWPJDD}mfZ{lPMUB@!($4*20vd3*A92;{x@|_OV6PXO!;QUtY zH=r$)@wCJ+xjzTAazvZ5AGrVb0q%DP|9^Io8zKBswE`6PTf}w(JJ=wZIYc~y&UMF$ ztHiFh`rEx1xeXaEUoL)%(^&(j1Mkg<%J|`%{zkEVt FB8nNE))AH=_00j!=^=Hd;5;5^?{IVCm zOguha#CuBJmBFc#s6w2cWoQH(x%Kn2UF)w-#2H io%EcW! zBb1F4#SJ+WRy2cVvEq9>cu(Bw?U6O Jz#542sqz29gqyS#Ih z`|Ro?ogca_o7QGW0#0dFaUq 6PP24f&n#j&{#y5~p zw+1stI|M{yK3&Ot#9Lq7pf*fK3}#gA&}JbO=@W;n{Zgas-2s54%v7g31(q!T09O|0 z(siRjXNA&_<7uOqBfmVpCo4!6dpwn9Ri0+Bw^&f9P5hwNan(JGkM;rBH9xFd4x&Xl zsET6OM_*v{uPtds`6J5LWlr{fJ^RY)R&mBFj{ Yy-k)1IoMTvQ=t4(7_Wlad_a|tV zPOsFy7=A4nxg=>ZS){;}AF#e$N3QyuEZSzW$+2e$@l!9 Ga5MS`=t6f1KR4*nh5GuWM8` {e^5W>g;e!PC?{K|)$2Gr^lM6Dm*aI%K;{qm z-JF6px?R-i<5JkdB*BveSPPH K3uPQ{ISEuz>)L!E^lb88IqxOcTo8uocOIt3_R4!fOYvGd4f3EJMnS7 zjq#;=6c-@*;qw| 9t1-M%IA0=B*3kS&$E%Hq3Kc0ZPKZ1L&@rzL|)sXezkd>1;<#jWkpq$XxvRPy|T zNwE ~J`uq~B`0R8;p(`^F5#c&B^fWYL_ais=F|+kkC>1ma)?JR4eaW< zeZUvA9o?&mm-wM``Ich1hbo#*p$npn+dQEEvelrTNnYu23(O@}hZsRZ^EIxky`MHn zq1*z=;#3)+EUEMHA;yxgotX*{#v8bfkd64el&9y;*@aDx<~T4*U)m_l(o64ximV`L z4j`Sds@;aY+Cyj?g4WtEf5kwO8g kuS{3dYO1Vim@W+ z^uoLX+Xj-B1l)s1AsM`mY~6D;G5S{KTxt8a=JyLFtuL!$Hn=7{C)4&{x!9J+Y0}xB zwJdipCQBNL&$I!+Hh0!foOtq}z{=VjoMOsUZ(QV8bu*5*^)3J0`D}7p9;FcMDcz&@ zih*Mz{2X`$8bvWFs0tl)_9}T+QvGsfnprE}J<{i9Dmk?MM!@c3Ej#agIN52%9XELA zo668d7Nw_xjW;}N63FHY3bwLiM1bFIzfB0fnXtp_^XDnQf1Sf*HS!#s7i<@yW55Yc z3jVhgr2nA){Ciqcg#71I!8<0e6Ii`v7T|Qeh}L!d*NFZ}=|&|mQ&Cmitr_!jmPk7| z9BWT&YIBQ2GNFX9(3pxNddFbZK&N%~q4OBTr9lB3J)Os=niJ9s$vZ2W@Pf0U1oe^? z#k{V#dQH}`F(bB+x|X5ya#nCga8K*v8E7^Z2P4FJn|<2S5X)aB26YpsKx*Ua0(2F+bG`Q zZqyVxx(6AjA?UtqGgrh-sO&bheLgo|eOc*)?A+K#6oDCv-e3rFz&wE9wZ{`+TYSL^ zAi;CE+0@$f1dhJ|(wNC2FsSRtesJFs?5j>!!|=xd7`}m~hboMFhFG^JYtnkh#%5I` z$n_hpIoi)9J53$mJ4$6#pQsTZPw8UBZlif?AJ(A_*e2m^!M+08{9#_>+Am&TLn}pC z7lx=zyYv$-^gp?%bJR5c2!T6%8lqz54Wm^(om2 $ zcguz@(WNPVW+=!$(BFHtZg(TgK XheiZ^;MmBiFd!!9&Vhx+dKvkmIvFgV+8yahN@L4Go? z8L@|n!sEQYBJn23Q@2P!MV@*bVonnfdrEs`VpU}Gl>|^*QY3*ZLpYC>ybpUDHsXz< z$6m^N@7FaynuEEGO?{%Qlq(!{Z}>&Uq*uh(S5~@bOlUScM|ls&sw@gQTe`_(fQ(;D z Y > z_V7i;{u2~IUue2Nql!D?rC(=rR&Z@d#SbO|4}SeDDiv4SeNOf6@zV?tHT4)+n&uLi zu*f(9)b@SHya6*R#%;rOR0q}3l$?DzrtS)uO4*Z-6nA^~$C;L3+}M_9c*>%0CbnWv z?wSevkPFEj+_c5-EltMkt{k|b%f;q4c|ry%Yd=xEbb2}R4H-VV?%JCdtVTg+2x-7e zb>6mC#YUxI=r0+__8p2#sw#BLKM=0uWWt*YZ}Vm6H3lz zB_%%K=~B%#RXVx=Ca}~6YoJI{N$j4wov+6jJu6G)XnU1pnF#;NEuzdkNP9(<%-6xA zLsU~uu{34VQ|2A~?`q$n#YR^IICTj1ac{}{9|amhzE1>Uw)#fr$;@?zuKVzWZq7zn z+Z~yMfU5?-M6B;3#$8)iCJ!!h I4c zbe;puKDlIbFsPH3Kf@U_W+tyx>qRH_T8emjT=_7cp3Co-$*>W#^<$7IAqn;#C+#8< zv^;9*`(QioQja+1IgaT=Ky5(_eLtwSH-r@4w1ywY;$n$WO<-p>7X@;Y$%VuYJcuYX z;NZux8epIE`4-s |=-oVqgs9iV3Htz>LEL2#93+ zK?1%vaW?&Q!Xk*&u84yRiEHpU_>K%7_G^+QjPOE@KTFdeu_xXMN+<}R%sHF~NxYWx zkA*8je0rM!fjC$qdzU6h8wHL(Ngo@a89T+P2v*qj_wE`U4Qr1ePxQ_z2==Y0t`^;D zQ8*(Jcds$-R|VpmurKg1=pGrkX4AsEg~sy)etbL*-cm*6!9kwZ3#deX*%W1n_DIe- z{iRlJ;t3t&^>C>XZkmLpGC#SFm#VVZ($v!B#HH_!x0iic^K>}x4pZ3izuqrNtQ$87 z3K(mHenhsTo`hT+*bHLK$ERHVkg5ilPpon~r%ZjOdZc#pqRqwoA}thzW2a?*X?R>< zBEcksaTVlXABX&4B&V>M=Cv)M=svL6E5h5p59uQTEEiQT;;Gy696WnJTD3WUDdB5T zcpxFmnuEd?3S7`#w|a+Yxn9rw-3y!F$V!M +sx*)5#Wr$6DiNc50V3bVatF z7gHU@_mdZvB!Wn$1-8q`?Du39&Q=e1$LPg(Q }SC`6%%1c0t|zltCfa%y^jC39*Al;FRkcs-1lLn9(p z`MY>Scn6%N^G^wV%$T6m&A&<>Z6hUc|Nh6mfW_LV{rTgSEnH5Jt;vM4=^O#^o$8k# z7ya^1{zlQixM8UC?xjaL9~5$(-R>!+ZIOUAL>%HTZV4s4(EW#o!1RB`?f+Z1$v+DB zAMMTlTU)N^whh=~{<<0fTMObI;V#(M7q_awev-R`F~G#GWlvT06F7gY9*;B|*cH8v zG&yzdb-teSvhepBJG<8{mbRf}` meD<4H+%` z&n1XV_$)Nb#>Boh9KSbxxe#vqTI0MxR`E#Y0HwY2=nN rA? ~* ziSuU6-U9>bSs~y)J3q4I9D4b12&dZt@I)7^YJoe09lVBQ)d3;puHaeToBz8LHT}DJ zi<;*N^euEDMuGQz7gJ*7D3{z`CtP=a#Dn7{mXl%oJN3Z{D0XmgF-a0|>MVy78pV2p z1Wf2Uw%64(d#C!0P+KL1Z!Gihf7=(762!F$)yGOZ$Jk~_y;!ijFgq=fFOT9l{t&|Y z73VaUkykL@z2&IrM1O6ZE&ODzrj14lL5Z)QQ{e;{^S{F}6=UtQ5tk=cG?yB%U^hLk zg}DOweIwTnm1xZ}SpsDzvAmZCPK0}0iL+bPzRmkV;qwxT0%2~h7UDc`; %N}yGFOOaxhPX|fV&!x8LNqSdFRJZFUeT#vgRifDw2x)>a>O{IHixi zKJ4r_L@p+bI+Z7AlK^kd@PM5Tz$ 9{jj`b1m)UI=GVDl78~_mi7`^hMfg) zmAq5BKRFtL2ig ;UbDR$iH?p`c ~fO-xWlKBm3Sd4dsTQ&&)CmvqsHhAZo7Q=tQkU!$YKp z62l304vkaVdp+r#CH07U_-iC$dLC7c%2ifiFJVu4!2eO1WhGF`YjpMTMJ=5hRBFOI zD8=LVIig33em}yFDjl`?7+-<94#>PA-7P#vXIL~GpMw0QqP8SvP~lL-lTX3!Zgp_v zg&|q 30 7&Q!9Y^2}fraaqicx-%S*B=(%|6*AJsY`2G4;`nH6l{NUOyWdbMO z7c6a@WLqWyp|Hqv9JQse=}boOX^f9`fpZt&T_sMf+%Hp$W#dc5Uq7%Jr4#4dhYC9@ z5e+@&-X{Cd9D$thxfw{9vP)Q(;u&Z@QFN(kavr^yl{;mRV6RsZYgepHz)e`|vnF56 zxFeJ;G50^(yYhIb`nG= pI^b zIy9M7n5#<7PA=nMn6{N2MZ?=lH0@OKdu8?-dO14luACrQlpNTz{q|-OAbdj);`2~w zWDU1nwblO=W^JKv13pm%h5V0Nty9Ye` j^u2NqZUrFKo$FKqKhje?yQ0m|f!%Kt&- zQ>{Iok=#n7q8%mfaM^V0ijgq94={(>U|Q}!*i*L72t>s<%sqL85em$0G{fIrtIdE% z!?0h#K9L{L)7~icJf?cdkd8U@lLJmjLf-%2DZhgp7P3;HT4J0RUQFsO7}_z)gb;rM z>}z4xWsj13wGA0BL~sf}H)*!Nc4AlquKH(ubC~f0MC>PA4%QHhi!F2tC>Y00s)@S% zU~e0>;xQ>8q|UYzUK!!W *hd8X zHgV{fx+soBr%&Fmd!xKC#rzxGaEBm#QoKjQMs3nk$ZFe;ktSY2_w}`3>I+fn5@31x ze$a |O`uvo} zzdV2FAv`h=pz5_+cw&}!5(Xg(xJ&ORN*|kbKbbN DUB|G4??Z&fkWUx5Soa1j zq}{=Dq4hY+wt~xxCPkik4=Sy_ZHka#%*z)?Bl%zN8(Z=j*~2Wd=&knVs8)6*alWXh zk=kMXb%~_0f }2-i<)^w^=06xAoM8Aa#uZv0i}n+h9c`aD_7%E|L- z-nNSUvtY8}y4GJy%U<0E7vfpDGRV+$D?74U?BXv wJDO~A45hZjJ11_D@%bB8X3G9_r)nsm+Ix_eK2Pqvy zT@$`iRa4>zC&5*!w_QE(?mVu*ubVF{AY0PJm+{Vn#_Fwyp>UhLZ$SAOxP<|<7VPEO zq(oiW5r%>p9Ui%HXQ1xsH(*f3FQZ8gL7p>r3CB_V&eSUei^5(@Jm$-hZ#jPOnC&Su zix=XNs6KufP5;oQ;Z+%XyW8f9TqU8W1D%tuk1UUNHTYl|e05cec!8wOwu?lnYg2zM zcB@^ bZh0ESA{Pwq8;-kL zFx{T8xe*X3e-nlzv- D^$6`S0xkh`>{$Vu&t*;mB;gg2dgj7 z=N`ui_~%nROEe+~wiJ^eW8E#PT60~65e=4ifTcyI5V(px)1P#qBb24&b-P{jNDasj ztmZ$UU?tUc_%oWr^#mS^9E )4m`*(cT^XmM>4s@{wO3XI`JkTb4*}HN{A}33IC; zwPB??kI&KAYO*Lw`|)&AuJ=Xr1B!OSfgN68PwsUXU6QA={TpypZyl4aEHs?1Jv@u` z+1&owX(;~M-m@7bF~l*7W#U QoXvRn@DL1&nUH#c8Ok%;aInntz4Bn+D@O3&WdNN# z;h fo;eP}Pa?=oq#k~>5F^J*7A>ZaU(#Z;T61S3!4{P3zRgNi<|a%VL=b9xlgYhqbyDz zlqX8JbC%{-Z|+MM5a`|)2E068z^mKj_rcMFYt(?m;XfU9lU)g!#^!gDNu0w}V7eQ1 z=w~x6`mP_Vew9*^n2G9jzQYofyFe!1 gR_>TFr)z@jmMQ1nB_5qQ#bWX$^xShQuG5}Z#fV+v#gAj#(U=ECqfebdPU~R!C >n9;uVW*9J=(b_NjxrUN4D+H1ng=D4|t4v)!q<>VoP(K#K z;Bdz52AQQ@zJ}2~UZMGDG2xCQBC1n{af2lD3;m^iIwi6quk9hk=Oxn^djwVyM!RIn z1S7#3y^g&;7CtZEjTr&!MS6gb$c}M5wFScs66}EfU$=G*d^mwA0ut ipPDFE6Qp=bR28vhYLUUd5b)e-|CT{+EmKs!zTKs*rn@TYrxv}J z*GF^XnchL|L>cLnAgm8NL8Q`c1U!|PN`T~^a4h0G{fZv+jGHT8(>h{a!4&LGT~j-Z z+JXl)?ws?h#({ag)bP}jS?2ByH_&Ft9atOt6=r?x02MxmBnNP33efBvIka+7WtE)a z#0xQvLsx>Ae1`bu*+CLbE-vbL`8_8uFT--2`l8<&x9FNIYlgu=9i68k?|cKw)~rnb zhdKSEDWXz(9l;#;2i;++HPCC;Sp*vJx^+TY<>TakTJRbDUZLT4lJA&@b1Vx;HWi!^ z Py+Hg`rSV=7QgLj5 o(h5 Uk@rbjv-JP)zmx1GGyLHIk{b+Pc1 z3U5vKai^A?Um0dEe2zdZC@Z !%${?EK(#l?`Zi}b{fw3fj=>thObzJZz~g^2UdG} z9qH}=wCzrtLr;({_R`YpEp$mlTH-=M`=S^I^F2`y*$T=Z99dtMO^weCZZ{uuiog z*& )#3mP`;J9THq#obS$ zx7H!S#?~w1gwcga?kyrUo)*h-nwBr22`LF| lw>Z~SkgAcXyW0{;eonWEiWZQDJovV1~aY3uG zgQw?fD{@{>^_h5V%}p1qXa?N*Nn%%@phWvt;n8PzN7u^%Gk*5toiU-nc|V7goW9mE zS@`&gcl0@m)-5Wfs&me VPED>3($P9y1X*p7?Z{^#`**uExkC)gFoS*D5T?LFdp zKX5)x^dT_t>qv9By9gc^Wn0QDwkR|6-I2=Srt6kxJ}Gt2Jl@?v0bT$~VyVV~5iHpn zdG*0s6dnG~d 5}+HEKJUsVeZ!Fqq`z(*h}6NWz<$NwO#{BozpzG~EoR zNr7())cEY6T?V=*=A61hT9u@DbJJ}n8+qOboP4!FlDp=m;VAT0RJKj|K#Feq^{$ql z?hLlME5AUFDqa*#jt3Spc8lhVmR^lDAorVV^u6rYuyLCW> RT`DLF^~G$T+K%Y06GXOZ#duP8+)%6R=MX)1 zMAIvq`=(l-zUTZ@sQdK`!cQN7 E+8l|05gJx%{ z{xwO^pV854)wah!N=cw{0d`aOXIp0jIdOZ{d|e4$IA-nj4C=9Z8J!i6ZqgL9Fr(W; zPgU= 7vr2U#YOU% z0rUIk=TlPEQnXdvj7|XmT`dxuaBGXXUpBdHz d3UXIsQnM~{C&{n_Rs2tv`)SZul~fY;@GO}HrzP43w3o-=S`OkVN0se z&gBL<@2D=U5nR~hDMOXck%3aU*p}t&FHR4%Y=5P&dA{+Uue}ZCVHT_*{Bq9I(f9-d zD6#5DT9-1-2w!wa=rUX6?UU~5xPE@%;csmD;gQJ^1r*Sm(_IhsR(&a~s!g7s07xgO z< oN|IHB&iEo4t9>#ZIw=+GgzMa};KbFBo2ZeKZX>WHVtqs%W-rNL)OaG))J zlS4{ Gco7FrymUSA0t5` z&Ez>Z*J|WxD;d5&t|pB6{4C2sbr1DYwx3h1JX0*nIBLbelg6s+; >vlGFVVrTLKuDp+47yL+r!UN#_%Jp*_PEFY2Bn>@}&5+ zB<}WD7D^QeCxDodnENF1X?$NZT1!rWsbDxB>yDV#iCKo7lrMasyY1}9QFf^uSMV!* z9}}?Yk0xbA4^Enj>HQdYc`A-OMdq=mm{Nq61$v}i^${fxtxJ7RwxDH2Q=SO*%!fNS zuoE5cL@MARSC(7~wpU)=S0F(s6Q%F0uE ^)^+F=(kW{jslLPUZmG*|SardtMTf z&D@PVIH~)8vn>*+Yp(7zqD;+vnsagjfG+)!mgzKa1VD*uFmADV>folvb+P+sZ_E#^ z-l@4#N5rozq#5r%=i0K;0x1YbP3jgakF%ECqj=T8chY5bX_pG^hF1jLEm=RzT=6A6 z6EEm3ezeEH*Gq8+qOyEPi33Fss?&9a`t{lB{R~rL2QT^kXKQ5P#fRH#y+^OOs);rT zh=v`Uva+Tgpp<}|N6OG^nV;nIitHGRCZ4sOf?hJe#Ovf1j*ef&?4FnSAckeVrUMhc zE6i0miO=HssJ2V;<(uo5I_F*;YvwmD*uVE0%Of83fyeThNT-H37MdL8TXW^x>RNoj z#jG3SMBxvP857gPo)7+k<#^U6EV&&2VGILRl}0c$Iv5Vf7rkbeC2pnr-4)M&R1l|f zD+sG{vIUxvsbEi{ywuDv?>i_zr>&saApBza{-qE3FPv lR{ z*U-%8^aJYDSu7?;u2iD8QTq!c(T>yFrYFqSB?Uk$B!h7ZRsq|DdfqTb8MF{p*4a5S zeHeao`F&m33$Ysp_uET-vSNoUW$R!>ueU-X2K{~DPOov69iFWN?{Wm+ {P{%&M<#m)GPOIw-J@9-aCrUYyY4;kWPYuFZB5>R#8_OyC83un>of zkeQ+Jr=9w>t7cVmRUjzbk6&3`-<^dUCYV1dZp2GVC+{3?P0$3ezci3@y`5}BmyO>d zSW7r4E&}HCBqM6p6Tj?=3ER>bmXc#(Qr8L%+fT@sQuQlE4|Zk|k%;P(o+&Q|$i$SI z4l28Y*q*E^zoT&gl?)TMa6}0B^P^m>%3<9m144zRxWk6BF84D(=qfFRCO<$I*1gk( zLWJ`J87H-F(cYY)cIJo%g6ZuRj|_7Qi+ZyIezYUO5$apSR(r;iToHPo$~Q4~Wuq|X zTW1+3Y+X|wMpd2_R~%k@vA(?zmLW%Gly^&Cd}QG~bcmA+GB@e1!A-L`4!jtL>$B z>L%a@SUSkQ2bS20vpejUo3Ufmu290qVB#scXDM$Y<%goG%oTZvA;)nKN@tWmTP)Q1 zj1zb^Px|k25IUC=`e95dI_79;PDNk;)N><2bzxizApL`*{JT0THt`qRlhw9p%Jj;E z4P|HZ!U@1bqv<3h_~=XYoAhjf*r$-SdVw }d_58>G|KtCE?En7-iee}l literal 0 HcmV?d00001 diff --git a/pics/d4a05b9c-f423-4137-9510-b6851f089edb.jpg b/pics/d4a05b9c-f423-4137-9510-b6851f089edb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c5bd7c105bfe2165b6de9d18f1500f9833120b9 GIT binary patch literal 35840 zcmeFZ2UJvB)-Jk{B(Vg^sZc;blH^Q*N)pLR4l1Yw0g((PMG#POP*5ail^_a|tH>Y- zNRXThBuf>sgre$hPxt-%obz}0-?ztj ^r%iSxjjYg)Qm z00{{Ra0~nah*Q87fb`UZ6IOursNLJHnPMovXePQ^q=L&x-g{2?|245vvxfkPlU z51e8kA!Q&TwgXTAARz}w`)j~|{g9jj$4EhWnu?kRY*2j$I7LEAdWwwn*QmkPkHPN& zG6r(SbCMbqXN_-Dp7&&u3QfvA&3C!7h1p~f!!Ld3Q5Y393o9Ethrk6vA>oTMvU2hY zib_|mYHDfg=w36uansD)!qUpY@$S9*PR=e~-afv5{sDpEPa-0to<56CPI>+!HSOiA z^t}9n!lL4mH*Y_Dtg8N0Q(ITx+ScCD+135IXJ~lj+vwQ%#N@&vdTIIl%IexWc4v2Q z|KJe!^XL~{Bmn7O$oenJ{zMl8NY^PcGEy?iUv!b2@&h+g1~T$ 9>uh$pFSW+=g0|*jx*#u+w~_AuQ2S!txM%7r+YK*-hj>+|MD;OL?eD#~D=y_RL6W z8V%kDHUs~rhENOTgHO<{^%^j!sso2`J;6#IV)g4@dPOD{(l;I8Euo>SUV7<(P{FjS zrWn9v;?9%5TX+aIR$Y@)bs}*pm{$BA*6gDI_LF!?mEPIu-xlR!F}aK?pvqViVEXGO z`$pI*860Ka|MAA_OOW1Zskjh>HY;4Df@{l1s>s!MzRtDPyYKaItU(~){2hLa#qmdv z3TWT2FmFh0O{BKYFU6Yo*ooqd%W |GEUYcfDRp?hG2OewnBhBWu1_x|{t5Zr{Of6Q^(%x&; z3|*nQUP&b<@`Al{lN(hAFD}9jcd)`fqS{_h_=vnKfjmteHch;4w;m*el$5wqhj}Yc zlHANwSH8PY@nqj0ZiyAKaV;|^FzDt^ b&QBfRJ~j4K^lJup5sohN#NVquTSa z)(f9rET+Eaus~iW0{3?Pp0E=RC=eI77;j&oet&m`lODlm&+ISQC7;EHJBzWu9=*;< zr))nm+p`n&j7O;Tv_R6$Os!?|LDo41Ro6Kry+7 eE5K-tho61BM9DOCrW+KSU;#IJI5h^g}h5c{ka9w39%bvqvqg`h9ZjZ!yH?wyL z`e6BS+*HTxIn0Z`*hz_Jd%Ot&cctBp;&a}0K9m=xRcx-1Jt;O@G>jzzr$#$HE~1a! zjgqC@rwDNp3b2)QR5|>t2lY7K7`t_V3JO>(v)4|tS|64x`gSf#l3z>3Td3Ht40ue* zJ>qr!ayM59)nt%YIBxf+Y2GWF3@JwXp_?@h8}?i_`fuQpC+WAaCy{k!cCM3UnT@Pz ze&)#riGnZDeW!IN1J=oXk!sl{I7@8!!U&SFzM*lry1lLnH9Wai9KT>PX_ J|x_UH{Xf>_6`F`Lo z?R7b&yo1}dXXj){_HU$goi=j3LHPqeE~fALBo-q3Lb~(2!oU#H0@qjSpWpUTyWGxt z+P|TdVYO1DWZJ1lS-fhEn!>f}dbtLrA5;!<%`iGkXw-Y_+Hm{mr?lWp7_NHR4+Hm$ zXV|K_rPGMOHJYSMG%)|;WMVNy?XByRcs{;vW~CqQz|oM(yP7Y~r`qBzvec?~qaxwA zDce0_IqV|~Mt+p5h{7+_7l!|ggB*l6Tvcfs_9Pjg%vId7GhR$!^narU!RrjgquyR& zjl|!ii+uH_usw#)T1k_S5BX@ljITm*{!WP6_h`+e57aMg-cWn(-cZWi3-o>M72tWX z#np||P$mw45hV@n=J>A0iMue?qGa9S9Q0-;rt|oELdmS^u*fBLpn;KOkLUSZtkuo_ zj~G-3i ht~2XL=bgzuuap(-7Fyr99PEG!*Eb>n!C%HwK5Z0P*mCJ@ z^V}LKPgT5=yemeB 9B44 z*bxC~hjD6Mwg5g)BQ }NypRG5Q`HwK@0&K-M9Zgbo-uL}xbzVoDRX-TqM1sVt(LQcU= zvpen7u-TE0!*?pxxPu;wGot&?miByUbhCMgENbFVObaTxd!MlCt_hDSo|}P7VCA svtzs3p{Ka@ zZlrFsA9%X(aCimr`md1V$MfL$+()lkwr$fkiNNA3g3#&_bH~WxB^#W<;NI2^s@LB~ z_`ZnSXJ`7~TTuydB3;d{%9p;%Pdl;M{Qf9o$ z!~q*NtG#4J#hY#6k}YMzUDp0FmChefzPeJB(8i#`kV;PG}6in z%aa`UJR%Tr*RSY|xGeYO#aS9X$K|EO>v20op#E)Nwx$fpy4 ^I~a2y{r6{ zNY}?|lOoSlCLAIdGWPjNQmjC1p~>`bZKkQO4L}_7JHyX0^1Mv Kll$+ko;=_k?9Cp3*kA-`=N@m95^M^td*a!fQ z+9S$!9);6B57Kb!%;0#{5Gu8$hQgADm5gCT*4>|UAt8#uz9v@e#FA{)y45u6yp*n` zs(AmNLNk|lc@fhN`sRRvFcByNJk>;S@(WNd|0ta?*(T9Bmvp^X4~pfbawEDs=b1zL zskq|zziwo)4>#)N&Nxjzr`XW1f6^jDp=CRm6jo;fF%0~+m>i<0ue=ZyS(Qye1X=}M z3-WM&J(o_xw4Kj7Z>0*LtST1lpCH*WZXJ#F?&&6aPK_~s=>Zomb)AfecX3N*A@?T; z7g9r1hV@Uf@RSAqqX?#nRS}O;eTj@M?)E&EM2t-vs(1RK;#9hR(19NY`mFIjG}@y| zWrOdO?m}HUgPhv-%aR3a9`uIYtE`jNX(!UyQ6vM--hM>fL%fu;uRg@uM%45(haQ`4 z?llqewb0?hD{tYfn5>GD#~<8ONAFd|w`$O}CzU3iyHok$9Z85~-Nt~`k4LIP-FrFo zg4Q_Y1^s}ksM=u`#j2N$uZ7DpbDd1tCaD=Zm3c0zy3Qwr;WZZ|a9Tdx%;Me-f*GR( z@27UxSAwM8-&5R|opB5_aynI(^_n8vgO+98A)cS1m_IQ;=ktb1-)TO+gloxZd`u)s zML4@Q?YjE(9%;9OR7Mr2VEvPE`j9Lo&kpJKS%#s;+eIhg=2h_r1AXzgnZiT5Tb>ih zs3*Jk^7)2BF6~QDICFfeE^--5bymwQlCI8JiHv#_@xY;k*RRhMv=#RB{s;Q9`&$Yw zbVbu*Gv#ZJh8J(0rk8vFxkdG{YYF(6XkhX6{K^w+`%#~dh4*iciV=DdUI)*-RMY{c zxN$B(0T{h`xQU%t-lm+u-K`Q!*MA=Asx!K1d(dy7r+s0ocR bY6+u?QGbg;H;a=5^Pb&RF=i9`>}-SkoUbnW<4?a9WL zPq|X2;>XK3{LotKKr0Gk5c38XZZIb9jl2I%W-nP;FN)pCOuwP^#8+Zj|111#KJKo> zn8Ew#5&JK@(?1<}9O?v~;rl#RhRXz1S4pD=gCYJ78jaPp)$hFy k{~nR=6vzcm2%`8%9lU) 4srmG$8bE zZo<9##bW=&Hzaci@$d8Ek;fi{Vs`a7B2gu6#a185%oD>b6Vz4py$25cD=1E?%902a z>*6hz$v-Hx?vfSvO@^q>Dv~9=d(-ot4C=DG{S3y{$d382LxW&gN8L@=Ks|UUGi!C= zEEoR%eqD3 )%q}?rci$$_8 IP zYO1q6?q&i(GY68hT9J)d2!`tufjrAX#DW>@Crbj(KKqZ2O8(R6KP<@k4-5XUWWk>l z#v6J1050 P#mV9#SM+Y8O>Hj=(^=R0+SDi+a$%y2y8>v g6@>@W;tq5-r=w*n2>|cg?*;oeS}_QMPnFi{sO s9xsN!QViFs|9U4(;^J(Nn4It^S6pe! z%M~xj-LVYsid$z&<{wJN8VyF0`Kp$XzQ!RIGOx6$LG@J4?dq^%2a7xF@}8$BK5sHH zGSPZ7TcgRY5SRtyJ`Uh@B@zhgft$>}E8HSUI1mx@r*sm515zXr81l=3FyY({@gj3H zHHgi3rrF1i)q{@5W6GF0g6?(%YLnFk^^+X3UmoKFu&eDk9uNKso`SoSZLM{ABNA|D z*u)8jmMILI!0+Aj|L<(J@6aXt#s6oG6;3A$g?Z%!CjwKGW7nJBrDG5ALH;_3k>y+> zuy*Gw @SgjSkkaH6J(b40#Pi}a{+1$65B (%yJyhZH9S--Rd{Wu3ayR$>uTW-)S~~ZdGbN%74AcKEi2mP>my3o|!3@CP zat;*L0wN~=rGkE`qEoVP?6H$GRv$wIG@8csztude@`;Unu;sdXh4z&4*)iEY%>d{Y zCuX1>$_y90UEn0O_O;jJoyEH7QA|DEdmC-xn?j`l6A7Ims&d~DgLn88cSg8QMB3G4 zgTKzvKfpuKWv38q&KOtcqFGDTm~Ovk_+mqe;@O#wpvcsZF>EHQ+A9}@JQ)O}<0k+# zrrdAwC;@i^DTgN9O6wv50<$4%rWoiJIcB}9nZQ&1y5s19$(3SjZP^AE3VEI93a}R* zh&FAw6cNbn)guC^I0Ew!Tpkp`papw3xiRSBvPfPIM3D$Y#^df1fh(zCL=wS?7y9!B zk-?Ij>${OB`AGIHB9PRphqru+ue3q5Z%;`q9EQRrd>$9Mrq1$?jPfn59SjHWXRNqy zr$tcWDw|i*5AUtn2_9c3d^s}QBF}jzk#cwOwF35biH?HE*yl84>%>aQv&N* ?sdjtZdVMaXZ~jnJp7%$A+5PM7J89XQbVvZ@19wg1&~=y|(p^weZpx0c?DRIvbge z;a ikc=E}Rv_E#SEv}#=QH{+ zR`ps{t5dUfc>9iS*$;rP-;5-w{;r0J61rT7ic2JT5JgJ_Ry~KckB6X`g8$Bq%Mk-T zZzq06d2WSv!Z@r>YiAIFKk}LB&wO7UF_P{_EPxzDd|fUi0&}2MpoabFe9uLQ^goUM z!-D@v!M{BbD7UyVeF0#culG8r@S^ab>gxOf%LD@E@G? U-HtJxqLY~~V@g1Z)Eo4fEA0$JIJ zKyh^rq= ?Rof;8HKu|%BGOGB9K#HsF#e;I!uDNv;0V3cK zA4LQTW7MJ7 2fj& zfF4iiFC4;a7rUfKEXP%UF`1ntmu} oH0TiLurXe5py$v^IJzH(#rb>~OR6n0+UW+qo-wianZx4m2)_kE22|K;tN5{MA z+Jhv;Yc*h3BKQ4$%rr_@1D{Xc9nRabw31G^ByJ$Rmj1mFfxRtbAIsoxZ##AYlNu-Y za?H$c@CC*Ct**fBTiQJ#84ilvPNcI*HTTn(2$v9_1+b`-kZsgn=6XVln}ao$vaJt< zB=$AOa`{3J$|dVa6U(*lXwli?Kq=r)=$tzsZ6X4L5Op5mzXOv&0awO!{U+eo%yrdi z^RhJosp!W{K+jEk1I3jr*cty~6D|ktKA=jC<|G#`{Fcyz;Hnyk;bA_OUgH?qOfx$_ zm@0C|_Zfw;Z(ePulH3*ZNdhglC;>~_=Bq@A2;e59_=ci0wR9hN-~MJn8{R-UmR^B9 z+dS#fUO~Q2;QChcIL7EnYp2}JB(E77VUnnFk;UwgV8IcTqkVjOS}Tfqz}YKr{bR1a zj?Q4Ifrezaln(XW!(!Y1Mr`-Z0n{aJ sN9>D`z2Kkw&2VuOY8N;t0t=rfMy zlvX>*QE~Sko6jeaEpB;kZ!eKNl=4hg{@w&VFivURkdM9ts_iGT6|@7Ktu-dD@nxQ{ zxk)P8X$gfDT--gvAc|2I5oIT2=J70;3!|3p#c`4~U=(q;w)O$wNHY?P?cTCA+?*)t zeWP9G-;dz7!cDq4UU9!aEJtJU#JU@h&{n(MA24r3S#wE@le~rB;d=#u9OB3M9qZfs zBeyOP+Q;^UHYe8=(lsNU_+NZV%*i;j5wG;U=_L4G%Ma=JD5lYmakU~Zx*zbo%7J7M zXex20^Qg1_HSNBBsVGc}f3)lBRx(AhqovL1XE*w#Q?jplbiydsP-l?>w*Em~sl(a} zcZc9J7Zw#JT5XqpJZC10vh&RFX8Vqeb@h4R=ty#CXjn$)!4)lkzQ(Xo-g|8{M5Xt@ zFQMHR3@#rd7!74RmK#*g*vvTUiBfxV)~eD=!ANYnIupV#+4)1etlE*6um$4YQ&ahO zAx{PMY=$Cj))1Ja5pmwx^cLAsvn;EU zMOLBBYfD8M`$y@k__kHpMPN4pXTm}R_7reaAOdDbb^iIh3Hn8C?gh{71AGZ-KWstA znh1PFqdo9K_lN+;pU?LYmyUyP1Vl~k WEm33*Cjm0ru@ z9rb|UEPN-MJG#&Ao|I1z3cbC EjoB~WP)Z9|(OrbFI;#nOh55FQwM&V5wa4B#&+E=D84KJXr&Luxx{Evw^58GT zT>y#uS$xopv-iV ;O z#c+4r D`B zI<-qI`vE};&Fz7F?jr*KBcr9qK}Li8%hAq2v?kVoK4n+u9L}hZAoIsl*)>H~>`&v` z9j%%CH(l2#0&4!)@1KW}Y*Arzzg$woz3G>9c>HV9asU0lCLO;GI_hii4U!emll#4l z{^>Lj_VO|6qDtG=Pb13zfxcD3FWKCM)GVv>c!Dx~d5#bT %?N^)s z;%o+|o3iI*acowjcMb%6 ygrEnnG4S4-*fZ7GdHUi8X@r#H46pV zi~8s6P5Lfz7`3e9$o(Ec{jceu@V{t^f8oUiL3$E?3EKbs;(qZ= zP1jaxz*+P^(DzsIIfC?rj{i3mn}npC+Ja#%ep9(rsLm$7FKXdCIdv+YKaKeMSmz@u z(S)-QPQ*OH16#V~w-Bqwio&?(L!aUeOLU gjVp;Fjx;5 zsl*e3i+?*Z+#Ld=a0-X`H?V 0fC@RLSL*TjHfh zRNTh`Z|I1p+}4A0ooT4|URifl*2cX;Bj|7m_M@V~G%lkoHA(7EE9-&M(&NmKgWF$y z%hS5D)UdFp1U{QJFmWHXkWICE@aeOt*O!As3Gc3V@Ci~%KCZ{pW7ZfO+_P%bnS?Vq z^mXi;oicn%F~92)?dQZ6fD0`A1NQaB*UHPvz9*^F@yLoo?r7<}D|)A$bZNhnjqAvF z%j{PTvS)|Dg@s{0)xe>zr(zGvwb7(d+>NZid4)Z$iNEC-(te*~IEw=(4*y~6+yPxR zh@+`&nZ4%dh`>@7&YIBj33VhOlKWdYoSamU>C#jzHtYH58vfmP#FQ60DuzIX^Jrtu zVrq)+TqOMPFXynn@%qcnIE!2F1p)*MfyZ(;BB$o?ySkw#3-Mj}qb!kKzXcCGlSn6r z_A|$nu3@>R9NEUFsr7Cd3`)Iq)SnhvV=2(89YM$#B0vrd!*9~oSi#y7I9#x$*-fs> zSD&AA*ZATX(##W;VPr47e{Xm=cYEs^(>otDYPbo0vpjez`>eTHJ%@ZtpXsrv+&SwF z xTFcuQO?ZyqJ`>%L{goI_gXiA6aB!b za4^q~N zwX+9p>K(lYv25)PH81v8vQ&l6!qm$qE`$l2=zMt;V*GsBAP@-J?{wZeMm4IV1y8ce zg74tvaUI8(aoYCPIOCjYDOa-#dQRRa2D6kY4_w+yQVnQtN%ZbIIC1)SJeJPE86M<) z+p~6kUBQX-)2e^&?#k|sTXM2sl*_DqE{N1nIV0TxJl1@_)vwSehvZK=(8OW+8lbT| zEWKQr2FG ?3eK?hq zK7H?WO~$G{eAx2Z8HiV_Zgb7X=!?-$X(F@rvA&f-Z$# A3=IG7Q<1lin2<+DW|!y( py*R8#S_bVYTym`-o9p?Rqk>k &8lr@TYs=cf5zt`K&akG(e!1E4WUL|!wm`Z-#%Uie26+49| zVOxibP{_oLo&Vv2`^Q4dfRaxiEL-@Er4#+ARJQWpcfuz7NUyC-ybd+e=oTd17-I?y zZ==s2LONpn@JxIQ!A)*H;$^B}B)K4>m0$jSV}hJNJ*`FvFz=v%7a3Pk#!i8mp=VV= zZd$#aN;1CYmQJbbJIVnH3W{;vcb9l_f-Q1 pDpCxj7PR8yk?E?g*V>GbR> pS|A)Pf|aRHmQWr=BM_8UD2tccmVKAiK~C&V?v zID@1fXy#G&vePU>wCJeNIF#B qnKpB+u69Fh(tQcI-@c0>DJ zzGvnWMhPm%W>IA>sXT0z4WGPIjN7Suf`ptNtxsdxc5_67208~O9a>=|5>>r0M$I>R z;<;SO8V58!Y0H;MX3}hYn6(#Jw`}KOaaQrU_jCIK?h8B@QHgu2l_*R*PGYc|vSkm2 zTb#ro ~< z)=rC8+yqK7(^VB2QkkXA03}7}_z5-We&lPR2^U6TIL2%cpbK!wpHPS*Fy~;MNF5K{ z1;YpoZ1LkL48x;ji1Rg!0DY`S-%uD1C31(21l% V z#qMOI?fDRGAK((dayn&1AY>54PV{}4+IjyjGeI_Lv3# =3R3 ve19=McaH8`GV9>N3wr7n8BeS7y zM4$uIG}lhl9H!|<-WDcs! tZAPY9x`0^QnBo$TK=IPVFJNU*){y6%v%R}l;PJ*K#&IgZXntJ^&DN8u zT=lO2u*GfJ^mwh4qOz*(vujBkEM^4A@l_*(erEpTdqYG(m B>W^jX@{( zm5{dr411z}8ug)~)r16;Awk2IwcTEjt;48==LE(j2=20|(*12c@XDAhI$ a(_*kJ)jI7GWuBD^r~B zr23tqOxzR5WOC!y5mXx?*+OA@P^S+sf{p=m@$$!nbh|l>k{@0wt<`}DNEu`kfyck~ z+7A1WfM?31C~1>q1G+ SoE7Ok8{G`+azS+ 6O_Nn1{f z+_}m(%$u~)l0(1lF@abhZ@g^T2rcYjkw)q|8vjfynLl|&ptF^ 21vA5{1it}!ZwhgA}bKHt92szhgG6=2rhq#>)6962^le$=^5uS zPI&jXr(%(GEj;tVJ|jlm$mb+G5^;FedHd6F4JFN}mJJl6^Pshsdxgxf^hx^VN5)8p z+D+aqwhgOb2-Yx?z>Pz9ih-r?kjb@liq}Qsb}k>-Z3|ys+r9XN9C ArO-)i#zC#35d3HK60?RL6G=8XVjUeSMY30s=w+T+xdQigUzalSaqd6r=@aow{ zQKmr_vd_vztshOj@x7`A=Wb5pKb%pA+KBvYaE!yZ^M#*KRmfwt+k4m4E?D6x+fetF z#>Np<<=-3Qve<5m_Jq5 >3e6Ax@En-3iL3bsP459;2yh`x7D zKa3I^9a=P-EEARb;uw3jnU`7ZxP)|wa0aer|ICiNzAk;*$|Y6aWbJVD77=)xB}E## zl`LrlzltkCvSWGD7Hq{Qm5Bh8%Uj1tDuD?u25~Q$s1LDcC?84AHqITm)z@GuqVPV8 znRnJ?`b6xovh4@Sw%pM@TTes?2mYn6E6CT<$F^>xub|o5*2dDw7}oNZD>-?oKadN? zwS;Gb6&ugL2G4#HJ}H!uo?%E0a_Z3v4oSgp(4a{X9fjDMlTZo7-j%UzLXWg-C0;yz z&Za(n-_1w)si?T1K$f0HO|Rm1{{rr&VVoKRE=E4A(I?0adw!M Fl2rR-j2OERSyVYPO@pg$jn^RSv+y8s3^ukCkTf z PMB&Dn9LX=5dW1j-`EZ;>p5-MZhs^U0_g>1RwBTi zPdJnP6t!mpBDz*z34*dZPpne>wd0ZsN!;?W$||&qBC~J;7q(95^ImgIo!R6ze)%E9 z&)tl>cCi%EdKSw{h_->@3_6HFm(yRm>;uah#G$X*K~w50?m0}b`bx=+$vzOpu(m>( zbj!wdOI&K`+(#q1Z|ByAh%gI;oo=C(i}#v78mn0g6wl1l!df^Ve3IPR5oo-_+YD*+ zMe`%h*+}5e!59#$MPSJP$)-KtHvxA!_&f%-aPLY>_phG7p=;Q5<^K?^gI#jhq9mO< zBFISeb_9IJn77~K&wiGeY+#5ttwdla4S(GUx|(`mGK^{*h1)u%3dNNuDr=x;8_|E_ zhR!SvE-4Js{?2O+l&K}K-%y^j$6zhYi2H?)xWaio>nf~4>iT5ts8sTICi|q;Tln6H z0k@DP^UC19Ii4!R_$;b0SIbFNKf`C|MoRDA{@#uw0+z!s+#h<5T-vhIpGQ0$ax=wV zm`Q{BG%B-Fj-A|}*{_JjdoI9OgFCXB%l69z?U4vtSF}=O*-18MZejzADdnpgk<8v? z%6=!(y&FfKp=0q?6no4|!5km4QE@VysvcKy@9ratY|C*)32oRj8cT>?14!kPSq1(a zg5jG#E(Jn3`yNaxPXc@Hs`^}k>AMww;0Xe^1;sqUYl2`Y?Qc!*cIC<}j79LCxb_W% z1)tACG5(U7M^I2^Fxu^!icrP{N b>=+ -YzPS7A$5=Mtr!hA zYP-5}c6&E`Ho02+)3Ar-QbH}XA#y3yUQ0fVz^|r(OQV1Ys&U6akL1#R3D}%G-p2oV zjlk=+uZakVT*!B|2QgqUy>FhCFoFxkG<1Ir+4)>mlRDVm^#dZM< (qJn(|zbJm(HtsNXa&o+I$yxNv$c{;}(Xbu*|B1bR^IF=i%@G%$M>0~JR- zD~*;Ih#hu6mPPG6_Fh7%r8O*@(H3V#WhM-W)RGF?7N!x%H3Uv552|p6<*NsWgSe^d z!%xCr%2JK8qxoV#WY>F!G3~RdZVc_&GdTzI4sBMeN*mWSzHf}xC2wbZC;B$ yb^zp5`S2r5i~aRz7O4v9K<~C<4`Jxp$dg$B|vkTkB2pkM(soUikqxpTcIz zd{-YyT4%9hi9i(IGheS{m7}`6qFA(#q5k75OXg }+r- zQ+u;`jJt+tUptp>uXZ8s`tA7H2I?>pKHd !4o?hA!lP9 z@{ob+NlAA4<%CDi!52oAJy$$HqHL?DdsZyKXO;$s*tjwW^hCla1wuxC?eE(p7QT zQ}`Y0*W?$U?1uO)#m{DnRAJ^erHfXTRI9_*>jiK% g1t|$_s zqt!*s=U_JM&Szi7WVe+$*w^`88n5rI{2@hU;vl56mT{ktGRsw257%;Rf 4ZB!=#Hd?*< er4sxjMYh _5d& `j_<^wZJ$?^>cQc)V8 zRb9cd+wx&*zZ4jVm3}jNU~~yIi*|^`<+cGqg77b+00hd-)S15Mq~cSgRJ>?t5U@3y z(Kj6HzAn-i6-qcyPOT 21CMQu0jQvrH`Pec~wPnf#@3Ppx~ z0}d5<(OOXH-uY$CLsYqjyk;9$e*a9+qW|HUzcu5C-p&4ltpZ;aXsh6wTUc>0P(9x8 z3)AF4bj$B|&0&`pV8`4t5+@>7D~JUuTwD#|+I6sgw9*$Gu4Uj#q>6LVoWI s&{FHq%gJkMwzbDBin{SuH9}kFXwJ1f2C2IkPoQQFWdHG}%)?MZY zCH^3TfV>+-=(tC#WgwZJ9HN3+DBeV4R_4o#gGz7`t)J5AW|m<0Ytva@#B|ll4cGN6 z0%LTG*;KfJu54NlyvU*l#e^$IECDWQ+Z)85;C#p7Id}FsAT)MmdBgtl`{_m^pkhj4 zJ*?PI83>?*S#j6Uzd*qN#Q)(e!o}WM32x@*$>*hfK15dyw_z7_ERL7M8n#&@IIb*; z$;}QNTie!-xb>9{^}U>9>u2%`wZn|B;cZ>i*mWnV>`1_(3uUZYO1VDPx-GpUHIuwE z<^Fvi57o9=GDoSZtG6Xn2&ISRkS^HA(p|U{Sa8t}p`9tpB5QX2#2XQhJ(Za3P=xVa zI&7&3o@C`TSD3#Quj)KhG0O*&FSdJ5GH-R*iekXgpyRgN6UZku-dVejdQQ43-5C0L zz4LsBfcAb{QVpfDw(NQ!Pj1DAe6Q@m%X+cA*q`@2MTg|w+nhQdUGnPiUT^- nSK_)3`y*YCnhNQA#60@-n3Nq~-i;0)*+eu2hkQ}n}@e{&8mG(Grw>K|61 zK$7C0n>yNrf>je&7R~Vj=q^?mCIK!t2-kKoCSA8GsLW5BRJ%c|!Atu{`FlB>0h1O} zMFh_HzqZ86r4;(# )CI97%bn4@E$t*eV@0G!V{+`J5_^XY>vK2hD zIM|h8UbDz9!%Vk=deNL$R$AQ`sYI$E3mevmQ$8 @VRGg{Tp >D}aP>_fvDw7|(?SatQo1Hp1Bg)&(* z69>@Mgb9B3#yN4V#_DEfXC{?d^pFm7-sR$pmmNqci@8jzJ!seJN8alO-S+U|r>mDw z7r1BQufXreWrkvM&!IL8yxSD3%iJj9#z@QWN%t0|uCQ%0)`4rr8KS{rixL5Bmj~`J zaFekA2+Af2x=epq%JP>q({5`UAvZO@g6~l15yZXeUEa*r(U{_&>$U*f*%9}Hg1it` zziQ5=H$pk&V6(x7$>eD8o4K<8eMxt13tWTIB!8b@p3EIw>AOgfgo_LzrEx5WZ5-X+ zVK?WPzi2~fV=`kYwRuxQG ;)115_=kKTP@#N2js4<_U1`Esv51^Q;v%|Bb zkTo?!SAW#ojtss`S`kaUkwNzX&~casAPO)aA=?>lYxl)Mi=>U8=KZMZ?agh$jwXt! z4kgXGaTW80@yYMg?>Pl;wlVY5Mv`BlSowkGT2elMo#dAX%la$1$+t6FcPuuEYcOG# zBJ1LA+_}xZtb1JGxD@6O>N!RWI5ILtZ6qf0j@J`jX6~Q)8Hs`6;TqTf%8M|~nJukt zmuo^KenG|!Q~SShr)EQIyW+d^F9!8Lgk29vJ_+mvnf$Hkp-)epBwA`mNMk%!D#kG+*xEXF~4|dR_AdE)xV- zYdCYPLs#Hfj8E5C+RbmpXQyebmvj!vXPc^C?Vd;w z80oH_)<7H{3a%ItXUZf#~2soJOvSk?4SMPC2n2sUYcUQib`I%BxG7Q?V~>wj7ee z3<1B2T-Jj$oIwu+FIqvhO9YHxBM9OsH6$(Qm vr>H?U89iJ7> zX+FXVD@@ fzZ{&>7#W7>;dc|wP+`!}JL(*zrFqW()w8q1S(|kLHdz@`Cx*x;-VDI>} zgW7|X?g-!ad~pT4YtcadV#1^q%>X@IIi}T9Q>_WzIaO4!@jR62o~1o^+C{Zekzy=s z6oJ<%-L~{d``Mgr-LV^LQmi5;QuYkHdEa>V+ec?T*;U`IYz57aR$%UH JTAO( zn17x+W)(le>J#r)(DQCu_&T)gv2ro~24)tSIyYV)wm!xR1Q<=_Q#{n3U3v&C9fK7q zhAeQSQMlysHA{c@?RH&<1!0*B-->kko}O9nr`{IHtTmo(Kt)w7W}k6oC7c_n=8Q3f zOkYxRPmujk(5e<3pf%HD$YytX+g=48fDw Huc~Efx zJndNB-l=AeU3?G0juSM&jz)T~7JUq(6TWY)MYpT;Id* qz6d$B-csfLJB9|h9Ej;akI=@@D`~fg zXY&r&a`W~ql_9+FW9Pe%##lKbrXOI&C)@9)U)4yx6`n!AM>4v? I z|3!~O-G|rTb#H!9Bxp}2ob}H)#CSyQbKf_wV@YMX)bwQsg*hK)xRXP-e=Csdzm@P? z^Dtw%qhhK!#T@jqw>W&3E?Wq6$_sB>5CJyWQZjCi(CjyNWUxoFh@ksj0mnI!ymG$< z6h38+1~D!-Mg*=3c;EQDWw|C5f!A&vj{r>$?hhqLk#r|TD%@{^zYqa-nSt0WNHo=! ztS~;Nfo*<*$)KD0@XVz=O&A b5wsga+EOlb4+jfKVxAV*R8kjzH)+znxpW6f zxY;d8oAZc-4gE<~J9k_C2b1wPFU?c`&cDL@XZP^@wsiC;feJB>&i%D=bnM!nuYhYw z6`R$n=Y!R-otc=igT(65>fXmUoYT~p 9RLOU`I8Go=yPp-^{Mo4tdRmOG5lG`v&{Tlb>) >iUT&DV4V+oNc8KyztrI#3K YBH@owz K+LX(;`xv&96Fd@pDgpGcJG4U{QR2_n zXRE7fHU;T3k?h81pWVxjhH@iWYof~b>uwL*o20Mn^|9>q3w_&SHy4x9sS}%$-E)MC zU-DNy9xll_^^cb5iu4j-*5k8q;ZfvtTA6zh(?s#7so1KL91%yi RYGi>&^73BZebRwFaO1$aAy;8E3ubm?L6wPX@=GBlbt7Y z59vN_Hb}VkTzFfEp;*F1h}OWWahh}NsPofEcg4P@)Mpo7k6n>nVw#hexlezrBMVud zE~TbMs#NP4sVfgj5?d~>dMgeMX|X=?vfMg <8@{2ajH5spi6!$NqfuT6NpgIeb!$bEGE&E^Mz z9`q-CH?Yp<#t(gYrN&hCQe*v9%jK1YO^{+=ozC{IVj&Gdqd@7KhGNpEhR0wqnvB}$ z@)5+%V6~PY-gWG{<1*7C$ik4lT*}x?ne(J6Q*XW##cqlgi|I(w6*I49FWVT#sNs3+MNI0EeA)DqT+5XD|{P|I?b_Hz>y|LjoyV{t3)siafWYKX-|9u z<>-sj%;O#ei=$X_OX$HX*^tp_X{(i^IG#3fp#!;*Hk<}cC)CpSI=yQidR7^lwysOQ8j#86&`={oFV 2K6QR%q^T+;{A3DBc0+neLU?uO_H8Zxf-|_?eH|*t*3OGq0 z@CeL5@6VS1q{gpR&;M;|a8LuS@d!>WpjLyQe}#RKtd_$fI}?J?CtyqGsNvQ_7|4>L z{Iiy}A+)@X*MGfpc ~jyTi&?;-0oP3Z1zsux6Pi zy-C2mcgRvK-sx~1M;$!kWDPA1n0iLOP5sM&>UN6 z`;ou`&At8=W;k3izV{VR9DLCb$8fsJTFw3V=}&AckhqgeDI{G%gaz3|h{0%MUcQ zZy*mI>zfH6zTswJ%s&L+*%|VBweaX@f3Fa!_EvU#@kgH^E4zJrBU>kopXd-R?}Wbn zXqPZqURd# meTi$dzLXeHCq0l>Q zi 1IwX-mKj%ZPU8LlRYv^SL(+j_1k@O2!3-yIVgQ14`H$ezC|UH($^xw&G_L$ z3_;d%kJUD=Sggw3Sk-dzz%I=D0TW$q>b&t+*vdc70sj@e(eLJn|LXTm^C};p zrC208_g5I@-V}1ps-*Kb$S1%$*2DL2=Nte0tW9br_w&V*&zUtXKBkt3u%7r*U*CkH zqn{&QV+dg1UQdXLMrmYCB@R_*2fdxVKW6{qvRNz!)y`J?I976(fwRXw`33XV#@*pB z^tGdE1E`q()Mfz6mks6VbsrS3#5UTFHz$j{&XW^22sUn6uVYSoL9HZyiYKRwIN4A) z=jH1im=~FAtD2A~+JApo+eFVBGGluw#yWLaw4{}W1Uzg=_E={cK~HP;X|HR6qmgbf zH{^~oJ QfUfo646&-(Oacj4RxKYkn}8jl~E z8x|w@lQmkZVU9n;pZrxas(kBe;Z 0Sa=Mn%fdpZ*Q(9=s=E-kHO+zv!%0UE5&Mr+H z4HA?+-{^O{agWBSyxp|&bM4$)@Tk6)nnUyyhB%G6$HD 7a2ayz2Zr_xZEp+kE)AeM%k@K zIU=?{e%o5{ -$&%re?PN_;-)9cmDdn@FPy5f oW)!T-3*1eJ729pXvFFS2H|fo5VgG zGSji>n8Inmi}f2jmFN{C5bHN?{>I2bzhdN2(fH&3c$%{Q#-wm#f1VU{<1rNCD=cgJ zE38fk%TUq%^R7QB@yB^W3+?e2@n)KqA-uxD(fJ$L0*By?6j^U9r322>$8c)-3WHrm zLp{z=ELrYm)meWcT}rQ;@Y&){)7pW=##Nh9&PUTGzKTq1?Q8_*YFS0e!B?{jrvEi` zw}gxAyQIXg6EETT$$}#xE2f;Ns~&KdUaqG{pSZf^j1V423+;&?%JwXe3!iWVlIzg5 zH${)RJU{q@@4iz^=Ao5|x}p-4g?ffKbewqh$l`#W;6jW_+qo5?*<%m3zf=5iP%VjX zPL$R`^)`c|@}ZY~#$Cap??&P54LkfrRP4^Mc4u?)_l$A9Fi}LrvT0a2kjC$1D&TQ^ z@$AlG<9MfOUEz_&^|nAu%AB_!<`|}t5YCGzaw<2Z-JN2(aQ-o!`;a9vHidy~Knlhs zWgo33V%Hp3`d??B*}WAYaA2Y0OptfGfh2QlW5XCFj*SZ5!9vSBSyJbq%9svt8mYc+ z15i#LcyFY$jb-{-GwM@7q9E6Gdo!j=+C==wq_U?zAMEN^m`1kmmo{PZCYVs|2bUp+ zw?3bz?&gK1G&OWaN0ab>@$RfrKeFh(>=^Yd78cCOwcGovSJT~}+tgtF-T3Eo-Yn*p zrpZ%V^YWd=1XiB$WxKN4-RLDosDsi8rcnPn*YvPtRqSh!>2k0oyy}ERk}HdnmV(A^ zq8=YcVySMR*fEU+LK|)TCW$+5S=WyUU4Qm0#j tFn?dL*aTh8IN;2%Pa zSKvehd orfo9Qi17ZO`X`2{xfPN(gR zdoDq#sr91PNqun7&Bz=666wSmxk;q|%|wV!;gx3ro*7r)(pvb^Yib{;3f-)}`HnN} z%;9>MH!_tq`%Mo-4kUOce$o!kXcvqhTA@vWDKx5kJQ~6Uruf_R0^&1+Dc+dg(FAE2 z_+1Z7uR6fH-k4&*3<=WzfA8Lf7~9~iO_yjBukfO%QpOK35}G96-rUiZUeb0w-Pk+$ z8$iz%5UWIfh@J+)(OnAp#|i4p?dKmDX#SgLx4*#)JXK_I)F+Eg7KB0k$}O|f`|LW{ zcK!eoD2>R#f@t>hfovnGVbK%?Z0L>yNcs=S9oD}9eEtRQ@o$hN{{UDvOHcFMwgs5n ze#MR~7H-cw-Q>*80ey+I>-2jxF>31v>uz_86V%OPE+y{_qB1v;j=W%~4BTdhk2_SG zAj|s&kPA29wwr^4-+EF5S4DbcAKuVWrKsK6dvxdheZ?hb=f;vb?%m>gbxS~_*+gar z9a>vl7G9%1?S3%To1XflUOsgB-Q?+V4VEWn?3{V7BttRg-PX^LHuX>J-nn{m`l>GJ zna_`7-dms27}Uh&t1Q+w<3C!Qq*~u9)UqH3S& K+49q`dcnuKk)X&cp?mQA;8s z+3XnS*P`bWb5AHO#CaYDUh@!|h~*_lUw2r(MEbg_16y$SmNm6Z?KOb6nLNtaMt@Pm z=hx;T9@~^s;nCl3nNZk(_q=jjY$U#MTtkdd0f$_9BEXTrObeX4!_{k{ry%az1qY(h zB9kBxophX|5e+GV5H^tdCTK+Rp!3NA#Y$|I137ZqJ7Pd^xT{>m1I8Y|E5NsN0$jyF zu80Wqvf0M*BwV@{07mXeW$OgddxEAUB%Kfb)4!=X-~kDc%?LPjgT33ipB{V?egbh* zwB_MSA-4xclm*E-QzKSHbx6*4t*~XSOe4%oocZka^ai%dvu?ru^W6OUF_#fhErgGD z$?JX3Y)z$K73rEMArx-P7H39k-%M;CZ3xl65o1OM=l8u2%D=*{2kV9GI*#yUOwr b#*_Fet&4_r%1p~1DBlkV!F?%ZiS{=2zE`Q$#kVAFvd`^K zG ic*+$KuTa}pc z2`}&*(eGP#2!zuL4;2<{w;P!uJZOHtI_Gts*WJ=$Ks`?QMw>AeL&SuZAYo7^&2RhR zn%+X?f&PfP&OJ#Jh6JfS;a3jWmj%Dd;*p1ZM~8UfFh6IcO;=TYu5GyBkd#35VU{HM zK@g&cpxkpoEDLqjQuZULg|Q@j9Z!@y5y6oTLdY|P)?GUbI7erXhZrE=o*j56X>>^g zuT#>8ZbZ=Jf%C ;Fd;4 zH2x;|G;{|MiRQm^&5SJ-m jz=8vXH3htzDUS6PW#eCBS+qpOx;Q_u3R(;?Xwa)*JAm3g1 zjzXynUOLA`bZIfo{f*>=JcqBD?~OI
KKkP)AY;atGQ^iZkqF5;; za4Y~AL&2T9dW#3i*yY#o-n&pEP>ET+X*#K%*jZ!xgBlnl>A^b7>sHHsUFpWKcrPcC z5FjjxETUI AF#JXv1+Z8T1 z(~Dx`mapPcv_rl;>jKGSScU+)LxX~4u*=p$F&Ao!J~wVYRZA&ENh^Yd=KR0~G#U6O zjmcab*8q0FaGKsAb~(RA2OAh?RwLhzo>IvLOAff{BveA-sCzexiS(R?a~JPnh8_sg zuM``ga7D338D9o0gw*aaKJRJ@NTn$)G=MX|lqi6Ls~5om0nrsb_jja$%#aH3g)guC zi&A<|E>2lC2VJ^62VV<}L)!{95tzAs3bZmD&o3&`-F_PPPLNBcPPxA}wINn)tHF?i z9)e^C8394N0j|J;{TZFemugWu6429;*E;;v%~6lf4w>MdG-=P=6wkPC7B^lwPuxCS z%|@!7tE9Nq*YJj$_K@4PES^4bQq4h&JGL6YeSA?*HF@mU`aaICYtiHlIe4Nn`C*t! zdaQfg8okvO$brBPJOFFoniz*7NE8KM$Wvxo+DVhfhBQV{`XV;1e#r*LkRYHAwn`Co zfC%06Xz*tfo7fO^Tz=FXozj>=J4AV?@xdf|Lv5Y ywIOizyP)z0<~yJ5o3h)A)rH`|IxUL@0b~M|8JNZ23ar!?hy6qtc7Tb&qgbU z>9=%PuwP;a(Zm@9L$YQT?0nD=V8&yU4QNQb6lmprXp$~!V>R*lWi|QIM0H!0pa?>H zml!|rY%0=G0~sIBz2nv%p5TQYUz(uw|a+R!SVNeTkndb0t5E9dc`4YjsHzRy1@I z-mw;DH)#Ln`RO}v8?u@4nx%<#6Sa1jIk4`uc!FKN4@pbSoF46tXJ~*)Zv;#;c!s7$ zDN6G4bt!GhyJ``t3+KgroF%@KZi)8MdAyl1a%9WO3L;hX3qU{^A-2#t30MXn2ZMjL zlL1^=YWq9@%XuA2>5zRHga~{5ZHP!PMDkyTD9t PgG@_&7;? zLxj>TSfiU&R$2rWpuPbM1|ImYYs`X0{7wd3I#${o#5l1C9>c)buzL`MS}snKdZXwu z%JJg;_phG`Zkt%BT&k+d9s0QV*{N_RD9MQeGQsIfITrw>1BP!1MK^#olhgC}`W!{y zj@#&SLf^0ZjQwR8pwDPhJcAS6-u46xQMZ<4fOf)!fql2)Ow{x!E3WJp!BGE;n%v;5 zp9JG)y$OSEpg(pI$J#6OM+=UqIq$J4=~mZHkQqzI^n2KMFb>$eAP6@C;^Xt(K9+E} zm3P}eycXkSH?HBstx srIJ#hT9FvP&1dCTcNx?%}iNnz+o0# zQh?p+LKY7*WbOQjrrmxaf&993XGOtW;-JHuGV@ziJ(22R&1%A|2JPtL!&;Y^UjkiG zdzdA(z_pdBnXB6$4y^>(Zlr&4?%a*iprlP!xTLhA<&*a_@U@)$x&R{WuN$Tb_;>py z_`kPbLN_>P0r)}hU-nCN)Us&hffY)eYCv)Xu%iIqle1I8w8*`n0`EEv99U(52yXD_ zFCr-OA^0GQpOS!)3d2>&63>b@o+_i>NIZ}#sDt4(6qfPI)w>k0$j3RE;RFCgS$9eJ zPfnZU9?>y*h1Ygn{@swpzo7E|-8_z86%O8Nd{|u4klPbu(Pj)#VAWUmu?c5(pGeQ% zudci%y=e 1@akHOUycACsN64T# 3@8#WzQ3$-S6tjeg6IJN0LXawFjae;ehgF{A zISYf&Y}|FA