From b092b6b547e66f4cadf4f174f32985bcfa175ea2 Mon Sep 17 00:00:00 2001 From: bpaunescu Date: Mon, 5 Feb 2018 10:14:42 +0000 Subject: [PATCH] Bogdan hot warm doc --- .../HW Design-Atomix.png | Bin 0 -> 86907 bytes .../HW Design-Zookeeper.png | Bin 0 -> 102764 bytes .../design.md | 105 ++++++++++++++++++ .../drb-meeting-20180131.md | 87 +++++++++++++++ 4 files changed, 192 insertions(+) create mode 100644 docs/source/design/failure-detection-master-election/HW Design-Atomix.png create mode 100644 docs/source/design/failure-detection-master-election/HW Design-Zookeeper.png create mode 100644 docs/source/design/failure-detection-master-election/design.md create mode 100644 docs/source/design/failure-detection-master-election/drb-meeting-20180131.md diff --git a/docs/source/design/failure-detection-master-election/HW Design-Atomix.png b/docs/source/design/failure-detection-master-election/HW Design-Atomix.png new file mode 100644 index 0000000000000000000000000000000000000000..9e71cdb134bbe2dfe31f9a0dc1955277e0f55f24 GIT binary patch literal 86907 zcmbrm2{csy|2TX}N|LgTOlVbhm8B3OO3`B9#)yP0gY3(U7L-X!S)#IL-}ik)D7(bi zhh!bQY_mT1PJO<=&-eF#o^zga{+)B1nS0;M>;2ld>-p`QS2^|x>;nLRL;KnlJpf>3 z0RWbZdszX1$#2%64Sc}#Q17Zbkk@%+4*bDlcUku`02D^BQ||5tf3vw>GkpjEutU(r z)GD&B3IOy^+E*?c_*gDb{okI#BM8*>J&wT}{(L57GM`TdB_9m^!tz|LLiyQM4PjB1 zsk^3Sg@>Nj$KLo7s5KfMbW(=p-~bE%(JK}WjaKz#4NW#T&h0(IKP&)m>s^#*dFIB` z+|26a)TJAJUjjLAoX|@i9zxU--&ZYU>6a3zX2fAn+~QFB1I(?Bi!&)AVsHl#O2)q+ zpS-roiP5n@*)i{QqLEvt=c7B7pFI~J{dlKL*<-MIyn9rl{!5mJ=9hfD3{(M+SowIu5rnOJKC)T>=f?pFBxGYD9*?aI3{vPea?WQURsz;h@N`RlbMf)Bj zFNF!spl_4^SJ&;Hs1M|#GPfPwty1c|x1rmN?hrb5xRz1{L7B96mD z7FcSqK@;k^IN4evkpAjc%gTxi>IAm#LmmuVMT**5ZcG083BFuG36<`!zT!6O@}|@Y z)qb;LOlm+S)BR(cMq`rnP!a68F220U@S+grq7AWN(ZKYUEMxkbf^A^%@IBjI+xP7Q z5!VrlooPK6Em@di&~xyjx(4SWE;Kw54h^N1H<}_RBm7>Z$k72ugjZHX0!`hs4{uG8N~9(LgmJB z&4aEJb|2%RXO}g|;o|`q7w4Vg+$UeKN5>m(T@ojXkBD%ZOg$+$u*NB9*E@RzT#UU1 zCjs5xnoBvH1RGR~GpjZDt?6@!Cv_c89CK)#n`FU%`+h`?=lt}lgl)!LveOe=JalFP5}z^jZ(YwL%pbzc_gA8T2@Nk!BKorx3kPBap@xPDCIE6cV-@le&jrp5lC~cc1QL zH=%llSStZ8RkKA_RUnF&)IOJYTiEStE(D3kud!8-)LUEVoBhTWy4JzqI7%Omo|D6G zjbPJt}dva^4BgDJ;m49sU~>% z7gG)U4`FD=>Ib@nBlk~l>?GAS{>wgan{5KI>uYrI(`GzJ`L|#{lIror8}WO^cFv+i zUzTqyklPEXM}6=U@_W{CF9ZA_cnQ`rNT_%pZPp!^wkjQSf9pEtEp=6qYX8s+mA zG;fn*Wz0~5;6zts6#pVuJKM!r3vbGLZpye40@cDyr!5d>iL9dZEs1Z z-0FnJ_bYB|RmFO|*WH!9GLEO!Lep46rhXW!NlLQ=~7Guo)d4Lz3^c$wHea-q(+g0~K#`xz;+;>4BI*Y&~3VWc{ zWPu@VM-w|U)w7b#$jC+`?LIAOvZt_Qan8Bns-^@yi3)qhH5V1=!CP;#GARrMopv>@ ze=C|PV6*?SJ+7I{>lCeOLlS%64Qj8HP9GS@HqDSMiloSU1Zg| zEu0F9+VeALlaz({qYE0xwRjU35FnINX;9=OU#ZJ}%&>iLiI3%7w;1tuvmpQCZ@K)$Uz#NAv`z z_~4Z%tCBaiiB+c~x^b6@$thUvS&P}GLsi|0C~h*(a5C)CsHWjN-mHOS*b}iFIo=KH z0@x#*O08?yq`^0=vA=mlKT5b6kG*HA&x;WE{Te+Ks;u6!SHd9R&`zacvdT#G*SS(ll=e2_Hvv&(Q0cV{>~ z`8U&{@ZM?-Qp|iH-RP3i+IUj@(uKfQ4(8g5Q=HYzWMdohmAAkBqNX*2>P)Bl%deZ@ zEcxY~q(izxmxG15BA$iXPOcuqe-JbLQOJ65cNE*6(STpSH>#pyMmnP?VrMs19hIlU zzJQRyCN-^yxAQ&~fk`PyM}B=K9osUE{w^MSYp9Tz#0V zzJpguv|)yraQm4&n;y=qj$=ifzl=Y#19vjjO+O87jj9OY8c3?l&b*g?Gk0GIBz;pE zznkz>tTS6UzHHHGN9LNFuhmpolwPB*%{#GmpjOPNRZ3h`8rXjTGOl&kcOd&`D3-XHGcPr=@E`5RNn0b>AbA@sze0H>DRLZeW#3e9?h32^m|!I%SaBxi@Eb)vC-fx8^-5GsW}3? ze*)9ME(_bi_=mhGzkJrA29NL982^qzQVkD@5ZW!XjI;g=37RH8#30X9MzZ9B#bw-dq;iA9_V{w-tMnxMDyR&4uP z-S+|?9fXk{w6r%KW{XvCC4Cyeo%wB9IlS;*%-0%e+R1L^)Jd&}-NXLu*@LzolSAVM zR;~)+YRYv?XLlErp7l={_SlyNict+(K%44`5z>ZeR7;>&LP&lW`SUDqs9_J)&1f}V znPYl)cd$2RdFCGEzFhw!Ufsbs(pEy$&aoKUIBb(dUD`t+Z`RU8z{y;efX!A6!4okZ znnC_bw5(E)pp|geP$Q-hO*{U`3Wc!3)d~)u@LDo#>pf*+d>h>7BFj*W{M}8`F4ecrs*zMz zq0Kwmt22WSCtvFuI|w2|hmW+=71!pV^Hjd2<$m5c@EUUjXTKkBlDZSIvNtVRsZ$!05iw|=|5Lr{RndeMs^OiBL*6K&TCmAWU;LW>9(V}iH4tLZA zEJPt`Zza4c47WrkkYUTU65My`k$Qx0b}DoI#>&L39P9U8GYPG?qVt$REptASv)=|M zA`FwHRqrd{!iu3x^{+Sw1dmQQ3C>4P?fp3;NMld@#(pMH5Uq41=m%nJVbXNp!~wgZ zGWq*<2x-9Tx(9p&Ym6a>lSB3hX&fBNKg*)^^35|BURalr6ZBuQGLy-eWSQ0dJaW`Jys0g%Ob83;enNkYS!ZZiSa# za{(0-CEHqs??*nY&>rz-f*A@Mox1fQXcF=nV8MU|?Ant#etRI!2aBBhIaqe0kiwb85hH^wtFj%IXPT#t zy_a`)Klz0Ol=s3DMC*WQY04p1#oGZ)C8D#oZSGuWFRa7rJFebDA|qMgj%K2BhR1X6 z8?Fu?1X;l&EUHNN)Q9ivYRHGllRdjH!7ud&9m*0}~#X@_C>-SRK ze=eG@fIe_}^K(l8ZCjp4@9@ohyX(QvFE)^W^Y=Qs&oH$RbdN4oFAcU7^E3z^2s*H; zzAK1rQUn0Fn{@#|JqnW~b+h~~9UDv) zX8Mh@Fd-BzVtUK!R4l_(1u7P-Gd(S9hn3P%>wM0`q^7!iZT7YDqh)syi!p&$U(=_) zwrzfT8B1giy7$Si@E5o>uSB)U%MI&Ra67Sa2o%0ak#Txm&}?N0?mhiTaz6IF0uzui zUf<;I|1jG0*Aqjjw5Ir==)%w+n`%So+|2E^3PffR0g&B}XxvnJFS=%l{b{U5RM_QY;T9j4MrYB(qd6~LL7sQUWjY}* zO0E-x3j!F)^R`msS)%<1bzn%-4 zN|i*DYbcBtMxU)<^8j%kUA4`Qd;^V69T7UaL2y%tuHTV0K~VkHD&u z4Nb!)4&?LJwc*T#$=)i8!($dopP-bgoIv_H!r1%49Y=TWl>~hgTrHh|=Xe4VbFu*w zXc=u?(dc-OA^n<~B&!h$^G7>fIhE6e|AHzw0eur1mmR#khEadQ?#DgCq6l)~4aD|0 zyZfRcN;TIPa-SK@J=}lEqC0+e&APIc{Va5xU|~8Qf(w;&7F`}8HESMUydJzK!=|sV zNsm}+5^U(a1wi@@`DPR_GUQ~{r$a2XF8$v2?9av+n*5vY z62qrTHDm44v+&|#WrMs=ZR;g}ciR!JJBvMJTxKc1jGi6kT!yRS&iahnPKHr+HCm>r z*>@%V)Y^B~!rD5!tfbQ9+_>v~-jhE|w-1Gw&>^oGPydV?7$R=X6rzcIWSggT_^S#` z!DH?dk5#VyJ@5zetpt#Ait^QL?VLOsKQ=|IgqgYH@ylWq&amL=W%U?hUNA^A((p1F z#yGjKElVD(v0%aaVl37{7Zf-l%(}3u(v7nt6Hz}yWcL1DxOUw?uZu5O0&dsXFZmLw z2_pNc^fU8!|LD&{yFqT#bvyzH_4IP(~5Z?8bFF0VOp?Z4Mn?64s@Se8onh>UI zczP5^dY3;KZ#>CEE3h|dYfHhb?OD(3NXZKhnC)37hrl|JpkSL#gmhPq`^M!al%Y_F zxu)M(1vFhBWu`iMPZ%VWGL15;`b}@Yw@;6&hW)370G1YF1JQ*A+nG`)VwU8)kbZ1~ zpt`vptwr5O-f0_N>&EOG>@r{-^=Nr=wN%&!#|GS>4ti52A!fj{1=4GYg4x;Yw+|0) z5vAu9NUwbm*A}n-q+)Z^B&#w=#6ujyUZXsp{4B2Z2xEw&JbZ)-8T#r$mBQF9dEc+d+c! zc>=qzsl8$SO&6G4jl+<&8BEh%ajacB+6F6@)ww5UY#GycnjvL917^rxoX&9$kd35p z-oyIEKNRdExY^AE7wmJ;$-7!2UNaG>6e<(6e~A{OE8f z8kq>Bg~FLdvIeYC$xDh^HKiUAL@AA3Osk7WDpv*Y>@T7aM?625qN@uY3^emfCzD#a zdd%fOBN`b9i|#^}*M8vfGuNiX2jK+ilE*MOENX5*_v$218D@S9zlhtgLHRmZV&dzq zM-BqO!yS$ZF+4k?LIwU8v`wM!f2Y{WT>r~;!k^ie$;!QA<zh$0{@bvpfR<)5!v4IGc+)ktU9t<)&Og$3xqhe>rC1=}5={V2jq z`}Lg#bI#JdpOi3jr-8tY(z-);CaEYxiz`H&U%7WD{k|qWRC6KzWO%=0uQR;Aul(xJ zCKdJ2qDk#Eq*$R4|f=xRVlIhh!>DQh~b1KZ*1^biQ zK~KtNboq=2cg5;gQS$Y5e%rgm6->n`k2kmRC=VWK5Y^l3X1K0qa<9{e=!>Moh0cvt zGO0Nf?uPVCs zSq%2-r@4Vy^Q{@V9AA>oYWBjG!EHX^x@5JQL1oa>kNN}d{e8+|byC*?o$dBRh>k`a zZT4fDXxL(DWmW_2;9QCX@OFNUxv&+>39CB|O?KnHCTz=;XkZL`_CdL1Nq;?w=Efjk z;*TQsr)l}ehr$Y9{bj%{Ck_}MX?TliM%j*uW zpO%zLk^ambXwpuqE_1>$0hP9}wn9rC#vsrmvue;|xTJsl=ckg@CVBJLRpp4~mOJyH zFK1N}XIcL{kZMa0)GzDY*@lwC?kc}#)7eJ5xQ#|(^mr9)v_saJA zhM;o^LP%T|%0SmJx#|>_(T2=N?E%TR|Kotxf6crp-_FeRqh9xD;M?6ndV5@$mrR39 zJ(w~dx{1>2R*DF47ypR|)dANbj32N#y6`9mZqc_pbMetRmYXQF|Z)0WN3qr$aG!<3m{P|9NUb~KYN_m$B!-eNwoqTt_FX^fnsqD?EDW`+jh7w0QO>O2}(eaiRH6Sp;^I%7+gJo$;U^ zQ!r5}iy?jR1?y+FsIEpA=4iPAUA6V$CgWa@Mj1mF9!<06%{#-qqdGYR;pJt=)eAaj z;j5?+&}qAE`R z48}dUC=rKx3!-yK%X0#(w%bbGth&?2bDpV?GkC7?K5bhp!E9OtI4U|>#pcxhk|;9H zYWxU9P3nv3hA0967IF>2py8-!N`-5m4>{ct+TC^qmM6gZhzy3$YI>}J69NMqR);~5 zwd@LDd5pR{JpN@Rb`o6I%7fK+Vt$47C^)bF@JO)ZJrvUp2rK`G%ZLiU3Z{{`mOHRe z+2h9<(`8_JjB0MVqvEvG%Xo-Fhra~hNMP}*4ZK~})5HI3!jHPYafU|BBSrFK% zuKypOFLoL}1tK-yn#ytjtk3^4`E&OPvmQGjBm_FJL*Rtj#J>)#m(7l6IS)F_Kx8tz zaf%P=bbym^H8GTQiHeE%(STLx~S_w(5S{I%GfvUTc!=tAfZMLvL^8By^7S@SpO zH(a$IdN#^Z!(LET#b!^X8DE+eKe{lT=o>a%epk0zlCwja#-T}2y0<=9Ra~zU`%?zk z|53_<)FjhBh z5oU?!0>?DlPGS>OezC`FIy*4|lLe)fUJ}c$6U;%GgJ#HL)EtyU(vKtn6bvJsqg!^jGwkl=u4%TUHZXtZ*9b_&cf&|2e{ zyR5b9I^V>2FWp$u&=;>@+6&TY(ZaX4Ha%})B!=Tyv)@CL9>zg3PUB{U+fKkWDiA^? z9}}2(+_;~G7F`(v6A;JYjuvBRO<}r=>G0pCHA+9mxS_xfhdGz^(*;~t97W*P&Y zGNkzX`d4hk{V*`6a2gr7lZ5PQKH?<-Mq;&xS5VB^5vbNIRw;>}YEBj@9M7CdoP+=@^>~c;%VzYxJmmg9p<*A8K`WPyAygqu*cegp?I!SY$7z};JGH{0z8OI?i zw6jd0Mt9ed!2H6)T{xy^tqrXj2!xFDfYe%5;!sncv{Jm~FKHB&rdf6kh5*&zXfn7V z>|O^7=D3)>F}!U{{2kG_ycM&Kk_vmJISe$Rt<$)1wKtTHMw=$-f?FwzsM zs&tj~%g2dTf0ju8tB3j1Z=9wfpiIXuSY8zv&zeb5zbo7W<1}SZi(}(~w5gxc=>Hx7 zH7J1@4o-`T`JW;|4we5TYhKZU+k|9>ap7f6xI_a1iup^=MPir`_YEM6XL^4^ zOEP7Lr;2R==TDl{>Eq0h99l|tsK0=q4CXU}+3-{DyIy^^toV(%0p(7>Q1a^N8E@{4 z4Gm?q$Zd+nBbR+%Hm|bi(Pp5<`2KKpX&5@2Z+Fml1Zst~-lD?T3^CaxIRy)CL)j!kwLtL5?ET9wjKr6 z`YCsF9q-YNT7$DcYEEgI9=|k$*>28penu$WULlVaqAD(QCeWYQmCuYuD0{h~EaJNh z7ip(EhB_%~;$kK9`EDsKFW8MQLFAoTA|-<}t73#HQwv}lmlz8ENAZdjXl7Gqm0r zThZnvfAWs5RUF~z+>Mn&nmz+2MqYLl0kvEC zOIJSmO?=;7`+|NxGAUkdutS3{$~epRxhVOcWZXYO>I*f&K|G{n_1KgNmgfh7Pn%Xn zd;MGXY4Ze(QP~+4%IxkfRV7o`k!tks=-O4`faT#W67O_tBj+NVaJ8b*JY#9kH?6S0 z_+O@cBo=EPqZPOSnDqu}j+=Phqq1mTP(w`CxjGPx4?%uT^PDt}Smku*D^w^)4J70_ z$WxyzgFPAB-t>`m&UVK}(#gUqv(9EwA>Yv(TOD?zR|y{UfIwP>EvSTxo)$CzWwPNV zO1qP3%`&faEHa=Eg}{2#zQ(ktXCoDuFmdWC9utUlnmE|8w@|2hNsd#}rVVs!tL1U_ z7WVKYP>$OG9Fr{T-?fkdGpcP_Us860O%SUs~@m^~&gxZ@$sP_-OI@n4S*Qnh&B z6+%5TtObgWT%?In{eKviZZ~5u4dW9|{O zZ^HM4+t2Ufz-|4CSder)hNkbKk-BD9zxD^NyP1{iB6*fp1a6!W=kE)4ETdT&@{YW!y>yI!A05q!Lm1e0StdM z7LxPX>oB_xhM%uGJPYP!aQ$`)k8G#TCftYh?8KgyFmrhY_6gCuH<<6ziC@zh>AMWA zI1mKZz|}Pr^R9x7oC>z1moS@x^b3%3(Nt*2Nd!ZCa#v+u2E7XGnU;L88Y8?hvbX0>)VspylIE} zFv3#R2xi}@tL3y5My53L^}XF>sfvp@0_q!?^Cs$BV-X8k;J*11Som1n>@+pH-S_BW zqi&)SRH=!_P4zMifHW(uQBDkNXjv2O5+AST4Z-jMMGA#bl&`R>bKinUL6*sb&$>rT z>Qs{3lO3LX0e5vKpq(KxA&vsYk3SG z^$(F8QJyJazamd>FoLrb%UP(|yMX(!5K;hoj5=-bI+{LX!&Ya8Mfk%m26NVL}DW=pYoKkh?t=5?hzIdiJo}1C~3)sqA@)6`xX7EhhkK6 z?eNDqu!PpFmHC7-){Q&1;1HOVg*#>cz*ixWmWHb_^Q|7G)T*DgWx_sVEq0k-z?Kft z=fcmriXWQ@$NdzMxqG6G<#(S@R{mCds24exHqY!#t=emjQ{l+VSKuu4Em0wE@nRHG zzTyVRxjyvlAF#mPV826M+$E1Uh4Bg7y=^c1R1Xk21AAq$RV79|>b1s4J1M={CcC{V;KB?Q_OIQ><^bG{x<|jFjg_K_ z778J;MD=+v*uM}>m~IL?8Nh8HHxYg5ii^!4=CI)*8^PFQFw^jhCcba=#e&G~nuC1i zO~%!E1G@Dz{g&xcY)#s*vcSw%n`EB&CP9gY^XEgI+f2}ECKzK7SeosRZBBP*oO9q% zULb!*mq{3T*TPk!pjWR)St!^{sW3wqX0OjBn2G(PEMG{@RX7*2@l85X9ScLyMG^zW ztJw?+7euVcVBL0u5jI&`xjgP-SvbzA12bjX&l&RQ`El_eFhmrQ>e?4czarPV5y)Ku zwlti#Hkr7|k>=!ROh1>rV$*@o?25f`?vcZ! zNKi1N=UtjhQ$)u3J?AqqrXJM(X5ieT+dBurB)tpstLsrOP+&Tub}Clp+@o(Gv+qhaWL7bj zQMt$b1{9S&`zyKZ3C(;d>LM~1$@6Cvn690UvPw2(Qh0Q#Vm1dXx`I=mfh&i+1XrJ} z;nJBkZm(dI_^fF+Rlzn6h+S3&-53w>P-^*6M^|%#;_JCAJd7BFYq?HRs+<2lu5T5) z%xQX=(9*1H#U`aFUY<|6D16Y6xe2kJRG@??7mKH};w2w0KF%5E!y~{vp=9<~te8*K z241cT#seN{AvEsd0H|bJ`zqrhM z&K@xzT_go44B~7z7r|zfYp|$9hc>$|80ASeW_05~NAjA$DEmAXk1Wn)cTY%)55meL zCH0K@(J4&{EnQ|{m}lx3WMYgWn^J2#Jp=us?-5J$5IKF4H+w1ah)D`O*131A=!X|| z%K0MhtZm%b-mP4a`1iU&_OtP7*f`MiXNTq!>3MFowXW~fa+agk+LSz!I6iQy?%I$Z zYAUCt4#XB>OC)U&=$Zv$2WXwci)!oQLfT{YLOAHdG2^l0XD0&Bv;%oyI1N9ZCG)0oRGe;-Nsj*IakGW z#z}>qYj8&#iHbKfO44Z>7|x_=S|W($)M9Gs>X4B=CcD71-HkiwMH<&H)6Z_6<~m_Y9)cRP9XHPfN<>H|P<|_?-O>Y(-CWuyl{qDT4h# z=i;sxJp9${2f>C&$oqQOYD2=;ny}84#P#DpVpKVVZIP_{Whnd;_s|ab)WTi8%Ytr0jh#QJw#x+XSi3d#ef=2-LnPjSaPY>r*_1GP->*ZgE-k1wr^W=WE{bWZRJbtA6 zscz1eFJPT$_qj)R!Q8NRC71I1tFzk_Ha7(rGU^p82R{YURNsj>9 z1!_(zl@v?zud(8f{_$asbK8R< zzn(gzOY6DrF*kx4>E!D&abbzeZuu+BHJ?4HHpOWAjVa19n;xFtx)&~-8n}0%rNK7j znNA{@w!ijV?6NTLXQ_hR0bQ$a*xN9_K+*Rutos5_zv__1^PF>qlHJi*P+ z=fVuCR^0LTZH*zGkA4(@Jus!oa&7hQ0BXmM@n&rV?4HvC8F|93YaO;t0~x_ zM(=)RM#C>|F10axXspasD{|U$q=Bj37tK|KjEOX*n+fj;EYLd|;R2GNDLZE2kuX_h z)58AXxq*~ojo{O_8C*G8$Cc$G-ijTQ&LHK`!o^gk5>%xxpidTp%IE3zgPgXNET9ZP ztOg?fb~L{t$oy8I&~i>$pm=FByIxSqSSX6hiUV!WDeCIHvAucH6sZUm4_Y^a z$3AD;+=|xk=lc3br{2YFSf;wsGzqi%>t>zEW|HT_LRz%)dkaimd^&l_J9! zGx;_CW0#p^1R+l&3aFh(E_VO(HTD2QX9SJ0NGS@4kix+X#8Gf=GJ}O@Iba{|P6VhK zusuWX;%5Q#-F{7)b|x2u8I5Pa?=Wmt z!94)5H}Un;A9q@q0D#&4`(Sxediegl{ph_3tHe6o+ivY56oo zeR@2#LfX>-u6Q#yJ?FiFmKZ07AUoEoAd72NZ_)qNmHp*9k=HyTDk(~Pm0~YkVkvG@ z=qAwbp1d)%<|R}rL{~PPLg8}%ph_!BE3zYnwMf9Xyb`?{V~o=*yewr)O}o(9pK?2; zSKv*OZQn|X^L2ak{!*<9VXfYrLi6SX9NS{L+*?nbGSy_~Vc9}o@MXZAMSh7e^~o>7 zsNt1CdF*8AE!rk!g?+Dsl#Y{6^Sa~22Q?Cr22TTi~tc!r}9*SZU8$x=gCb8it>W;iZIomrbfsSp1y zzZ>qGf))&IhP4fCmS4beefp`iBO-eC<=)T(}0c61O#5pnW)x45?ubUnpJziip z9bZ?iOLP4JgWv3gLmzokp{A|7VBvr0jxTFZGnm$mkh_2QA7!v*pWfhn-?3&EE`+N-uOa!_$XuQKg;+_SrdsP#7K7 zZubNk^yCwejicJ2rrG}7j=>!$qx?GJrQtM|iz$2yqwu*blNHx+i$9FaeO}bwFQ>5e znspx7BXjhyY~*~l#eFn$BIBLwomtT+-(H(=Q>}jlY{O8j80^nw!>ouC zH<%@wU+w=QFuD94Ij3k!;bI59dO$J z$oLmVnaEtW>|8I6&t}$oX_EgX43uSW*+^v)4MRN`3zsXFGEP#?@5 z2~T~016YW`#Qb|T`8h4UkAOvSX{FKDlVayKr|Y(3zfEkSds2xPKvnThTRsvhwvuu; zN*i4Y^2%)GKb=GQ<(zG^kA(D_)jMsuNT}vE#a5r|Qjqzt=X%id#4K&u$TE5S%X!ft zF!FbPr<-|qh_U|LRyg>$C>5@K9r%3_P~g8Yd=7hOn)8<%*csa%+7ROE62GL;9w@AS z5k&d^n~~us19xZCv3=!e?k{T}lFDz!MFOjMLkrZP?5RWU-a`1L&FD?lg(}^x%H=8b zzuW;r2UYl#bO0T2`Pv$enDCfxdE!ZCk&=&^^PQ+TDcE0mxt9Dom8E`TGwJ_?@s0v` z1n}JuRKig7;9G$-hV*PPcs%x&h9I^y#QW=N$4 z*3iVILgSCf=TIDWUUjXftVW=xd~p-~<3pZ*IZOW={f!Uwr92PRO-T?>OvX6p)F9I-;bUf+VV=`3U3B63{%j}vB zUwAC{k(lMbK%VY`mx6D;Gog=x7rtWjx z9+rjk#kU9$X;l>TVyJGpr^BTo*ai%5M;4QJ>8ktk?26SV7ZrDsAJko?hm zAs#=}EgMW{u^~{fT#vZ0WifFKMUiGO7R4~ojwhq!qA9EW`K;yi&ipaC{sPaLy7^+& zi@h_z+L-^^$_yu)GwwoX2zAxZZiwdmN%#0|g}hdqyvxUfrVN@3zgQTbgN%ESTx6@j z4Vn*KG-&KKUbglG>el{Wo#E1GzfI1MYjko|4FS0stt^}4X`+|tM#I&=|E94%A}2h= zD=?F9d}|-i_bF~BI>BVKI`vncjdsrXsvi64e^SiOMuynL82ZsUA$1XW2`@V)$FduxLGN#+mselDQA{TY?$ zcEW+7%x>xqUr}qjB^qa6WpS+aIxG&`L?+P^o`G4EOc=& z>|dXc|3E<*6bUnNs~#%Yc%G|28Ha|yk#&BmfRH*lT@`uxI0)W#xb{illbD=DZ3w34 zUrOK)@OuQb16Zvx%Q$ZQk2#3i54m14sFQPKdbtArW=D(FVS(t;6NhH`A+&R+FVhKQ zv4Y-DGD1RZK?hDz3*4vvN=E{)AOgrnzEYg`0T=_gXM)$_l-?91gd5`mg(ELD|v~X7PGr z*nLfX{-62QU>YO&KC>0WKV1bN=(SwH9+aZH|9$TPgTQ5)|AOTlgLDdfa*=zFZ>TXr zV4vu@%nY{4LA=XPgGipv215$IUQTe*X57@a2^FEzCea_{AVMjiYNm6#zD^O7U{ zWa>*rAvF* zx9~h*q2)+7)MDXdx5Pd38w^6 zRm%$$ll7+!f+|M#$3YA7AHZ_jr_P_|M2yvW&$Pxbb-+JgnHs3uT1YY9TDwsyILK)9 z(N_l}iKxRpfnPxL_zk37cV(OTX-=eXulSmlM2}}i4x%t6?YRiZZGXcLhz7jfO(3}Mw4?5S*?U~oc&S9U z70R69O6!_uPPhIO`lz*lR4Li~dPAY;>Mi=(lNiD_{P5Y4?u*|m-P4`9{&+C}p`Zlx zl>Wq5f53>S`SsFC+Hx}xRY~d2xBKF%KJ!KO>Qc!mXXsTEh^r)E*_I>kS~#j}KRic- z=06-&EaBAfk^DsSd+8gH8Dn??WL&fA-;P&{ihSt1RCngvP}|FgdypCJ8Z!+IAIeUO zGIh@YBS*7}{U-1cd)6|BGnN$(t!(Abm08!a4&_}XW6XtSrZuYP^NKquw3_l?N$W}; zg`H7^!?E>?!#LTELhG91prydnr>f74INS)UV>TeL{9?V6 z(8umctx$|O9&gMsIPC4eWimN3&9<8EVCndZuN-C;s@i#rC5%|(U+z7p_=QkcNCT}@ z0{_!#ht^GGixaUZuXO_q<10hgyU{!?T{9nyGPqD^k{`SwHa zlyi<{JJ`|{dCa^8X*6uV9Z@1WSKvE-I%##EzC7mIAdRnu%z-||9BshM&9qpZu$RXH zLoJFb3Ou9lP1F2qzd$M_qdHl+r7I@|!ImDH0`x}$eCKp5w{f%XMGZd7bO${9G|yu#RA*fOFDsCyr;!6rYxpEaAz0d;|fhYtxcj z1B;J&^@~~*PScbpj~ftF4CF4Z#~_fJ2h%0(XRZBMw8x%r2bX`tzpojfE-mbmiMyWa z%zX-W`#3G`T6feR($rW&elT{KM1P;1FsuwD2M{>f*z?hfkk6{c57~>R?kdD`H~pGZ zG!!lmIf-^%@TK8Z4}r`&%}4n5T!;0z4YKJPj)1TLf9;bO5aVNe8H|sBoe4!;Ab!h+ z2(QqQ#x_}673Bjh+*qzlBn)G|+v?_X=t3mz`h?Bv_HsuF64}=stce`@hb;5}hO6P?D z@nfuDl5{K8UNx&WL^Q>3{Z2l2tOtH^3YmZTDYQsq*@mvtz zn6)i;-0nHBJ-t3kmGfLO0w?a$C}@an-xtZmJ>r`DvpC=#yAJSFz$}$uh4xi%pUPV} z2vm~6y;?RaOP5S3JK`R_> zMMp1N6X1#u-B{a$K{CQ`a+(Rgp!Ycc%8?Xu$a{>nD&nOOG$9a?1m_^DXLnL_VOrCn z-Q^q6w?$k*l+0%xZ67aHy=NF1GUMwWLK7F{0QD3HfvC$TPHwaMVTXbNPEM!WZ~*2a(BY(`9q! zKuqz*bxyiO{+oz5GY$&%IIkG~A(T)U&QRyU}0v1{O>z;UpVYdp$t1K$t~ zO}bQ!@4U+FfU@k$XKS8&EvW)ic~TLkj0t%8=Za$s$GS=lFcdAm1w9b!yFRwL_N9V1 z3>IWk-AePaGGC%Tm@2$_QimZ%crV>^#cgXiJaj!Zvz3<%=GaP57`1ObNzbLE45f1G z$^G(5p-H)MfbX>Lj~R)%bJU?0=@`)sRo)N-$0F#A!%%Ly7BA09sQFIuZ>kPP8yO|e zKrMxWsiIt_*y34A6gAba4kO-UuiVs+xWt&iTuK=V&?cY$w~`^5Q}q?@FIP}Wz25h5 zf=f?pqy>3x-DYg#l;amW3FOxDnE`eQHIiBsi`U?*qKtql!9qKdxaNpc-!wq&@4Ox8 zhmp!_Iz3vO2qZ#pvf47NqSe?+v^4Q#zRZ8E7crv!bw{HPpAI*d7j z9q}t`L({m*OZTXr1!Ej#M8TLvh&?cqgaFO6{qD&9{gnW1VUTDuYbAR zO~K;PV1zJtO{P#mN5{b-^y-En7&YXuJ^k4-wWJ0WfzC-O`TI9nfpPu%Nfk`~3H%*d~v$ zQJ?ou=pmVZd*2c{K9;tlh6T432y0Mx=0VC-@8diWAYdb^jQiLfi+DQ5*?Cffxb8T5 z`kWz3aUM!skUZ~+Y`OKvgKkbBuF|&h5wd0Ec<=G^hyFb`5U}h8P4ycFsqN7{e~9&; zQ|QxyB2CaQi#@Y>o60c_E|5(AD}f04zIlrs)bH`Ov=_xJU3K zlExLN!w(84&_2|0LUf>d{7em&@ESiqibGaMKxy*ke0`?GI;ZmImb+LWKPx6od1Nqt#OVzSqd1?gVJK173^H)>b*BrocA zFW8*hPj6mUy=wpz4=u@lCj>8lUdVdMtt_+F<@_L8P3k6ZD49i{v?Put~h)Se6HORs{;G zsw1iccvfOd*c(T@@e&@}8O&06ll*d#szKAK5i6G9y1BL^AvVC@!kpU7912vgbDi$r zVY`MSDtl#@NvzjIrmNDS28w%40H$;@bhr|N!A-=vHp_XFR9$h34MK7jXxHp3&B*0B z?!hu?>eCh9MEgg*KNRGkydR7 zKzFo66sX?CV2 z9~dp>JFhGc0Vy_mUw>_!J+2I*w|t%%uQsI(Fc;(-)4;9w!3y<6D4Q!rmRXYr(0J-a zi7i_c#e}bwJzjTeGd)Qybk9i%7wedMYO`VWSXDUR8TU|f1xZoh$c_vw$Xv-I$DQ=q zP^evJm?UMqIv*G>O{rvHi=@mNT&Hm=rq$K>$iVnpc1O_Z5+#8AA#`V5g%w0dcYG$# z*4O@LUNPrQ^EW5rUQiN2Fmw)Y7D9POf2keht_g1}%emcrf;?K%@FwwXbq4&Sduwmw zhB@ieOr@d>DTEs)DRtx{?_ADo?Xir0PL#`=6@XF{nWQdH-`jK-lP&D7g>l(|bit9? zrjk!F$Y5=y+kwV|a^$1v>n@GQ2c36W&*7BY_AdQM^qz`gpUiPX4q8+esPVbtF4#pM z&C}hbr(B9F8L1%I1ZlA18sBJb*NfT`^ginq>BbuQ7FPj5?=n*4SKNza7GW+0lN zKN5w+wH&57jH3`?M;N!3^+Hkxa(OTlp%0rEu2>$No5#oG!@S5L?8@(0}p{tegBzD?h%yLd`hG*ZF$*=x)VQ%@HfL;i( zLROfuxhf;{LOKr04B8Fp;cq$9W<8cE>~1ZjMin@p|8mHsA~$ha-lwvi4!*e3hw?*OcTpr)Q&MeW+A+@;WI_5$ z6MB#$a!{TgA$+65sXPp%$CS@qa~#K%UBb4G1yU?AWObw9nvU1X0}uDZ#N5K+mk#8aUlcnSx;ch89bJ-;(AU8e3WEFf1fNwM?11 z=X00tLX%5lo}&Gnc7^f3KV!%-`n9y5?G7}*^1p2W^m5sAoB9=T+Dsau7Fy^-5IS{0 zEWu)rd+Q9BFo?re?xE&_Xj8-X6s_{tFM@~#PugRv&^4?s0b*yHYfa9nwzUetV{1ToVJ@*$)KBT}zp&(DvKwknD7wr||{F!U(&NOAeQ zRT$SQr2MtUp)1(=%<2@hQ3t%q;h}@yW^zuU{N080et5Y==s>aj+4031J}CmGrd`l9 zG-=s!z+u#}w;(>)PS9Cd&CJt{-$PfS+}`XtdM;i7J&!&q6s>PU9L&RzDF`2!n^M7C;L=dHKRro~0#oB=^=4M#fwB zXoGxfHP{S)mE`X^0^K!m-noQOwjYlKjE=nn*b7g01q9*TE6FD9F zqZZh4et;A#8AF;)y{fe|g9HDt&gzsAqW6wos=j%QAto^-Y7ghbx1AanH{^ACwJ4W3 zTsIwTrM%W=(=2Q8^${4r@@1`Len^{HoGQvZ?$iq(!B$SrE$PqME6s1a^>8@XGb7(g zhVvYw^?2Ta*^WuYyJYLxkvC?{+UVPvCtLCnbzu_Ca+xj5M1r*FrP{MCpsWk+JnSKeWdmTNHN``oyoi zG9&o4UlN`Dyq{xaPRVUHTL0*eZGzhi0JJLow(eT05fa$2NW~0H<6yhWHY}+I^es5nvOnClcrP|2e#KuD~4Ikl+ zux_C6YF(99*)E_vHYraYPfv1N{BVv~k?MCM)$dSYCr6ua!3)0Apfc52khEQJhb#}|G|-P9*}jjk2A8I&-pz|l{L&=leo;IC;HMCLCn&xvcY`5@eoj*oGqZVNYo>@3VgXTEF9HMvkWX>n^< zTHq^~#wB4!gP#b^iI>(sw#Kdb)vpY&ef*2~jqS>mu@0}Y@!byG4(1Mdjsn>WcBN$! zlPzAEXXfmB7aNdW9g#Z=?Q1NZb~)FD1zHUjX2?iZEd*oPCX*Lyq@{h%C%Lunh?-hf+V+qojeZ=Ms ztKk0n?Cw{2q%*ui07`f7zqX|FVd6d?(;)*OK%kXfhvAU<8&Sp%RiYC0CR=#_0)wSs z6!&h=dyp`I^!v6wVz6)E|8#jU?68O@+%S6(=YtXrMAst(egb)M+E1BKqv3urSamRz zq_+>gk$mwy)cRS^#&}%Q`rW5b+Zo0-o-ceC^6bEdC!;)fRrV^KKJU-){hATb=%?WB zyDQGWv^a42{Pk8g#`KD>?|>P2lJ~&P)28!um`C+I{@G5Noe${1AP zgzZT#;V635Z>U(b`LfC%zXJ4xr2N>H6LH)xjE|kKsLKCksZMo&Jle3G0Tx#OKttyP z)Ly38DRMBbH`t{51qSS3jc))&5P5o5Gx1eFRLk(Zm+j^@X;Cjb>`NQc+Bk(#dq?+( z^$&FYGGfB$quVUs=$Ic6`u9k)4>EZUyH&cl+9p}#A*p8AQFZ_y2eqG!)5InZ^^1m8 z?ycswFIVI-1@^eIqoIlEW&*(=g?t|RTIhRhcs5h-&S(g@^DUT*GEyk=y@o$excS_i z1hwph$*Q(R#Q1x|eK#ma+fYUVOF!Js?%RzntoF5|1kM$i?b}T9cKvc3!sbLiJM2B$ z<7iHi?cS7Wl=#zXP%dLgYdn8wl4PgaZHv>sL|Mc=qI+;UX2vz%LNL%9nUE!z=!tf= zke_hDPxcNfy3{SV$YDTN2X0GdrJyY?Y~X0--cl$20ayH0NY7J8$Ef4wrJx(d;3jd{ ztv7{4Hrmi7tvLBiZ+mQ^QeQlRjO2b$9i-k@@IBXgXN_Y#X>w)U;BLRDv;wBseRB1qMpFbcDzAGfD9Yqm1Ak-B?z;Vu#VYj^Y2hdSK(~BrONP* z%sH7J(AKunCUdYG13(B^s61-3IjCYHWRreICU*aP`VYU3EzbHKyk&8ZFynw3S07{G z!|(akf>@;(X(gDOb)w4WeAGpx_{rv#dAuAv?7>hy5IEWUTaHEeP2+7WSf#~4LeLa> zx>>6Q!a_)hUC?0yuR8VY3(B_{3`ekh|Q2 z0*X)fopr&dkL_3FoY-!n3qMuH*BF~P;GK$#O$*VAaLj?oV{Sf%1xE!?NU^D#GGb$4 zlN(^+1DXbS5n=TCVBsFjIS^{J;r)czLwH~N69olx5OQK)U@^$b%Oq{&)8Vy&>MMM@u%7^p4KM{EN43qm% z9X;?*YVxa-y~t#n34V7}uY)j8;kaVP_wg;<@^(MWI2Lh8MA!JFSBJDJc1QY(B+z@w@7o{jE|IgsWLW zSuq_+qqBESr*iW=0;xTd3|YjymWGbM-*Y{ZvqP!gg~FncrrWU&06{cvLyxi6)#b+r z2>>njyJ`V^-Zc{eCg87R-k;j}GRr@HgLGNdgQWjHZcQ`OU-f4)6~st%EpU)~0i9hR zGL%R*^xSF{DMJfQ)@>3r&3^;9Fn#Ox=FyfDe%9i-R$P`c^H(*9yl4LVb=i?!&li=4 z%g@(9Q4!5b(eC;)*G)5we+*M5GJ3JgYOB@M2ydg2^tz&kKJI@!ZB309akT!GjRSAu z(3)j{ZGo2l&*DQ;owYc@;wejlW0kP~RZAr=Kf0_)77e7ho@d~Cm&MC82S|1 zRul;O`^oGRiw#}NfGaIedE|JTef0icQlk-n3ZMhLiVk&v;RAFRGYO!8=!p)J}%$Hg6$TS-zR%v2gr=3yJ0*Rsvo+_!XK8(Tqt(Eh(zSZe))tV%mmIs`=~InpK(2W1BA>p#ef7i@qR2qOB0pi`^S!{< zJ%DwzCABB*Ns0|OsQrTt4VDHlWq3_|R2kZGtJfN%g5|p7o!k-Zd+S+FfsMd*a}h>G zu&!^KUC>C!3dcBQP*QeoiM-H(7c@INZXnd(XiHj=@Sep}GyG}@Ro)^xiC(LTgwL9T zv0C-+uXln4d1kSc#j~LTtYqhdgy1cjc%EI3!X1}9)tA1a0E@4Fao+}#mIj-&Vlm;y z8}at-{z>E^n;@7zQnonFo$C7od2RRXSrsRqUJO*6C@ z;dVx*;{j)4;^D16`V3{)p8-tEHJ%?iTXNO=P@5Axe*hQaGj96^gXGJD&c*LV*x4NU zBf0HfP_MKf_O^>F0mXjJLDIsQ&K=F-(@Y^#i&I^S>OmT!J6}F42H3`ZnnH(m3o}$! z(x%Mv5zqaXDz|#vL;dh10LXf1BA9Ai_%u23u%s{p>=3A<7`7K@j`HMjO2y=!^MY$gc+YJjVbxRE;`p*h^dF~ zXT0!@E?>SN{d34|%eaz06HRz&c&&bvQr02;XR;leG8W`BlGyEVM_coee$%Gpn2zeM zz{09>a~-*}f?4gw6P37v(oTguJ$Gl{?Rt^Uxn)Vu$3H%N!eTi9ImW;vK)ja4MX?ka zo1rE%S6=P6u^>IV=vZoYH{qSDWe(mL^cSU0qa^F~Sx8zH)OHax4|*=jIqAy`&3pw3 zaq>zMC!+A=4v)-(whkHXM+$xcm`aVb^_6Snbd8&%j!r~Pipu$ z0~C_b?TsnY!NBO5O)WH8_q7ssO0bj5gH<`ht&T*njlc9p#jKK3gMx=!TFy{C9Udc- ztK&PkqZF&~#o4K^Vro#E4GMf6b_(#V&C%Kh@6dY6axo?6K!E%}8$p6^oBXsNcm#IO zsyf_W4uiayb0ClZ>$vD4H58InDn2PZlubhz4Cg{LXYWY>34Xx2morTZeO-0qft=ZF z&mlrINWmg}mr%RPm$Q&F{7AF-;auht)V4hK#8k!ti?5DYA%gVCk|W|c08s9uyyN0v zb5wpKCa|Oig*KO20LW|^3~7Dl?|=>k(MMXa?I2`>Vx{YQH2^wn`w1ccASkAKv}Ge` zW{5w)#h}|mk8wUefB`(3K6emoe+URp#13+UhK9f8gAo9!)C}Zq0eI(QK9RNi6Ly2Z za{XpDeh^z)-UY_(22h7EjU2mC@CVp-Eg@L=-~xzW!%iIE1oN-Dl`Qp}yD z&im7#Q-wge!eF;S4FqI6&7klcrV5JFAbBYTh3@_W^pej`2oZER;EeyWy~={zzoPgg^L=ibZ9 zczWx&z{qTopV~Z=d|v*<%elluU+2IPS|X-KGHy)@Z{>cFyj{KwPWASgPSqZ-DbbA} zn`qS$hmr;@E{2@wuG!?_Bhg%thjeeW`&5xHg-_}n2di}IV~%zh{H24|&XEf@&J{A0 z=-MG#uV;RH65Q6=;wIJNVPvZnfLOMTx4E$nzPea4n*XvL0!hVT^t?`};i z$g0N4`FQqyTn_SYjIUW9oZ!ES3s86N%Au&Ge@|!5`3NtM>0novneModQmYc&IZG*- zEWlQ|`#ATNk`!ow1fO|>+?nYr2>1(Z4xCV$UjbPS)Ze|B7gFrSv%ggSq^pE&O6sG=8bHl z5M}l@kGaiu@srtCP`+K;@5lnn8_b7nUJi_!yfR zO284elkaZgXf%Sph&!s#kCXqN zDr>VBu>&r0Ox(>J9U;MFc%Wx4dsEHH})V zQy1+P#7RqCh>#LIvo@=zz*^d6J%X1lwqD@`uwDAj`tSsy(9k@|7ISw)YM@6j2z^*^|-`#u$IRl zcvY-yut{H{JKLnMLRWle&7nM5AXvPR=E@h#eLlo*8l`@g{0KLEd{b(4pt;eUJqc(5 zCDP=@|9q=VopRnmz7hQr76Me6?pLZzIKelvpw zTyELmWE@H8R72}XPdjskhWHe1ER}F9l6#q44#k%_S>uG zNfMfhonG`!N>j!|M|)9xhFtynTfX8ApSf4{lz*}i1bP+%H5h?zoG%rCI@VY1w!=^_ zaDAdU*IN2$tx5m{Z7a=bj3|*8l+T}axlx*3_wZNS(`y?As&54#b6b#LI45){{!khH z3OffIV64uuf-&ukjP^U#$=2{bl|lAD_kWYUsZ-&m$ot=4ETb=-V!ZmF0d1ir#L2%T8#_c zrKXylw%Tgd_RCt8J6+ZBA5{q*y8Mg<7z)Um>BW=3=ocVZ1-7WNzSFYYs=x8q)d5gL zN1)o|8wl8i5j@W0BUp329^3~35uZ|ad{$-Uy%4>kzdJ~s8A`+hF-4BD24gLAJ|1g|+8hcnd{`mJrP3+DWq6|jwk3n!R zb&s8o_R_iyAXDrQ`oe<3gf*%!UIRx=pvX!QHBYJz;(v+FT@fAs$C>qcSmajo3BTQy zGQe)lhiHe{0!;i39j-m#Tc~d;n&O#HP0YStb3JZ|?`M#OTCYNFu+{|8b%8mn<3FBh z_1GpQmC@P@zK3q+pZh|+5_;$#NB^rjp1BCq&z}Ilb+y)(0O$5#vQCE^_;T52&cgD# zjIZ>f^)gFice_r=#yCM8rp8yp(64st_~(h`zKQSzKCZd;vkb@&s?*JS+A7QXM8QU3 zO$6+2(3-Ozf%YgNVTNxh^(pNKoFNHblg}?#;W|&lVD>FWd`kt}#c+Ep&} ztB3Sg$e*Ua+cX+X%f&F?ePTDb_Bhu{8hSgbdQL4e+joNq9$nShv48yGCGGu-t6(Hy zPj2md^C9%XrRJ1+tB9puZ%I?5$69*=ApLlDZOy}+h26uMP63@{(C6?25nEFUQVE4a z-`RP#GvKngSokn*re`bJy~r^qo&4aKC&gb*fNwR>E~l@XCYXe6&!C~p)Z*H|D|VBs zi-Ap)pGM11ll@p1aK7CE*r}s2yIr5z>Trbi@m@Zg{I<>!PJcEHgxiz!24Wcr0Q?2J9u{OEfQ!f2p1ei`!*mT(o+TR}1hHdIW3k=tVC!-V$t70MK#DC{c!dckaHS6V#GV6bAG0=BL!+m=?iAQyT zKDyw!thc3t*L%gmNd>h?hjLl=lBqij^&u)=2hJTV@3hH#3++H&IY;3)IJ2H5G=g_G zHYqKAR@PzKw8(&x<5`l`^Rw9eO$2?duNOS(H9ns_T~X4+PgQ;ratz%* zK771Q?#Ps1U60p~i$4qbH^Q+dYE=2L+k4wP3#!X%8&XV;IK+KJy?2xRz+rY4u)5>@ z3%#9AeI|&M)-ikcWfMTSkQvlDe&(YS`NLk3A0T|(ND4sc zZsNKlptil~2d}C01sP5yf(UE?TbGsd4HP<>3cWKNhwOqXlCD-n8tpT$+tHCYV;YKO zqpFx-)m7y%t5SOpxLlCbd1s^k_BlsU^WNYTc}^cc9Z)5N!P-x4mXB;rD>)i^)7yBk zrRP~-ag@}R9`a*xuG-Fb4K30&N0@C?P_LY-%v*pZmy|V{_F51 z>AN!eT9UzvHLED+@yvGp3q=xXmicAl^m|4%r9LZJ)K|v=r((wR$U>n>4@P{alr@0d%fDEZYT3j2eBHy929=q$QJzoN z>i^M!qKI?|nifijv)JK~LJ3Ss=~@Xo6K|qfEZ_SL@g1935V-@zt;Qf+F*Xfn>BO#% zBJNEf0v4!!7M;)Pci6Pgch9< ziiJVfVp{e^T_#e%do|?*8vsUA{odocn^G!~h38^wE|x=$ri%|j4Ur3`Nr$MbUsN6m z?wL}CW`2V9u>B)$Pycw>c=b1$KMKy88Dg&a7(z@o??`oJ+blo36tN>n<5o7`RCY%c z6BLtMqF))JUvutfz=zi;&o#LTwmpO|{^O!*^lNXfcYt`9xhBb;YY(yZ5%`8qwx!>1 z4J*zcggOvx`4FV}{ya{tXTlnJ69Qa!Mi(PonbzOeRPC3$Bq1}WwIwDd2KZ9;HCPM5}{_BW^nDqfU9kD9rEBj~t1CUi(-T~AAZ zG7Sut57(I!wuF@bi?@C@+CuNnt=W~i)3j#{X>;jR#QE76MzZweA&=Ijnh!GTwP?RV zUi`XD4wl44k`KjFH#qNIQ4A@N$fFKs<}FZ+(rQ)idok@~v$LczlHV75klIG7*&uh%N=P zmd2cMrm8jCH7q_9D)e?$u5XYXhe%bRwn&&iv<5S8AwqtacL)FY z`_oua25{=E%RAOT{>VuSxjKP|vflbxaq7hBzdq-_&|l*@BnyJ8ue4pr3s&>jZ4Xsw z-AaJazt>Wdj<;fjCR#fwSr~NqLV|dR@gOVIpQ_;qZRf2$5KJTt2Fs@XX1Qv#2mE8L zW0pprfVkVU2c~rbENcZ!jJ2ube(^EbL(otI`e^sE!kRWgk7w3W=T1SedEA3F?V|k~ zYUsTy4AVeB+nE@Qo z@rpwaIjYG8v-}JVWfUg3mHE&u=#^U9;E!9OKR&d3rK9n?7x&A?Uza#)2LtokJ^?!&3{5lj&D|!4OY4ReGe@Pk}>t8E-&LEBnBE}D6jQnqkvdD^KcPl(>QhDRjF}q#GSYTqZb-krBMP%L+u#?N$6sh7 zJOFvuOn>gH$6@f^C{GJFCD$h-=v89tlg0qSrJ*mM{6vR|WjANxo(Fgj0Iyr?&wI8; z_I))h7R*I3AnxOfhA92#Hr;t@tM1z;oF+@s~4B&$mO}=>EsfB~!sYsvh7T z&|ONL4Uoy^@qS-qrO6)7H0r3?+kf%*su_NSQ@qm>&$K?Qb1hcP7tDn}4uYnc)>`cR ziJPubn_}y1&k7Wm`Vr2ixt)=FJn7T;_Odx=@<#Hx=TPF}EE`Zww5<6&*wh-S!_*Nh z`BCW%^-<~f)3@L_jMC5}etBot`m?%9(C&x&jD)a@;^c=OHa zOs%%3O!Xj<1ez#z25GPZxzmzIF}_=vRblY*?%N|`$Ul{r0O(aFgmo%*yT7KV&AzrNAYsNn~jo)!1^vt3t#&h?VzqBA>z z`T#VTrf%qTLe4=J&)WS#!j^mg`sVh7@he|TpXxl`+angc8(5h2ngPvBn3j;L5vZCW zMbHRg)j8ATdii>))A>`3;)!cDhdTnmIN41;jdJUMtRJb0qj)u*8xq)Uh zGF4~87IZlse7Pzgo}5}~*mCqFxQtOpL+U@5DbH$IDhl|JgFQi?_V_ND$4x8KjiJgm zU-q%4Ng4Kz7Kijs7H3}`DR#G4HzeQwR*uib#lGqsQjQ)+@Bhq)OWUkeH_-n1u znE;=IDzo3vTdL*;&YFBX#Rxa(E!qoOri%`T2F}@i8=Wc+Ss8aNmcq{XHn@*}E5He) zM;aaBizrDFS4Ld2H}i1$U50=hN&ohP<0ERkH^AUcb_gv*S*M|ykq|Mu9$~H`iis}_!N}aj9zj`}^6sG95TB{$Zb>oJ- zABil2w#Dc4w#75pMSkynH{Dcj5ZKGU&+<)u;Y-(=U#^V0>_r9L1s~46=c#;|Bm9&p zFRA!DfMgC|Aw;GlTIBW2*@6Qm&99}KwYMoZ6cQE%&b9ApQ(jmU{wU}wXHK*udFQ>5 z8pqaQyq(mm@U}BcOOd^ONBA%c_LP#@>B3axcZd7hxh zi!oD^oq%;DqGY%uTjG}P>Cx16tbbMS}&`FD#d#+v+3)09l?+ngd+#G@5hh6YfPMkI8o(dNU6i$$DV{_~=P5W;6 z%DeURvvYpml;j068FrnIWHGKZXzk1kcrE6FaWdhT zuyqYkT5akaOHQ*~%(Ag@1Z5GCgC3ILzZ(k#;%iS0=Bp~J!xtNGX7?OltBC}o4r`E`q-R2|z`9%=8I<%dghdo33-g?XRZ`CtEy7p2cJvGII)g32(pj zY%8BA<)~KWY6m>|M`cJeUK9`obroyk3drYIj7=O%MKlbD$HXU!$Sd-GCX83*u)y=b zYhB|wl)11nSQWM(9AaZ{k$Hw_Gh&oMYHgFf)HR#E77YP9{r$G*w zZOV@~H5Rd=TQS6Z&mU+P`BI;Uh>}D2K1bvXTNJgX7enjmFMWy{F*`^eD>P@B92fui zGRI&a>*yzrG3^M?U~=`cxV`#s-x_R>I(#@yDQgD{CmgocVG1}Om@nwOSOsuDYh|Ie z`K7h~pDendaQc@6`LGD;00Nm7)AC=m4S1I3KjAVyWeDH zJkt;NKDABTq4~;jqsaM~?t!~fSCd^v@&3hqH8xf*h+kG?ITsPV_O%ixxDK6?3uBD) z@D@QNY6B&Gkfdi%Zids6t0_8#5X;M&mQXH5TbIno@blnkTG^ifQ?TgJ&x7wpguOEq&kaL-j$4yext~WZ0%%`I zpgdZ0kIaH-N4*7q*C~IRw={+9`@GcGt3KS<>k1OgdYJ~@P|>fswYHRtHrLCT#=3`Y zVA0Cw@LGQ*i@il4G20@q6m%s3JpH>)g&jy=-|Furf9?7b^1lv8y73ErID1%mBO>I( z7RyTFJEC{|FOM&oZh?0FiJ}YbN5cG@f0hCVkK#B?m{OlPZYDa%)IY89zrN|G?GRem zYAY~AsizpV#Y}sfuv4R8^>VR*f??nPIs>V*+WTc5T~Ez8EX`m(04w*xy@ zkGk$SIrOM|%++!85GwXjbr5pLqEqYc4-#pgZn) zI~}fbRc`gHO#-VST^3BWY4kExnDJbS<+ZLnPgIE{hm^%zs~}#|I6LSR6<{@zgjjhu zEnRw1bE|xqjRFpCFB>H6ZvnInPBtl`4BfU>ym6a99Ym~g5oofVwR#RdoBMXnb74#4 zVQL8mGtfi4Cg46om_iI*6N5V2vm>GxJ3C~=MwU+Z-bYkH7+lqS*nIYePgkB@9g`+Nvf zBQ}%R5`1%@yS;FmVv1}_d4SbtD+0bL)Du9V0pS3p#+5D!==Z|?MSNOJQ@!NmD$k`$ z?JkjO>-ZsBv;$pRE=PNVye3!Ei=`=w8yJ`MhE?&ie@77w)J|;enxgDJ#rT%Bv;<|f zkuaqQ85Nm`uI4aaS&(g~1q;xb*EAh$c&6`RnKr?qk2S6hv?^5j zrM^Q=%%aQ6h3R*OQtIe;c9Hm}AdboF=PxtPe<~qDoLk;&Q}t&Jc8SI!GJ={PUfaa! zSH*QI`bvm%f?cNvddd5N8C5Khor~Z6_KL3mwIc(n}ZISzaOsPbe= z)j!fBW>zc002qy%W2wraeZ6>MVrG|)$dRD(5~fw zr7LQ_KV1RK$L^_csaK$z+mS25ucL%`+ZLsGtwwZt3b`FtJ1_2EOkizkRak}i#i|@^Iony@MHETqKmJ+C4jw*NUbL> zU`|!pK#U;6bq`m`_TaFY+PkgK1-_Mx%!zIXd^%wB^8C~KD^vFc&T0>j4G#1oWL&*) z?oew75S9PK3A^d(XHYQaMg3wuSH1Wk-g~Nirdlx7 z3p%h$t$d7>q*Wof6D5H1eaLlZfaDk0&_RlIzYMfQ=Sc5SLIc6a6Gf>jE-i@%^w1Ch zXT6xeP8LH<GCp|HRjaq_k1LdKA~aO?ElBTYrfg>rVTLO>Ob4r@((w4R7xY33 zf7fjQcMLcHn&xsVPhYG+SKl(&1VP9ElmQXAAi;T#SDo`5b~yJPGty4gid+R?d$I-* z*uKBKA_9@p_?6}u%(-sN5w0jd+p70b&W$n-9^_ny>swhm9x1}uPMBK~X(fmyzWrTcXzKQvW8O~-BN~uH9c*Jf0im>$iS9k$NteljA@j=?Xx|f{JvzA;wF!@C zs3s0-f&p!^VXYFP+)k$hiRkvcY@`$WnKqy;KOMEqrBnXx@}r1;RKTkR+-#|;mOEem z?e61|_>muLzKD$q|8vOQ{qG(rBl@U|(jL{8gy8ElMU=F$3F-Y)^4Az`KmgIsqQ5EZ z-#Z%nh3`4dA*uE{`b6@duOu&^mPhC&Up{V|aNs|q8q@+oUBYquh{dY8$tkz;GpOk; zF15%|>Q^)NdY_d>3)OhT-L5lPf@L;pWe4P3PeYyu4s6|38Ck%>1#!0hH~3P=i7Y&hi@sC%irIs}x+WQ;%yj+Kmy`P@7#I@*9-moUU2fTVvY#fM}uQ3M$DfdrQ82{9tb+fV5L1`$?0t%G^Nf&888fhXwpG zkvEDi?0gxwjaKw<;TVKmA_bcio7A1|@_@yAeQVN~c=QJSq`Sz43E&Jk)b-+z@YO{7 zok^)16-dtkxsx}ELsgGOFLxPY;_+2Oxb12#n7{R*bGd2t1S^`&F+P~IGN~lsO+GVX zegs9>vh?+WXph+VR{c%d!RuIRsPdJNk0oV|=O|o(D1M}02*g|i+)m)sxO~?l-uCN8 z$5rIa_d4X^-og84KaX1!y9zX~%8@#xmyPDK+3?8*Zv+e(k!BU64K z%2#4QDDV;o!ID(?d3OMr`<>Qq@ADY3y_Wsa^#u-SWTUOtmF@nEBVxhO@pvnxvkihP zVJk|>3(HqngQXmuI@z1IZ$vF`@Rm)WER_vxoclhoy2GlDI}k?;Hhxyv{SOzB#wxT6 zMRY77JW9Wlb;XCLTq$0#IzZ5!%?=fJVkSh861GADoDyD~lc7?!PMx9b!#e(YxeGYC zGfcIezV4ycCSblKzqOCQw0$9AT)D8FO zf&V(bZ9N@=?IbM$K;8RBdwE8z*RkA|tTZ z@Jf^S(mrH;pTn%aU%BpvhhEHWrBh|?>Q{Nk9y$?_SiQr#*-efWygJ~|*B(^u1ATOY zH_J{yFi@ymnvhS;o!Mp5a_)F%8lJ*-${eM3W}8+EX-KP*LTdMK_fnVZO9`s>`%Fy8 z!EVFx$p6TH%*A4mV>!o*I->5hOYCfk*Q$ui>4HK;fwV&CWIFb8EXeB&&EMLizd6h8 zp0O&BiAx7_OS8>hc#aPFrH)tM==XB9K=tm5IFsO{J0T0d9gTsARoZDBO8fg3()s3? z->2>M{XQRjZ%(W)Uhy%RdG$S>*tIgN-69`f9hk<6`AHx}W4drD?Vk4FTn}7!Q@Qcr zWpgv^gUB{Os`KbdT|f%NwA6=VZ>HFT?q2>ttS&Sz4zHt!4ghTe$oSj)7vN>?b;JM_ zfxgL?OP-mzS{3@R%{J#R7Cw&rWi?S4^?iJrzN6$4w#B6vr0@N=tc-*Fy8!+IX#a@Z z;>4+o$yv2^Oz?8|!qgQ^?_}>8aC8(B(2GB*arU+=MYqVBwuiAa`zCo;wI^p`T~PdL ze29|@X6ocKRX6qoa8B)J&^YW`HW+`6rn)~g2R`&Z`tH1;VoLV`yBj^k$mmRUul5B2 z4m&R!z|eF_bmgV=vq1PvyKy0N82}UHBOQM@8j}?;#wY;5A1~CZK&@KV;0|$mP5V{d zcn7+ZzJ9k-ncRhd@5al4Y)8cB#yW4$5LiOAy85aK7p%};RNocWV+T0jd9FIg#BWdRZ&;4S}JD&lI%1*I35(Wx6GuDI{>;5XRN>gu(4tR_Kw+1pN6Cx8EX>WE&+ADLGMy_5$_b)ZTJAuVb&lTbV$QdK;|%e#=DiAu z{bjAHw_WrAHrP(>D?*pa30Y<>n6w6qN^-Y*(QZqab?lk+w(E_#Hun~v6mnutuy)`4 zeFwZO8`qs*s6KkUqfQJ#fz&N6SC(Aaa;L$hm!*wUzMv6w98#AqqrGSNhT9MDWLCn5 zV`{3?@zsu(M-iT+NylOe#=LGV&fQxW?6vAH2*HjM2w^Xl754K{M#w>II0^x z&H1{waa;Y_qGO+I-1l8PnX%Wkc9;#l6whK;8pqVR$skyNqf?B&PGI{LC*$vp)B%?G+jobv z*>{@V-D4Uxyrh14!gX#9IhD{TVt09F!zaJ}j7UbyMXBRL9OlpFihiZw*7&i29EN>t zxpN@HMK?eD)gaPAKu}Te?KOnSQx+|rl7naSU8F%bS3Y$jn|N1GnCq2I_y zBE{MHa|gQM29@PBIxP?L7pA>g_n}lBolXn7Jg2AS&Y%lNn@R6;Q)``?^t4!}&;PhQ z97u`*NYH&5{Hft=sMz|_R8EIct8NOcIrq|)%}_tzZ?~P!zXc>YmMLyqE2v6CEsy}< z7Pi){LCb;T%E@c#Wib{0wEMu#Al5$CvP}HznpIEg9-6nQ*8t%-;~K?l;_YLS83Yn%fL?!F`(clC2|3h z^Fb6xo|r2+;4U)o*!Z~(=4{?(@e7VX1-dF4%l1?E-%pVsX?;NE9&-Y{5Y>v!SGyE& zTYhO;wD*Q*v<&(GL*1LlL)pFY<7255m95B{B`rkCmTe@7CxukV8X?)T?^}z=mSoEo ziWd7avW^N<#*&0#FlDSUiD4LH#_!Bf4?TUpuiro4KfeDl_qoq~opY{pUDvtJ`@E06 z34o;dD&B&4=76^5YJB|zLp4VT&N6jEA124c4{L2vz>4&R@W$ zOZjGm)u;ZcxwZ8V%Q-51Ivv$T_gxd5#|Bv7wE(m0{%R0yMx8#x;isrJ_yPb5u1wF3 z25h0FwcZwy{b_3f7TGs>3}*)|Ux6lWh~L)Jiu-u9RwltFF!@VnLz;Z@SLf<(2Hjm*;^d``jnnMxgd*0g18pnbaivelq&KQ1A25>ZT zjZON}P=hFSi6xY+k+Dlpe*KaGU?aX_0<6|rbbY%r=oTtJ8f~n|6vM#vCucQRJVL6e zheX#%KB4vBXK2p#xW^5^g^ps%+*qagLPF+4+L(O01Mc+k?N!?PW#<}3>KKpb)Xd4= z1+(<~J@|%z8v)BfJ279Yjm9olQWMPp_ps0Jcs6L>dU@9L?|tA}OZS@|h#Pu61@J85 z>5r#$`p5S5;;c+OkxvT>k*{}lzXW9F+rC}~G-_D5HyWrYDhodXYLdI1#}H^?8Cp-1 zJKI17Kh^(`Jyg|#!OZb>2U$?D`z1KDzHK16%6i4Ka&3eZ1^no zEcXMf`;9jZ!n95aow(EicGPF0A~TsLwBNq>9Z0xuA-K?9mTPZrazQ4R$N&2>9_@29 z&*|e)-y23#J#s6=Gx$EY-qCBTV$ZI%x#&vEu?Oy1$$C8i#?DO(4rBX!^$P2IdX8Lf0ycQDiHa2$S#_xw?d+Skd{q@bMpQQVg zk9bEfPCd%)lPm9N!gs^BWq2<{Y|B`j-6x&Dls+D`qV4_Q7=!_=@-3J`IoCR&%+JbMScpD79`r<_WG%ly1UB$X<$EalLuzrmA(W8&^-x%DX+xNALZuK4GGg{0HJlzS|?_Vq>fU~(F zAUpN|+f>~wXu(oacz9PNw9qjKr)zxYA|jh8p+5cQ^n++ale4a7{V`M$dan0*xVyPY zP8Ru4nL;BmigKxA{TZYQyt;{1oY@*1i8!vjs51WjG#uOme8NiBb=5u7uTE(XcQKs` ze{m%9!z0v$znVvoiUFLg6mj?a)7;6y0byt;tH~8C**gXhnjHb8_+3tKP&XEiUNtYb z$ePVX`BeBuB1U4147S$m9lr<*)Q5vJkTWaj`7=9xjpZ=eqXnQBWWc>=T(LH&AHnSg z?e%j=V5j&I?ir*Gw@Z`A_+t_pxJXa{isN%#~MbZ7mVUF?XUJbey)HRC z(3L{5gA$j>9nZc&_fYTUxVc4l+rI$5JI_bH?&}c4Be54cYVsGY>h;~kVguV**)|PaZv@>{NM0F(epEf z;`Se~KanovH`cy<9as&4ygAfItfRoVH&)x&7p06RR-`3DQxLAb#n5Tk`x;_+A#hn6 zL7kRoGWj77kFkfIVh%hyc4WfgaDo;Iev8*6N~13FI(%s%{k#OJjREq4dY6jZ8H@zu zerZwqJ6C#&cakB-Ny|P@5-$pWow@($AX$zc()hlM4g#RwELV-+%Qe@0@qEbirR%IO zUBi#AQ02p4-48=}gxJE{T@b&CJyfxa z?|}*M!iX|M zFu`Rmk?5r1qV4EeRQ)o%TAWe~+f_3A#L!06D=n+JE?TM(GX|D|=u#{o@Z(QCZ`ey1 z?9uls{4xXV0z-qFGC$-KCzwh-6CASNHFnklqr8Zc(Z?F>yd}$0AasnW<=f=L^ zG)jRMRQ0(NanK53EE{j^fk-L-~NOy~{z`OnniA_lb*Bx3qtY7cMT@yiSY zC?EbL+0v$F5=no=rFYd(0Bsly^%ww?QK8V$93Wd>2V4?_Jk6j&et{r*+o*F|q}S!E zeQg-oJCyv%=K#x&oLM0o^utfbDGKN?bu5`xR)ZYK8te+=I3PZbX^faVmlfacu%LYy&=*y5nm@E z5J4&`o}-l17YfeHF|FMSl>C&s`%dOg0lb8#zy>%(hf{Z3h<&QM@U6kJSi8L}Ct81U zyqDY6&^S36GPUKH5MV5n@t|=;On;k%98&=lSRS*>kXsP&+9dci1VRGQ7PvGhL}T{a zHOp$P$8-{nU3B}M0M|usWbd|+=RS&%XOS9^WJz$m^ayqm@{mT4sP}O#YKKgIJprnW zJH&9~x`Vsd&;mWTG$6t1YMNqDvtA3GAyK>$kYi?mrlP#Li_Wr^3S16xPK?GPGiJ*j zv5}bqX_~AIJ2-#t3$;`c3jZP;uCXs9!c7`Al;*1cR!?7^!G}t_GWXAv0_YJAoYm8g zU26yQ8uV_xXWq{Sh-rPFd!_;Ijffy=&~sbEmbukvuTZ&BzK^Jv08sMdJO*wi=PY4?rQEY5G7Scie zvGy~KDA87riy>pzQ-&`uAsOpGUl4{gu>7#1a!E$zF@%Tnny(4D{$We0t!pcf8+U#^ zp>aNb;(7oMM$FQw^6LS{6eo>iCQG1cZ$iApy@+o0^jeHBxU>YQd@(t-dihI}5UyV5 zCP|BSLrCVYQ3T9vtuLguiu)-xY$;!h@EfR%n2!vvBD8@tofa%GdE0~3n}@32s@|f* z{aQk-^$oQXMBRbz7@=M3%&?nE(K(?A9x!5^|nM zi9FSq$6%^fv!^Bi+;yY;t2cm7rwlY%QZE!6?Fzk|)aU6tu!i(S?vx7I_}!kSr&EzF zgN3|JsBW z{OvjOJz0r@64bNK!G$ddi{LIN;!JjCm!Jwi^_Easyma>sv{P(%50znrq|uOBiK|}} zS_ADOHnt@vGL$DV=ydtVE!oJ(2b4X{x)+`}i=%vc;M==FVrD9$p~AN{J}xbj32YZO zI~d_7QKN;*650m6G0zo(wGOd;TJckS`iW?GG25PJ=HQ**{2}Z-!M^&#&z&4F716KO zA+{Sksv|(1_LIvm-9sREX^Z$&oA;mq9|W&PplyC zZNtj{Lk`><9PFas0WhsEshoW!vprw0i1c7G2=4`*-zD}^Ug=cmHj$5039BeqjhC?r zoG8BluYvvy*`Koc)+e6W?(_p52yo@D!lbVBXyS=e`A5pz_bAT_lNW(mKT5WKX zB0uS98|b2AhL)gGi-dxG4;=3=DlM&8=OUrF@;Vir7cSOvtzP}|^nuM(kvL)bQG*@h zqkOK*kA85**7$TxJh2E1bg7B??A`{5HZ{5KSP4H3PSSsG7%gA(fr!5=xnIt?v+2P6 zk2+4;#ZnKpht2XP%b84+^ z@hYAr*0bZi^EL=48F(;58TPYJK}UwfjX;V|N$F<=lHoA`Z5>?|Paq%&4wMa2IO{H64`{8E0Ly;+Io%P^dk6&0mBmg_qmcH>`=Zm{oc(oWeQW8R)AyGBav@!|kGG5jik^nWp#&k^bRbf^wCeXV6 z#8u5ZOS;>qd0t%e=Xi&KE==|35Wmboua$YeFfq+_Gy{7Wjz~1enYwG)-T(sqCSW#t z|EhgKM`7R9*t$4tj9V_QU)muJzWXY?v-lmsz{Zwjoq3*pXCy3VGCK$zri;I7`~Vlv zADa-Gi%vC&Y$-++1upa!xqk0eIFq>&$Pn^W$n=mp*Hrc?(@(V>yJTc5nB9LLnFME( zNd$1oB;N%Ukm-uF_GOzllPXuax9Yr<9r!cvC5C5!0zde@-~s!&SZsSP3O-?>;8YDRrg`7rVO4rf`!+mkL0o%wQR>;7 zg2DvnSm0b(xbCdMGpUDP-n^~ekUpc{WZ_w-eZ&_W#BIpWHaBAE&e(OAaH?y1(B2@e zBMjM`dS+@zowajUc@(tZO)a3_t*ZD@s_EaQVF^f;;0FY3R)a=5#CascZulSBhTV-; zwjv+7U+VNq`N4SB?&oNLsr55kDxZc%b~-5CvDdG- zmMaAuu5&G(dLKFDDJPfj+*gDCZc#2Ndv(D@LNyg8!Dgh1=X}q8=gdyO+52S586=VH z$AzIhKX|>95D@g<;?fm@lyR052v03wjgQ!s&f1{A|1(Jdp%=I0)&*Qb-w%1_Za>9i zzv)c`jwNVVh60*f%+pJt*-S5HZ;*#)42c<^_2zb4@`G&u&_9mP)V{Z>{2~ zrcihRD=h`BKWiUK_K)ZJ+~l+m*8$eVmCNGrITsT4cr z@{CW*D>gE18MnfrZOh%=())r1IC$*Py{>(8-+N0Y25$6cACzi-B+Z|Sdz~(*Bp7&P zPyoa{)K1!h%%7g59v9Z{75|qbhUS_rh0ZZH=dZ6T@0e*%WkU4+;R{{QwDybx=fSneqW*ZUmj;!d~ zI@ePzF}>mBXN+p!>)+k0rqw+D51s>@0*_1Kew@6Wxo^^aItl6SAoNg@v@JU zM%A#agpd0-#4Q+OKgC<*m9@6fKmw+Fd?gc@{`L14(AU{s;DQcTLjx-Zf6xPcoSXDobTD^53N=x z>=dEJGt}^lN~wB2Wt~q5+NKMU849|7mi%OFbt0yjh=g@tHj)rrD%L! zUl%=(Xz+r2P(P|HnhB$ENWC|7NnGUiGyxN?vQ> zFPec z?ot#I68o0f!NKJyx+;6}2@ z3s`Vv9VkKFXxbQOezVfUfJ^O2Q;1JZLkMX;_nH5;5K+)?MS_V)e;%*{_GN~~g`8^h$K2{*db%47IkWtBagA)2bt$4>)>=_x&Xpu)rswD(rlj; z!FCYsnuWEgETQQO*pQrjm!>`!^H6y5Ccj?|KVNoDf0dz7JP5uNq3PQ9YWeCfz!e1Y z)z+9=x&Ba(8eD0&e=j_ldkO6Aao<3_cq>I&$qEWqIuAaz4*UC+`dDxK|8Ks`G0#1b_bMDsD5R0;Gp z1oFnXXR~quwLWGh+Cq)BfDztoqCzHz7wG=0abOFOnlt+Ary-C52`UhCgBK3a1PLiX z!n-!gIvY;14tan(twP;qWsl|@|HXY`DUWP4 zA6BD{009|wO&2mLtiRQA+Ui($q@8d9LY$tRKaJ5>EYJq1jU#cHckn;> z4n&0Q(u)Dg1ug+aaot-D_FolnMyKp$tY7)&K5}wAi|O$v9|!B0&u3N6KOeo}U%o6_ zc-g+9n#9T+deJ1RcP>n+qWAk}XDO2=^`CpUL<}E2!g(3?E>}{E)sst9?OwhaQnUP& zdlZu!+lTh&7nL}Ze8-d)ed1kWRmMEqPBzPrt&lUu+n%@&)VoB@M#r7Rc(+$!ttCby zKd3gUHZu3gw`LUB#*^!v(sPiQIZOP{T{tdymv%f!(yWHmGmtPEInPQ;a$zhLob~SH z4NXp*x;q!GcBEGv!}Qn*fmJASsACIXt)0Z_Di63yj2X+gaG-|-M84kJ)jGZmxj4iE z3pC*V9^FtaS=;`=h0$5Y1p*69t9%~t7Jj}G=Ryp7n)1a4jd;;x-M-5=ivfZhU6rVz zLD@*OT0NcC6v1U$aZ!GVRc3dMBZ-^8UwWI-2VR@~ zqis*8a#^Kdne_{|2%Ygh(t<5qW5jIbM!C6rz7p|WSl0`&_GW^EhtaXb+1Yp_snL}H z_lILD=H1zz!_jK3v4=3M1F-gNd3t`iNo=xHDIBe;dEcuwWlnwDn0p}Pu*+66`FjCE znPW%MvUT}Pjq@)UH8i$lneF-D``o9C4Xs5~&NhWPmJJpG+)!SC$U`<4CTA17JM#4R z_fGX+Pd@{zQ_*Z-PFJj*oQpTC&Q57lGZj>8Nj=qj{#vRF5!R_h7sk2BSEu1@ z;hCnjPU*53rs4r7gg5iAcReUKQRvLtp4P3FmP9DBaMfPYPvoKCLPYG=(X(MKlcQ(v zv`h*KCOIX>Vw-{jly3~3y%Xjm!s-I~@kH~D6Tb^1%o#v@KENusE%8Xz7p_Y$t?o(7`=BwwD5)&pb19G)ABuW$c67ddur`=rjj48sb$bH zGkYEV{i7OoNO?pt69xyQe?&tb4zToiqowhhmQyelvFKTbk!VP(Aa;le^0Cb_u#&$F z^nYXZ#^K|oJJuXJI&g^k8v1K=gHYe~;L5XEc zq#B&{^(evpd+3s(&2`}VjMTTw&PulUA*MzbTa5Q)|6p5J`Q&U&u*Ok}bj8C}OZ4$k z=uppS#@I|L?kKulICXjkhIl3&6jI9;LbM*>rQ2V%FMkGR4V#Eo)0_>n?82t69(NCi z&kn1Ye?VZDxROPzu4?E+%I{(;(a|6lX&{(MMq(JIk=o?Fcq>22_|k#7jtmgia)Ud}$s=7vNYFy~pq2cV#0ffy(+{kcpi6vW_7SD{uxbC6J>+;;%3&9&| zvifRF3{evxBp~$zAFbvrP64{h+U1u1&}Dy%Jbjhp4LI9}QTdXO6z9@*VXEnQDy&yf zTjY4;hpsQwpDZ&M)RYb?bzuw{u`RAoh%uhpsis(ttphKRxc6bVec%nPP*I5{Nc+B* zk$l87;ns;2a1nLmbxCdZcUBqr;NFG_lwCCP7lDY%-&rW|XuawJ`JBZ+bDrRhMttCg zstqyaAB{PCX*agX^8wc&I!NS}{wQx~WdEYHWfa4?D*gN!VZ`*On8o#R?P_}CbH4UX zd#j(XY4$&?#`w85U`HlrXVcvJ(lQe6Exob2;2^~{Y^`Dzd+wx4e=NMS16bUEXVRoZ z0-uh8V03mA{sg%bSYfbJSnsz+*V~YRMTKgjT%8V92S(&Bgmx1YuV0yunf53bi z!91xakmSQ=R<9K!&pf&qVP&owyD*%iA*5Pq;e1fQ+X)Kel0qSg&y$BJyBccc>2a~d zk>jItLPMgB<$4z|XWbV&*3_s&8eQNdXfZwo0lJzvXVl1yKb~q{&vrww%q_^@oT!|b zvN)`ik>vEa9~m}xFOaCYKes~UG4lSIz&`oE*HXH|q^qP(REIXsA9uG1GM4Yv9>x1g z)#u#)L97pUs~ONZqXwXFF@4TXq$NcQ4{1r~2<#`y(s`Y!dLrrQ&m;K_e~Zi`nft5i~iJj1N=apEX%IKit$o~5KJ&| zZ=F`MUICp4X;vssJ((YL?-dFa%g4WYs>}f50?tt_Y|kvPvI3+iZJiGQDKlC}F{p zrdoJl>;;-#3kkFX21&{TVtI14>^f#27P7_Vap*5;xfG9OPB8!zw$`*P27Hz3@1}4m zLW)gSIxdC>?uPIT9b$m^BboV=I{;Jp^ie4fOH~jX6<5}N0(4Lzx8++P4MXd$b8|Vc zcnN9Zz0K00vbaJRhcvut0v95)sz*UVa0;;$iVzKPbr%F|m=MbY?Aj3Qm?|JuhBW*m z`Uuk87RU$w4oLuP08yzVK>iOd-iXtp=aye|rT%?IIF9j{^A9R5E+k(=c)R7m00IaD zF^bS&Z+KG`3%G0{#q9r=J`ni9Rjd(}qba+%6MQD*ftG0JHf&VMYhRX{dhi2Hh`?j* z+%-=S#Z%1GBA^-nZx{I}$FA*?tm!;HXp*V7U)|+ccAsR)IY{$5FeIO&l z9cKBvj7I&gS1A|DzN&Je_TQ!Jyb;fIJT!-uDU#=e?WFg!=gi7KN|e2NKq!O6*A%kk z-+A3l0Lc@hz1K8xkH!@?bOiT5d>uES?c=rBROIw`)J*CAV=grn7S`762I`rdlsynGD3iTz4hnPnRkLB8Jjm~L;7O{UvbB{vez>J%_rZFeOuHoDoTTl2c{;>U`Ppn3k8b}tu1 z2uCXT@)<~WWe8Z+Deq;I&b3m)$DB(mQ*JJCbUe{vXgFM7M>eW_Er^%sclI~`VK=W5 z>E4NOv#4&?4!~LtEwCaHvmYFshGruiavZ9R;9t6frce7i6_mEh+3;@eDMefQ6YK%A zwPXV|T;|u0jn@mgghRO_5MCFhlAI2TT3=OSN#DdD@3u%zl3nbpffar5X!A+~Hnj{!#^su?k$ny&#SF zSc@Obz*Oj(wG3-l#qPs7UDp?GwwXR1gZq30>1a^CM?dEYX)9=e+8J1!R?9O>QNl&B z=OV`Zb6sz3K1*_hj{3!+BJDxEtvy^Qr>^60Pz39%GsE6B-X?zZs$_gBGF#`(Sh>v@ z&MsMAD$mYJDZbUF#L76^J7a)QJyp>pCmi<3xq1aIpqbY=6pf zh+x<~^g|dQb7tbZ_2K4ACxiRu4i}{mP-bV+awLq}Oo9_^B#*%O|CCXQEeR?g-+4jJ z)~eK0isRX+ZnOs5wV}M{K!x`011gl1tm7I>Lfk~aJnL@D+n!W*L581~{$=l}( z-Jc-Ox>cL1=8nssY?*yx{k$&V>O%Ys4kuYUVRW~4D;g`Y9H+flYLtYmL}*C}l6B3d zawpF9&VP~A@G!PXi41o-yGdF09(Z+v2tLj63a4Qunv3V%!WMU{^}2<>l5{~jBx+o` z?wqI%QiH5qrHg9}a8_C_)B0gT>^c>p+H~iaGMS$?1=-3R07%V$(G{MB-4Ai0gcCg-SDogob}rosk>|cD7bx z|Fat>5LYzvdB^R|Ki41aG4>cb=PR+-NvYZU?&N%um-QR7DNz*_ezf*11L zsd9eOMM;hhB+Ss*7G0Xo(>)+hwTMTA<76y?z6W(bo38&z#%Mn3R=6cB;L#^~hxCVP5w_DmiEa`QJy9r+5mvPn*j!*^lN6nJE z$Eyl_`TiAALokfbu6c>_9Y4^c9CPyrFSVXMaa!5CPsg0F4hUZGb#@RqyTNPT7eb^+ z*Ta{UD`jJUPZ!Zg6Yn2lTe&e7ff?v02>s3CU%_(2?Rff%yp&Hw&o9YX@eIx-FJyJV zdMArv+^pW7hBu59c&0jW-wq6n55^8iXx6YF=o#-<#WZqltlBTKS zpxZ&IwI)ng;1Zk~30CAM9yny-d|yxX#unX)F6&q!X37vx7Lk_vo0qaPS*||*5_>mL zdFG#1yHaTUGEOu&9M^tTG(l_kP((FWptNvM)62IMe(vO;{$#^WOD3cHB z=H(ZFU7nm3#Y(9x?URj}Jr5Up7_lsAwk5WRZk{wb9Szg?LNg9j(1-_?sa@pf{UDhMLAeAhhGsVkz z8d?9JVL*LUFfrm*I2rWJ`0v9xg`HmhIBVUj8`Ew;{ti2U z4Jc4jQt?yRK{v~Bs!bH@D1YVf*6W9MnCb{1HW;nOp6fziS3U=N%f~-*?U6$Gkv1Bw z#(O~4<&T}dXNC6fvm?9ZR~C&)PcH)qDQ!XEI6XZ-@s9yhcxIt-qry~@bzPur?6qDl zs#O7N0V^k`J%s6Ms^3?M+J2H zlHWn0mT1YReAZij0kRM1csc1Gxx!4452%Hb5TzRmb-p~rsO%Q1u6DfL%f(z@P1;gv z&ZlRC5p_1$OaDY0ZJD-^W5%h+g35S;xb?5?Y8^Pj$Y+LjqqX#7c8FDjSGRJQnFX~m zU;#7P@Q0pw0aKmm6iJT$!(1rp>87jRngIe6C$elmOYZ!uCHAn)X1zronW)WESL6As z4WCrw#4vFWSB~EQtI6(n*UjX^KrMy#|NR5ydD#%XQ~&d+UHgStff#kQfD=zsF5UUN zl_zL$(hmzVtHM1ngKf{A&|J#ki*IiTefN0?-WmTYy=LJYtrgue%^2zE2_&}5M@-Cd zf8}g*U)lSf@haS=xg>MZF7K?NrXG{l>6o&s%}Xj>;X$<(J}VP4{Z>J(k#~bzJ1FCd zX8I2n`tjC-7oFubT!oXwBRNOseFpX-VUaw2i&2Nnr!T^~{&1cm?&OiBxLnp-h9~S< zfTOF3n)RYriJ!yiE+=U(NaE{-9&Wi)C>o$66~El)RerfexS@9Pxi6_J??zFP+-Cn1 zttPrkHT7QP`HB7yJLv2`xL$eBotd;U^W9`GW4|_0rfC1euJJR5b3sG$+peSxNiyAa z6u0Wd>|*M>BDlQCmtCH&P;Z#+j@wKB`61SELfSlNIN1Dg<`DeGsi!J+$if};&nM32 zb4>mC#}S&nI}lb;_;1%9kr8K16R?QR+{WWe8_Y0ACH9Fs=zys{ zcy^pRcA(JB|4~TUbGf0;?jWKgBV9mcK&RjP?}5d_p&fK(E^DUL00y6do-8G^G&- zs_28EFcYUUoeEz6Hs;Tm!_^xW;&br$bBlw6I@zhN&8Uqg!=7OWox_PgvJ3^^)@nPRb z&UPQ#dWg|6`VSdi>I3Jg&xEQLLKwr266BXZ*_llJ3KU1aa%fYXXCndFkX=DhGbNki z&bT}0Mb`#>2VETq75uwK4;IPn<~oUz4ubTkRw9xz-mFf{RVt&D&CdQCuEu!@AI_X{ zT1o2-Tp1z5$9r{xW{N2H(($_$yzCD;@mT~7_sN?Dxjk|XAbu%6)Dg*5QS>J~ z@s=q$>XO#nv*;gz$YaBW-B1#A`Cia zyU>|FZ&K=Fo;&UQW$J+d_AVUfXl9riuGl5T3fvTPJtsIGaL}oonI3mz2cwzOSz$%? z&vDAJjPBv;YLdKh5%Wf3c}-Z(4y30Q5#_AhuHl_BALChuVs-L5@ZNe*%L{>-HtY*3 z6m)8G8?C(|-dH~E|HCdEH(JV;6)@DDspl**Qk^xhsw`LHctJexe(CPc)zUU!(!MV1 zs^kpv2i4KJqVE!r^3$iNE+vGa`+{h+P|19ly@nv>gg>k?oS80;Gtil*qzLzHT5iF$ zoeMUbi_{%@BVu3kJlQ#DZx=#d;LZF<&)p=|G7F8JPr#kyxx?-4%B;ROZZSKJ7e>m%3 z0Zp6p|8_dk>g=?&n3wmR8i+N5O?xZH_~2!{4)jMD^^&{77lcd7 zr^l1`!q`5poZmqohr%6#lsi=ie{sRN^KQ8vJ~pX%le%<^ZaD;QJ%BV^b2#{@M_a;1 zy=LWP9A}rv%k&{Ru&etKFPQ@A&{)nM6*(z@w~d%D>&m$gCo=yab?UBu(G9mRF*gyL z5h-1K&=>MFF&`hEi&I!j@1kk3CFo=6PVfA$}Dlmjj&q z+CuY4&VKN9$o+zJt*Zx1$`9EO4qcGs{WvR`!reiPOw2rhT5aH+Awscvq3u$GT$!vL zqg-bUOP)RsG`gZ-5ZSWpLzN#r7UG6J?_x$9^XEFPuV>Kb(UzNDJ+}8H2 z*pc-5LnFD=g(<&A>b^Ov56ox49maD71>B0CfL;v{l;;e4Kvi79nAYwr@yF7>i!k5 z22xweDX_T>9rwJ*YRR}a=36LOTx{s9SCSQDbH{9G_{#^47e!a??uB&aIP9QPS~!;%H@-s3V~Zf087UNUGIEFhw^3Wq zOZ-}LJq4=^3zcZ)j(s&p7@s-j#ovaA6yIXmoj+Euzi$gQwWr{S)A+nU;(0dfPvGe; zkW1}HPR5`-h4vriGu%NR)$mSQx%df5(}oiq&Vqa`uHeun)+R08%_N=>3!Z%2k({>D zuRD__<+V3(5B)_LTKiN8n~_4;wksQ2af)3V!~to1=?HlcdrVi}!|H%i+#}{y*&AwJ zc%r39jY8K03p0B$SMI$rW&B)>8cD`o~AO{t-)a;-y zNguEkn@4{nre&~^aYvZ$5=#3j&uj@@N<}Wd?2x;Uf?wV+X`FI2F7BlVMx^pPbh_ml z`sO<~ZMvsUubm7Menm0AyTIYVqqXIhsZfZllkBysXOK^@ZrICze&y4C&#DA=ZCZq@ z-q5o8Q=BtQ$7oldT+Q!1+OHYwbWM1Yni$zZ=lJ&FcBG@pUo4XnyLQ}4<{o;GRREoT zfIV?7q-$zfpDuMzw4P9(7HLYW356VuFTTE(FuanxA5166eWy8UUP$MOdV|Ogy6Nz{ z2doY8++Kkt$JgejUfjy+x!pm{BO|>*%Njx<{K&h{S*>HKYx{L6w~h7aGVq&4x-jZw z{+D$D+-qMG&9Z|wdqAl9&Gw@9+SZ+M3eDb5 z1Kl@;o>YX^1kCH5cp162mshqX66!=zkjU4$&O2?-&aCYarX?JvIin08pz9Q{z~5Y3 zlqn}f?hvEs+Ag4-4Q=`!yEq%m2=Wc}`#$OP-`(^9?vz7}jnKUTRN+&#xrEks81r># zb6L|0c`pQ9??ByjT>t5ax0j!X&9?vi?D_9Hk!zEnYG;Ir!89|RcedBdlu2t-zdWU9 z0NIDl68%n0sBr!HNKK!~=lWB1wMT24qU*z|a)g<#?OB%grtuJHrLC>@?D?Y(R94;v z!8eQ3BTIe2Pm8xb>%T6n%_P+Lh9U7HZ6NtU>>42Qb$YJzbekx+G-j>4_tq^(L+*i$ z@|r;`-a^ed*|LLk(`%|nPhB}#2!X4L7-+hLQd<#ys1EK*5~GbkaTqly$YEuLvVGB^ zhj4G96*4+Sn{D3SC$>W@FVQNp3|-R(LomqA7igoPn3gVJX1{~ZTQ(kC!*rhZ+YV|P z$N-cf#L<*!o78&BM;6FvX+e|uR1ze^fThg_4dvTG6JeL8G1Cn( zItU*N?O(zWSQ5E;6jBSUX&|A8_?+}ZRq139fx5~9l76+MRbT9#p&0me2;>6Sd+JUe zb&@p!k)iTI0E+H}#U`8Cs!B zQp|MJTyaebBc$O8t>6ogzbwq;OBV-T(lm|MuU0o9>pP@l3MI}}0NuV0@?^B_tGy{ETj^RL+w zj56^r?rc(HubWqx6izA{GQCLL{QEF9HJF*s2lWRt>3NDq`X;f8FKcFht zYHSN8F2oM3BniG*Zh@~XJ9Ht&i&l`km6gc;*2@8I+_Rx}E@!4!rxldt0)uS49NVEk zKegc(F@lJKlTi&ZG-o)yXJfCJaBe4?d|X*9sy!nt}6R_dnPsE%`)<-d}159W~3|AvHLjssIk{(Et-P zt9$EH%XPR09Q9A@15H66(dL9~I_o^vTgNtbqW_G@xZzCtft4coOaPC3ZmfvCc;kLo z{QH^oK;-^rn-dyYid4VGNx$m>*fshMk5~(9{IL~{tNtBG#(dVC@Tr+V!q|Px;)gc; zYxZK6F{+z8FVs+JvI|)I-=K*|nq|-7)b2{{rIsyQ9P$}m_7_Px(rDi7m?q9%eEMJK z$0q@Huq@N0y=d8Cnh(7YAK$EdzesRV2;i&-Mp*b@HQUo zOEvG?;PswfmCvmATNSsnSadYJc!_D&Gd|VM!W%o**M0xVxvf{`Zh~C@65Blp57`&G3Ce|;V;65L9bzmF`A_36>oKufDY4xP z9V@+^VsbAe$3Y)hpHr#-DR`%bh%=n2C(ic{_>4|F98?d-X_y+e9cT{yBWQiA{2#ek zevEZlxKmoXEKabgJ4!hRA)xi0rdE8(RKs5hl3N2hw{5_-!ku4v9hz(79%!3cLUdrF z7;{;zUQ^45|Mtrxf=_JC{_>qsmt_aRS|b0df@-J4UDUZ9GB2W0QDP9cz(c^knfkU(lg8Bp`j7?53Z6nmTdUkOb`B~Lg9 zO&JDGjCrr*M6g=jNj8T{)s4q0XZ9L^uiA0aqv-yl7F!oT8^QxW$0WgL&q00gFINMF z?;5cSE@Ludr=CwK-jtLkXsn35rN%@59R~kNGnY(>2jJbJfS+Rqt3OGK@mcD8Rsj<# z9SG0a&o#Q4Gu5`opPY+|i&R%zv3@)2vPCA|65XQlnKw7C1L@<(Gn1?-n4NwDA6;gL zb?=bLUX5+fsLM?xAL(!v99FpQA6U^h>eTf?wf3Z##|N9?8Og?~SR7Q{$#tV^X7~?2@f>W%q&D z;Iz~wv;bBpY4Swp%XV-6$qI^aYLM#J8@%k9}K<=DNx+Y0k zk~9+7sMmtcL{!!3R_XZrg)a$MK@^w*Z~{st1ttCRD54aCi432+PdJZI*XT%m7D;`;mZQ@ zLFLD*1heas4IhkF6QJeeqh9F15AIif_=}Rq7lfL%HB4F~J%z(Qt5S%y1LJ9XgAMrZ z3=|QTI!g2fkjl0t0Vj7^4JP+g1nA6EOIlSK)&EBOTwh1~?A_jv6@n#wTy*2}j_zg! zSf7Z0u|77v12m)z7Zru_TbmOsj!nwefB!ZvvYj-yZMBCZ?r|LvHxr|4!(4JFIi~0! zW$3 zE-}{-V?yGtyOpK0x*$g^VZ9fW^RxtP{r8Q+tOvbr%Z#YP#@kF(^ZOT##In!*F!ble z_v5~gXX7f{(9RQ2lI|rHGCGTT8HiP&5vo?5t`8>JPDfBGNQqr;QKR^!)VVjUN{cw+ zNkUCxti5!RGNCFcp9`1R>B-;5fvgbepZsSDL9hxk6vSTb@T@5x_r@6{mHJ%#VXf)U zYy3EzUSs-njS>45W82j1g7DwVES4Wl!9VYdRWzM5g#SD(wb~_BN9a6Ad0UkoIuTP8 zq}qHoDn6-xOg96*l#rA$!*lMmrhA0G&^^cz1F=WPtGKpTOU4yP5>vFIL`{`r8(oPn zF@?DD-t>d#j!}XESRdA8B)_e4QBy!^pYRWI33N8i@1> zvK)Sd?9GYvR$1+IA-w`lun|N4)D}$Xg)YUpEFlF0CIu;-GeNWB zt3UB(<3TLIS6#Xef=!iro+hwFIdYNO3B3t=$jk>3&rDjb+Y(>SX-RkomY#$f^G#Jk zKk`nE=Y6tHHW@UnS}hVAs!@sc(pn0ROZP!VTW z^`n<&5j|%DBYdA56)GD(_jMXO*-oCgd5~km3_omI!OSGIc);oqJ|_4OiK|oA*?OQH z;nYh^mTw=AuG1;@HscbCvFn|O5xlsJJpcioZmU%6>F^*AGsCI?f0pLCQJ;yc@@Fin zbMw4}vXMuSrW%e)R0QK%EOp0!c4ifj>NlO6A&OwgpSz*>tk~Ms$P6DMFMR&$Nm93txC$uQWU+zdE>kaK$b*=%)zgCl_?-Gn8UI?pkZH z(jw(kKV>@Y4m`ykuz41Hh*2-=c--TUtzH_!C)h_*%B9Y*pA5b#Cj975O0vU2&eJ-` zMoSIRnHG)V+UqtKX8zIWFo5j|E=w=OUAM@dN%`73y7$15b16p7TzlTtl3TpcbEf5_ zecC;!Ah9H@i$s@XV&ihjpplqxzb?L?WfXe6<`5e{TD-%b4`Wp65cL@0e#m!aJRO;w zfhd3dlQRNWNKW^T%B~wQmq?A6^%+vl6Y7`fFa+Q#UmCb7#rpz!EV}7p8p18@j7M}C zC!$EXqokuGh~zWwhQlS^yK_T{@Z3}kVBCvJTVXaz8(moN%%W~%;;@;^YJGSTrBhHT znCi~%3#-lzN%>jrwOHj+U7C}pBslDgI~Gj56O50DO2w>HLOI#)MVuGz?eOue>GHC5 zlErC4ZKZKt`LUh7i?!Gq5nJ-=w%`e3dmx9yS@#I(r=_f)bZ+x#iw?3QEW7W17f#W$ zkd3RE5k8e_-Kt>SO2bCb;z=;=;fo|O5b9Ci3!#BbKyoSWp;q;Qn748}=!I1G;gW~g z5kj#DJ%s2+NC_=F1Kvjr$$^j$3c?YAKcEGcEdPaA(K3e(U(Exi7cbmpMaKfGx^2_y zD+&Os|Ad46iU5Ka7j@QNvc3=EE{^{K&1k7I5b#mbF)Hg)@dGsj>tV~*|1Hdt65K)f zE-DBprOEvK$5}E6%m8ToPqf-EUrQm(q%jG>1c3+L+ek}EBK{9`o4~Et>*l)U~%% zFSND{+e5E#Z0)TzI9q4lS-Xxg16HH_4tMn04(fW}GF!|NIfNPsIaQ5D)J@|A8vbDW zF6wBY`W0$|{5)^~Dt3MEK}2j59RIoXNnW#bQ0MIi-n=+c!fcQIW2>wAz?3haIR6Y~ zUPboS$&u@;{Dmo5H^T1>S77TBO0Y(V-h({U%H}fR1^6#_n^TrSrqQEMNdD2*0bRG% z_R?2B!j}{zbD?*Y=qSf}f^h6vu)m+!s{2*v*Iu27`sKdO@&{vsGu8%0^PK2?Y8HmN zoACcN_U7?WukZi(6rHwH*-B-ZLR7YBAv8lFMO02%vJ_2{Wg1&1W+vL~lReo=#c4sd zk=;3AVnR|`22-{nh8V^&+wYz+I_iDS=lAWO^EfrH*Xv%c`@XOHx}MMLxkov045!bpUci`zi%pj_=39%@b0^6V4R{PEFV*Y1O52#JO7f|`Vxhx~ zTmg(>(QEjwg&i?mmB+rUrm^*(Y;`q24i6onYKJpX3bV~>&_n(s6x2bi!WzQFhO+cj zSxU$)Y*$%dR<~0U?>cnN4_>vuqF|NCNNxTJ@kjh&)W@!U7)O!aiPPDcRZB7Xc5UOz z$zCjHm3C=XU7`hYZA*cJq{F*uSoZS)AX=;xB{l(36@C_UDaaT)+~$& zdgxYxCaY(C+BPq-2<%*3w*FIE77LcCYt2i!3;TfUmSxw`vKZ!o(u_+zdziH`h6x~j zr~L146w0LKp8R9a61?Z)3X;VLhB5EvUS(m!jN{uOXLm&VKuTknsN4u)?r-(%6Td(| z1>4PSb#A%9gjUMKRIiW3zTg2ls;?--7-t6ea}Dm53W#n7F(O$@-kd0NVLO zV#kESF0w~q2P*Cw8F(xF=Xd9-7zYLGgOP9;;vQ-EAwlK%ShE<*$O{hp3b*HsUHWw7 z7kI0nyVR;tEx~#w>n_AFuWE=LlL_nR+$`QPV}VC@9UmjoZ=M)KI{l1C5o~A8xDFS= zumg1$3hC^s8}{u?!w;$T?Aa&S*skJoa}!9A$qfU}XEbKYpYK&R+#d&*ldU%lg39VzH2;)HTcAmw}Xo zX)Lpq7{h!Co`a%fdhQ!bkIa%7A9+YOL1=-F8{q0LoB=PdN1t?Gvn(d`l@KY0InH4@ z9-QOl91OkEWny1-RR|D_`|)3YTo4X%-*Wc}p0=GBcDfC*wy;xgeI4*s2~1dSPEuDQ zFRaty>AO)#Q(^@{9`CZm+hjR%puG4AI8@K<5R2twNkNqOzP)&{(o9yHF-vMItskpW z@Wx`ylt$XB1}oEa$>wm>O(e$UL5{g6D@3{G8*R z^zUR;*Y=}$*u)<*X^IqVjR*eZ=RhIOVtqxaUFqz7%>Y*dOfZW+^F?cB2QNPJ4|r1G zAk;as)(H&gw^KZ1)t>u8reny%0G+-0A1tL4FY8hL#gkR*2p0^SRl#9>1?!E=+oP>w znE<;I(?!|JkCaT4@_H(Hl%<8}+s(2GNo==ZbvmRF;SoB_>?x2YP_W(|GaX%s@5e^S z)U*HMQ=8niK*da1@)@}Vm%ZrUd5BZNB9p>>1ropfQ<-2{aM4p@IoOCln)T{$tY@zz z*RySct4zj-O035rA73_n2OIWH6hZgJrWF!GYKnO0e+KnwC6xJ5zAa3sj=P<#Efq%VQ`1i4>ehye{V7l|%U$(wn zPv;NBODHYl1{aC6Xmoxp$daDFs#Q6AS+2BCew@Ac#Om{!bD>;N_ZiO4vwGkXTW{*< z`^;NrI|v+&9&YM|2Ao;d9(vY``_-i1bZjp;j(P45iBQWi7U2GV^oxq68Tt?{a8tK! zCgA{x%NmU3o@eOQlrts|#{q9cDpbKoV!51Xx0zGW##ko)1l2yeE9>xodS_akF19$z zrABM{hejnXmOABcm(v=B$F?ROFjbqeY{pPzMiM*eouVUIcs3bHvs0|iSJ#_I$EIJO zfNNPgw0^={HB~YQ$fG`?a|0-`nQN81>=JHO#=nE_9#*dU5`{QUL(^uT zL6z4oxA0SI9UyW)!7DtHhOA&wu=q}raryUwblthoaa^{ECUelxE$K+)pjf~eg;%-h zvK9|+aXnU#VpN4+#&y9DRqifn4&ucqe@5*6(=2X!sK2Vid;|RB69N+bl?10oAv|Go zGY?9NeN+o}Vp)zD=YmU$@5>UEeH+#Lnu4oSNpVhdIS5Us^y4VI(gf1ZnPH{0LnC&B z??EW+l3dFn<=^5oOe2VJGhG0cRrvNeoqy`&G;$(^>M^fZ{imlZHO?AW>@C`fGp5F8 zRb_f7g{04N#;+tic=vhOHdDD_x);@^x#elj9HQ%#$dGmBR10q2N;k1S#N)|M+ZwtN ziaZhGbcA?dgX#lQcg2{&YZAhm=22DZV&5=I&GIGCP$r_Dy%Sqx`SKW?^wF%DU%M4Wy}E^5?tO5O!KMJX~{Xu?^M`;2V2qz@#@td&k; z{pE3r&e?;T?us<-V02on=ynhWTHyOKN$j#q@kK`YSQ{^RX1YD>x``L`InPV{cgF#2 zlKaIc+!VFa{a+q)L5`h`VK;eH&CYPEJ-B1lM=Ke?9@?T#1Ad812r&3xmW#mEDN$#A ziamno9pJ^>BY#mQ@Vbd3Vd=9o7FurI^TZ%B9f>7TJO+CnKs|~QlO*BO&fGj3Z%wx> zx1^9s>h-^0ZhN0+H#|Uu4%=l$>=b^2CQH!e#ijxJL>>EDc@D0mF!OcW!ob^{aAu{s zUc~i?iXQ-e={z#!kd*m4Vo@{f*vY$G`&dThbQ#BiY` z6{g*Gt@`-z*BgvCZqVw)`h&2^{kZaD&RX!u*1UK5{+wJ``|%L&M8_1A+l0KF`ErnV z;T;3PAv10$kj^e*(2Ee;`b6MA8r>|4p0P)>ZVR6eD|A;iOX+WTBa#ShMoz-{eH z=O6`sM57&^!XDoZkr3s2>KABVwO+VBzPzK6c5K?DJqsPm$f>#R>R_;~ZRB|MQKw3? z9v6dc;o`2T!?a+1wY|BNG7*~5Pq?!^uc6FVE=_RqS^?mT{qSz#uCT{${M4_Fgtm&{ z@(3W~ZFd=26K^tC1f}$t4_@mqGT2tDnde@oHr-X$f{q zUZAVwil8pMW+}Gva&ms^FLzUUD{QS`B-V!a^7%nwLa&M!Ub>W3B=D*@^mNunfnP*; zuCjh#?2U>4+}4?2;S=0N=U^{*uhxIQ7dvDTIJoExNz?{eaig8i@B8ncf5+n%f8Mie zef7}7YFWy56KtgHFHq*dq9gZI8}fMDe{On0T(WxlM-e!S%Dr2Ew32-&7SH}tmCBkT zdYYfsc$Qa>N!7ql(Y*F#DEGfk|X5#bfED-(n<2}zMLZxcdi6aSc6Z;B2TQcaGvt@G@0s$9*@& z9--zV0{h85-7it53d3ay;g=m7_e~g?nVC5Oy{=Z^e}* zg!&JYdk*O)3{2pWrw!p5c>9ryaa1;lpy1zS)>86w^Rf}-jx+lb+yC6TzIxk&rK$W& zqz}$%(K5Rep_wEjXV6vDm9Y~SMjhM>{bqN`#<1*Z4gxlh%-Qda+{hmiIH!Vpv|vzm zqTHJ2|xZH8`0`7x*296^oN21{`Opjv4`J8Bm%>f+#I> zr*<42JN1HsIu|ej!vBREF|Ol|0qls$z&QMoDR{9sv$Kek16*X|5#IgBC5xyfvGP0> zH2v57@(d>$v^h$$YMOB|Fzm?~ojaCe&tuS6blRRL}p*TorIhxIcEyYgl>0tTO&PbnOCjO2E=F)&3(3l;nVuMD0j)byH$+2{vLo|8c zC}>-hO<4NIZ?;Mqtolb%lqoHpM4SEd+EB^RK`~tuFb*4(*H<_E=f=*#WpSJ9Pe#kF zh8`Oj$53%NqGt3qb)4o-*=wqj0G_Qn1x9H@EEIq)bQ2Z`hznoju#4EpwC#96if9n-Lk!zZWf$5b^kAu z#jry%T3VTTWB32$GqnZIKvJyZfi1f$xw#mQ%&|E%c5*-}7CPS$+eC|-fO1BKiZRzQ zN$sAyVm?9Va&Q`C^8m62MkX(NwDl;LR;*zEi&N{g)VtONfoA`X-ZAtDcTJ!r?bdph>C7=~c#iAC1_p5e=@UpPOB zxRiHB)!pp}sQxDNS|YB)kdtlPzD90iwc#C#7##@m%WEhyp)@ zhcYLE&bK+UT3pM0w??briQ8is9iE1YADpq~%4=6mXeZR8^D0cLsdNca_uj~M^RjG$ zHJnUBkPb9B8Cfy6XU1cihiU9^SUkJYwJgD-QAHV2_}IqdOmWefq#v;=b{VP4M{X>F zn(p8BVny&c*R3ksd&~As;LOWgUb}3)oo;kobM4n!HB}F18!uezeb4JW5{{hc0XO#m zO;ma>Drq0GSsC69T}@Y6b1?%R*9uB$h|dprX&hpxQj3bnq+b0kC7ya}MxgG7mBGUb z$6cA%JOUCGud%zd48Kz28EDDFDj~(qYceT4c1Ix)_Iz3~_rqc`;uz|NP+Wc4M{E;k zq%TF?Lw?Qj8T(SdYjmF-reUkJt^<0FdofEPP_M}qShzSd+FD(FIC@X>lR3o|LGDVK z2+@p>YO88A2mDO)vdvg7PH>-%!WoSW>|HP0!fsQ8hoMPY73|QvSI=Bk%&<~$N>4T( zbxT^+Lx45SeKW;r&S9xGg3{q9&y?Q|Ep`dU{|8m zax42W_DB5oFfS7Kkkbg|(I7s>*DB@j7sT6 zPU$8z_gRe{RXNAdl|5RH-dZL`GkiJ1aqTY^rMBL`rf%11ykW(%f67BV7Bp>Il4T|E zM2A{HvT0-OGUGq_Oq;mXv>XZnKOFth9GPrv7T%9eG`rye2+vkuM#tdU}yNm-iQzfVX#j(9nAb*86P>YeH5GF(E?D0Na`{~6onT1(Ih{Kzc|p~CJfGmtan{W$ zf5BL7ECbM&kY32f%Stf{3G16PsjMD=q=FQxdK@vh(cp1Cb?VWNRly}fXN?3?yg4*O z`}_I5tLHzMD;!giiLywlbFq+bM%SFn%v)B}o1ku_0Y;9PDH9+< zQBk=3IjOuChxKiB05j;9aY^NJxXi`p%uzRF3;EAw=OTp*Rb>Fx=MT@HECI%1jxFv8 zvZtia9|b!?pc+GWp2s7)mLs!CxPiTixn+@hynA78=gB`FN-O1~fdF-u2mM7Z00`fF zKz#-S!fyS+C0lrIbcXY{U`LdO)Gkvq0iK|WjLV3GaL*J&DL3bo-k!R$Lwh4ZSwZRS zAJmV9O~yXdYDaCo)%*hu?-n+gg@KK3dCoX6HWO`mtKvcr0Lol{X0nL1bp^^l99 zJ-yHPd~U;wyzF3o_s11gm|=PsW1+0bMjqb&x9O?zk^sT9uKdQsM(8U5jve_*tZ?3XO4tMh5mY2ePfY$K(oJ%XI(j?2lx(JG2l%;__)AB7 z)b?2`ws|CLRj91$XL*%vpHE?mlBj*wYT=MI%ip{JAU+cSPT&0T8f&afV7WoP5EAdQ z`V>^#m?b8rYdh}H35R(1?uAoHicoH;1$laN^OFGG{8jJ4=3jnVv4>ngt+^fQrAw>9 znBhGVjP88wG5)rDRpHt#Prc^ujQ}c7?hgaBV2?Qp!uY>?KGxP>$?M%G)aUqF-2NU; ze-Xc&ZNcRs=ZK?Tm1eVdRm5s2ED0QJ!dBa7E0I+#iT<$M`>&Kch>I}pUQUwzX)cN%heX^kAgQbaOS;W)vZz4SOM4WLKQwR!02UyIl*ZgaG2 zESA9Du5L%5&d<+|UD9M4Erc6?;+qNf#py@sS__Gf-wDR3^T?m>2;uzwKnXgJ7Od*? zN)js>JP`I`{kiZW9%J+7_1E0_Xb&micoAf15l9<5C4E zked#TVM2g37$)?XcST?1hC8Y953|ZSI<85uvNuQcR$u0)Km?WWtQXq0fkQ|aU_O3- z{!shmelX+r`piP|j`ET_f*JaYJGYogz4>kD`ag~e0O|{`aI2bb70jQ(CvcXh$l6;< zZwBj(SLv@{6aT#D_7-D17n`!KHVCAp_=N-A_&BraW*iBpAs9vD;iB}7I@nR(0^1+k zu}%QhU+5C21IbZeG?pPF)EB^xv8fG871SOSj8JmV{4*+LDjDtzrryac_r;*t&58`| zR{;9LD`VJX3pT-aPyuXsuAthh>=2ikHYOP?uds+yp~c%TKnUY#(xbKW+8{dH3M^*#R}v1QfT3*);xp`NoR zcjv1=w|)QYs&^=|T)nPO%i^)ALV6i2nltYTl4IA*)g|>x(w8ZPcvug?4=9rln7hs zoecxd0VRQ~$mt`6P^N6FeDCXc;-kWE=rCtdOasOZfBUrO3mJM8^K0q64RFUnzvt;h z__&LaljW*BuW}Ac3N|i2?y0sz`!bmG=u2YZ18c=0b@iAOuzXJD`Sog~y9BHE7n)qp zG^wdAWHk31eozzh6MbsNDvEucbWugzuf@+S+z-@#%`mghAt#z$Okj$W66)*E)OgWg zcg#K;I~7WJ_!OlQw`J&!h1X1cJ6=jHxdNr0>7TImWt)Xuo7SBv=rT{s(r%(*i6!Ca z0d)7Y_D~EpCsn@*qgq@s#-RcyK@+jO!pxJ3R#BBwN{%YiRztua;|^BrL(WYG7B+i~ z9qkw^rGg4=J$?jok9k_6mwTL3PsZF`suYY0u6TEv**03T+^+QfqKCV-pfIdh@E04j z5`TYhfI7cpPEPm+$_wfOmckz|l_&1EYVPWc{}}$n9-w?|bvsE!zg|$I&K5>}YUbcq zKhTG?%~DS?j6mBvIn?ZSD#@p87kg^oYT3pbGBs1ik3W|~OELE$aaQriI<*;y55Cct z$(AVbit}MztJcD^(3o<1ufjo7VwF$BFr77vm zkMWmNm6|PBs&G{07(wn-3Q=7)*ZEZMe&(sBaH=T1u$iewG)P1onY?6NsQM>F>mz93FLLWwudf zudjf#udWRu`&3+Ac3!WGXajbYsC3%b}-OPY$I8YjOM3$OkIHFgwVIXTxemI%=%Kh8`hk$Q> zzG;VpcRC1*Xc=`*-bZBUja~;sf7rAGFF`D3+3*H`0M+c4JMv(tRLwh?-b6b|^*qHgdjSs`dUV zjr`Z5eKSJo^w1dY`@OY6O_FMmh`UT}uoXXaigpk0pVUh#4@WduWMr94#fMIr=o$Z= z?bcypY%I1XwnKEHTv z5H7%xbjz#ZiK|tHZ?tu8*WLCu*6Ifcazp<_hBYBlPqGD1FdHmxwv_J6r--7OK>Vbg zx1>D$rZonio?yTY;a(s_Ams#i#_mdpbPaDJ5$f!t@MqSpYH=_mXY`4X&kgAL%7pLB z?Pg5dkKsIXUx>UhGJNz!2sziUJdPtNrQ^O7z|nFw_cWyLwoYsg<<1^0Oun$@k6vCe zw+*kf@2OvhY*v~<@z0H$B&TCG?TfZR+&EA4b-{U2EXegBalJm4W!7$i=>xRmi0`UErLz`FJD$6nN>)fZ9 z@%*($B;C~xLpe8g{o?gX*|fA`W)|w2_wHqboo{*ph3Ut6d*is_VNj!@p1v|`;(gm8 z|F-y$nM1RsAUyeHBw?v$}mMQZolQ&eiqCoNAcJDRIUy0VXwSnLb zN+m6+PB(L6Xdj3dw%?oVmeGMAqhWk0i7hlxOKV*mNId>O=tSF6k#Jp1SEV2Jz0 zRE3M{LR;;h?})~pTC;p)_yr!Vm(eZ^+2a`|1gU<{JG;woIb(Ov9x8Cj4XwFg7LFF3 z3!Ns+8Zuj3-wyOnBxkkkAlRr$rDJiJiNI*HJ;ly8Rq4rfI_dd%ze(*{P92u$H%P<1 zcG=ouTzH1Cg?YB&;wU*&l&G4BC+5-oyP_DJBK)dmGql4R4CTsy4< z8>)7ljt3|o{@S<(=I3!O6>((LR80yK-uu?q(j++{qr`GdD57Az#N7SbrwJj*t2A)yyUHWkQb9kh z75h6&#WJJ+h;XHgF}DxaYDUj08)az5+y*DxY2$!h3991xFG2Kt+TBS?Lv=8oitWxzW`2Ol zhQBPxebh~S)zlv5-Coq)o;At3#H2S}D1#>3S!t+d92(2leh*WGK*%6(2AMK4xDn>N zW9+cvsuhP^B*^@ zrkQ-9dL{i4MckED#FQ$XFK=pJN5j}$ip4}y5zsc7b09y^sD{>alCtk4clVcGLCX84 zu7%v_J`D<6`+;H=VIB{jg!k$z+Q~;hNUwHCc&IiFYHPV_ART(WPJMVCM;?v|ZSTUH zbvBW633{JFb(1!%*~o*m&SQfJ57h_oaqB@Hdty~~1vE*)5z&3mSrN9wanqC1`3g`0 z_6)Bn-I#T>0nn1X(cPF)9qdy-xEG}?%40}}LGyT$>9$E`xWn{h~M3DNg=r#2Z zG9=M?qH@J36|s*k>Q zmeMc0u7irOJJ1De!lZbg$J{QOwW6wDc*BR9C$@9}K2Q~tYg8M|km zrEH?g7oTG2HlIidXB-^aN*Rgj&H;^11&xN?@vZxuq0zHnEdyuY$$slx*5v!C$Jo|| z1%Zqv^n%jf>wt%%7V~G)#fYk;o$gB0P9>VBpd@2Zc6VHtP9bD1zIfD-#YIy4uKxufmAB&{%8hj5sXNUEb)6ApQj+b$f$ zIlw=c87K;905L|k_Jazqd;EC&l8%J%`6&=+f`BLmsOS!E zJzy`~%ctG0gxol=@c+)Iq_uSqRf7C2WT8+`&`D`frzmsV9xT$IBp;h|`BE}PLp>wO z14}FqxkQ+gq02q!7`*l_eDNO+%?3igRNDgvnjzRQ*Yj>*(z4)-Uk-pqT-_`oTzBH| z${QzUxho-itWHV$zXDYB(bX%0P_gfqofqeDc`XMIGQxwaUmqI+ZG68LJiQqX+NZ6z z29%1wy>mUJT6@>3h~!)AA<5sl8zAT10D&FU!s{Pm@s7>pV-WqPOTY6<9DMqu*1|VH z-GSpjf-R8hYA_;SzV8GT>MITcK)yZimn)aH=J&&(HFutF+v6#w19AVG3y0j0P+#?1 zsKsm&+<7t!%T`b2!LbMWTjA5Q15{=T$#-6Q3o6etQf{Er&$3*3F>jEgIp?w*Y zxUaq)Il1C?FQocKxyD7{ny+kRFF)UPpc2o#!+Vxn_x&vD%g}>f$km6&IB1sRn&o|i z;QK$`&iEF2fu$=HCR82N@q(#cmi5cm8H~uUFSU844zwYoB^4F;0x9qcP$uN+dr(yW z##-GFNeS?ie)!$5+*QqAnIk(v)R)G{L`%^|HM-uu)8lQaqi@%l@E?}sS%SFYo0vW z21Y|2QpcMz@EJ(G)EiYx>7k2@v~%FxZq}mkW=x7g+z7(K{gGeSZ>$YE`rz2zhDEM8 z@B)9H_;QWW`XI@bOT#Kl2A&@51X*bi2!4KasA>QCsuaM3-j5 zNQrAd2La+8*Ub8+Tfg*9zUI|?1-T%>+7!(6AC(XN-|U-2Z%MKqJyIy{VLa&*F_vUJ z#ccu7N+0tbbJP0L!h}%LmuUMn;`BJp`*3A--fFG;ky3s(BKM2C?-NKE9R-xMJfApx z59}YHs0f&76y(d_4U!T(s`iFH@w&Oy{eY`|S`k6C6$!cJZFr8t+~|>=;;$Aav_UJD z@QgJz&!aUPg)y|75uL3^Ue2Vs_Jbp;)^E^$13)&az-sdI8p|t7n@j_kAYTX{v?=Un zly@}`F?ExPJn4bn2lxRms9eS#?QybrUZ6ByuZ!3`Jw=mop|t~LB0{Q(d< z{_?QI5fVWLD;iini0T8sEcz}$UVYJnZBzr+sluDDpLVMMXXs)6lpVPT`N6Mq7fT70cc zL`9JqukjdVVokZ5Hq$Z(+Uz`M#AoGJEUvjLB~7HJF3j)b7K78-Es-w z9uBBF-QoF6xqd5gS7uT8mKF!yJSmbd4R^VjL?bY-HY4ZWrNdn@-rK~=>GL9e3K^<{ zwK}3lhIKdxRcCg9dfst;xtN~Q0ob(SoB?OscglE74s^t*4AD<$;Jo{Vh5Vptk%e3y zJ0mn$5jA9=!G3gutq_5qw6b7-p6ZBKNaH;g_%Ux*o%-z1ZDUsfY-$kB?DzgY~^jOaz$7Fs;A zhg^oM*A}`ft14^1d|uIQG$<4P{uA-^CWaR$f4~xChMdcuYag9!yoDYCG*6>i!hbEQ zuH?j%;ZGdjH5)o9TFRsBumKO}`g#XuioQ*}Ed_w@(7l71T+T-f=*z$CiFR z(UO=m{LDUN2nb?Gijt!iXM@=nWNOhv*0cLmNm1{;xo(0R)YUwTvj}|b9?wnud`XJB zo10$sf~&QDha=LcW=^I|x`5W^z;x>23>-|Ec@XD`?)uEzmi2c#p1kN(I8u9=^M_e^ z-f{c%-FPiKdy2?g$uaxTW@{W{*VMDXz8Ll2ojc5)B+yh^;{zjz_QyIzTID(^H-?VS zH^r*^l{tJQ%qRnLgqAB>4S<|LHnFbGYoG+s$oDp*#*SL)+6Z6wb=b7Bk~7140N;n{ zRNHo|D-mdkOr$6Js1c3Zw8PmANHaqf(>)8?33yYzah;r&OR_T|)>?H=ZPwq!Mto9R z)#!CjyK;z^;WOLi<`0c;jp&o4dv`1mPe6%#5G&(IHS~PinS>64dlrv0y$1N1=aSwh zrICm|K6CZQY5>Hf39p8uA1Sy!NN!^qvA8>Cvf13?S)5s$TSh0o_P~51x7l%e|KHX% zT(10N(b2Y%W(lS&>E--`FdFde`=Z0cowwxi{OxV=>N^{>ED<$p$4tf$A1WnQzXrRO z`a9VL=^LI8Qj7-GGvDnJ869EEIl43kU@Uh#LW>>;rf$l8+PmLsu5`ac ztIv)E`Ry|FzM@Oz2`Y{+YDb!xSdO|MO!H7+joX=DpL7hBu4t@Ok0S0l^V#N zyT`oJ8yNZO_Qd_gTi6ay^jz}X8GAViP7V=|-1l;tq*l(A!amne_oBfK%T0Q)1PPrP zwXo6!bWd`gyH$GcELeM(XyQc=o-IM_FlwnVf4y z#zbE9WfZ6G>$wQ+ldhS%T$Q@2+1IJ;MT7IEk<66Op1KIlQa8OCSbtvAhV@UaVbu80 zd68C49x>x!?x;&jUrG-Q*Fj|DUADkG-^W}*J~m~h6g3-os%KPG=;hGzVliPM6K6fW zd)kwVaiB157l>3|XTB!Vy`=KG{T&$FWnCUU!kEt($wDFEN@9RAmA=VX+jC+d{DP;< z-J>{OMda8hqKaCl)qmt0FJ< z#UoiZJZD;SLT9|_Vw=uE4+p1Ww^XCjgz;}yio@h%9F4urOck4d1wM=ZP#JsIMjuf{kyZFzF zoW8AIsf;O+6^~hG^=ov}uRHoRZJPE?Gs3L1r&F`VTRUmjP9!Te`EF7zb?U+5?Z+sc z;Hq<@aANHmYd}CAd8U1Si8=(|fh^13c6F})XadmJSU-V{PJiXeO)&>UZ!x5kZ#4z`vvm~YRNHM(o2pIAQ~KI*J1TAt%xhFNcle%DFa z_V%Jr8>-1-lt@vdcSgF3mVpF)R=@LgY2v-wY$M{MI9j8w3)g%WcKW3&Vh7?!|f=6(+P)00U%gHy5u}^kGb6qgN9{ zOw#J;ld*5?>ub#tjQb~(?!T*X18$dGFG?ZVyX+|6{iL1@h1|nMwrHs_sW;A-e zcdE3-#I>H{eVt4haB>l!OYdzlFJb#jJ5lI*wT10|KzvaRs5Fix>m7hVr0BuHu$TLr z2;kPVlpzh=as%%wh?C%;hsy8WH>1r+JiwSW45))v@`Q$E1_EKp70JC48H{+?{mmEud?=yFa3%@zywW(9k) z@pVl}&#WOo`tncrL%s^tIA zHLO2!JFh?m5dHy5H!8av zPjDr~9O1_nKJds<3q=#&x<)^-NcxE6>Mq~jIW(X2P({QiTMNk?DBNn8F1J`Sf6+vK zp6p+U=fB=P1)csMQv=%%2%2a^u3m6B`Tkc1AAqa<8c{L%m1oCW;=jZ*_{00JU-~De z^Y8EBMO~H-?@|pa-aP)>*!@J60WGd;1Q+`y(IftsmdYmlt3m8(n)hzomsT--PxU!Z zo)LgjmR_&RA3oerX9Hgweu${^tch&DCGp}**5|# z<*%WzBcS{ut?9YZvf3Nr^?la7dS3rJV?e0K_AJoGS=18Zn>^1{ml_cGQL+_JKqpEs zP0;U!$l(urUfIWISvxJ6iC@D%d|O43op6sAONIPvgMJ~G@{RuI5Fu|F|Boqpn66m1 zopFFCn*8~oeaIn@)&WkK!N05_2;)<-8XS$-8aqoiTfP-UM4$naJe8l1u$H{$glB-OTp)hxlAp@XxZfn5IPs|ME|FSAV%*gd5n8j^r1}Ha-gCJ zD!Tki<^uaYgee!p&hF=ypOpCWWfzE{A6tN-UD?_PL^GK5sQa&itkpl``bImhUeV6M zFdp4ur)CL4V6pFm&dJqNj?b&FHCnd*0T%~Z@;Kh2uf^3);h7_Vf&T^$CP9@HUNk}R zkx;nNWEFaq1dA&K0X2~M8!l;cvmrLnbQ_R$%fVLoZq+z6cy!{S$0>t{ZVv9wJ%u5c z)oWP(vPR)K!?a36uH0#cZrj?t>>RA8X`$qgawv=M2VH|yJN;luHb1$pFxpyf7+~d8 z!Bf^5@!j!7Uc*swykOhC+R(x#o_s}OQrozF2xIAX3~6^+v;6%DgDpQ=`Ts_^-3t;k!$K!x$d4urwB?AG)XwG8>64gv+A^BOCb z4GnUk5K!WoH+coy$xZ$2@_y{w8nj{?5av1TS!}01FpsF2d}=Qt>;-QanxD(?Xz=@& z_W(^=vxTW$s&d9d&W`Q{U&(y<`~P8<)lOg(8hMEmh5zNw@t4eM8Ea4_yL1lZgzo)2 z@{vF5OK0VmBVgJ2^j)j;wN@bhFN@w}DRRS;mtp$vCG`K=RtRL%zpz62OM=&vC2QeV zNT#4C`dW*NbZK~=m(x-KA?@x((_RX#Tr>&@L`CrzEM+x}*ENtGkg^4CUf9ck_v3wYdr8FR|KP8DB^ zk-ve1UF4_Nzlud2z`VKk6#Y6xqf%zZtSuH9knFpD zy#N(GH5^$i+muPATW6(6jv%<+B_gzo=O(ns;Z+`a*qP5w^vfT zIYHc`I2`KHa<*igEJ04Ak-C=a>q-b~UtP1j8pi*AP;js&T6V!q3m!h)C$+)u`ecvI&9dlFmR~#!&L=PZ+VZnd*cw=8mMYjTFP*9C7vpBJtDw;QH zzIJ)BY~`hdsZm);aMndU0Lx($Hy0_poPVYP3-|~cVs?=rp2Ae%$>h8mK8Uvwp@smb}t5ozqdOoEGoD0%7fNa(P=B&bTr09VZxDKEY(5T@T zKgx3s3qn~*$tGQia`l^Ay*p-oys=`i%vy_O@lHwiCDUP12)ZR{&b8kUoF>c? zcK`xRQaRu=ts$G`%h*x8g}94jT;)8chaJGyXmXQ(G=LM0|spEnj<5{Z76}Y2+;xrguSA*in znrLX~w2>yNYLub~bZNZG?2ST)EZ@1|%me*ThG)F6KG^_MQI-ajoDNX@v&n5Q zdFV)CtCbH&KH<B*LWt>HB?%>_mCt-i7qZ(PrG7{hdMW7U0Phf5 z`WbNwJ!W$5**uHzSGgg2X#P%hJ}p;He1=rH{nc1y#M5oBau5^|f4{98Eabx=2eVtF z)-HdwZY}Y9wcsn?AMkY;A&~D678G`LRs@N_^Tb;lDBaB-hGOjL)}8U(OZqCw&2*%V z$f^N`a}p40EyDe+bWyIdBGQO^Kwr;%WR&zsLbzeMKKbth|LD=IgZN#s0s4#(&r>IV z<83+$c|QIJ4pC>!ogILJ#|4nwj;PLTI|g0saTXdlt`Pr7-VV#3LKhsSVIM4DE4oR( zM>FzgwVQSAnyY1oKC7+S`CB!OzsoOdNYtNLFiZ7u*0tw@P{|~AJ1AYQ1Y(bApc2P0 zm93RZzuo>AKschwyiP0#q2k-ti$RYLd9(|R)n5hhRW=JO?O_&gZimJVnzo7U&wI|%?^H3v%9ET1T@;A`6G&|ovW z@btySc2aUFj$*P7#9Dk)e0OjhBY}oa_O!>%$~ynT=+#__&`Gn5qm!_NU9sOgibME% zHl#JnOHw6{&FAz7nl%%8C(48McP2)L%!PxkIFYtn5vW&|xnYV5LV?nwdlGWhD`&vk zi;C4E-V!CX0bR^FH0EvF?E$x4*0pucwmd9^RMo>9`#}R#cR>ol6(8)(3yRM?t9f+< zdEYn!503kiK@{`N`d#APVx8fiPR0$Lc22i$tfTU@IZPaW|8O@O2pw@Mf_6CvR!#e2 z7qp(+fp&)9&dSxB`#=so1i7-NZ;~9ei+IYau+}f5`X2r9dy!`OQ$3q%?*dh`qtIT< zDVzHt*f@%H2)ctZD@Ad?Orpgz?@?~}UuTT^l{B|-cIV?e@F6?z#ZeMctVBW(PMziH zb`dmVsCPHWyQsd)aXu@X=D2(hMw?GCAeX}c^VX|_brA<>S$Rzw;Rt636)W4q z^}giUE}qw2A8zoELV~o&ie&^9*uk_uIkB#2eKq;mfoMH-gq%)->$!v{>+MI>&mmjN z+s)r8i&IDh$@IUQ=kn5N7A?)<^>fx)ZWQw1^dmPZd*a0;1hd`O?(YoWKgs_X!H@a{ zUvBJN^$L-+XKa2QCobJgy~^NT=#a^iYc`B$%pAYO9mSH3BgX^PI~_PI^FaD`uEs!! zf4Ny;*|x;=nROxiayQto2+G&C93#q+qB`<}tMfUQ=|)s3APo#cT0g#W<4lR;$%b^A z%>cB8cKo|b{=v#aB6u=I?(LlD9PK76DQ%W)Ua4;Css5lXes-+WVb0P3p{W-$aS(F~ zrC>xMVL}-NZ$+Zn_lqs)l?V~`&f-|2DjsKu?n;m;$mtWyXNPoQ1GaoC912wL=cP?S z9%{u)5EKv~gU*wF!Iba_KHyYdeaO#1CXw@9 zUBs_oIG66-g<{ z*|78+D%TL^eMfs6I0k+|z3Qco+(3Cl?+WEV4Zb0AI0QxfkpY1`|H2!O!z+OZPWZhA z4Hs}HISmeHf!fiVWzmb+L2$EMc#qs8p=w3JElMzW3vYO97{hx%c$*LJ6@b0CWwi|C zz*pd-fIsrU`(1brNbFox@ZtR(_%rkb+;9PqQgaal2>!>|coD}4Vg+yGR;LDbMRf#Q o+W!iO{1>F;cp&E$Y^;yNl`gV-W|=H&$@|7JBXh%?!{>wlKe^pW6#xJL literal 0 HcmV?d00001 diff --git a/docs/source/design/failure-detection-master-election/HW Design-Zookeeper.png b/docs/source/design/failure-detection-master-election/HW Design-Zookeeper.png new file mode 100644 index 0000000000000000000000000000000000000000..0259e852946a2a2941fc7c25818500d7d88d9fd4 GIT binary patch literal 102764 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 G*#8H`3n$tD literal 0 HcmV?d00001 diff --git a/docs/source/design/failure-detection-master-election/design.md b/docs/source/design/failure-detection-master-election/design.md new file mode 100644 index 0000000000..8e8b58409d --- /dev/null +++ b/docs/source/design/failure-detection-master-election/design.md @@ -0,0 +1,105 @@ +![Corda](https://www.corda.net/wp-content/uploads/2016/11/fg005_corda_b.png) + +# Failure detection and master election: design proposal + +------------------- +DOCUMENT MANAGEMENT +=================== + +## Document Control + +* Failure detection and master election: design proposal +* Date: 23rd January 2018 +* Author: Bogdan Paunescu +* Distribution: Design Review Board, Product Management, DevOps, Services - Technical (Consulting) +* Corda target version: Enterprise + +## Document History + +-------------------------------------------- +HIGH LEVEL DESIGN +============================================ + +## Background + +Two key issues need to be resolved before Hot-Warm can be implemented: + +* Automatic failure detection (currently our Hot-Cold set-up requires a human observer to detect a failed node) +* Master election and node activation (currently done manually) + +This document proposes two solutions to the above mentioned issues. The strengths and drawbacks of each solution are explored. + +## Constraints/Requirements + +Typical modern HA environments rely on a majority quorum of the cluster to be alive and operating normally in order to service requests. This means: + +* A cluster of 1 replica can tolerate 0 failures +* A cluster of 2 replicas can tolerate 0 failures +* A cluster of 3 replicas can tolerate 1 failure +* A cluster of 4 replicas can tolerate 1 failure +* A cluster of 5 replicas can tolerate 2 failures + +This already poses a challenge to us as clients will most likely want to deploy the minimum possible number of R3 Corda nodes. Ideally that minimum would be 3 but a solution for only 2 nodes should be available (even if it provides a lesser degree of HA than 3, 5 or more nodes). The problem with having only two nodes in the cluster is there is no distinction between failure and network partition. + +Users should be allowed to set a preference for which node to be active in a hot-warm environment. This would probably be done with the help of a property(persisted in the DB in order to be changed on the fly). This is an important functionality as users might want to have the active node on better hardware and switch to the back-ups and back as soon as possible. + +It would also be helpful for the chosen solution to not add deployment complexity. + +## Proposed solutions + +Based on what is needed for Hot-Warm, 1 active node and at least one passive node (started but in stand-by mode), and the constraints identified above (automatic failover with at least 2 nodes and master preference), two frameworks have been explored: Zookeeper and Atomix. Neither apply to our use cases perfectly and require some tinkering to solve our issues, especially the preferred master election. + +### Zookeeper + +![](./HW%20Design-Zookeeper.png) + +Preferred leader election - while the default algorithm does not take into account a leader preference, a custom algorithm can be implemented to suit our needs. + +Environment with 2 nodes - while this type of set-up can't distinguish between a node failure and network partition, a workaround can be implemented by having 2 nodes and 3 zookeeper instances(3rd would be needed to form a majority). + +Pros: +- Very well documented +- Widely used, hence a lot of cookbooks, recipes and solutions to all sorts of problems +- Supports custom leader election + +Cons: +- Added deployment complexity +- Bootstrapping a cluster is not very straightforward +- Too complex for our needs? + +### Atomix + +![](./HW%20Design-Atomix.png) + +Preferred leader election - cannot be implemented easily; a creative solution would be required. + +Environment with 2 nodes - using only embedded replicas, there's no solution; Atomix comes also as a standalone server which could be run outside the node as a 3rd entity to allow a quorum(see image above). + +Pros: +- Easy to get started with +- Embedded, no added deployment complexity +- Already used partially (Atomix Catalyst) in the notary cluster + +Cons: +- Not as popular as Zookeeper, less used +- Documentation is underwhelming; no proper usage examples +- No easy way of influencing leader election; will require some creative use of Atomix functionality either via distributed groups or other resources + +## Recommendations + +If Zookeeper is chosen, we would need to look into a solution for easy configuration and deployment (maybe docker images). Custom leader election can be implemented by following one of the [examples](https://github.com/SainTechnologySolutions/allprogrammingtutorials/tree/master/apache-zookeeper/leader-election) available online. + +If Atomix is chosen, a solution to enforce some sort of preferred leader needs to found. One way to do it would be to have the Corda cluster leader be a separate entity from the Atomix cluster leader. Implementing the election would then be done using the distributed resources made available by the framework. + +## Conclusions + +Whichever solution is chosen, using 2 nodes in a Hot-Warm environment is not ideal. A minimum of 3 is required to ensure proper failover. + +Almost every configuration option that these frameworks offer should be exposed through node.conf. + +We've looked into using Galera which is currently used for the Notary cluster for storing the committed state hashes. It offers multi-master read/write and certification-based replication which is not leader based. It could be used to implement automatic failure detection and master election(similar to our current mutual exclusion).However, we found that it doesn't suit our needs because: +- it adds to deployment complexity +- usable only with MySQL and InnoDB storage engine +- we'd have to implement node failure detection and master election from scratch; in this regard both Atomix and Zookeeper are better suited + +Our preference would be Zookeeper despite not being as lightweight and deployment-friendly as Atomix. The wide spread use, proper documentation and flexibility to use it not only for automatic failover and master election but also configuration management(something we might consider moving forward) makes it a better fit for our needs. diff --git a/docs/source/design/failure-detection-master-election/drb-meeting-20180131.md b/docs/source/design/failure-detection-master-election/drb-meeting-20180131.md new file mode 100644 index 0000000000..47c0e0707c --- /dev/null +++ b/docs/source/design/failure-detection-master-election/drb-meeting-20180131.md @@ -0,0 +1,87 @@ +![Corda](https://www.corda.net/wp-content/uploads/2016/11/fg005_corda_b.png) + +-------------------------------------------- +Design Review Board Meeting Minutes +============================================ + +**Date / Time:** Jan 31 2018, 11.00 + +## Attendees + +- Matthew Nesbit (MN) +- Bogdan Paunescu (BP) +- James Carlyle (JC) +- Mike Hearn (MH) +- Wawrzyniec Niewodniczanski (WN) +- Jonathan Sartin (JS) +- Gavin Thomas (GT) + + +## **Decision** + +Proceed with recommendation to use Zookeeper as the master selection solution + + +## **Primary Requirement of Design** + +- Client can run just 2 nodes, master and slave +- Current deployment model to not change significantly +- Prioritised mastering or be able to automatically elect a master. Useful to allow clients to do rolling upgrades, or for use when a high spec machine is used for master +- Nice to have: use for flow sharding and soft locking + +## **Minutes** + +MN presented a high level summary of the options: +- Galera: + - Negative: does not have leader election and failover capability. + +- Atomix IO: + - Positive: does integrate into node easily, can setup ports + - Negative: requires min 3 nodes, cannot manipulate election e.g. drop the master rolling deployments / upgrades, cannot select the 'beefy' host for master where cost efficiencies have been used for the slave / DR, young library and has limited functionality, poor documentation and examples + +- Zookeeper (recommended option): industry standard widely used and trusted. May be able to leverage clients' incumbent Zookeeper infrastructure + - Positive: has flexibility for storage and a potential for future proofing; good permissioning capabilities; standalone cluster of Zookeeper servers allows 2 nodes solution rather than 3 + - Negative: adds deployment complexity due to need for Zookeeper cluster split across datacentres +Wrapper library choice for Zookeeper requires some analysis + + +MH: predictable source of API for RAFT implementations and Zookeeper compared to Atomix. Be better to have master selector implemented as an abstraction + +MH: hybrid approach possible - 3rd node for oversight, i.e. 2 embedded in the node, 3rd is an observer. Zookeeper can have one node in primary data centre, one in secondary data centre and 3rd as tie-breaker + +WN: why are we concerned about cost of 3 machines? MN: we're seeing / hearing clients wanting to run many nodes on one VM. Zookeeper is good for this since 1 Zookepper cluster can serve 100+ nodes + +MH: terminology clarification required: what holds the master lock? Ideally would be good to see design thinking around split node and which bits need HA. MB: as a long term vision, ideally have 1 database for many IDs and the flows for those IDs are load balanced. Regarding services internally to node being suspended, this is being investigated. + +MH: regarding auto failover, in the event a database has its own perception of master and slave, how is this handled? Failure detector will need to grow or have local only schedule to confirm it is processing everything including connectivity between database and bus, i.e. implement a 'healthiness' concept + +MH: can you get into a situation where the node fails over but the database does not, but database traffic continues to be sent to down node? MB: database will go offline leading to an all-stop event. + +MH: can you have master affinity between node and database? MH: need watchdog / heartbeat solutions to confirm state of all components + +JC: how long will this solution live? MB: will work for hot / hot flow sharding, multiple flow workers and soft locks, then this is long term solution. Service abstraction will be used so we are not wedded to Zookeeper however the abstraction work can be done later + +JC: does the implementation with Zookeeper have an impact on whether cloud or physical deployments are used? MB: its an internal component, not part of the larger Corda network therefore can be either. For the customer they will have to deploy a separate Zookeeper solution, but this is the same for Atomix. + +WN: where Corda as a service is being deployed with many nodes in the cloud. Zookeeper will be better suited to big providers. + +WN: concern is the customer expects to get everything on a plate, therefore will need to be educated on how to implement Zookeeper, but this is the same for other master selection solutions. + +JC: is it possible to launch R3 Corda with a button on Azure marketplace to commission a Zookeeper? Yes, if we can resource it. But expectation is Zookeeper will be used by well-informed clients / implementers so one-click option is less relevant. + +MH: how does failover work with HSMs? MB: can replicate realm so failover is trivial + +JC: how do we document Enterprise features? Publish design docs? Enterprise fact sheets? R3 Corda marketing material? Clear seperation of documentation is required. GT: this is already achieved by havind docs.corda.net for open source Corda and docs.corda.r3.com for enterprise R3 Corda + + +### Next Steps + +MN proposed the following steps: + +1) Determine who has experience in the team to help select wrapper library +2) Build container with Zookeeper for development +3) Demo hot / cold with current R3 Corda Dev Preview release (writing a guide) +4) Turn nodes passive or active +5) Leader election +6) Failure detection and tooling +7) Edge case testing