From 7194925d41142ed733d4544a5ea28e99ea30a41f Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sat, 30 Jun 2018 13:07:02 +0800 Subject: [PATCH] auto commit --- notes/设计模式.md | 23 +++++++++--------- pics/0df5d84c-e7ca-4e3a-a688-bb8e68894467.png | Bin 0 -> 28672 bytes pics/1fc969e4-0e7c-441b-b53c-01950d2f2be5.png | Bin 0 -> 23552 bytes pics/c5085437-54df-4304-b62d-44b961711ba7.png | Bin 0 -> 18432 bytes 4 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 pics/0df5d84c-e7ca-4e3a-a688-bb8e68894467.png create mode 100644 pics/1fc969e4-0e7c-441b-b53c-01950d2f2be5.png create mode 100644 pics/c5085437-54df-4304-b62d-44b961711ba7.png diff --git a/notes/设计模式.md b/notes/设计模式.md index 5c918888..72c1cd81 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -1387,11 +1387,11 @@ public class Client { ### 类图 -主题(Subject)具有注册和移除观察者、并通知所有注册者的功能,主题是通过维护一张观察者列表来实现这些操作的。 +主题(Subject)具有注册和移除观察者、并通知所有观察者的功能,主题是通过维护一张观察者列表来实现这些操作的。 观察者(Observer)的注册功能需要调用主题的 registerObserver() 方法。 -
kRv!a#~1v4a!a8xdoaxI?NqVBw7ZsWvHrSzH%Q;;%26aAh n}#;L>9Ls^!L^RQ_{A znIb3BW8N3Cdbj `J(XM>p1aE@AZZ)a_c;&87JB(RU-7lu_FP8DgF0stOI#b|RK zlITs?w@O6%mCh-Qm*u5w?Fo&?S2=S)oD0iA8q8p7jy{hb{-VEzgk$jd6GehIK}K-5 zML4iqqd*r#EjjrtO=Jg4-)<8mKxIHk)g_4<5I(K+^ur*8!gsyYK j?w8aV*7;EE zV}Q-8KkBakxl9H*3QG1+Mi3u`h5gUDch%JY&rg6Nv4o9E0t+-iqZgS#0vgGWek~m7 zr8!&l@+l&2Ie%-ykdW~&Tb1{_WCq?qBJT2;|44W$dm%G!gl&EUX4Y1c>)lIqF_ILT zM}*{<1f;R&^70RZ+p0lhLQM*g>>W0oq#V+0D|cE0c2nD8GP=Dtxud)UDV}|G_^B `^9+6_(O5}Joo9f}j;9t| z3giaZPx)qxM NydNohCkn=p9)LvC0foq-}HpiWT=I{f_@#9j>!oSVM`2#Vx_3kkS{ zfiLu#^UKqAEGP_LtQ>#IiV&09fDShLoN3A^z2mWry2`Zn4jw9Hle8%lGg|{3siW9N z!}B>Z-wePFs4J!y#1OO+0D&rK!K`Mw!K-euEBWjKB9TA(VwlTg*G#+{1+9@GjTTx; z`N5f0a0a@+yL*Me|J >YRcQtQ z=#Ya;JXV+$37BxQ4Gy-ot9jS&r5Lnn2#LKfN$f9`gb7^R+4N}d>1ff0y71Vp4SfQQ z*cU9JMuf! @v`WC|qw (&yLX&0>xN!z1p-ZU@rL@3@IRJQDdU7*(aY<(uYgnDqH;mV(Wds7Qcks%N znAjQf!15*YrOn9 e$ND}xZswcCwh9JFb@=GZ_lxSY7e~W!^fbx0#vX)Jj}&g=S&`3 {&d&Qae`2rSe{YDKR2U7 z5O*;mE8TZYXg5u38N=!bxk^l#;zFc?&jg%TRI5zd!-h8fFN&m$2)V*0T0L`qr3d_> zvb+$ZgKdC}`#SNGW@K%unwzeWVI2BJ2^gAZgISjgnINowDixid+#HZOr;^tT5(Skn zGLTo1(4ckXVaP4+jO{@=B4lnji $#unIiBDB`~CC# z h356&Z|D@^=4hX5W3>-TIb|&hMjp?J1^uSO+Vqf>)HR(rxKd^~ zgXEQATQ5TUdbC&GFc0tDn(dV?zbXNt*Pv#2zYLW=dIt(>R!(cN7DfRO<9A|E9*ec< z0d}t^FrH0a=@LS(NJ4It-!bX~!){eF{0@*Bew{j}?Ke*dTzK7i|A3aEC_cCuxTX0x zP%jjYu(kNS&OW;;Li+}W6c)vXzfjO!gsW+?zYA1Eg8E=yyx$EZPyD!D;y<{? |Ju{v+T9Ph949q`a~}kXl{@K!Am8%FZ5Yv=J~O(YAD(W>iKnaHeco_|8*;h8z J}I4SnqkMuN&g z)Xp$3A&0edN#`X6erHeG=wNGv=rE{tu%w+y4axZcl$N2gO!!)GO)5ghbMw5>Grjau zZS;^Jqji*=KB8$#&gYycmbW-8%@=|-Lzxa*JBTTa09v#DtATimdyD~7WpiXtLU!am zWYQM}$?FngQ|~}C$R6tUjJpV~AbdjG&=;_0-``T}1L#H}W_XG#eOkC+n%CIqnLV$f z!+CX@h*(15W5BwI@Ix^&Op0SXOrKH|2W>CP(OhNffZDgc_U>V4vQt%u)wkuxQ+dA; zn6hgD>|6D~%I}?j?d-GXBTm%|Q$09?CeMf9WU00&u{%2)7o}(fYjXI|rnxS!b!FG; z=L+{D -`gOV|Rc-*_HdUJEbn4XFIih z3KSZ%P&ScA3+KfR2Km*gZnuk8zAvh$lCDFuxaoY*(RqL|MAaTWi*$JjEc@KDcR-+6 zXf=ph83k6d1t_)#e2njvpl1K!unG~btK5FiLxuc?POP+x{@fqoGYy#QuW!czthSKq zyKc5i+eoTk?a^8yja2T=pDMYt@V?9n-3$&LXuW2N1(QS3F%A@K(Nl-Ge{% R7x|D>T7u?1Y^Wqn)v1;whoo>B*3LOK^H z3uNomvI6V5b%CKCkZH2 hA^g?iIUmgc-TcM(Tb$*bwP;emr zQnXPBGYl_955< m>-jlux$9`CWqf((zBbC(wd zmOMj&vkL3%zcu^|%>}gLuu#*Fxq_uJ5b0J0s^^`>AffHYLR7bmNF`UH&33)*r8eKM z9R_~=zF 5bbPH>ZUP&O-8Ll*$CmUnus8>sd>{#)Hz+1GIXOFJ<4? z!m9b=t{MmAc??avhHTAO^lqW9aeI4vjlN%4{qnsZlR~>+rjdd5LD8XRAlM9{F+}E{ z@&`$3HT7gKHZeI#rtj=LpVF{#gr&sjFN}!=oVP_d@n7*}FviypWUUszN8Ze`Zi@=r zHyw6>k=0*>_eONsAy#H~;btOV$j*eu@`D4Kx7nb4y7K5Bay?Lrn+x@kR$a Z z%4B1bX>Op%j}YH(_@a)ntv)E?026|bT9k5;dYdV| ?c_KCvu2MG!^RlRtmCQ(8MsW$D#u5oUHcQ_bb~I#^WcaJ*Lb*=mcI5@pb}< zfs4RKxSUt`2o%2lJ8u5BZn|k{e(TkCf|7jrH6gfFEN~W8^Xb;jaj< qeqW&KAkUQz}@a#_)LU1fK`qFI%_2#vpiGo`5RBKaxU9L7^X zp}h!Z<50Xs_STyMzt2l%mQxP=n1Qvp3+G&*n&yo@WR*Urv5a}d-Iorc8g?t|lqwkD z#|g|X+8^Mmi^|@(liw=FD}Hvw!cVO@=G*6sV<;M|E*RmCu6EgZF`7P%3c`S%10e=d z>4 DKne# z3R_s#PWBa@o;y)P+|(1SK0!7Uo{7<$P2+7*qs?!H(+^voIdMvY5bvpal1=&=_EYqP zG4d`On1w=hODO@KG~e7J6F(o| zgo0(gqJ}l4J1Ty@>qO&g(BI6 zzoq*qe~X%fHIOI2ar{(cenNAQQd)qrC{L+2H9?qXvtP!mV-Dr9WXi;rT7o!_ZRQ^3 z<~khKhx)uBorw8*@22^u9!>ESy{NY$ekgXdx{^AB==Hie9nkVjsCZST9ghBSeV{EP z^(lM}R9Uki)Jrr=T7l(rbGqR&of>KZnaYV|I^~(;jLCpyMo5@Si*u#S>6^q5dWrIs z DX* zmk^w)DYTL{=&Pl0ioI}SKWP1;Zz}b%Ia1L2N#1P9#*P?iHJq{zGYRE|TWlgH4NW znocvr=}5F-!DwtW4K~#K00q|s=gOvJf)&NV0wzYORVj?0!`+& |xjM$K!z zMw?Q3ThHG(jaRs&r~e0T>2#8elG4ndQVsxgHrBxsu& Q>A#xKGJ^6IdH3KymS!g0h>$eEYMu13cQ!gyzE3b6uhG0IgiG5m@wGmi zhK|CYZd-aVbC_8$2ZwIoZl_DHS3^h vK0n=@l{8xg~*-2O*E8{kIS*=>ALfx z4kt}08}}+zP=e#COss(&zR~T x>T}+M1C6AQ^{BNU-EQ61)d8Izq=EfW+*9H? z8WsCL(IXhQYBKWqV;U7>IZ*e0uET$08$EVjnnyPRjl?j0VWSPt9OIkI{LNCr7E_cf zt45MT2Dk5jJ;cpx*?Upgb-yDT_KKbLavR;F!QSN{0Y(wtu$uGb6fZ|<#5xjt`4q8I z)w0&!YDP{a;>w=0{YT_v$xYcaFa-9Kg3|&MSS)~_)i)rP4!&o#hV@xQ^~|z`6bevD zDM1yot){R_rLaa xAKL-U>+|yUO#%h!7Si za1-1m`iI6oM~QTG+_#V7BDA_9$C)NAzM~+yhc{)MG^htEb1;YfcZE~yLzIC9rrUz{ z)Q9iVl6kAladWlVoDxO?jTOU*s06)HDs1`4pAFHFNW#9pA+e`6*Q(kWZ8P2k7h>}w z96jB)7RoQ`Uc~{yw|V!xpX}ZPEh9;A6un=n@P_Gfn*-kws2%7YVg)|Mu-!f;bo)vA zkG&adA&9)gN^$3w^1fvlUQYdeb^A(cW&j;A5NrtG_b-Lvl#iyj>(u;;gZ Dcesku~#F(`KGyD6 sbid;0ixl2NHGk3RZ|9XBV2$d;H)oP;5i}U;71c6>WieKZsc;=(4i=|7 z>5j{Xt6l}=3dD@AO;qu|f!lL~VySM~ zt2xEi$D;bmKSEj&17JYqaQeq3eScYf%s53`@u z6nOq927Zs?Wfcm#do(^tLM@@tZDQDoEan z&C`#0O${XGv62*PQo6}1ACzekv@@n#lahK8Y-pzq4kB0Q!LUs8s)3-r*YnQ}BOs%( z5i4+G1%bCG$&}^fwyorXo_y0gWKGV%bRs5hS2!rnypVsq#Baq4)3d^{E-zy+8GQTO zmp(t0-?8d;O{Z~ U7uW0 z=*Jc_-B>W@iRauY3ve0K1rhC8s&nHe_Bn}rSM$vkLmlr!_Q_nEB|W%l`RzztJZ`w? zo%~_5t;@2|*bB52A!3K`IlSvSBGRg1Ex9iytkm|i*z(I%@MlS}erZ?O&t`cvpg$_} z!8zd`gHHec!UsP~`*~o|qlJ^laV)DZGpAX56jB{sKui(Tkl9jP5>EXAI#x7A?4RJ% zlnUe;YsM@3OtoHBPrGHzu6orn{?wqS`Wf0~kvM1P#E;B3n-Puh!D@U5o6uj=EXJ@M zK4EOdmg$7v6tL~Ztt+L(AurPX!8$7F 3?4W^5^V zFSO@)Fk!Q-oBg6Z^c5FP2O4f`UEH5;l3ui#PXJZN)o4aBhU?eXB5QQoA#P zuSp4>E0*9`GfHscfi*ijI~u=U(62aK*0BB2q5uSAU?yR+Ma_xuuD+_sbmsJg!40uU zMI?Px_+%|macWRz3~y4#n?=&RK-C--UCaNJl|yeC5PnSuVr?s+K#Ui5^P|vlecHsY zXGf U>+U0ZSJpJcIaMX=2y=i{QA0u0s&+NBPrk?F`(NB UN3 zz5QC2GZEoz=h8M179nuxmd0S`(0b$q{`u C~j+-IS-bE#AWP3KT5<&5OiHAWptC)XLO-FqAcQNL8 zz&c *tx25Z11Vw# zDQd@GJkktevIU;%h2CPW4So>ASw$|cNKgP_27(**4_$Oa4^-PKv>&>yo$#QQ?PIOs zMRM)#eB^@#S84v(hPzFEu%`~)_QRI(@ECa)ewXX^fcvD?kDjaFx3;h8huWKi$n*NI zmV;$}L{R-EH`0O>S7__KK35E|rok6Fv|)Kp7N+L#w>u@?v0L)=X2lxxACb;1XV7p- z;^mts=C!3GYvN+ (009zP0-n>-2P53Zqv;W z`q0K`iOy4yl^zD|5#Zo_av%2YghBJ6L=i(`Bgq-4tzQsYU_bmju2R-JE}uLNxAp## z7V0CvPDW}UWj2vk2n{O~oXU9f+jrrXv3c3o67na@9M+iTZ7lO5B6Ir_Z#^Qbu9Fse zhbT3m6Dc)f`$W{VQ?+`ij=zK+x&+GGGe&?-BmqYsn9!|w^ES4K30v<5968T{5WR(& zfBgelx+Y8lQ64zMT_`1UFRr`<$JdC((Z0?#MgfkpA8u*KbBf3&ROn#A-%{#eF9XaC zW?9GTmqT8jDfG7<4|Bo9`P}y!@{fx4{auRyxf)AR_+F(kae-&9lMinC%mM2?F}?r7 zrtb^dHx5ZInK6J!{O2%C2PpIDH*|QrDmcMkaZl5SybU7AdDt2Y ODjGrm^<&~m%w`S6rN?Jt`N?&-Ukz4 z2(-gICJ_*BF)DUy+1TLw@dSv_0}j_eh9uRn?pf`=jQvuV`FkG<9bOA!(VBUvxagq9 zJb3B>!#C#OPr{+n(Zc;F>PsD8zkkCcSpsjppPMHuO{MHG0Owv>U$ohvvkaIEsewf? z2BwhxG3bOrLr2S@ubO6*I&<4@HLa|=XPKdLoZ&N*NBLLsU!fBQnCUWJ_P#yrPl85< zv%&@96I4=BjL`|Ul#ny9VG!WDhe={a!XQjiAlh6!J!1H<=EmXT$ec?m96TxhY$+L7 zas+V(C3Qqm)yC}S`|qf`f%XoMOpW1mcOO5oIUllP?U|{Vh+Jtdyz{a5&W%{=NnokE zCX2p7@_kWs7b)l$1w&otBv4ulZ3Z&WVP{J3TSr01wfCeJu>1MCcxucZXp)tG6e;@3 zFGPE>W!Ubros%9pY}-zZXUOY`A4_W!#N*kilIe=w(NOXkZIh5Lf$ZVO6bKy z_gp~tA!zpN$;+l+?bDPZVu)Y9#@_Y*8y3 API%+-fD5Am^6S)8p#1t__D`Pp|#W0t3*Fl_L t#_%+pFur@C;HOGvj&r|@9)c86mP3nGZmVHth&Ax z1u^+%Vp%nS0)6~Rl8}}_c`8?%*&U4+hJQRcwFf>%9l+ ^1k zV`*1-2&B6qA SRc UDfE7f9|cu6&0y#@mXin+G#8)8OX!Y4fG>WrN%h zKm8&>oKX^Rpc%b{=3IEjv~V3GYyzIuo4r!SoN$kPh5Ar6yf}dW9bKIiI;?d0>+ydD z9T$ExCwU?RxUxivVFQJiOpR|$uyt|UI2k>l @ea8Px{>=>PPFk*wD~)#D>4G#HMS_xQAFY>y|xLs-|z=UZ=__(-S4Rkh)EsgAjU zsm_3iZV~oM%WWOr7b~qUNUU+L{LEz)5FgOi6fk^q3>ALlotnyerdwdUnS1nVKS=Q= zekj)OSHs;Ayt!4R;^HUqo@H)++1p5nEkR4uDQIo*C;?n~@KWcPS)ESM h9Mn zT$ScM-wOh0 Tf_6U}gpxCmzPD_DQd&~Mjw42{ z-`*6ISjb_FC$R1%B$13!E&o&Wk{ZmFZl!#)tbpiPkiq11^}qkck=hrHxL?tF!vA zJ1$SO{M6_}bM+J8 _3td@ZU;pB<- zvr6xpt&Zg;yAf{z=Qn&4a9_Xv0pMdsUL(Lg?}7U1O&8bgu`k)d?G#R)l?VA3{ws>8 zO$)-Ma#r;`WCxy>Eb!f!1U!!mFsfb75<-iZaTM_$xiBv^F8Xl#5wKpHyo5z}YoE{- zu>t|VHnur6e@h}B@dv2Ih=)kmviH~OdotY0x ZoYk =9S83~3s# z3LGQlYsVD=&QKY07ZKp#+LZ%^>DP#?_T5Qu@&zA%QG-(HoE^} ~{{G-gn>>yl_+f+L>HLb3aFd`A1tX(Q >|Lr$Q GP@j kII)W1Ey$eVUO+Y{bh=3Foh#-Q}A#_6# zq=@tm(tDj7f3I)(d`0AI7y@Ld^3#H@BR#&))kaN=HkT^a|q@JUl#7bv0!@JUjvj z9v(h~m=L`3Q6YU2{DbeNr>clof`u-DUoP4yXe!|0q2sTfSY86ZUv^eAal^x-a>xC} zAAiK+jfZC}tgftJ;BEFh^KzMuVZiyW`TZv &%1yn#)idiDk8l|#wM!SkrdNHu9{ zNC25t=ymqpjq>c%_Xj^d*A05#U}tClt%KN+j3!O=)kT1txyM=M_JE%TVyu*umGj)d zRdH5Id1llQ@Yc-S;YIKY`|g`z3QEc)C 5|6nQt^U&*;A>!-r%Eug^ 7xjV)hU*lc4Fe5;YJhw_ 98FtBP1}TcAzY=q}oqcY4GEG;n)+RA(pF2I5YOd9`GT(GnP~**8h*hYFz9*)2 zSO?)w{*y29(b?MinHHK&HWo~CpLaYn{1%zq!Q|}f`j?dwb&J`Wy-^2D#pCbMr+Yt3 z)1P6D1^9kRT56PaxmJ#mjYSrA6Uo^!>Y!;dQR?(`PtK~g!_p^MLi^NicPbltgjQg$A z_^sD^buJX<#@)#k_8HG}jLq8Ni;i8h^t;iIv{LeA!cFWZvn<;c=N7@*o&MIoAG2)t z_&!wVx%4U!-5|==;e(z-9IMze=@hN1=U(!8j=8j5hkM7`Pnsbg302c8puwjpux?q# zX30ul&Z2*+@E+xcmBb(!MEhkaScIEge|Zei+~r3rqvu{e;M8^B{w7i2K;PkgcDN8j zXXeco6_fw+ezCF7TuMyW&9D5=5$a$azC`>^Q4@_OUGl)~rB=Tkq38zt3s^bqk($hQ zx9DRzBCWFzpT|dGQu5SK-hHUNgSC@;@{Hbc06)idr%$!O`s;d~-zHXiJ DO6pwgI^j)N^x5FCLBt6aZfvs>5dhY|z#e}z=eG!T$$xOHub-{B;~gzrd2 z$I7YB$cnF3FJ#S@&AiWc?c`Ak39YZ0KPY}z@=AQ);g%giPB5(SRk`qebYjm4>~J$ZMbi~N>QwVUAE|itDGf5atk&*y(IoCS?=`r|sUb7q0LmgtUs>kuzRhsF6C>^3 z`CVK7Avh1>pHAwQ#4LrQ-j#eQ_6FN0;<-&{OYrc)U}<0qEyd%M6H^-zT<{Vbw+;=5 z5Xl-vTMcqGr5tpv_^0q-1xn$chRpo(-PG9l;T+;=p^fOld*-s2ue|&mJ6NcuamKkB z^j=Iwl7ii|?YawRjQmcoQim? WTD>db*X5JQYO}mXE2qgA3ZDiQvfc; zlv>Y;Eot~V)ui@@t-n|QYb=8rlE~$q@7mhADCC>|z6K}1PlHBxr%)6e#fet#)OI@{ z9B46-Ll*>@cq@o*t8u>@LXR>%9RtBA 6vOIwg#j$cV7~d&LFx1i=&t7yhQn&2y*ft$tSi?T(xD?+X1R<`fL!v?bX7 zntmHXu8oor%)a(iM3hf3l0IqI*@F$2oEMjpSyu^Nnyju-S}|m@b(7|bhWI>!mCYr_ zQrs9z^1C+eGy1q7|L}2G_JzapC~hAYriDauj$*KGPgUm>dWAkhING7ArWkl}XxQJV z^(Q&O_vu^qt~`5|q{+=$dv-E+t1agaVlqrrkfXtJL7E}tHNUu(naOJ3HKB8oso-E@ zw5}O-F28v3q}-SwT$dYSi#!eLbk}3PZJ(f>LJYZ14e4L`Pp 2Ak49FZl29aja%$rvv1c=fa<{{@=G@uEr$;FuW8{qk%dfOL z36R08bymu`rskm`|L3?X_M!v)(=t>JzW;Qp&xAgHIe=Y|8( I8qPPD%jaY2d(GFLOzr^=!^&0Z2K3AtzLqT>7T zZPHe-oA`XraDv%ifPhQ7gr91kEEvSAASPR8PDEW$>m2OigV|Od+(to){7~lxd<@85 ziCfDCh>ce%1&%eFtrb**q2zLD;^ej?PJ0)p%?_U!$Xwfhb<4qs%5Zh%ySk5Q>=U`a z$>ARW^Q(EUm;trf7flLv-J7u_Q||U?VEDHG$>KZ)97Bnx#8)z-Nn0qA+S5xL $YH*Oa?SipYrIB%=n|L-1%{fxsq|C5Ty!ZQv=(?#uGX}o3Z zr+t6`A)N|L)}z0dkVq&Ea3&Si?R+W?_|QM8s)s<50@(DQO!gqpj3jsYf75^y4xask zApYLx|KZVbt>9W}2>76P@)-V)Q)%fp*liszYlMq7_Vv-vY3~;rd;Ri=xq7qeHj&$H zoquf&v2h%_!zH0+%l)U~wMrIcO8Yqx%&)}9t+!>uh`zd)AB&e|?5}-YAFr62@b*60 zY>VO1e=GKMhwB=^jQ>IlB`na6YuYlxk|;Da@41@>SNZv$@xPmbx^)W|1&jd95#c!= zzEbkF#MtsVP4tJ#(I@t8zg1ZR#4aaEVF;xI-GVT!Au9jMTj|_0vevE0Q4+mOpFvW% zf9gX|o*yQ5nbSWWI0=~fZ(@>5>d%g>1`Y2q%~RI^z=Q#b-Bf0yfnaIZ+xuv#Am(Z1 z2 *34b>ikQ58f$-%|b^5@&~ zF<@`I7CsGF%1@1MCYSf;mbsd<#d5yMQgr$zQ>kM15G{$Qkk^(wwD|*bC~4sjE5}^B zrop7$S;x1{1X~h4`s7`{0}dS;Wc{xESz;V`IH#ZC{rl6 p> zP~FYbK?B&6 s z^Xh2KB9!zAC4}B$OAo>C4fcW(S{Oxd(om!-bTUOAr1sQ?VU!VWB$?{`4&+K+$z|99 zREcD=rWBxbB{x}+JmPnlfByzRGg(T k zxm3C?fzM+J-mmu^Rz7@Yj+W%q-kN9rur*yPy;hYwY?Gw @?fjgw~?7T-+l^=sRK#mMGu+{WvojC^4tM z)k!rMe0o4%Thn%7Y-?LLOQw{YWhgUXZ$xQmb01(<23kjjNE|-b3)q(2ID1@>`O;T_ zhdi#e?s!d_dY^P)4pca%s~~+cmR !>bICep58}pYg*F34Qc>dUNT0$pM7c-<~e6I8O>Ls)<$uKVqx}ad#uDb zOatL8;4?dfiM+C4=&?w``>!ac#biZ5#H9L?%?E0NGC+0!h;$!UPNZl_!5!0WU-DG` z^87iwII|O8uDLD`PiB^anxiHu@C|*y>radJS8zCCKWIMP?!_=0iU-NN!2fmiBL?h# zy_(~-uj&KNPMx<+s#rF^Sq@xSyViV=8A+OzYS#2k{3rjeNZ>{zQLNXisX9wzHj*U( z9#ehUmSS6OTg(=jw@_-y*M{mBXfbhK;J#*?iww?@TdSJs_aJ7$<}Of9g}uhxdb|H( z;Vri6oTmWwVvU9Dat_IkXLvLIP9%F6cd8gjTFlY0j}AV3M=NDCu2Z3(g=%&FZ1A)S zjbmw&`l;&?V1jT)?Mv>3vYfnz0f?>lCesAeMlW Z9GmlvtPCINIQx|SDcw`) zr_}Z7X$ja!A`TW2@_)t20y6Y7$|kiIWo6>NXXU@{Al&<<4eKgT7`Ye=zK(Up!7TGG zun|PEgs)8aZ-3iieDgW>BVL>*GmA#x>;qa>4h7lXpY8Vevf%@Q95CCN_JDUSa4rr) znV_3DJ4-3a{W*~@W@mfo!!wvM!7~|7b%zN`l!voTAw5XHxeLnk|9ry4DKEcP2D`k< z2yyYz241v|2Z{aX((3tFIep7Aa|@N%AR0PcJG|N_;`T%{s4B8IPkVm0EMAPZ7H$jM zGX*#KC#_b9j#p0=-m!FNho_GFTRrR2@-Sh=gFAx2#?ogQE7J05uEsgeC2N~m 6mlt0S%nVXccxOp+kEAhqV!Jcc_IVJDY}h011UZon)r&?`pFG( zDM|^`yCe6bNY}awTTk~VvdxH)j?O5%g`h0?H5MqSJ(aSbhKYpXMGwvO@}|dwdVyP9 zDpZR`>YjZ;ZorJwxZ`Ij!is0aG^1BIUB8!@f_2hdc!_~md^$vne83hljs&NrHWi9Z zWz0!J-wY>= tLrf_7dxjdCD_0G)B;KE+zs^bU1OQ==&1tq$5XFfG{!#JlP;e>cD+IOnX(2Ap! zt3g;mF#m4nO1#6?(3G-4ewE$f8NSb4PwY%%Ev32te0OY=RMI0jpZFszDm`rfUj5PF zKunCjN?{b(p=spXya#o?mK58gA;Uq|?>Qh9_=hfAahK;0t8LNv!Ymx-KIDzTPg%)9 z+0!VhGwzx}eRuC{QC0p oml&;&J&3(@UW;& zWVdLPBx{)5+-}>gLkB3yyj}8hWv# k=Rp!;2(~>*{ZgQ|}9UTThIsE|=qKq@K f3f=5D(gOKMK_A+4-o?s8=jJ^OY0wK;tjqhg%VZB&)`^-t?EYI>^Q8)2O4 z?;wQO6<}NoY^DcT5#Mi%d#QCh`2($eYaGl!%!5voiGF|Mh?jX$vLMZLj7Ts(6$~Tn z4HS9-AZKz!pWaKt0#d#h(#T52XCgn!egyt4+(EW{r06mz2Z4RrDWr64mbnCn2;G4; zFWIJCGm>WOzC!Svt+{;;E9^{Shcffq@&WNUDY3cl3ejg?L8Dhqw<+JYc+hK}sfvX? z <1t{& j}#@fQ7K J>jELx!Z&Vpc(c3$SjR0#8<`x1n=(e{M4Vmqff}lwD(-bw6 zgpGiy^fz7^>r9r3Cu9ewn@n^2UVsNGSQolLOB6K$;p_bkU=pVOY^9zPzjZ&}?(A&8 zK0EOId`J5{IglXtajDH#h}xUex3V#DF^k5 !q>vJ1@~wDE z&qNK@I-1fp +hg-*EFrqiJ+<5SZTr9R^7H7o&}Y&LpexIn~g`@bG8@} z_DAeaoZ9-~rij}bas2UDKsAS_)S(QAx-Ex>ZAWpiC=wj7v_ 06O>fBjbXMb$13*p znH=sry@8vjufNTkmL&ZxZBPor h>Kn=*>C7pz4Fpdvz~RT%Mk)*9S m? g4$!!H zI2QWg;sMVkep@^G7?)T89mVFJs9?N)r>3x)KqoMDQ8^Jxs!Gn(=AvesyI8rcSb z!0oQcJ|j+?hGC(W_d*-)3f3kYk D2-dw&OW$IASmiS9*k Vp!_IED%Lv;YJ#Bg*Vn(Yrcr0@V!>=O1mUE{4!l%_Zhq`wPCr6467 zc114_+K9x;qqVz+0ONiqltmpaEWQe*eB3I;`-kHt3-<#8h_*CohQ`}XE~A8_(V;q{ z#~U0x;;rGJ!vCLwH(b}_58eLX)AE1R>HlxVvaYJ%E}%5?RD>Pt4(D4F(VNpTf^SpM ztr hx(1XqW}Bew$R7es;)DCclepTkl L{J&z0rks?E%(AQNePOS)F>0ztPHjp~^lQ|86vJ|; z@8e6mXspyqUj1npz;npAwbRnZgJ&)48{i%Sdq7DTz?PYA;uArIR^6t~XX2!9ev+?H zaww^O aIAi?W7 z5wJg w6Wi z=5Gtu9ZXMyz9=p8 ABNCSz`k}u1}&7*Pt7vJ~?nql#{0&-);8L95NXr3WK$@K^gN?n?Q z>_A`N% J5_ZH`O~0IVxfH*JeAW%s)(3v{mR5K*Vay4Yad2KIeNPaUp6|Kw7~!P_h;=n z3|oPnXaj5lNOMX(O5QDU$E!(eL<0o-F)b@XuYN1?Hg#N{@t=v6cst%g95rdCTjxvx zrg%AdUow7Ne~soa;oRuK(?J6#dOAfW*N9xxaFJ?`gwW>TnP38Zj^{2qT*-;P_;S}e z+w3rhfV1Q~JFY)}fM&~m^U#mxx9Zu?Zv8MSj8pK0IhpLP|Ndi%t#h} z(h!` 1T8(6~@9p!ssPoq|N~LZ!At#vZ+u zr3lw1o_j+?!IgeeO}-x^l9IVpb?<9J^vB#DbLGoef*eMAg5_A|LFWdZu8& 3{?MstK+$`9+YT;>HXZ|M15LbpygI%NWYYIJF=lbD^O|Z^gr9+>aO-AhG z%QC3AKp@S?j()mV!4gKWnaQ!4nWq^&1mwF9fdn=4u=VZJ4^;el2WCkJ^(gYEW)*&8 z>m^^;?$nzEuK39H-NbtnJnk1*5O!lT!!{XjS`O9YM5>@ONan`hqG&jBKSiRwbUoQ~ z4!a`CReF9h@_NkiqEF_XzsxTnaB`D!){EVQT6VsC=VQUrkxqjGFw^&7se_C204Gao z35BpP;-A~RDtFy5)55x~XaPJ#ku!=d!#Y$bCX )=N0Q0eIU)ovU{95Lt?%d9Ni&Gtnd>?rX|Ej>H=s!=1RX)5BxIe3MtQd$q zz${vgMQqP}Heeo!q>Qg}G8~yUe#imoEg6I6mgmcSR4CAKFP!ZmG~|H%_b%~lmG 6qSw3s9FuVbMpy(t7qwE||543D|4UKsQiWR)AKv=D??nmel zQdF~)Y5)0HdU&xPeh-U>j;HIvgTOtRY$N!~%iHuT?GYb!9(9_%O|c#%TNcVbP}jDF zQD%m_% tu=2|S;`Ucp)wau-S0s~#M^m@T*_7!&eOr;udRk%oZ;=S) z*$T<+Q#Za4{sy6Ac|G?keY5k<&u5|EcDYc_ioU $+|sw%WyiH8jkiq zFZNR~Bbv>YK06VRSIW|kto@iMFcI^yVmXn2qWs#M&o4UA{&g@4%7|aZ8VzV}RWo_r z@xrgKm&+H40O@EgW)+H!_B=+EG16cKCLB-?F5dRJ#oNSXf* Cw)5V~JKhH; zFPEra^Go)1P-XJyIL_SfD;^t*KXh;xqY!7<)sW e=@UGdO@A{g3 ZY2MT7h>f@QSbm9CG!G>fv*CU3B zb02sjyOK#=25W;wRGGq(t}SeQK3VmV`v5(5j7KOt-5}GDB>VbZD6S^(ek@{kiux}w zd2(q&0zNPtdZ8^_SASlAl71m1vnSFTjd#hd*PAK(Ay{E!dNx|*?e{XrtK}HrosbZ_ z-{nNaZi<$9Lb=}&BoA9Zyg(Ys-lEf6jHrnleB%oL+5^{m=So1fR#cGnDh%q;ZvIjt zUPb1 uT2R{K3VgszpMDHM|ANz zlA|=6f_+YE4pq4SCsZv{KteT2*H~}<{xA0E!SfsLB0HH8H+rwZduZ?Wf9$97Q^q5s z*IK&6_rbu_y-$Tl5H% m0L_|Zeitlp&f+@5nvGCbH! zGLc 8r91XKmf`?jJpKSar(2Shm{mtaY_vUF5aMS!_Nhs>__7d5NO#=G1 zD%nrE89<&x=G&)hJ~GnO&hCu6F)wK2BrB6ai@cLoUhyh9P%{f%LOI5%j1#ksFVrRH zJg_35R2jy1nV<}BoZUNtE+hNM;ZRqho4LR2I3mZfH(nZB4KL~n>Cvm2APk--RrQ1; zX)&z_IRX|_q*4OJ8KdssHNU(5>i_yz++ n?|Loiuk$^Z3g0mN<^vh ztG_cXHlCCrlNXcE$G~IZD(*7WVh%XavL%c6TU3^hRGB=IU52kA{}?53^x!|ttbGla z1Tm3fGchHHO^i^U?EaYO2YdbS-kXZ-X 0JEugKs^{cN``h`Jt?bXt#j__Ep0Z{Y>9;I*N;vE97$j^|J-zdMU)A)WIea zksO)(d^3-1_&l^$?Pk?vNSz4#YMV<7rD|Tw`PGmuW;R1-Eg!r6+i0|f#Kn+v zjyWvL&jM784P(BM&|O?jmiOCRt!y y{lFCfE{i!4WKXTy z2)!VPG6jJ+7cef`J*)*eDQX07v$14#b??D^%{KNf`pZ?*9Cx-<>Qnpzh$Qc}Bs7x;QQm)K>k>+N0%nm{y3BDGHc=V#^mOdjfH8s~YEz zL!d?zE2dx-H!=^{wQMV<*OV>OCOY;A+sv1vSC345bLk;D(oyJD^P* v_ znoTe{HpwA6^uEiFXNSM}E)Nu8fRdevtzP}u6)qV!g_u876_lS+3OZ h7rCOcwZphHssW)TS=b0wOT12NT zoN(qn;Nr_NQ$mglMF%GZ0MeH3uPsds%dJPwbRldeS;A|z%UzFr;Fizts+qW@fUJlf z$D;g~cdWRKb#^H>n3_zyL9Ow9C9#FjDrDo!Nr0Tb+|Sy*QNGi7ifOs9EM4;JXR6RJ z{Zx4`nQc%_q$rd0_ybL~pa+P 9#-W^WG*zy^p&N$ ofOX!mBql?qPul9uM0+KTsLrftW z!!~(hWW_ Id+kQk)g=$P zeU8q?FFVy6R}!h_y0SB(ripW187KszV>{GKBV&`aq>79ktLO9{jB43jJfS@}Gn%t~ zl1bqL9)`mQ&FF+?E%e?_hc`uPY!Qth4*tH^)N9erOd3R}kE*ST@>iso!JSUeL3ml!h zmu}fz@PvK*&^dMm*;X33`)-Fn?3O~oZm@2qT) 9Fin z=-=GRSC#igz3GOoQ==?=$6XX(C;3M9vMXM4-h0+VYK= j4}SONKr2d5v!DZ?rFcshn(pA{aX zDRP W zY+!)lwF6~`b82ybxHHyjM%Fj}aw+>PuhpDOnn_>8oO8N+L~az!Qc@Ri1tfhO-%3W@ z7O F-=WHmm1(LGYC%dtft2ck`0i0RB!N z552&>V^(TnyO0`}N0<4UqXe#sWj)UfHtCC$B4uCY;(S1aBVh0IMCU&-Nr|z`jdSjG zQQZ1fDP2SqhDRpm=kCms^_;ZKm{Eeo5*I!bxUz*g$ZuEsjGvekvnDTtNpXCol&nol z _vbUL{gICX{ZYn)U!| z>wj~GMu;6)sQiGF^!~HlE@o2LTd_K{7k L`P z{$chpK7lirzIND|-V0<8#UTu^W!r1ii(u`Ck;=%tUbieIaw$c87sK#AJh&@+Ucpe| zJLWCJJYP~w>tsl8L(bfGDPK)^^@VQ9gw5s!y@* eK*SX4Z?QKKd^1dsP;?fedt5Ww{UVjk zV7DRi=B^|&TVXFn5zC)0fI@Ob7vj%sVnB7l8RwrY&^tK z_pj>vW3-mMm!Bob%)g%9)&V09FS}1k#=}P!OT_scqG%|Hr0!!7p`~VI{{^^^KP?Tw zloqTMZQWU{V*OiPBCI&D^$W?(Az|L>Fz3W0Tz34&8>trDZee4^AJR-wyw dHxguZbHGUJi+*4=^8WI{0}usAE&fO<_*)!7< z-heMw%>& )0s$^5Y9aipb+6V=WEWHqB!t8ys3D_kwdqN^W{j!22}Sw^ zZ_o3;>MZ!nA;mn{#X=~cI39Q=G7?FI3D+nV;!P@Id0~}%&Sn$c%QJ6YK@dULs6g(A z^mL!zxFgHDR(P!S9NtjuhLb00pzOC^4<}sW6@S#7rt33ivpknKyy!IFou0%QD#~*L zbQXK)Q_>I)^Y>u!qd1y=w6bpyH|se^B7s?&p90;8LgFxchlMCl%`!Bp=w6alZcxte zqm25)3@e v!t 9DY>qt*QQU)1nD0?Q5St%(y z=zGi Fk$L;pFo&8s>S@>|B6<~roKyCh12p<)d z+$s^HCfLMHn9H!1&zAc vz`N&bB{$9?k>jdm)gJ-48wTY zqe+XN-!t>MahZ%V(JYM8#3;+^5^o}!D#RKX5DlCo#dJWIRQv5_W=3T9$Aa*7Zv|)n z>1)|KfBvUE%|h~l_=>f%l5*a?MqwK-XS&J+scKLWfgM8%_UID|#_YpxyJ)Z*dBv6U z>?|Ey3*>f-rX%D}EN3Fs0%k*I0Jq`*r2$g_5#hzvf7FhzU1$@{!Ux|Pdp!B@=?5?F zjJE0~`ho|8b||eFa&DN7jxM6TP{BDea));{yHSpDwO|u$hFfvb?hz*Ck9c4 >?Yzx<(CV_5&BiXPU6 0PdkQFyV2A;&6Av2M2!Qr;f9so5py&f{@aCd)>7_c|`Mja38LO~n^<)oJ)rKtN?@ zzWH3xpY3uSczoVwTx7e<@cVep Qes7>r MS(M*6+YAZqu(%3!w-JrGI)UqJ44-98)z`Seg)4 z24sdEMi8iW45CQExgg;Ls~$>xcZwI5M~53_LCP>5?viJ*F5s*yQ$zb>xWzexL&>BH z0e)s`Wzq)*O9{IFH0I?=m&GiBCb#Uhdqg13nBj;eYH(h?H-Ao?RSpC8Hb(w*Njug{ z^=;;Gu&FbSL;};=AKyz0_9=--^<;xtjD{y?=CJqa?og8G{WkJNpcUT)oMlFd^a4kp zgH>qHB=E}?3y>Y*RA1mle@AV73d)XZz`n>v=f+9#Muln7tK+6E?_BciVCK8i7}(&w z3eFnoBKgL^fKCGySxR@e3bkw`6(4^6lBEamE?GDeHq2Py5s<$Ha9s Ap|k?hz>47-{&kyn&^W&7+1)aE_0e9YQVZ;aB5-rx$_kek>&=rH490x zVr}eGdG-I|SWwfO1=`tJ(0iz-zU|t8qj8sAc)@b`LLS%P*t|7;i=xgA^y1~;n1$5= zhczvb*dO9t3vc(Q0JkUjRx`th|I6Z=$De?FxK=?-*jWyYzI5R4dRdlFi9FaBF~CZB zD@7n;VHilZG3Q66=XbO`$38=yPQb+EZ&wLMooD-Rb+mrn# Ui;VHwH-L=pxV!4u(kFDys+N*yicMs$9&>nz7CB!>=1_MpGF ze5@Ks0$aQyrMs`860CW -@W-CeW;uT*Ead_m7_<)W(eNwZuMkTr66= lvR fKs5v_g^+)B8LReM%GCrs(4FQB zxIKvK{PP$W7G?a&RSy29!|<(u!VJ)_$s4P9am)#4Ii?~sOkSa0kk7hA!4{dwAo?h8 zsCxLdR$&I (M!>O3&?Cm19#MATmhIkXDBhe7BNW*@^>V@?vC?;5HS4oBz zI4(7Us3Jc5dK(&s_xz6`xfl=q#|eP51kAL{;5QQ!H1R=w;aAz;6OV(9E*9Nbn{(pd za1NcRHQL}`d0&q06%{^ejQhIzMJ6I-hE2Ti+VWd|iY|`pCjt?76Uq0d0&Tba24aB? zX+P&f{;5TT^L${Gn%{;hHB^KleM1t`^3x0$J({P_DOvlv; ;;cs=QXlVt;e*vj~M|}7)+!uHp zrmV0iNe~-FsH!K^KxfKKVS9*e69!Hud!&KoJP8+KZ#aaiBa|1f$*z!tz1kb5(B#oM z%^viv9X?_rs9zV95RbSW#_U4wy9TK4@0M&jl7?2fPi#1#`$jsIu7^q_Vc)f6MY1mn zQ|H3>CxU_)`#Q3t64}?(CAl9A$j>UW3fgHQy;~Og?;v0w+1PWR(-g>^ZN}3LnYw8L zH12*SgaCcEq#bm>ku53YG7SV)kGwcb#xrSiKFcMqo^;-c4NMs(CX$w?&C#e9#U39z zG=-(vCG_}kH`^$;Xs=z2DC3s?4qFV 5oih7EoMGDY;+fhrRN=z7rLFvrXJ~P8(K9>LfA#_gSeYAeb@X*Z}Xk` zX|W4nY%VZ8KR@X?AM?KPaWYK@y$N{Z{FK*!44GUEE()d6va@~Vao3`AyNVTeibZ>J z_`yoQ1y-g|lozn}UoU`V=OH sIek^nrLc%;RaYg|3s(A=WaI3u VP@%k;-s$R^#g#8p$9dN=()eV8$g4gkG^!APQE~d^14s1* z 9LvPiSs~TxivS?`@qSjDm!~^hVmA$7}@gL9ae+Pjx(A0f_u4WFDI^8_diM* zo(zhM^}1Eu2WSgf ?SA~1F zP0fYQYu197=cy(ymYc(OUd`BxhGG3qFbo(=0qLADZD9?1pI$$CU?jVKCGA~ ;2{_~Yh| z-H|jH_ g@CqfiMUAkne!q4-KWe<6ISk+* zs4f(E(J)Ry$3Lxr8H|~>(numYc3jEsHZVfMWryn`f#yiTKm=ZE_QaVZ|37{Wh3~0n zH& f{Pq}m(loKZO&CJzKc1nBPuRHw99*VKH^qL)_Q-<(FFh!y1N3O417KNfnGT5 zZ8xoh7zq7+H( Ft}#&1^<|UySywm#)8q0QYzWSezp8+4 z@nWi=Q679RMEG7$j_xT&FfcLBsiF^#0d*59Zl7_d!MaM-!C*wxzB8EzBhtm61pOT> z>(YL8rrqgkA!NBw%g*Bc+#0Ruqi(g -dF?7mg(GPhSnvo6x_8u7V%U>Bpk>` zU`a+ZK%=-*Qyt{rV<`UhdT0}1d97IAl 5&1dvENuv27 z^VsKy)k}jdX&)7M7xV>jCh5(S?VbXeHhss*L*V5 O&Nd3ncuD0AEA))<6eyWw zyoHeS!!C!jh12${p+G>Crr~>Erig39FBmUbyfr6Vx3E*EPm3ZLFWBDzE-Yy0IZ%ao zK{9=ABjn5oi`)DPG@TgWz!i}l0_}1yI%#X8P@#>vfkM7h8y9CIrt&_swBa{*2mDOQ z@N*VaB)kbgHyZ)87CFP?H73y+0Q6#7`GZFCa1>GJl|HvB(9=%(oJR&|U>E=f$7k_= z0Z@XWy2~$YAg3r*B`((%rTAw mttYEdzT?58d2@cxNm!*v?rdpEN9vShV! zu7y{nls&g7|GoO}u?>K(N rPkUD#_!5!p zGk2oh$icU8xSOTuVpv@fAX;l$GMlOj^0o>~v^U%e `GfwK4 ;)p8}QwkEwbvlEkmlShe2VgvD*V;%)?#*Pn ebB5i^AIC7v!6!`EyEK?Ue1H;AB!XspA3pwzqySfwHe~nRDn{&u0 z-!#n~@@JO23k=OF1%El2cV;_afzd!@=U4jw)y}nsLz%x}H8rF$h?oiEcwswXrkpau zpv016D$y|3R%%UYLpjBcb!JD%u~JJ2BNc@l8Zlzz5TY%lLCe2oT9m{8c}MNFdtH0| zKkR=$?1%k0?>q0z?|t9j?|JU${yq0ypbPvP5i1D0cjR#QM92lA(L+0_qDU*-#85)c z9*n(>ZY1yzyV-V8%E!D#TG6K}$ccgO{F2)aR`UUuH|ITX2_CSYGF6BtN#w2W9zkS$ z6UhXM`k92+7=MSU!ZU?I1Z7S`GaJEJ*FW-fo=MasKZ@kF3zL(L8qFCFUm&aB+xXUW zdGO8c=dvfQjSje%WJzc*WQzc6Iby s2a|F$>Ll`8~AhQ`h 2?(%`%8zuqV;UZtvRW2<4O{>E<2Z_&H_MV-<+ zg=pn-p5EhC33F6Nx7S7-Sd++5>^Aa}8piGrBfU{k)EhobFV-Q m@yw_S z0T5`Nu(#-R6opN9NgSFFY}?)-|8X{SdA5T1#I-eB?pT(T%h`VDjAEMdT&FN5zR#ji zrUsfG5(#U)^K1;NNY4_f*u}WX*vVGf*B+3SLVL2rrt=b}+r%CKu}72dfS?={8+}So zdm6H