From e520097e7bd8c1153f1e87b8d2f395c279df3972 Mon Sep 17 00:00:00 2001 From: Vonng Date: Tue, 13 Mar 2018 14:46:08 +0800 Subject: [PATCH] =?UTF-8?q?ch5=20=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++-- ddia-wexin.JPG | Bin 101766 -> 107228 bytes ddia/ch5.md | 150 +++++++++++++++++++++++------------------------ ddia/part-iii.md | 2 +- 4 files changed, 84 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 1cc2870..6bf2999 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ + + + + ## 译序 > 不懂数据库的全栈工程师不是好架构师 @@ -92,18 +96,18 @@ | 章节 | 进度 | | :--------------------------------: | :------: | | 序言 | 初翻 | -| 第一部分:数据系统基础 ——概览 | **精翻** | -| 第一章:可靠性、可扩展性、可维护性 | **精翻** | +| 第一部分:数据系统基础 ——概览 | 精翻 | +| 第一章:可靠性、可扩展性、可维护性 | 精翻 | | 第二章:数据模型与查询语言 | 初翻 | | 第三章:存储与检索 | 初翻 | | 第四章:编码与演化 | 初翻 | | 第二部分:分布式数据——概览 | 精翻 | -| 第五章:复制 | 初翻 | +| 第五章:复制 | 精翻 30% | | 第六章:分片 | 初翻 | -| 第七章:事务 | 初翻 | +| 第七章:事务 | 精翻 60% | | 第八章:分布式系统中的问题 | 初翻 | -| 第九章:一致性与共识 | 机翻 | -| 第三部分:前言 | **精翻** | +| 第九章:一致性与共识 | 初翻30% | +| 第三部分:前言 | 精翻 | | 第十章:批处理 | 机翻 | | 第十一章:流处理 | 机翻 | | 第十二章:数据系统的未来 | 机翻 | diff --git a/ddia-wexin.JPG b/ddia-wexin.JPG index b2693eb37f53aecf8fec7a38a74fcbf56b0d1b2e..ba7069f8454b8803ae63b4106e25514cfd724c25 100644 GIT binary patch literal 107228 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Ìhai`I56#@oM;}I<`ruxE%f^Ip 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 literal 101766 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

||@fL;F*KCn8Ta!%lu(!JI;)KJUM=3Xi&)#w z%{*y`J1Sd_Gc~y&$zO}rsHj3pp|OdRUXmD}6#uZzw#|N}Xuj;uObh)U-+H=6=?Hxr zomoXC5PSVNHA2w>e={P+gKlg88q79wECsT|yj@)CKm?~Adb)6*K2Ph{v;FY&%#7~( z_YZWhw3f>>4acs{*RT|yzci8G5rmw^@A zp-p;qEg4$t@CgAIJ7EKVhFn>+<2C!WoAr33=o!9)Z?rw9C&+si$>f%CcGUM{4JL)n zb4f!*mTERKoBFR#*AV}nhi#>IJ_eF2#R!5OeIj;CD}7=RCbLyt)ECi7n!SaV z6l#7Psa|UvRlX$mwcZl%bvajCbJ(jC9BkKYo6j-z!(rauwDFlXK#w~PQ@ohmu`E~M zSBgP2wE{cwgg!ZA+KciMDvcDKLQFix9Y*%x1$@Rx!i?2hlumkDO{+OM4M#aM*(JQY zssL;QInfeJ*g~$7L+t1rYYN`RKFJcovgNedfR%XtDdti0EYfI(*Qlipa8Z7vp5e) zL%1ygyIKw}l0y(AhE@>x^Rj8erPp8MJLy4Z@F7%K8k~OXB+c{=>EnrKZyG#1IduQ} zhtG@8S`@9T+ZS_HMn8PGrWKD_Y+>QyW(+Lm9ay`&Y;rE0vz0i$f;^W#Fbh~TsnhAR zqy233F`-KBPOZ?^q{i{P{4Ef~TNcV<)zENEmwM4?1?NHj zV^{q(Ed>ek=I-5p`FiINA$li+7lV{7>;NEJh%BH9!t;4R-g6z9ADoml%{1=#*eWwZb85a1v(_~bEi zG&&+b)Ka<+nOL0uOn4K(7YdB;r_{U1x2d{sC@mdBE(8VofK3DJpDk7rT=SO!#%!~f zbt)s*aDx?*6}L=q$G`1FvVla`pM^}!rm>&W0}VB?&DW997NT$lX{`Cb!D}l-nN_%P z>#-TIr_?^P2>gYsh$BI7>5fM9OSmP0AC`ZjeSuVfEtprsd(Ba()V^#qgHsdkt~C-V zUbZ0h(tY;_HgBpt+|H=(e&lmGbM|8~)mXp8AtLGry7UiJ|fyhnd1ReSld4L<5|m7B_O{s@#eCBBUb<`OVV zb+8`K)&WoLUK2gNjl_A)A+dbQEStwFMXg`Rh{~O(rBj>U={z$%b#Hl*%(@*<3IZ8Q zq)&9tDD-J@#zOdT(!wW^{1P`Ifk_>%tfWr~eghT0|+{yTB1zZv<~MdVvW& zAW1=IsNv8Ft2`4;DWfPf$V41Ad=mXY_3V=Q-_On;c)z{!{ml`b_63h~6|yY-DU88DY&gnv1|f14LKan*FIHKwoTx#d+#ejLFs-NHDb&id7a~ zZ2hJ}c#-=oGxE;;qq*6UMOWg)W#x0ILk#tcup@b$ZVXqb|D1S1`p-C@q;K zoT{#V!`S7(`U*3-{Ki1V|FPifNI8y@1S#~C+`;GvA^pP0M=?Ke6j%iBNkgIFe&A2s zn|fqm)?=hMo7TshOj>>m0UU5M*bdNX69%H{<6r%LPan?L5tK!_&|Kd*t&3WA&vfZF zn9;g8^5rFT4|?ZiWN06@4EZEq4+mUX;1JWS8>zIOINmTkbReaHFoo_)lozZrTK_==>9qE_67< zU2YLDT~mP}!fS?bx)9>OY3qmr*8n2?c)9>9YuEmPqgAVe&AvzLjyJ2Q6K>63;xW1 zgDjxe4EuRw*bJDqW#(NZVPFPvB$?4Q=ij*L0Afl;3Wa@wG^7P%vga5f7avWkQzp=b zTOd~IXOrImxei1b(Ul#em8KvObIQh1&Yjdbsnen%)*2}mxek)Z1f(;pL$8Ra#7A#N zV`i<40ZyMAH{xerfUhL-*6K|HX1#sK#nHIQx9G=2Z_x^GaWsokNgX-^1rYjxdo42Z zVg>O8aa}^BlM}*Wmg=gQRBB`Z@Z|3cP~Ik=U)R-CuE8rNpR_(?(;nC|_!FouM3Se_eW0QiN*>Y? zwMVCE5kSmuPhw7^u)##i(7Rnk-Lf5QiP)7qpgN!EQ6de&4xF|v$VZqX@UL39=2{)c zSQU9=)J}ie7nqUpIoDuE+1QF%IAjXd=_PPRVAJ|9FcPuE49FO&D;yPGXJEc*!XXX5 z7EQplx=RDyLCztSPE?7UoSs$H%f zws|W)azXvW8bJZ%i@W$*l>#op@2vgDJJQ&+fgJj9IguS>`s)<~h=Gpt`QehC{$Q`6#pSaornB<>>fUF>J%;tCJ3ZLtITcz-BZ;GpbOqORv+X$^Me{g@t za5Is8mwW>fXp%-OQX@xK;Z{`8wOSK})4*;p2>_1YR=wqC%~hd+ep> zyj%g@e4J5J(ehX{x`nz^ZvO>USlTy<$PD$R`r26?&(<7JqBwZdGCgm zupodKUeOP^R5hg?nz@0+d?bMC(lf0z>{_B=Qsc7WyPVM8y<=3gENwc zEI6{2cufV(u07LtAz$9M(~tGyXtzbCQx^}GbGaLN!c^-5fxMpb2^n%F%tr?HG|@+* zpkTBNDnP#{X1eIb^Nc~ZU=AMJkx)kCi`ydKHo>+WevK?aIMyI*BoYvYGVEcC>y5&* zKD2I2Y-SpyJC!W<1Sj5=g2fEjjNi+q!NP5BV@fIk1Wv# zS9_oeYbeKpIFIReKNU#Vi=y)iq+_j`Yi&&{BF30EJlGV3c7Yh$GUgbx4t%?@EW(mjZQ zHTYEh0O=h~#-D10jJqLmQPRoa5^4oPDF@BwhCXS2k3h``X2 zrv$;~goi-34-rI?j|$YG-Lhq5`_y_+6X-T9+{fWPc9I{PC7tu-{ahVw{;PPU!?mF+ z)?SIyM0e2o>oG|;nB^^<__0w-;rcc!iC)7$h2n(EWX?YPr&eC5@IGagFR7d?QJ|}m z{lF!0{)?CK>eJW2KkE;fQlbH81t3ijlLjti;Gl{lA9HYvjHKlGJS9xy9s`>Us-`*^ z-YB>tXUa2ru*M8<#ROO3%t3O|gE&zAxe+G@3D`wVe!sGYI1{>x(~8NLf8YqnvHXru z>dcYy#?f!t8y8**ObhumKiTu(cwC-3Zsc=Z3!Peno^clSecdcgMAz37$JOXhTQtOn zi2xk(H~JqG-YT4f(n{#_y`5@x4J{Aq<#3lZzW(TI^iKMGE;KBRzB&KURo`#nLJ+v) zG{62C%dsJrOMqBzf>L-$m`(4lGg<{JGV>AA823Y<0iK zJ)3@gr`NC3Q&Y>E#vO0uOWRd0KB&E6(M&<^y#V4sEv)`Aekvo1@MT*QGN*TR*Tn9};5c`L&%CV)^;~Lzc{y4ZCk2JsnIgu}ADXI6G>_ zSBp-=W4Js1!0qyZmKVw*T%bonActT(Z$Z#BIt~QnZ{E6s7@n^1V4)baY+?Wx;J}LdYQ{?9NyHnQKwN)$&d%J%B!F2Hu zT-3#51?H0&o0SM-J90f6sxzKVp(4yw?KLL?%p)GmcThvh;4r}q^ zokY#LXj1-%YvW8BvJFqQw^k(VAKTQq?qg;CnSxl2@t6=viKrX2da;JOI+_2AFw6gl zlq+(z7U~imP?TGPa3E$K-=Hl4;ExADt7F+Hi~PKUWBVO(AxID`CBfHxyYNNC@f$!& z>F7$!vYJpTUa-1TN;@>sO_WOA(o*)~Cof?`%3B z@}jC%(b+=JZ$X?;+kap(%abTC?eF?o*MuzgQ<{j7gcn|E`AJA(xN)HQGmOcS+!D(P zK@)MrK7+z0G4TQg1n8&KCsJKwL7i^E7oZwPmB31yQ z$@LzO0q}kn6Ex!3oR`V?!l&OCNNGk~uJ{_J9NM^vSVzADb5&V>bR1u5F`pHU@*$s` ziG}N)j#L{~z8goq@PHl|R}9YnTP1HL{Ll?wHXORZa^s|wsYum(Z#0isn4jt8ep)AX zdX81`S^9iX#vgGThbnf^7ApGwjviLjl7>atVl>e9Q76%;V6>FC1&vAeRWD7N_l!GL z|HCz1iR<6b-ShoaqiQ$Lw0OR;7b6jMr+4NOqC9PuaadAEk-N3p<52H#JD01gcG{b2ZyHgIh#%@wv8Dsb*Z|9r)Lz}M` zsmJO!IahjIPUx6vB!$*=olQ8Fc!?3>eJf*|=D7p+y>ttlO4j0UOs`b+I>;Wlx0bIh zSPHXdxfM`0jr1g8HVIoz==!EyuomE5k+-Q>4RIT+=jd^@yyatj`x=zgfjrY23l*=eGd7TIqH6-33SObq%HOV%jGCV*z-J6(=kw=L z(RUsfjoQ`fi6ees-hhoV8*1+Bm0I} zP$t~W=6;`l@4$79i-FfFt5mtw$o^Xw+(dP3-_@L4<|F0NTXdls#CuHAC}7c3!FR?f zaqz;ku#tPb$ZsP5eY`O3;lYLGir+&I?7oc@ZPFF=5kVf;m1wSN#%bNQM5`1t`tB#r zCfBZ`K~|k!Gr>~Fg51zWc~d`IM0pNK^cWNJuzA8~{${W&S2x`iUKMyT`IgggTmDdE#|=#@WluYm7ZN&}@jDt;nUr@s?#7N9Ah-d3H!71-g=J6cci4 zE{Z9y%%%_rD_pT0qk4U4N$E;BHDGj2jDPTs?LyCR>i^#t)T4eH<5?+F@Teu& zm>fjl8qELOKsdZ(;TNJCnOIc&5^htzBXe-M@)5U;&0jZe7q2RL6uaO0-C4!21-B`U z^h_~FU=Vnf7<)r6gD=rPaLUPeGY$cYpNN#ss}akPLdAN2t+az5PAm#)X1ecCnwR1Ox~<$m~8w9*@qUmFh>OKCE6=UR_-g=eDxGT2mp`OgUxc zhxcYjcA0I^T^G#PqEsizH$8!4KWLZQ7u1c~uiKZ@)Yod39qzmA$`^+X@_)R2dk*v? zV~OvYMqe*1wKe%l@6znmsa|Utmi8(yFXnL2{Hsn$W=fZ=cUP$fXo&Bj&p`U7rC!_)L6&+q&^Ntdz!aT`;S=^Rt8xvIwEqiJ4cbxZ7Bp@*0jd zICAo5ISte?7ad4so)FZ}znU^tD-u)z!N!CdE7nv-HoAouBTP0BOSbbRL3%w$uqF9; z&iVK9`}I?+vkNGW3hvJ^5 zJ9byt`2Y$3aqD6Jna(2t`t)hOV-+2mDHoWo3}o>WdZ&}z zKK+y&xUwf!szB`bCs$m7g9I5kam8)OGN|n4LazMd-a4%ZcifjXe389=SZPP~rSGT9 z{b~ejq6as@_Khg-KvhLGJRPwfiUE3;tI(B{;*l;8HK_p2z;^%3lahh!>vQFYYQKo+ z;wQwf#JUCRj!67|3#3#7YY@j=2odLi8@+4{O2o^%mmQ(Y4k2KqVqTbl-#J!{Ybb8wtDwywUS)fdHaVS;`7{2xhS`6v;cme+ZavGiqh*PXD?8V~xDPnF&(W=TUIv>RTz&)ggoqTc{FuObOU#xK&ec{xI%D}z?5u?eP2pQ1 zwM&3BDya<{2j}}B^GP2Ze#|~2^c%9@vZtX3f}pR=_i+|FPi)Op&sH5ftNL7Bb;zxk z_A>_qQAmpih(chShU^wTB=*Mm=7V)j=nx!x&Ek<}QsIIJj-(S;YtbD$e%26~*>x7G(% zX$gH-&7eL1k9byB&&8KZF~{rbz(6Ij#sus~N3dv5{K&W8Npt*36!Nq)Ier z;sl()30 z9_l4{$xQtzX0<1(s+5sN#?bCG3MeeHJ{R6~H>@o2kT;po-mhg6=n81*6h)W8wDS zu(Lb3;fLw0Dv7AKk1)IO^!_cLx@3*Jd{-ljTim=m~v+nz0O7H89gx-;(D z4s`>guVsdmx9nv#BHc2eW(h&d3{4)?JfE6_v5t;ub z^!XX6e7>;wpn4>xCfI|js6vC zoJ_#x5A$}zSQD8%0OYm=9lRq@+zGP8vYaQSINnXoJ|6-@gdQmJpo?6H75! zm?SMK9QTn9wb90o7h^)X4oRf*JM6V+_^ny?d~Ku_j<5fDcbqe1brA3n{u23#G#Db} z@-I>2CzQlu7j>w(UG?>VT|HZ1Nb9Rl&pLZ{!JUl8(#s8*@lneaFI!K&ErYA}V^rrG zJ~t-l!@Of}C8E)ND!-m-LCWtBK0;XN?~HEZv|zK;yR;)m$kGmMXZ) zMoTzjB{kCD@*dpO@mZI?QBKk9O>YcWXp3z2zjzJvZE$FZGkJDj zlb=i=cT4Gl>!}alU*|RDw7kBZX{mEXZfTUxwam4vaX3kJ&<}k6-_HvELzy`Ar=$f; zYSB;)QYo>SQ0YewFmPj5lWhtby&D=>36}C-mxX=3K0D*fk%?B;3kIG%j31oI7#=JYshtEuozz zj1uaMzWsjt?-~m4d`jZKAKGm9{FuaB(-XJ3ruyhZKcjg zSL715WsqBB`%ce;+jiUVrn@I6os#4w~nD=RpfAJOPyUF;5+0$K) z-wRlq?IdCTy2ke?ytf51<$kQ^d7v6R1`_{@VeDlUbR_|?ZLc^$sF>s|sKm!T05Epp zKA3qoa^oPPLFR1t7&rJUiaDwFpxq$4lgD+Chz{OLR}o*AWeJ;@L+S`3&N5nrCNP`Q zJ8S0HJD`qx^6S;Fi@AI;)4E+PwdUmQUlj0h(Rt|txzbMB&k;I&58YTM5Aw~rRU@d{ zOZlWf$7ok|mh1;HqXsc_vWX6v;USotOa0_k1O=<4mP+jQcenAmwAPMKt=P;!PBibN zFv&odbH3bR9s_D>TVuz+ynG?wz9l04)!!DJN#08dvjV6Fu0eX$05PmIbeq@%(QZ(a z|I}A6l9~->bseg!cq1u)U|I;Vr;DEWVLTaM&qh^Ei8b$tr~^oas=%H&y0VW9gWorE2oJ7ZX4EnQnOfk%sWf>NGP%z!+F_qBEV$AA^2)u; z0qNFF2A#5l#)MLpU7JQy+fHBMk~68CZu+Dc$9WiDzT1z;tU?HgNbAu9P!UKy&{8r3 zXegQ3POl>3XzKys@7<}UfNdy^#s0dRfGx;dhbnXtn)7+S97Zu)4#eDkNny)|-<@`% zzd3!zN4I2fSZ?8^tK#uW!7TwsF^vKG)}6%R3QOTs24~|LYPJQ&NA$4?k3(*^HVj@3 z5RHDX)D+F}XSc8!RPK=3{j0t`rHeMGXRy71^aYQWYeI>qz;5B}^oSs5T9#a}>|%!t ztncTHppl&Efq4Gd0;B%^NYvajrHmk8_O1@|flu zy}dTW+uiuvkm`#^fWpmR>%r$fuhQuq>$Ybsak1HZ+PZCX=h48V2LT%&3pT;ZY)7hAqHb`a zAfT)2a)1n$4q$(A1e$LPSNOJC!Utb};}Kzw z+cy8`cbwyE9AcD38u*)$iAFuil^qi*1#8FKfjD7^qx?}z&ICYI7BezkxZVE@Gj_IY z(^#%BpTRP?>==_`5U)zvCpH1QacZ(Uw$Qmm>Qi%HN9vVE;YlA_S3YkQI?AkRPU8iA z#8#m+%lt;2&#R<9B}r*(*EpUz$$3Ox9dk-*isxrdUOh%|=19SfF8=ahRuXRr96RE; zcG7f6W1WzZoG$u&m_AfPVbHO&rlr4&6zcERnL)6E>ARrn0@F9+V&tNi*X`eR7X+VF zn%pv-i8#$(Flxh~vgjNGvY|G1-GscJ1k2`sgcJIobt?JK_&+lz5Z-b~({s@+0CcXq z2`3;m(a#r3fLmS-7djR|$|Z57U<=dk)u{dX(g|x}Tf}3BC9lgH?|Z&2-f#6->iK${ z*hg!61pS%MKqG&h{~uh-%8rW^m6vq_m(E%GEZe$OUmI3EbqwNFNk7Zqq7$tYcwmZk z!=vvS;-hh|DYN01P9xp>QGgc7iO`uOTNKeS`{_BwdrTt+&`LqcN{}-6bGdw89@@jV zXgQukn1AMm?(qVm>X7Y>6P?+g7-CZ|j%(a{F~@HNY}1!P4J~(#3TIPF2^>p$ zvkxnD;B{w57&50o?+ns4%MPe+E;n@-K9mzgeCyn4IxjrpqKSlfTn&^1{r)Dha-w*` z&`eDghA+CQ9#Nujmv!hZl1^b1SPtx=OgE<*4fDIGmgw+z| zpgBVjwvgt1$K? z#63WaJm1EX*eeT=NrelM+24`F5X#7t(dEx4K_}rcSNhP*e>ysSp%R2TLFp7Y?3iQT z)vso@FJ0{ZfuR}2ibLtcH;41%;*1Gt)W7@vKTDcORrfbKZ+atf#FjC79-0R4JNU(Y|eygV@$0abGz2xisD_dDou^)5aAeg>KCaFE=-BQLevbxdK6qSK)W4N&dh z#^HK3Z-bGwqLk4`)L|GqTL8|8wvre!F%fCo`tY9;u#5Z-!9sxk`UHjW_*ATtEJi%$ zA%?2kqnqworaHLU#+PT;Tbw`bt)jt{NtV1*)bsLd0C9eAspjCH zZK%nx_<{2xcjG@~G(Z1#(uMeNFg6olIW-FaLMH@u$VlD-Y>Ivu8SRc&ns^-FV=iG#N3oM zd;Nzs7XAsaV;qDz^xji1U|fD}7tepAL}>9B;~vXp)dW)U{vKU6*I6X4MCeF9zsg!( z_k2Y9fiE#Z8Z(nKWdm@^=@Ea|F=UAecBqVs%3D)m!^fs_HL;>5>Vy?kC7WPEIthci z-19u=CS7|U=JZGM@#iv(uQRlDpXe>V7n!RewdUDDz0=iDn)4}crdEnx*_Es(TFDjPc3xx=(t$YFz?Qd;LOUFuu% zPI?BByZm`CG8joYou3u;;q!r5%7cJ~CLq@m^H=5&Dx+JROChhPEVD7Xo9rszaxrd; zQk`9t)f7Oy8I5WklzqqF?rWG5 zc^fa;8Xa#&;Qqj!BS%q>=KaavPsGN*K7aA*s+pIE(v#_HdgrtHT&T_ZB*AzwNRSu; z4ROfDj#;|v+f(w`xpYvaTQobx7+OxV6EgiS|^U3_ub3ablp}y&v|FII_}gOuulEC zgZrtIOnTFnL8Rve(y^HyNFQ`3VTjrf96b`#LENBG=D40v;K5DC_tCJKtd%~5=j|zS z`I2PFpqaZ^W3A6J<1L$reS>b}BUn=-(lg}2M>|-%EiU+Y%AItM zwJL}lup9q4&ENY`Y|A;^(QSvk-b{@$?2``1UeP-f5-&tn4w!c;9?OZ^rv2FI<~(q% zVUd-dh8oa;#m@Xm&|#!}*NVIIX>4aw-3Waky<{a58tbTUXKZM>kdCUKv;b`!Sii;e z?ji3E{y$R3FL3a+3|_Eq*DWZfxWfuF$v{Y1xIJ?c*M87wGdzwfN-erCp_7F>MCwu( z$bVhF47KAlY`yfR>Ev)Ab^NRx-^a?*&E0!STUqR-ZV9VTf?jcSuDs7yRu#hUW{iSc zn3{QA)8kWU(dqY0C5!Yg2RftCn{6=HGeJ;D;C{gi`D6~Q8x}{TkJn+oJ33VN);agm z;<`U#p6^qv*9t4SB9kR1JQ0!aV0z>B`S2GT2FbWyzIr+;YjH8ry^6Zim8g7eCttS*IFrDxP*}$!ELgGhb-VJ@tnPB1_G7 zNO_btXvlS6ns?LM-zFnK{25NF`N9OK3J2^T^{v60s54Sx`$+q_>u$_gRW_&Rspnc_ zLW_gNw&C*m(@pnD@XKbNH7<4)fG-Yew*PGBzY0CkR9CRGrTo*z`HvugprFb4R(v+t z?Ha&83NI1dvcX~i=y72tCPB>3CXWlK7^a8T{mV{aUun0EidzhPyqQ#=yR^<*W{snk zgXRY9J2xc~$B%cktBeYJTY`B9yoBWf-(*Sq_<328S*NSk%N_h|+ao;Ec|Mv;s{v|p zS*9IUZnP>^;kZbW;iRf3KunTM5VfVG1`e_A3kyrsLxFhXA&`G$+XHT|y+LuFuaj5i zS4F;iMf8i$@aPKg=oZKhgk$oO)o3J+cDb8PYopQSN8gK#8w{j|)=Y|0zt zD4bu`GdZ2f_&LIBo5;<<%mvSiRpx#i!V7)NZ8~yhYw?#0$R>(fOvB@jbiuhQ^0s^T zU6&fm?K>n^ggZOsma5B&YgebkaoXpm5_TICilUoOUhbOwdBU;$o-r9>ry9Lb?EXJ~ zDDCHuN{H4_GQQJmAQzd`M#Y&npZtOAiTHu*fG=ndWT<2QonVvPuz9o8cMykut~&UJ z&p*Cl#xti)Dy*t#>^Q#qjvqMcdV~!#cZo1*$iYia8uD>HnCv}vyQn$27ge@@HqLB( zwZa&tTG4Hy5$7zCu`k;4S?*PfX<55p_FChJH{?znI&Dm-))vUWi;hm3E{=)L{;GQy zE;vMM7TKl*BEdk~R4Anh9FYV$v@{&IV}ke_d4%*~z3zz5fG=L4``_Ms=RXqOuh5e? zWkhYdFY0dT|D0ROdoR30cP7X-`sP-o>EOeaCv4njxq)V|viroPH=`K(r_U*}q5rQMLPm6pErjjaRR{y~L zqE^oorXigvs9`+%IBUnljL*>2RmF3 zXy(*kfP$nS0GQ%^#KT=>(FBVtj+pU85^*Gveuvna-<1|*q)Ta_tU=>BU1%Rg8EOof z*gMa|*W0SP4-|`k-4L&OQ2&oF+fK(^^&&5-{dt}uKNpj1i~Lu=z!tNIM%mkrb02`mz&VK_o{{CgzB&q z?_eJh$sf4m>_~@&+~|^7hqE)(EjfbyvO9PT`P7s0-@op+Pmo-wq#Euc7Ipe|F!|P& zhY#vQVRyB5{2f4gits=%61RP_=Kdi~RCCY6|7+KcgTQ$Jy6j&?pEzXRJ_yw0gnlqe zT1fXB12GJPSxs9Qj%`k#7=?$l{TFiVJh8D1!5WLSw$j;c?1h(9x@S*ARMRks2~N@9 z7vh2my!k)13U9%?3E=Bzuo9?Y_7rKi?0MHkD7Tym-9!HPme4e)-?xsWYOW8Z@*ro* z_WoS)*NCwXDe2vWTP20j{T*?BV z^qAL~UyOd1h|#Y)$>>k{$>`79!I>O6gh>$o>{sIO1NZZY8)ON2Qi`ViS1B4}2rB;5 zzyZf~amR$GYateFb~h$aC%m5*BknpEr$y~MW)x_rM$drN5Ivwz{7M0rJ#_*K1xrao zYJSi`eY6$QhCRYiVlVQK|JwcgCDPC`6C7d>?GFBR3r_CIQ$KL;|GCw=cfcash2G_h z!BKHan3^w*MJ^@IsC?{eTA7#eH9y5c859F;E)&;kyxfW9u^>P_^W%cfC*TqOG)L>4F(C% zBBIOnLJT%^Qa=rKq8&DzGu?S1Y0?iTtb$s61=mhZT+SuE<7Ur~X}Cffe)kvp@1G4{ z)B=pGAk*28wUI{_ZTg3#iiJdwCH>EFh?R-arIulSp5Gjn)LoZ1Jala8RSTR*PHu`r6OD)IEkb8@BagYDp%1pWJsclX$rPsn2hQ_^Y|7 zk7?XpG+)GVd)73H541c^t@?+8T;2OK)`{0${-62xA0W7 zVp!wc=n3&YUw9W+{z9gDIaN&H!C6J+YBL|)J7bA=4ROkSdE6;?mHU_DN8fur-u}}2 z(3%v(ZKk>c4Vif1S)^DK>8|vjihRp~eV?{55hs*^hBV^ujkE<09EqZusSf_z(OZw! z#U~#ySY3VUnZ+sVw5wYKOs8zToryb@ro3yK|9RLeR>IKSqbPR55!RK+#y|R{5pqDj zjcxxq(n|m&d_d;x?PyVFst*#l9wpE+)9^`7?xb=p$u#?AwkEOVSlr2XmsyTO>o?${ znyV=;(z7MfzF5_Vy5jh0#dMAZyH%n~;i5NL3AHT#qy2cE@U}vemomxna+SxapzUq< z6K3}9xVrt&j9z0}3f&oxs`U(pa`?Oe^fZemhpH_!R4Bz3*K4znEqF>@9@XCRMKz|x z^wft>*6K4Q4KGn9M66U-0<aI|X(^9>?J>`m<_qLS|9 zTp+IkeP;un=`5W0+W7}gOiNS~Su6lj+`WV+u#}f&Q#xQlT_$q6iI=D&dq$~(sX4S7 z?N&ZdmO~vlbKiIE9u6a1+kbPrdJ=EBJg~>-NLhyklC__*|L8G-9-@rDYCFC3TvMLgtBjB)4$r>+mxMLcN z%;*u!9fo=pvqo5sjC?y|Od!CfxQfXmwdPF-XKo8rIS3^+6U+T-uqk$=!O?kQC?End zTTp;gOtj&zB6C;bzYalaK%a{zo@q>|Bn*DxLz7vMaHQTv#Y+~AFR9?*GvjO#>; zimH90qAK!>*Eh&Cl&0)oyHPiwm(G6z|0m%=V%P+HUM7HL{7w(PJjD6tCpEbj z8Bh|Euc1a4{-x%!9eTTz`mcdlpackh&YT_y2xLxB2rha#?F#iPN8Y5x_MJJm=Y!lO z`+!b)saOfQHl&nov>YH4omx6))mQrL<*j!0Imk?$NH!kY?hmf^o=XbSX5=C$QtugN z#4Y>yN|)}m63LMk!Y*G%?GMY3cGGZaE*#CVvQ=lrfw zou$tA_kDfN_w&!`yv7*wJkNb!*L7dldzm$8uue_1%_?5hwSA-J1HE&i(av{AjL!}y zT#3}7^o3J_XS&>$bF0q}8T^?gc#vX{44Icxr5EkJqxon$-;Gr{`DN;y55yxDmjDgY zLXXL0uR$G?)`Wf%9Cnu(?rEUje`6W;7kEL?DQL>PYef4SXw*f_!9G|iz>U1^a29)E zrOOyk^&dk-(>~Td8pwL-;woYv;w*eXw{)}Y{kg97a>_0L*yETMuU#kr58`?&BZzzP zOV`vEEyVIRKfsumV=stVq#)!ZLBIjzygHw`(PwMLZ~daC)nO!(bjv#Em@s3zyr9AO zc=`%jd|{ttN+P}{BACiBqy%<}7|461(zPZkWe>mVtCC9j{76N(?fFZQ&Ry>{R_XI- z44+HgQ8?-gTtZzKY271$N`oc4P|IPEJh#7P>h6Kj_KlgZSdsdVuUSM&WPtqS*t95v zEv9bRgBxcgUV z?&V)EN`7JSEk>KOxQ~8gZ;3T67dy`)S*r|xiB*m*v7 zE)C@CD#?s}s!oJf!5Ra(9EMc{J#ymQ7tixqM~+ms9lle!KioMo$j<-nm|(aAoNstx zRS)^O5p|I68-!6WtA)g|Pie@25N~Xph_6)pdw@10c3&k=XCr;&eM&ysGCaNnRDdQM zn?d_sPM;g&=1|v4uE6HJcl)@OW?n}Nbzr9jCnbE9T^e@ZL`m^g#-PNhdCwI?!0r=D zB2uY5XFpoi9TDgm1Wc>y_Nv2g0&lBUTCB~9THY}rq8Hd5Gd~h9hJp;$aX2}(aNxh0 z`EZD8cxlItAodPoc;rL-eTd~J&H1=_?|$(P|6ObM|K{ucpCltz-j6dK*tp<+3ALIk zg+XVck@n7anMco7MisYm8GXHv>7M-T7}_bDMM}HA>|A_6+OK+(?52z@m=u*of(TIv z7*V-{Jaz_dVoLcr07XGuA0|l32|TFiGyx)ARho5!o8WDf*4i&8i{7E7@7ve7{GjTv zW3HD`YMh0R`81MF4u`wGQLg=Wn3%)F8IegB(iQT*!N-VF7!|1MZ4dF!{R>90?#c|1^` z{^{BqfkBy!vPQjQG{0VpZ?JvlKVn;o5t#1YrgwX=&5&=H`?*Wu%J%Au^{8DXWQE_O z)y=ST?_AbI+W$V;(!`+6_|Yr*%u~XZPbwGmfn3&SR~}-UtUyN1eN_k({4jRxG3SFM zy%0pj4bj}RGK#keb2)T^$EA17d}1LLP|>k7a+a-dny$i1+fy}{WV81pv~YUo=PtvNSjl@aTNI*-w(gI*;s0cgz&YgsN~;LV0fbJq*k&Bn7S1+C zO=a7u+o@=%X~O3(eLIQ+XP+?QSx{7p?Kf12#sOQ_5R*t_8Nxc-LW|%mhQP|Rp9Yw-5{}+DWrL@P@hd=Z%+rp0{2nR$`fku6tXk zpZ40t2Fcg04iHa+f+_NyU2qYyVvQZ#s|@ZhC}Tp1Ot15~C(#j^|FD&i_VGvXJ0{P4PdmweO*y`aqtB;3R}ACQXE7=*qt zixNQRT!yj;E#g9v;~(a|nL!xlXKPw<^iUD{hV^vCkOz%JtM?f(#v2c(us88vSMl#` zN{+nGAM02kJ2(leD9~&gmCv(#5peJNp+6VbDb5%fwr8YO$*tw4YW5o_IJgxrukRMIfsS~}iXS!pvsB%O^B`Q86dCihB`4k_0qN8csho^N_T_V=R zu|k2C6yT|Hix3ad4|UEIc79 zWOQ%eSiMQCs$Q^>$Y`VHQn_LyBJdSnA=v6?#jG>jtSo4g(IfCyzRBXS56x8QCP}{4pusP7c}) zJNfgrz}d@;ZWQypWD?IAEt!kMvg(E`*vn`3(8L3E<+0??gk%kL=oFs;b8G0~L;*a5$(CbizpE(CtIQcRmR{pWy*$ zjGfQg%SbsR;L_1kaiMe}L%i~+`^I-F*8=A$E4Lo^U#omu=CLwPdp&QzAE4515KrT$ z6ns@7I^KT*Fl?kzS)HA8;U%JXWX_YOK8;JIH2 zmnGuw=kN}gtjwa){Ja7*mu`O|cB{qq#?+-Tw`Snq)Q4b?XxvcPK!wLb4jC-+u({o2 zL~MO3bN8H4JE^Mk#*4U^v=^Hnzq%5A7AK@j8HO?G6Yi~TIZH8Bbl1YrNVi(K*@W?C zKTVDZ2t?K)^Gmh~hL-R#zHMb-xpr9!7P0Hpx9F*a>?tqu+i0UeFmvdbvor>&`($NI zBSv)bdtXd1qfrDno8Y-$)$$6s5dOAee{NBMi&X5n%qn^Hxrx^=J(tuPyw#?@k>H0g z4s=C8jj)Jg$M6kf)K0HdiYA|nrj%P_Ec2yWTc4?VjKqv~bD=3d(hcO-g+>KQ845BJ zQ}f=5wssF&(pvo8D58hj(2K`neb$;5l!WN|wyZyMDnMdZ+om$zvRTySzu*2u{16<~ zo5ztwSRFygdmE+G_~B_!a^U&UJ88E+lw_M~-8EGRubFlx-Rsa;vMI5@bJaWN5^cJ& zgqy0exxcYxv3*4E%Ep}*-NI6qfQ#SaR{Nm z^RO1AaEy-;fN!}CR?rblz*`bEV)Q-Ny9r0JnFCgf3me@mZ#gNvPnXXJXB=&%!i^ey zz5Jb2o4R2VTdf;l_BX%hB76b{h9)1x3oPb7f(6Q$})vs+w7T ziAR#dS+TpDhs;HuD?Y>d&LWt4VnwjeW2mFnr4W!ZejuGiD1+J997~u0tnVgF4L?B! z-U7yH%b_hZo@n3&EMBX!7yG_cG1e|u6NsgxY6bD~ z#ick8(r(nJ$3%l(u6&fVHQ#uBzja|@xMa+VtI8{**PT2gXC6hmWXo#greBpni|NO& z|AE`2TZg?NHS~eBaT%t{>>CQ8lZ8MhO;&xbsbkF9J}DcR_Fk8D=p6)Yb# z6saBiq&Kqo)?Lpyu9d9As0B7>4x@*TuORvRYBZEC^KjV9s2Z-jx~snIQR^F9l_;O+ znVq2;kCcC8ryTylDxk?zL8d$&0hw}XHwsrJHsYT^P^*vZ{l0IAIi^>s_DF~)c8O6@ z*%o`}AxgF=$ScZgP+Jk`VN(jFm8bf4k3;Gzk_N1o7_#Z>quMtpFSNOz6}No zSn5Y@xOQUp6f_Z21l?tUYFPlIJyLu7!Ob0 zge)lwf3Ei}j$6TvghL%Nn`ldH?JK9wE-|HHb*a6UEH{=-9O(X3Ue$MKfo}5tVH)8L)!|HNYF>|GxN}1ez~zvSN=mY}}=4DgF0LPj@+g#=Xrt9+8t6KsOV%6EHv3rL_Z7w?<=#fx-1Ap@6A2@Q*8+rlF1e=;d{`k4Q)numuRzlq!DLdpibeJ_mMgZR8%X;Ek=4<=4v^mau+feW4< z-)RIm&aog7Ry70i)HQMo+rrFA!9axm@Ep zl`=~(!;Y`A`&223n`?=w%hUU1`YNUcbf^5rD6&v)eKSYX8HUweLSyT1JsIJcBp)4M zn79-Jq3Y@@Wuu(6jsoBOOo7!Tgle7u84%jbE&{dxBI56KFbow`5rljx0&Py)j(Rlyl`tS)T}OIo=p+YLTfHrx9+jz!CIY z%8Q~KojQ#7%kPP-+2<84KY3L$zuJS6VG0fCZsD1xmr6`7*BGk}xPV(h)l-+>^{_9ram$vLuH)=r z-~)Y^4OnR~##3$vj}4mao}H?l0IoG#vz1CeNV=~)BeQ62eOwaL5}P9r6MDr8l8E>2 zX3lXMyB05W(Db3{e1Highku-x^#B!fU#RnPh97ZN)^kT$W!4}zI|QK*c<)qv^bW+T zlUwM^@)j7TYE8|D+cU|{;NaQIJZh>EmIHS6p~ITNyoGI>00Hx>Ydin^~U+n0=l!b4ZNh&+yiz_M&9pU zEYLePK*~FI?AZB4fq9q7d6X@{A@ z>qxxjLiIW=6jtyrn>QIc=dBzleg5P#nh6f|IT7a`k?RWZrmz*UX1V#?3~%W)w53dM z8y04tM2a`qG0wLzDp^>e_~xsN-|bBBV&nU9OC(ZY2=)_S`t#raxgYRhU;aN-{Vq!!Smxsc2LcjhPU zPpgsAcIaXFde3194vVw59pY%AG4m^@RN5TJYgKcq=jgu>6`g#pD5)R9rNh(Qf>i_L zD$)t^$7LfT8i)J#Z|uuH66-#iLa#$t;KRnc{K;8Qq7Hi4R>qz42xMv`?? z^4{j-`tW0pL#EKgUd=4AJrmnM>&T|vO#DBIj{7LHb+BflIMpWf;|0j-T2=8SrOU!+ zXJ9R7@|UD%UWl+evF@9^E#Q{(Je4Om!9|z&wnCEvW?&XDf)q1`W$wYvLi(4(=qrPW zDfto8+LR|vp2B@B#6Gl$H#3YL_O~lUiT3P@NLq+zT8!I#w=5w~u5~oVD)hb^jX6v~ zGt$2V%9lH*NvxlmWH6^_nD`a7UrxP-Z|!1rqa(n3u-?mvD8ExY&u9Jq683re*Edcw zudR1vNnU;4b~yy>HsqLW07}*yZ|5C(5YB!aV$o4-+k{<($4uW2M}Pwha>D$7 z@R<+NXUJ>v%CN?{>n7W5>s%FZ_h$`0B!w_~Dt628V@dw>kV@t`Z|Wdv-*VoTJSV z6Je#J&deSri-9`!v4|nMA2|U+oox9!ClW0rknZ{Z&<$G!> z>Vi5~P#Z`)m@B9c23i~z-;H{4tf*i|@?2V0s)LMNBOh1w|9wvMpL7OR;SV1UD^n@G z!N;iulxHAfj~86iudnDt9Q7Tg$|$qH##T4bH%=@xT*WVWQV3a_u!`Dxn8cZ^_ygyA z^9OgrbaGwS6{vSs*^#C;&G!mG77}vu?jiVLY32b5C!25`jzxyj;}@GBihsl51pPKB zSAr*x8*!3z2gC9K zYc=`yIZLJ}Z4{Vzq*3hi4Fh+ZG;B^lYO4ubn6p0C%P#p8*3?@)2NFtr%U&1;;_p*S z>xR4GWu9ij0?p6eLoM%Wt=as zTeQVh!?F&^9cLw%%*B zZjYB6C6SnwL!JBGe&4ZI&>!u4OJI*t0d?{`UX087+a)Fc^T%cD zq6?eOOv=2OR;nHlSo7jZX7YgF$+pd~@DolGQ|vQ<-Q;^5LW&jgcQvC;lrL;-E?nFS z$4AHqTS!nmGmrV-c|VLRcjulSr=$YFOuz_nFujr)a{$ozace5h)+9XhvE%=Q-Ie+` zNht2(`O3R$)|~|acrHvBGH1r8WU4yO*lOv&XGY&>;=C2NWESoapx^ZbyAC+^%rtJ) zn&;f^UK3U0vP`KWiMGGhP|qeGR15|KuhFTOPBpn{)QDg2A%1J3RtGe>sa9xT@4m8R^d^Q~Ei{|M7uRzMq46CI3ihFCX zV<_xud(*Y@9`fmf+jBTxD}}5~oVj1+tX@Nmyu5CeogEv=Ju`7mzaI|POG%xMdDkD@ zIXF8z=qrVjy)Wt#;NT$Dau!|2Ol`{v<9$EI=Y1QLt{hmrP$zbtU60FMv2FV%FIfcb zE=-)s8=<0?|E0$F;rnj4^f$kGhrTJ?sEZju6uU~#{Szf-@}bb0YbxF;=}+_4vr#b$&Ze= zg*~7`5=WJ)$u@#Rhv==x@0s;QP@>9Q$Dg z^!cmHr2=Aaf((A+iV%f)KWYs*$UutI!I@U>WnYuPC!Q&4*$y?)d27 zMkmeT-R?!XH>xxT6l~~Gme!B6`h@rdETTNRusIcMlD7^6d{FBoJXR~Kifqb_9UXOf zY(IJ{F~EJjKsYV_so=J~rpHN5ibF4u9%)~ZX^im?Z@*MbT^X!^e%chR3SYCMZ-Z~n ztDCqCLnkGDGyXu&@RF9XhRiom@F+UEwo-2+m2FZq(9*)E&mQ<3 zF%kK^ztwPGg^aCW=6u?*j5$=*d+aeWOG`a^w;-q3 zqW|cx?nf{oVL+v_ubW!w96`=@oT#V^h&%CRYOF0Lth_z9a^3T)d6^fw*55yiH)-9F zHVMAKjGZIx*ZK_jASwt-K`p7!GTw03YtLO*ut-SdIU>OGxHtEQMZ#_ZV<$|RE~j#q zn6Z({?O`qk>S}AjLeP4ixpQqEy zVN%_v)hnxTK8B37taaRbM0-4*gr;^+1SU1-eAE~ma$mH8oAStrrE=#&hlw;HrtF1) z>$N_uVc?XHv!|g{l7w>B!ht2ALAFISL{8&X`=K4LqVZ-fR+DTo1oY0ALBUDh1?hC~ zASu_K17qr{*AqYQ{U)~9Lqcv%xr$uE5BX(Qwv{lm9g1RIw$^~2RUtFN(q~cKq4?q9 zqhO(&Un@0oJk+Ci+5*FBNO~D{A<~^6gsIwAn6iZcIX18+5&wip`+__jah8LIvws*| zNmSZo2e;Hf)kCBwXxNzE6^zW+THNHl{&7{R>a&V1s)er3)&d&7Uu_H}q9o2G>AdKf zRjQSu5Qj@xnQ(FM>_Dr{Vurh-&+6)1^qX?@sI2ZIm%CS9901$hcs00B4&Acyissob zdfr0kce5CGG!j?q8V;pcI`@VFj$_WfgsE9#^xXqBxEUqi0MmF(ALdyHQ?JuFmATLT0b*#dRv?Hy_$4Gxng5KOvd! zr{6*!se;c0z%6H<7gLe$l-yZ)?n=i+&N6Y+2$Dj zxc2TE!DS^#HHl$T*Dgq#xZ*~UL9@&D9O^Hcd3T~EJ8YlnjVk9efkrY4?n1-4n{>>K z`uViDJ3!|SQ~#&2vGhvrjZ(Giu&fiHeoa0H!r$r%bLt*AjEi7%+}K7OS?(SEi#?9c zJ#u+d%M&smShlwn9X|4LBv!ZfX;sNN;Y%HU%AC9p+;%AzD$Oa_ZhMKG2tn@=swCianO%Q-}7jk$QmZyvwPK_ zQ4)xY07~k*7R=xt&{&ap#3zr+9K^FjVU>JK`Yr@v3|VH1+W>awAOr!P^o6jKtmH8X za@8Pt(wq0X5@vLv*Jt-izL*tf`RaDxxW#|DJzWlLMEe=wG~~)ELod@*rE3gC80Hpn ztEsj#xi|XE-_tePI})R{S1m6u`nq>PGcLSaYD$|0MZUk2?*|f|YKIS!(_@nS?`OaB zCemd!FxGKi`X3(7*!%sS2kbqYc>RL~*vnmn14k0WdkQt(2Hg>zwEn68h3;$%yN=}# zbGvcwb>9TIx9|1crbI{yT{+?$GG*w_7_$qz-9xGW&H?<{1YUKm@R-Zpec-Y3wyO>1 zlApT4!Fhx}E2gJQ*rV8t!D%~iEAB*vgV5fj`z9*wFC%-`*~s%><0B~{6;TG_$h%$5 zRK}uqjsuGYo-?lFrl?X^CBC(1Uopy;BxljT)U4qqBQeDEE1 zz-E4=w7+LdZ{M&sNVP3zT7yTlJM^SJXHb8W0rDf-0lJww&l4$s)r`zDc4opfDVR}= zg`9#V?H3E}{QPHd)jX)JcKMJa98PYg%R%pSz!B3zlh~Ht!f^hyB}RZwmG1p7u3uQ5 z_z$cj9m{GI$o4rQ-CxZow+menx**2Q1s^v&HaD2(PH@S zoNzmf_es@aJ41{wL81Qt)BA){DFxbvY>aS`Y5bQ13XE>Q(Qp2Q{)1@3LOZ~YIJ4$+ z)AYBnt-M#a7%cIK*qmFxS~LBWiTbgem|nxJ`TmZ*RNWPO)!*YRI>gXVkjl+qCH&nY ztnq&^^bngOuyI(moFq5X%~{euL4hgT7t~VDIAkn+c#F(~E$2rc&HsF!zgD8=5v6V} zw+ps_Eb`(#(-kYpLAa7`8|C28zhFChA8NWjm2I3CjJK{ya_pjZFf!h)0tl=c?+@Wbd*+faF*e_Jo;kYxGqtPf#q( z%**rN;drW9)Jk7{J?C{)PKtTH0$+lCTo*@V%k!?Rbx{}Drl>1WF`hl*tPbXEaZLSa zSs^OE*S_cN!DJ82?SQhsMWmj^mxyUDEtL`R)2#`(v`~2dqF*gRq)m`Tsr_+wR8$n;;}-B@`?L(Qj{BhAgqqNp@T3$x@rzy*!jZ{*Ji3SYlgQm?)TBQ zQ@e-PZ^=pc+S%XH)?uP>C;h|IqggJO6CA#+fK&On1#2!WA#V>N>lx}oCrEolROMp? z^7f|iyOB^|{=-V-qarptm{D*Zz4@fCvjGB6BK+!a%n@P${+iWXppGyds*wdxoDx|0 zd4qa^w`E5C%h zO@gvS=A5Bc$M-%j0q~DMjPxd_c+ST^Z)g|qhKf#;eh}dNAdJ<09A)M#fFhJaP0{HM zoq_xI_aV~pOk#$$hb}SO4{%{&z#(aYw{`Pafu_S7$C0RE$B)Uu1~1)J3o3}O-Dj8S zesw_aPzH;!Ifo!)=>84!v~lF~x@OlSkAv1E=?HQoO%OeC(26642)|}V1QxBG{o&f3 z;)EK?PAp`cG&!>qX^|w3iIARuYT@{pVBZiu9QOl*JRCqbMOT4M?od!q1isB z$Fc%n2wrRH0m9o7=a@iGOiWhPjHjzPGn9l*1#!nQH!e@+sOAartJ)}~d*{E_8D&&^ zs^4MLVRc66K6G2g>FfQ?p2^KwxlKh1(f4w1pW@q(S?%m*TYMJh=!(-Wtc!ry#8=1h zv;^3!Z|A!|Z;v}`6BgWFPXg9e8YvMgw4Dq`=Y|kl8=&Wev@phu)CMGL8QiYm5J+(f||LXTFIj|0JbrkDQnHz#J#D%C9TV03Xo9?x=tUyG1}45VUoIe^o{;&Dy2^bimoiu&`X-?g^J2fN%T04t9GE_vvH_pnva3R=Rmu+d)}4%KS_<;=2d z9s4K!6MIMpNfokH&ng#WZPV0vcs^Qt@BSEo|1X%WE9N;p(h+%vEI}CNrr_dw6|9gU zV!gLXM@aF5ll-vw?jtXm9K%0w1s2#HRXhIfxvO4;$v?51w{{^;CffA46&Fy|_t=n> zL7d(hn++(yH#i?@$kS!$#cpRP9&$~B0(_U*9q^TZ*W2JGdAMOpEI~xUE=3~AU*lOA zvXj85B4%wzdLvPY88agRua3&YulJ%}J$0=Ute9*xjM-ID6j4E)Tk(KoX^=*jK6E~9 zX2SUyI&Z2PY9!p{=N4yqS&T^nHH5@ogS-Pg@^^S9&Q}Un*iL;CJ)%{)M={8ICR^il zK0!!d_i?}aX?IT~sMpb;&8wxTFd#!tXJ^_D>kv(qi*1kB&*gk2F06|Zo;ii*lZ+yuG_ceD2_E_5brNx?(`0|I9YR09=Z^D5;O znFg00oc4T>;$iKxAxH!`}1vXPcD46xf*@x6<=gZ_}cd?p6x9l$Z*V22S%03 zC*XFZ1GnS!%;t~d#vjf!TT9HWJax*f%3bKv-IKQIIQJ$_08+M>+B;E#V4vZF9}Ie8 z@d)h+@syA&)3tmH*280HQ16o4yJ!}bUErUn9SY*@5{!iO9_s8bwZ~M(!{%1|7@HQZ zIaDEZU-{0-XvNlL8ta;MY?h49$N5^xmpEl@uR642NqAy-U@7!t0-L!RL;&R90YJVh z50DQ9%&$vy8uyO}i-n)K|7-Pv1GXFy!D+?~k@ff~gHmaFRj=jh*hS6s?FVv7pT&CY zin@Q}M0ll*=@wE$0J4_IFm{HKt8^*Bw^<6g%5i7F+?4V4M%?Zs>7!rtY~DQK`zWe( zdwH0J>IYjGAD+gI60VYQ26MbEn^bct!JUE)`g;&toZr63)bgg-`82(95l*u;peMg#Ks_g+Nhdw_8`N2{Gqb5*` zYr3mptX+BFcy3l!c44%HDlP1wlA-A7$04(DxVg>TJ4Abcr!V#;dJ|C_rZ#;+E*+VJ zk}b2|kDI8OJ&UEkWxb`FMVIOC-dW<59JqH4&wqQ@mm;fY?CsurS~QJcxXoX0#x%%u zaddTFRx4Crdr=vPNYPKOC5s(9yXi$n1xpF4x_lHOyS2e>p4=%QD7w%SR}j1NQ@ zhXlc1h7{Swut4CR&oU79)@95}Vo=Ktn+9a$&Oh))Ir#kGj^WOO&A3+?Wb`XZVfZQ#kkE=6>VljNh~=}J<|3V)AF4D*XXnnlTE8|c`ojGH83s-ao&Wp#Lbj8h zidU%xQfE+YNV7TWXcJJNo?ESHIN2EYZF>vl_Lz<2Z?>i3OlW}6?KNoUuHr&<(*I}t7307{E?Wwf%c$mGnr48bfK$ZWL-Yt?>?KjGM6H|B8oHNE^S%7U zF3GGUlkqLypp(w%cq2|;wk1b1;jq$IecHxh(p?gxtt+>N$8VXAq^qe=GImp_Ks(?V zqaVB9@Ms5GRMA6+(es;BrcTAXTogUW&A9NPZm!P!oXeNr&eob#BA$f9`<1&$dD5Rb z1~H@ZO%oei+v%od_#jvw`UsJn8>fPjXoq9 z|KV=5k=6^}X6ke%RcpOTM}kY#85I>%R_PBs5VL~ZqWt%?aJy6Ci5d}I_7&$GMZ*+xOIU}NN15+kBdCb%62F^z9cpr0WV|RB{nHFOW7sxLQ{=m)VK*{C5egs=f;yLux zU8XKBl>{M*5w)P&Ng z+FWl0mF#)uM40a(PZtm3Y)U&KXg4&*-P`kdw*X}dRq(&0R)%xiO_m|| zmbWTfi?f%h264#4%cSW%Rp?90x_mQxMvaO{g@b&}vNdM=WBitY7|nL&K9IP>Ot$pk zLFlLji>lp7sJu5q%7Ev$BjO5i9=4jZor%RWx0JWJhd7?+Dz#a95zPS}8qpwR2?yN6pbIxvfT^D86@{z4DV!AxXPlNnCo#f7eV9 zX3*-UL(sS1$|L^q^fa%6KS=5i#wVGx7>-4ifSm`yv_Eac^fRHPY5da%I}N3|fOiQ2{@RRtJq33Xm3NVsfhi$mIK*eM2tik zCT>zj(vMC^9x@V;yHC{}gkSn6Uj=l-9Df+N&;0qXuNT&UjCzx^3|nfDDZ4=G=HHR6 zntT(%U+hrnm!XA%o`BMG^v8=C|_SzWpsdq>LA4k=Ybt*bocZa*08vK~zz znO~PcK9v*rF@N%G(dfJAH8uWg-{6q-zjVZ?akXmbGIC9t!;96V8Urb1(U4w#uV~Re z%x7@QJQ4pIk1FR8Y2j|myd3mw6}hZ2%BSVQ`q#f9O4u8!6Lfbg;k+XF{0=q1O1SaK zSo&tK!S$INCT{m$$v<(Bu<9s4<_U*6C!q78=T0A6)*!S^t8+LgR4u3PumS0^;9E+ zvF3W>ExC6eXgh~(`gHjlfLmSDP2kS%{L@mx{FqzM(^LyFMptz+VNodob*8U~5y;E4 zQhe{IrL&amd`HGT^2sYoPE^4xTz6DLAPDU!^W2uNNO+KFtLkQbI|zrg13dIExDM!P%Gd7)%e0*ip+Sf4F^{$%)c$D9C-`?-?a=Ke{ zb}d^N#r=WHhdeS+O{Xf=aD=scKI<~;0+Eq4pf*sFO8D9K9-x2vhGt1@6{H6SJ@U9& znJ`yl!yD|{(sg^owzW+WRXU7BsY<&aw?}$E?~$M7M|6Eisa8XM$j^yW!X@ANI@9DA zWK7=U&QJ17da5ESO`TH|b$I{`y~LDo}-^RO!u z9GbNl2Y@bOX*Xrc@{ald;=Qh3dsPYz7A5X;fNl;RWCn%Hakt;;j z+5z&^28SUyCoy)A!pQItJZ#}1^bqlfTRoCYavHlstS^49k?mF1NE`Oc=$7F3-|i_j zW!x>uS!CP;v(2ysK{P(yqoQIWR!+QWSZfX~U)%S5RQn6r*bNM&uS;B_1%V|9k7-BA z!<0k;-6~{R7sI?KqCKdlWSCnWk?;rZn@}EQFnLT1z05v|l&vXU?b|@eQ42O$<6%*C z81{?9o)5_vCLZ+fe$d3lA@;gB5SZ14uGcPfa+;Ka z{2-;=W`5(5SFmaFiX4no1t4r*fAJm}n*SK-&!v1}QN@uHApf2Z#RAfkOQ|A>qeRaV^{tOGE5vV6iB_C01BxP(Rq$4r*^y&Q`C1Q zW4T0$-YE-lM$hyvkV75lt78OWf9!(eyj@`7qVgikQNhXVgN}mjy^Kyj`C|vIQ;8`! z?+%wiQ>{_MVOzEps>a&PU|psYrTg0gvu9D=RG%29&d!&wOgOIg`6bx@2#G)+!{uKp z9N$z(Tj0+DAm*?iPEE?pd90UcA8n*<3oD4JR!x|9@Th&9Q?6{tHfOKwx-Aa&^NXEE zTU%nUMFr{$clsF|+soH`D*0ohw!SYlK(B${%~dw5Tk?>Z$cM}--&d&|VZ)xr%;dBl zvXEc5@S72Y4caOEkjTxL>@yx)u##N3E8U=};<(zS?l8xgdyUwAo46P`MQ!8X0-R2& zXuoH|?FW`!TUo5_{co$kw9@vLo|(2vaf(-F)tk-WVOA~P5`aP(7X%ba(Oe2wKDJaI zg~UJ82VKs1PsazB%APKr&z#>h5~!v8OylD5#R=xot*`5gR}54*E;o|I^*p4gGu1ev zJv8lM6WXvb%YlIe_Z%&+E!}I$zN>A2@*fR>{#8UzNg?2PIu1>9hih~iP&T) z=YMA#Zhge2jnx+=C~okZGtf|03`%+6EziifXP@%raI%F)O4Z2i-j#U)4~}&nEX=aJT=mi|JW$_8f8UHQ@XJ)a{&YP2H57_Ya2^AjH*0kjM1V9|k-) zkfu$7GvzR z^LR$bna0p+YnbiOu@d*dyMn>BAD?u9Rk@CvhONe4O^N%dVIoHkwZEZD$8T1q=C-9j zS3VP&Q+Kp1TIv3nt#Hn|m&^gl@&p!NSNi2;XEwD%NIZxDYcJ|GpH#53fn zId)yBGVF>FP+A`Womp%Tkv2le18bukXO376pnvwj{PUmOj}3;{yn}PN$=w8`%}-7Yl6LyO0X3(Qwlq3YGZNIbfU_S-F-k%s z4rgT+AI#|u-y$@6**9`O9x8sS`o0g2r>@S|(Q&^hk@3hxQ7@skZuVsMLbQXda@PyFGoR79dmgsdj z2LO0m{CLuF%9jyL7SEPO>a`ESx=$u^ObCpA&|$(Z71d$$6+le}8Z+Bheh?U)og}ot z@Hi=n$khF1;l*|Dg`daU%0}o5BSZ zW3S{1*@ERnWKKVMYKxc`V|}B>#Ahn>Jp|y7?uBD!5H`P_Gly2oU9L%9@S)wF6}sXs z=;kzQg{*mN`PuQYhF2U^3J|S88W@lsBB0MfMBV9W!z)bWD-Sotgtb+rDx8zBy&)fP zwsqfS=wGGGTNN|-+a#{ZOn?`eYU5qGCeHm|S76e=(RjQQ;s@p|S%l2R%vC_WgOsQGX8c)6QFvI^ zAz@3YlRk5xSQA6`f7&EhlaA9Y%2q98|MYtvyyC1 zr@PKBh^URf>XLa?a>-dQi*7jT{l0C+fg5_euIBID&}!GRDgYdB^?gqirJg2;43w@$ z(>J77C#4+X2J+iG<@GOJq+g(v-22t_jW?zPmi62c-&ZHA*lL{RY8(TRcf_#}r76J# ze`-|SOz0RBPuB%u3wV#Dn7d-b_jP^$WvW8-Y*p)nNkX5pDwVD!a2*Cnt@)rH#Wwdg zL%GnmqIHE(a#G)Mwxu6B`0>f%bB0R;FK*Vcm>;8~FNMRd&lAHX^npLYGI;7vd#JPn z-s|N3wC=zGHkwX#VzDT&+U+Q8;d>W24C9O%~s)T1#A^J@IjY4$M9SkqiIoiy;%S`@? zGr?&d=cc;Ma_koxNfhKp8cCkiUn7(x4_0Ltm;2dR1!Pa{{dDyO<&y{|H^R0a$KL%U z){!0{j9mbxHRd55d&rXgM6s_=oK!VU^yb|;Zf}=2q!4`~tl-i5KtQApsXO1P)xUd+ z8U_5F5N(dOV1!YBeSa^~oz+Io2un3+V&qpxpo$hl?aXgI9>cX`2qPNX0 zbpl&0H%A&?EstDtHE}AzjvpQUVE4gcsu=PJM6Rx}`Jgaq5BW*N@V7^f;~fe8&C-wx z2Xt$AsBM}EAaOKW#wo?0N5Nf+Gf1oRM;NAfXt4RBp~sm-+MC#v1^KCl`Yu{;zSS+X zyxOMtY9ZgN%$n50?CbW4{GVmwE_~s@f!IIBx4jFx`8Hi4rQ$q}U)nq$;{JEr#=dj> zoKA%<4VI8La~b5F>HfI}9`a8;`?&oJW(J$$pBc*{)3=TY1HZO>x?xR35E)-$f+Uwl z(M=GO_ZiKqy7G}_ZqRoWtFYPKtg`_=$MR2RXvlY)B1#?7W{R0!XYH6mM<6RKZ0Xn`hnJMeR6 ze>%2i-b3q%-KPmd@jpmHU`N2$)0M5rx#L`p0NF#0yCm>gdEDcN_ZH6FFM&IYlMV2G z`8S`DT3Y;$KYd1q|IPcXua<3T-pAFLHW%5ST3lR&JMwyTc;HzmOe+%SPHTYd=PF~H zW04=yqtCe4Q@&FohNmeJO3LhE>?I(tc+4Lbm1fA=4Z|=4$cxiV8XP9@kTR0bRy6+0 zAVKlBw+s&aD%H_PJ>9qiFh(Pxc795fP_3sp3EaE^j~ONNWqVu{&g{9-yYTEL7Gyx~ z9@29%EAJ8XbFL#@)u5ZiZGq*r7bkZL+o3;_8z{15i;0I84rkAEzKM zM_`8XSL$yvI?tZdQM(~$ukM%EAx4}Xz==V20$D4C%)J0*62OJWn`b>rv9~rZS@xDN zu7T8QVFN5mH}3|*rM;w%^dMn4#OH>^=xs>8*Qlih+{~Q*zJlnjSasuD$(KOv$)tRF z>qm@J`%@|Y=?|rNDs|P+ldlIiycT}-{Ft~|CB8cG@As6)rt$#@_CI0TM@EJZ1`~LG zB*L2?quG`?K0n;EnnHHRQYPlL)a;%Qa!?I>r@T|FY_Z1GHerdepyE-UWX+;|}~-*#+6h`_=6ElD(U+^qApPUU_EGaHD# z%C?}?36+0+0OE5r4HauZdR71Sl64Bs_ZXz3U-?@jopwtLOjmm}Zyf}1=!+)OKh`&A z&K^>i^FLPzG3)$y;u+7zhq0Vw=37M^y#ReY9#|O}^K99`KCsM?ZR&k^D<2rMWZ-bm zaU|pCV%beq~=;oFDX}MZEtt0vwFel6}|N4XTdJ^9M&Ycc`R9&PyZLNvm&_4RWu?t~U zU#|!5-Sl}%j!up48g|@AVE*)E`T&PPo_0pvUoHn?niJD}!UHjW&sSGnC4_C+IMavl zJ7H<=zqpkA?~s)Ko5n$M735}xUcJ6*W>!#_wNtqdmg^dEbq_z{o3Bo`V(Ba zNnJG_)rgB9;Y8PU288Q{6|bnp6~Fk|KnXOr8QAWrJ4^i9K9c#76G%r=pMH>PLpW|J zOXhiI*fg?Zw2c>iy#U=q;z!3VuGUC>=Vyq}#t(e5EpwiOz!GdjVnIBpyf0-!Cz04Z z;}5v0coX=&HKFqyzSBfG@SxoJ^sQ)1a}4H$39H0xy4f(qNLSj77TJfZYzQn{nn2;J zUb=s1wSZ~0>&yai*G2KCe%bu$Xm`A3A9txgq#eP1>?<#zTt8 zrHsgdnx_JHdeB2?djWJ8!?}-j?7bCRIHWmq#nWoUFhZ4Zy7X;J{9ev;eEqUFQ1L23emfe@ThZnKROM$fEtFwd^SL z#OTaHAiobJGSr&Edzoxb?n%Tx39EH$&$nTO`OzXPv%!hR%CWIyg_n!RSG5=K>{b=W z|MGMh*-yMdgt;!nxbvHRTUVg)jy}9JkXuU0r^&%(8ZA1K{)RMTH+kImXXCMva97I+CqkSPWscs|&S~KfOMB{cWc&|8%lt%DAv5B0=JNV;dlDqqj$XE&mCfCv z)mGO{og#e?f5vxed1s%wcA;8)> zpx59vARA%I0KDP}D--qxsI8>iYP&^1hz|!6^RY40f}v!g5}OXQD;Ekc=PFfS?(bb# zWu%H|Z-K3o)f=M{@-`p@|BA>GF^FZj;{I@}Y2jk#!D%c%gq(7mV&0IUeJhCHGn~#; zJ~VtJ=vU0U30rKiO9D+mH^DZ^imvAeH3#%4!8!-LvzU^VHA za+BklA{9N}=^%l4sc+k4DzdbTck-!C53n>l>0MI(nBPuI5w7Q&Jg%tW(#}VPZtOM5 zTaK)w2cl>6RK@Q8Krk~BOeU=_Lc;%@mTn7kWeq+SFAgp{`HqF z2mJa(<{bB9>~*fq{kb*&19B2G_#kq=SB+o??nuiNKBPmYb>f2eVal+I$HL+y;pjXo zl~;jZfHBo}c}$x*|2S5SGcsukU}<8B4DCu2jK}rD-Yy#KVQ_H)-!JzzJQ4@@Pr z8R5m9G6}X68*OLq8_5K+f&b>2c>K_av%CLVE9Ol%8J&QP^A(-FHzmG!MD_FpE7FBS zQc_lFY`yNjC_Y(xROi`PfNX~YxwrsPoZ=rTv^?SqgzswC>#Z7JiElPF>j&?D zTBBvJ-S(=R+DGC?8m*vSEZ>8$67Vn9l)0p>sJ(|HPAYKE4ud>q@MA^@-Sb%zJ>Ut$ z-8t8awe=#k#P?Ei!poWPyTrUrW6Oi8&Kwe*47#yFy{^VdkU>z6KnCM2pvvenLHCmC zupMsb0V7H+REiU5(p#Ig>Euk;0xsq=$bD5b!#-4G9T8pH4+V)+*ZV@~hJx!eVQu%_tc&1v`UBhgyX6=h&nmEz&r2UoP$l`)MJbA-{Brm{%6rtKjcx-y`YcTV35} zZsf_n&wJO)>X9kWk-v=2uc!@n>5JIDD+ppHHJ5n``}>$ue`(oo^YK5w$D(%s9&i~cmH^-ECk zsm_ZkX|wrl+GbxGSnA&@STM=%ER{!JLb{(kN*K!<;EVD|q1?LqG;5I01~@jZ=qKb! zD3K|{GHxVbhsxxVs%XO<+P-(5CVp_S;QwU8mndSFAmgL)&aY3>tXe;Z0K@Ter&)G} zwxm9L$+6$$7QN>P7cj5?!QQ;g_9dM)-{3wFWH=+2cH;WaG(%a|>xj6P#`geg zxmS0wIG^+s*PItTBY?yt)cts=dCi0&r^`)$)$EJBl7Kd~(HZ~YGlpP|ej-y3=GfD9 z86jy5d1If`84_b#${L~qgbDk+UL!NI-F=wjm?^6?A�Y~j zg@gl<#zvR&1MC9wa$1kw76_Kz{Qk?4$Ko;3kCXSmjwxYISSZjb*^qL10Q>g{3?iSABeD>|PlADyq~! z))4Bsxx}M?hb4w}2}(MOcLsd;C5dkUmtg~^C>_N{QiyYMi3npy0*7==y%HsPkk^5G z#tX%UQxa-f8;x|3VP$!!|IEH%$8fZ+5x7We&Slw_H8$_MWofj>S>fvrer&r-dhx2b zyDOjSzZj3Qmz*YH;7JeGHh)Xw7tOzAbtBiExZwk>S<673^x1?#5R4FHH5tLfbPxA| zcy7s(t$oTGdJPNKH6}}cK!%fd-$t-q%Z56N7j#j>c-m%L9WP2>yZ!dJDygHWS>a1@D!SOn zZegS+rc8oyo2F8YtQcV2@ye{D+&(sA>U_E>{pv~Qx>Va$9_L;JkH3@?n0`r0A*jPs zlmYTbSkFvUnL;OP|MQl6)ZFWy4|1}H+^g~>9O^G^-n=T;J!(vSiZqyy)Wt9ABa3{) zjy*v7gb16d`Ycn;B)7Q}a4L^T7cya$=B=?aIo8-k#JR)HG+|7w_^64^G}8nAKRp++ zFe(?Fd3$v;k?8~V3KqQTU`b42A^QGw#lyF`AZv-#qcXVOrzHW+>;vCRK@4mBE-`3q zwh?~7QDornx+E?|gw$zPJbWdEAZ$_XB|(!ZB^X>9oF&hQ|w3Sa??L8I~noFPj%Ll$s`5+9?DGuKfQv@`ge zdz%RJ5L3Y(75~j|&~45=BAKmMh>&dSyoNOQ_HF4lhgFa5R=Y{+Tz<>BG^ z^3d6Yt)Rw;F8*@LyOw(=vXKqxCs;Ph-;{9;QpF9m`#7o$@aQi3&b56J9NP(xs_;GH zh(ue?)F@6|@zNCN=&;<7&-o&;qeYFK!E!2hv@ZF@zTTSR*ET!>e}7#W*AGV2+IZ^j z34XnehQDI?ov5QSeay8w-Sltx=QR22Li#DA82ce3*sa5u*-rX>2A3n#n6>&t*>b$| zHizZIPdfIw$p#+Z7Le$9gG>AZ-^EV>y-@?ntcMU1q`l35#k{pD#my{&%@ChG;}WYr z)U6s+=8~Q!Xa|?H?-TJG$58tEJQ{L_K|a>P}IgIvj}h%NnnyCPqxs z7I2!EAAiWOB#yXQ9g}w1kv=k8bvORbKUkY%m{rrN*D|w!lKtzy6K=_{YtGVwUcw*h zjU0S|7}O7!5NR-J2Q0OY#s}8cOlyXdM3&1G^O+LGCz(Db5cNQJ(@|mj_go!hMHt5y zlAUAc6glvga#$Od^}L6)4PlA@DaLiCuD7WLNEigTRnbM!Rl!|W(JBX?mV~btD|WTD zzbw9c;b|?ycZ+t8Ova+(yXkj;f2T+3W~~4(gk%g&%GUhDcPi1BmZXlvd)mc2cC6g$ zb0+nSvfLjc?4J=klAwc)68nDHDu!(pefeMAc?$A8QJYFB17fMuOnY_E;R;=xwzXn5`>etINQ;g#;k-En?W^HI|biX;rwpitn zUc}<VdFZ~kq&7|_C3)$JX zeEdr_+a>JsYCy|lUyAf1*#~KY^-F&o*0T0buTMHsBJxb5mRngQYBhSwj%Bn zpYgTDEo1AzU1Pu*T_2QHcY07_Lsi-OCO5~%U2@eT)q$UM zBfEC3>YeM?gFwJvmN%mj)DhdetDctE$ zpUl2Ss_tfNvabNyl$8*4$^=7E;Sc_%>xo_u3ttaiG__Gxl)Km~5G>+yCnCi@cbO)5 zBr3DE7muCQ^tYygD#l78z(Gh$XqhqoCuw3;W;&Z`U3s1)XR{!lnWXrF=K3#bd%DIr z>=5ZdE*oh6{v+h0D~>^OEiSfKy<}ep1r6>xc@^Jb&ISrlpaw&)Hy#-k=YyL^d>w(v z+=w=F#(=mAyhyF&d0Cb1;l3hAw!l4T4;Q{I_8;)m_j*j)^LqpEw9n_y+DMTT6ff zccG5baM4_M)dY{Dv;w&xY?RvYphMqX&fQfx&!T*d*H-oE^-l#k0C`!sWDy`TL+4NZ z?w@em^8fIWS*8Bo><5SgF_bI;+w|K@?25u}L56+hYBck{qp!>LsmC4d78alC1VpJ- zk3?i6)Q;$JV=xQ7W3S+x-8$^6eWhkX!Nf_cYW4kutP1+fv82_Pns#d+7SPmO8G1}| zxw8cQ=7)k(KYA1+J=ei2Zg};@JCuM^l#Z{TTg}geTGd&|MYmi(eOe}zCwQ5jk97E5 zXPtE)Mp?Mt&c)L^O%7f^QB+tIeLvOlc<*8L_o8QPUt)wDxHtcA*&Ih7{mkar!P*u! z2J5lsk8`dz2NMjQCrzFv?YC;X)Z1_l^%`YjjvcKx-CS%vC>LC$C9?W%yr|{xT9l}N zbT%SOZkaFKdm}%c@Sh?3X0ZAkO4tv8`F|jz^5I~&n*QeH)PVBCoROjcdtf6wUNiR6 zA6&ExKmVtPu^r#-$6owyKQ@d3-t&@$RB~_kXgO1}%l{}lRa?WBI#RRTY5TFO!yS@~ zZM}G)chz5#9Ut}i$X(RVR}nJYY3xh9QlfFkyZDzfYHj$VlPy!X4~P{%FMPU7 zPNh<&G9$wK^vQC*9DgsS4&gn*1;!^5z={Ip2C>RAEDb0tTKCMIG(FL5XJ;RKA7^Jt z)6P%3Hbv0tC9=%+9(?^Wm`h~z=Vt;|M)QwTjt(*8H|j>)U4KmmKh?fhWV$O8=ySei zmvi0v%yZ}cP8@AbpDJGCmXX%oIRZ=Z_oE;Cb9~_L9;qmC{?33jAGO0zWIPqSU8 z_R5!*=0!O6uaJr6*4iNNq;O~uBVvZGCev-8V)=8EOm{C~yr@Xkd_TrA>B%|MfNvbH zzv8w@KIUuJZVBOY@l|g!oi~_!Q^=6RrB<)}kEG zXra%WNNF)&zp9@(k}UJ+u0i|NK<%uxBrf*h-3H4!6a0I296fXhkcJ_@g%k#D_(u6L4f-Dp0tK= zp1`AwV8KJ?$tI(3nR`b%tW%%eVQr@A+{tuWey_UlZCR|(CY9YALk(p;uVgE3;8|`U z(|;`Nr%5-qY`PL~@_;NjZ-(`qb{+fo6Knnt6=@tJyFy2iy7`%V zZ|v&9wq)KshvjeW5%}UO!i6=(B90!DxE>-9vx~=F7rU#I&_OKBKfWi2=2cZCc2J+5 zf|4i9=;>#xb0}vt)(Izoapg zt5HnrI186!`PngCs<~H=rcRY*}8{o_EL8um8DWzDFKg)KDxEq3Q>KGnoT7 zf=XD?pTa>ZrMR)gAsbgWhmB=3t?Y5sVt?ZX_MQO<+}Xeu;FOZc;8pKp$SYtfcjg+$ zF@q0FbNGWnsEhq5I9ixHVxz#mMGyn3hF7zbWo~wF&U&y7^V(*l+SE}qA)EK*=8bs6 zVdt*wUX%9XzL}Q|VZ{7_N;fVBle6b{P{5zb%jj`S!CU14c)+w#&tHUTij?mv6GrO@n$6ma`#$qo zeIThBYp5yoH?J-7PLxkJ|0OTg+lnxFqi4YueT`RG73hgaIDSlXEB#?-2hy>uTe{f1 z0<*p(mJXTj0!ooPps*J_3B#=d{!O(+wfn>$t-p3QuN_|QX}0coW~vY z7>2@Z-gyb{T@D9DlcODMj{Zy}ZX?v_|#aH3m7sXv| z2_i2w4!v`~3fjw20Df6g@(1`u6TRt1?kOPW-+p_$x_}@^J5|v5B-mwi3%>yPydf&l zQM78z_W7{|lT0^b2kLAjw0151;P2QY<)PPF&jP5-7Ch9nzKh^EosVE$`-c}RzovP z6jTeRJR?(U(!K5O2e9eM#F}Mq<+r)rt zhm*I+?DZnd06bKuR0xah{1m=1pPq(AV9$x>+#A{E4lhE*3Q`i5qwugf>u z8Dc;mqd$;+Y8-kbnqh%C`(Qx*)z?7neb+p*MO(jq9o9OnwLf>cpQySBb1^_T4zn|K zKSRf!bcsv_OfS6lAom;SZeiN%^P^z^C3bWN?4u4wEprRYr+|^&XR^X!bkO`i2bv3TZo03+Ojfeas90QPraSS!8@GwVPd`mr+?8M;vT zZJN-+Afk&AT0T9VCY{CH&CseUlWs1+hPRn|-!ds8Cy%+w6n^;hxl(dOq~L1!(RExE zS_&u5Re6{bsb2&;jLc2ej=}_(FhRX|M34iO!9PMRlGVFVP#YFk5QKa;bHQJGV>>r0Vj(xPYF+O)opm-~pUxsg^ z#=C8ttBnL$xj5?qwtE8Dcc`(JStGSA95ZjyP$-_E1comU_sqGFLs-Y2d=3#34SuO$ zKf4Pz6c*!5fyWfAL}+YV<|<1IyF`EE6=+ZH*@628$h#O}vr#XW#%?-HoA1Qr<77s{SI45HJ?poXv{m261LdJ|~v!~T(n@Z*{8&qp= zQp}@BqOB^`{H~wE0vFY2kP-*EnE}AB?{6zx0YK9`0C*5MIx*b?SQ1w948R113pj3G zrD7DX*b5Dp$;((qGzW-6dAFY^{&Tq)UJW44b+*u6@qr<<6;6RNk;hLn?!!d7lq-WL#`amm_@% zOx-gXzpKBWD`tvo1{#_@5ON;^8JM60kwy~-T0GfvqZ9Km0s!L1)^<8h7M6vfvn*HZ8~;VT~}y3PE|u9QlO*qPw!uMuMs5??bH} zZKviRVifjCD8AL-*SxMM!r-jvj;FRB+bUk{A+0{4vfzAW%uQ{x0eO~AG2M+DM-B5X z=0k6f;%2u8;%puHOz|=1Qa-_yxBz(ah^NF@X|1L*1(p-7ttw~P;;{>$rZD0gn&~F;>d-blFRj;+ zGJ8)i<31UjCq8I=vHP$8HMq2Na11zp{9(;-RLS~hadxpJ81YRtE+t$t8z7I#gUVMO zQ!c>Y3xF?I9JnV|wlp11y&oTl`}JQ*Lv6Uc>qNkYsW6x^elBc9Q(0nx*6Ca;$)cd>0)1th%l?+g<$o93Fy1-{LIl2ADUusPHH-D zA#b|v*&Gkw=Grgs`oFJUThG{cJCvrkRKZ#eZNZh_VYH8Uq+ce?w)H9h-8m@iBOuN= zwHJ{Axbd6XSkV#Uy{SSnQ#b@>L@w0J3uLhaW2!MiG)6y zBV8fodh!>=9=;Hr`TXj=xQCZ}Ty29o9=4;FF&Iz@f#12M?tO&4o#_}vS%oiBE5-Y9DR zkyc_?quacj`v$69Oen;v4Qp=Md`RTEJw{nxrB|?l$6MC`yHO9BIzD(}9jpWv^$wPca$VYylb6l5ZGg7^A?tG5q9n7 z0HD?}uo>Gut+qyebzlN6LXp{7z&9F)@%~u$`7*)oI2>m=puCQ0c3Cl9w9JJ%H(XW8 zdL|L)D(NyUGAl065~-wD2JbC4*5BJHuAp*%P0zV`X46^IbBj$s*%uNPq7_)`!R`(% zdLa9rKMs@>)_uLX{qloOC!u{st&4eHuVA)k4HBkk@ZS_|SUa);tnRp|C7? z!m2o?qyKZ4+UpyA0euc9ws-(_JfB@W*^52bN0WBr>$cbyI}D{vlSZ8XL5aF{ALcl*zAKo8@u}wA43w*pPho>_gp2pumfq{LO1osWd-IY98d@pe7-oY&o`Y4;zP-a@0KFTJ&{VltcUPvW zyd1*s{X6;%jf9;I4=Im4Ppq2{mDcuwk$}C8_gZWW zs_0J^%Wk?yIQeX^K7;U#YA7w^5`!+F4qV>Hemx(oc5T4%^(WAu_(ET1s0j zD{fagnB{yPcCo<_`yKR=PQe!Pa zoSlf@zLOU~AQ}KrfAVy^RSQ`w94&LR*je`Q5_5yUV!os!-hOQ}FTNYt#m=e(=%baE z-wo_QmD~@uCVZrX9WBVH+C3mVg1$e0AqFu9g_NICI6emV55Lu2=wHrsM(Q&BVOX4J z4;#I4Dc+>*4YsJ5m8@Sq0cLDC_Hux~95Ne++GhC(x|bM9oc@vy?^geiB}0N>$XL_H zipGiIM(QDgHzpn7VlPbzsz%myQ;&qif+Z0LJ_aANJfIY@@!V&t+)O%MA zS+9WAl(g^VhqDn^(IVxuQjivo%EjIaIf8qlTGkpD%REy;xSobN6!iWeABdrf^r8E^ z4>z!RFOb=*fVk^V?l+qmQeFN@K1thot!E`hzu$@USE>$%E?$#1kqwxr)w7ZGCa*}k z5#!mWvqzgNEwA!Ou3(0aD{v2$rVaPm!KP-+<_b(cL{7nQ)!F+QoL$s|;G!rx_69NKjJfJ5~U# z%g(;?A=d6m0DPOMj~&^YaL-fp925}8+gKYJ;1#wDjMsz@@_pM4+aVud9?YIUyqJUn z4=nvt{PhQQ+$wbl%D~l5A=Gy-zGw%f*}6M@#jK~*U608wunSgQr+J~(w@u{Hk7|f$ z=rvpjemsHQQx~sY=@AMWa_%+-HI=^Jyyxx#nTgknYF`M zC46Ky0gThc5}keb13!-p4mm}M7ZZv6WfE!yi&wau85N2UL#@NoKs03|8D##~IpC<3 zsa()|{chNv?d~K-m5JcLX}hcO=tnN%2?uUwSL=?Y8^1Z!P1^OL3!E8p&$-7;h02T0WcD&AXzke(^ zfG&zbdXvx<@Tb2uvQxZEkp+fX!-pR1d2#*dUX0Kd%(BX4ufGriG3XrCp`6rX`eO*d zc64O2P~%@Q2*-1YIZ*F&V=NXwgnvZ_{5o8VLnCRRJ*%k$3XLv!4B|XY{w|u$bK&H;C@;3e@0(d(n)+y;L3InI=CHbk2pdSac0(4mA0aW5IUG<1 z)U7-w4J-wmB-H!6RcwF7V8%x1&hDS!;NvXqL=#)nA{`QCd@mhLpUQf?Oy3FPG(I3J z%vy~qAZMja51Vw5D6B)D_dQ76)Edb35wo!WcD^AKJM0@pEVM6Y^uM@%y~N^fFn=D8 z#H**Wuy-GWmN-XG{EwfXTTJJvwLjsMbg|yha$W;i64(E?LLA4##$W`y{wmFnbIjms zTFvuU%wLJL&jdTIP-9uj%paak3Jt#dOuORe`)yTK((DooK(sqRJ+%hkefno$GGGCF zNZ83UbFu8ug86`X=OSr%23*m7QMXfB$!^K5K5fhO1^jLV zJ=Z@f^-6>__?i30wd$2; z6P&Sgn_B~QpwSPzgH{r!4#Al3dKUac2}_+a`RIX0;LyW`I8=|+zYGQ#k5|Dgq5Cmw zGGnX%-cOUu!4#`d$50(RIf4&pqi%ry=J22W%^(KKBkr%U(c~h&Q5sWogsvmTsHBia zrA!VNGEbM_PnA6D=B39HM!f9~eUlXs5|r9%qYT5H-Rv;jU^-Ly}?S87`mCzo<33(hqq|ROaJCFe$a5`=($HPt_MM? zJh#*bH@2&%LCAj(`!+$=du2JD=+-(twq)+z>uz8DuMMjEAKdCctyj0xB5+!bZxr5d z{SW>CBm@M@_)#e@raNpR^q9lZm6*^!AxTB0P-O8N5%{9tWMhAHY#9`9*_#T>;Qo_=;7%dIy+wuZ2Z zD%hzSaIuMhL<8EnsXC}3;e5saOBa-hf zaAKY#M2Y_H4w!1%Kp#yMz>& zRZlGOPVb?=V3*!^e7-#YY0_w$Xs0~$NYmL)cgeE^Gt;<51G&!M)`IjxZbEsN5REUk z#3G%6t++^bZ7pOz-E=ms>*{Q=*fQDZ9j}gxc`V;n#r3Ie$Ik>J%#0wzb6^Y>dJhEB zjnD1D6WQ#FzZ*LqaS&{;-`A{0iXw=iFY`Zq_46}hp1#*`bK_?EajUm$R!Q~;Dl(mS z>Jio;^M`_^_S>NV6zn;7yp8`x_9es#i6-zqW?ZEzJ4cR z#^XTD_UBu^>~+6dv(!IAlc2`F2=@(0f2}|F@AnPw`FcEHWt7RT!iUGG16;f0(e=;m zcLB5RC{;FFR`_IaM#!`Xd-gL@`>1<-2gk=?1l73@eo5rpm;fSde41MAxFJMNW~Fc+Hu z_qUC>lMQnUaFejF1^ywLfJ%okm)WEH{*12?7&^Jbs2b2YGh=)-`C93f&zTn^NsP!N zWlxB0w9WS|BR=0rTsI+QTnQZ^B>xz5nop(9Zw5lGnf1+W7BK^7;=H5KlqQ z#T-x!ax81JqInN83fH)1 zL;kVNM9j!=PxsfB^dR39B>A6wgVsIM?&~5;k$BvU(#b+>R-upie*&AMs|Y>2dmT(&BC{HTN5>WOzdj8@0()|38RX09Rr&iNZtr^UVyV_>HK z@|`nXiw;31*xVbT$1_BFC!);Az%df{ta)K-FP)qO#GG8akZ^&)1HIA{&pDieK39`3 z_%2&d@0aauCrdX z@#+jMO8RDl8f_BRPSAg2pDg7w2(UwV>VL@Ys@2F)=M$evTeh;-EvS!in%Z1JTqg6v znNgy2&%)99{3}@%e)YpE*63O}o_HoJFJ9xkvJa_pj=e+ zaKTtea~n%%BF@+%P1GZ#rNmU`WZN+cg8%cBQLwWwFcXxC^0vb4ucC zy^269-**FFYK=?UhOKwFsSaaU6m~w?z*=&iM=3myr04-^<=}IN=1VKgbKb`-&bZ}s zCRrQXWxHypW?LW(tW2A{Q{rDDxkBjrb+DQHg|c5APx@BN%x z>Oy_i5W2SIbW7^ziIw^|TZ;}6pl9w9r38K4?4HnCLh6G#@3$&M3>9YN_jMoG|FXl3THnvj}>)ygir<~0XSum!$$h(ma{OEoJr#? zQm@{g@;P9r0An`lHkt%$kpCX%=oW}dGwK6qLIb+Dj{CJZt53B&HAm|_l^(C%t@#`2 z44lL8ZD1r_fYdDeqjF0VjLt!Nu9OKsc@{xsS(do1`#`Kvmg(Lus$G zTpm-a-X7TN_ufpM4qkFVm4}Jb%^i`yVn)8f?r0ixo?Ulzo%x*EbRk3}`~ZDD4Pg@; zadXy75xLjPy5PEF2xO2UVe-%$ac9BpXC`VID`C~BD-d@nHnNO2 zvNyIGzlxCg?hfMx4C%ky z$F|0fdgJ;O%LIugq7LLa3n>iZV*h{?iJXPTY~%nt&tJK>VW|^A;Z`Mo??|0%Ri33% z)3&2iq{XO8s z)?Ds2_YXMTld>xw_Z}V42Q<>FZJrwx93`T#=uqRn#{j;7R(3Ww_5= z-XV+=o!G{U^b5jGid@@EJayl4lQB~7GH<3dG|CyE@m0Xr6QIBi24#|7;E<=7L}tjx z!h^~pQ~M^Ch;GzT>XLfez%u+E(t2u3RRa%b4v=6Tx`ezM#a099X(Fmje3!T9q7udI zZpX;;uhu$NXS`h=m$pf`=+jtT?f$kj!r!Ri_)b9_^#fUK(t{}K4A~XqM$hxWdN>hem_y7LUCT@X)JGgd2Bq# zb-AGc_0^VF!@ohM!hyi4p!*%NA6l5TY#SIe9Y0jM=Fg8Z^=`~wAX=%49NBG)Rm0ofbp+#Q2oE@=ZDXO@eMdU ztv^86)^O3P#(@eonsdyG&f*x;SZXsq-;FI23&93drVj`@|Bpc^B$Z^3g{^uDRdb&SOyhJ5wVO4^H4wgCD!+Wi?*p^Kl zlr1ygo=iko9Bn%vw^v^#7>37l2@kdO?pwbKbKbOVdB7qYMMfd6sCdjJRcABf7Lc;x z^=U`hXNU0x10ptjy?8!GajoX_L7m00M|WpESB-Sev@(JPWWJHTZ1K4C-4?}Wa_>#VQF%@d z1^idJ2nVsXDs9;d4t%$mgM3L{o z7QaAQ5t2A`1V-^MWNJhBqf}O5hyCYVi#shi z3yJFzLf_zkaAZ^27=QA2O2G_J3LsH_+%AZ&PvRIv{B?sjPaWi|hpY`&BPMJiWdUf) zz-nZDX+yaVFBPdIF6;Ehz4YCg8+5l_e6@t4LgFgfZ7&R%hjh6;@@$6<)mo)POERm- zl4bnfD(1w>vaO7u-Z8;rMT<@skU!)oxylMDTu>5zqWIwSiTbOrWMZDB3F^0Gcu$RF zMqNJ*hB?8DOy44+VRQgs2R5*jCRSpZ;SC(9$8_-nLQ{8sMu%tBa@G-QO1$=ghuOL2 zLgrZ*t^vDv-zDhIhS7Sa!8!ekSW)=Y5u8T`A}bbfVsn^QaAJW2h6)S-z8XfAU^NA4 zU@&)nb9rz!*DL5Ax1mk=DZ_b$wIX=tY}IF}D33ve*h8!)GuFZa_CcEoFJ3OEqsZC^ zEvs3LW?R+7N<8B(+EB&YB|gm`_B39dP{%!b?7V^Xn*%$I3Arn-MzDSGnfyoSgNgRO5UG4+P#zQ8guQ7n47lFHtPAF@{09+GI7xCoU8^f`5?LXJ{j=H ziqgQ>EguU5b&@mzB{%wR_6=>rN8OCbDlEVM&IeAu8I#99AAg%!G1;Ix?>qM$^lj|_ zmT7_35%ZNVk1ZN|ZEN!`&vK8h4V_&C}BtzB=KUCG+%I!}FY}&H-w1@0WEpJAZG8$~@U)TNtZPAlQ}4vt%=nHD!#nn&hhNud zh*%p+Zs8>d;Cds-cEn!J8M(+&Yz6-=Lc;R#P*WwIBFqlT`gOmlP)j>ad?*d zN=zxr?eY{-sJ0k*+nKVqyf2Ivb`mSn!Nv{IXT(CknwQK9N!`hqY&3Nra0==mL(9gY zSp8*b0`5Ud2&T;hqHFxmQeCrpuqzz9))f>{si78A^{?Dc#h4Tw=oIg_ zAui21Ga&uEkPxcGX06wsh ztjdd(@rLV5^MB#^O`XB~R;`LCZou}Jm~NuCYG zt^?8zd6%7{BRV+OP}MD9j{nHO?+vDO^;tfNa5x?FZk>0({{wZH~9R9Dn!WIn+z6UQ#%pM(iPz(x3hPXeRvFHb>F=snmEE|Legl+R4&VQF3mP}90UBcJ@OL5yX^Fr}h&Ddk#Jwb5V2 z$AgniQt!FgZ@N0JSSsYW{7L_cxUF&emi@3revTKQ9HY;^!7|P1W+YS*`B}Iur{|n_ zVQrFGDVN`%C>pPS>e-nya`C>&7lW9x=o=f+)=_Pv-iFI4w%OBqv-h}*YZ^Ffnaf`e z0iUDe*@~E5QcKVN^rXzDh#f0?mX&68I6TKzkp-MIqgh!COACwgPpdW?tyyxlcJ)4s zo8cG*o`jcaf~WqgppJhhegq}1A+%mML8264r6h#_fC$og6SITmP8#Mzmk2_;#$e=w z*|x=d|9~DTzdcQlF60O)Z8MnGa6NqN`exVlo9;^ZB)PU9IsdX>T5~1U{%2e>++Y5V zo>!ieEP(_P1hqX2RN#MtK>uIxr~Rt}k4P^SmycjaLnKfjKnm30)YtPog(b0!^I@D6 zxcg6_{sZoDLB`rJ)-A6nWc2J)SU&!Z>=;rAu7`+yLXJV~h?hEM0!sq2hB|WS**W!D zwd-$u(>7Y!X;mQ-)wrj#cu(zRSssrTv#tvmv%f(@K1{K_ISJ>R8KaPjtHlXi;J>2e zsVwX$1|+NEb%{KQlx-1B!e%GZQqN^DK`gcIKe5tA3HUtnZ#aDAKXCYmfQg9*6A1UN*i_i`Jv78BL4DZb)}(j|5=_$7$9Oq#(Hv%Nqb1&=gexngm%zWKd;=E-#8VNSudTb^m<=YWcZm+us8R9QkRVLNLB2?{nMkH zc|ku2lLI^h##5&fp`ysxYDR9m!4jq(xCg2N6G5odh{|pcq&Iryf#%KYiZ`9~IXl)Q z=1~7I@9^t=Uv||VRBV30xpKsi`c2R!8T-&rHagq|nz)hsR%X-f_|WbmFV;%_KKvM# zspoyGk1wReuy;($ur>X$K^pKQHVb#OSGqE*jy1_EiOULj*PQbPsD__`oKul4dJ8@j z2eYZa54GO}^If>fx?DIarrd{Jd_6+%{K9JVT&6a1$84%jm*cgCeG9U`f5ir>vGpLk z{zCpgF4bwyQicA$RLcLfRJ59FLYgqJ`VVaYY>etZavc6)ul#5JG|qCD;=^{xx;xY7 z2k8FWBNjed#c3JV;NL1Gu~y*eaYZG;Us$%i+wu%@b)S;o2@k|hZA6oLqiO}*Qy-*Z zUmoNeP-clBu^)-m11M3I$le@Ej@O1wbssuAE{^#b+Tc4-f#dDAaO}v&fiDPm z&2~ALu*FvRyw1KX?j=4W5iH$*2oJ#5D3-J>Tu1m$7W&Jf_#X^+Up399+u#J|U}+&; z3tYdt*iN;KJ5Pq8lIcuCf3j>=Y3|z*A}Ht-;Y-`Y%(*i z>{y$)#z6dpN((fZmk0mLjLd(fxx*oU{@?cVKSoCV|HD`RS7e(1+nzY*^Ze(Z`oF>r z|G)m#&HPio>0bp;%70}n_5IsF!>$_XC=Q((oVM07b~&&pMIs|QZ{zM58@1YZ`k9&g zFe490vNZkb&ntH|+dpF}QQh)q^Y)*;@4&73WyfP~$+$(Y)bJHpu{Euu7hX+UV-FX$ zxPB1bZ~jKcLLzI~-UUn;GmKs{lcEqMh6qCOi>CRlIz!Ga#y_#FKhKLRvE{=?pGTM1FRxuqxW!|0Vf3S0;XcC^%iL$q8H^-jCKO1wr(k* zi@S&K+8_P2ZSR3kzGftI2HBwP!mVhdistG^b*?uj)2uXYH#!oJJjq;Iq%aad+$go<9c7c)cSA7-IjFLpFZ_OnkAGQkZm0Y40-TgT zztWd`QIUw-y3snGz0MobP36Lt?AR8hD_y5|jb&r6{*C_Vj7nJ&&x&CM?&o()v|wf+=`Z{6 zxU=CSC;G9g?cGKTvzF=KT43v(l92N4)k`|*Sd+j09p~pBP918aW{HkZ#cj_%XrFmT zPh0w2F^IY&!cF_oJsa)r7fGlQmGfp+U7U1UEqE#YX}*PB zxHai0zt7ntx9_QgLf^APHYU9=bz>w>)NJ+MUDdH<$kfDf-6z+iwdamXuHPbTn_!(3 zQF5}kVWDGmws$;DNyg^pmrrvWV+=v7-dOK^U7r%K$s$sW=>KZ(x`Ucpw|znskS>BC zCA1(YO*&HbC^aHQdZc%drj$eiK@_A{1qB48NHZWvmnuz)5L!@rf)pu|&O8BuPm37-e7xw*ySM9O()*w2MOaHR%kzx_0GF4 zAL;`1o~f3?xrqG)@Jt;iz$J6YYmnkb=2Emj{tOj@V`{kV3N$~s5C_;8<`=Mjet)US$EyU7mQd?D4iB2F4c!AD~|gKm)4yn1F@ zWYwlwBYwxrLoU&1SdvTe?Bi$wA^-cLu$-3|D`JxYd9LFCnjYlG^s3|-3xUzgKOy(P zmY-O6U0ZAhP6GO=C)T-B5wGl&;q^A7HnmK6P3w(wEWB~6BYFFDUuxXW(g%Hwo=LN! zJR48^o>h2<)0EX!@x_EdC7N&XVJt|(;7wBiEF`a=}@@RMhZ%FiU+f#v%dpJ{9B;RG(_tJ~Wd5sQ)CDcD$b za6wZ|s)|$Gk2?uWjP8bDP4*5X(8n^HsVc_IGpO-pn2u{bBBX!j@f9_oU7<>b*b?{L zB-O#}-e9+inn=K!OxdejGTPOyGVD?F(D6Cs4WjP&u2iMx!|WJ_FBXDT4erjaJ1SvA z(C{#|@EGzCHyV!j*Vl0a6voF(`5|n{sxRWX6l+D8hI8Z*LX~21ad(6%y&mF%AL>Xa zxuXVwwMIAiqc1E8M1!BisaqFa?G}Z6EiM=8P;QNvNA%{{;)uiRf1IpvKayLY+c?dA zt*4O?VoM_+}zgRE?TWM+ptXmeKBlQ6MzIh-rQ9vRkS=CIS}P&c3J(nX350inD!uO7pL zOgAIFdd4-5jhX$9t3M1pv+eL?HyJd)vDz`xxF*)`^~VVJ+SOCum?5-3CMQ>}o9A+_|C;jZAR;S170&xKFe}gRRwBa9K z_uAYEk>sxbcH!CdU2Jiznv4aD8>B9;#doYl0T~Ogud1ydmfH*7XE1uPYmr3_(U7L! zN_=4L5)G70IX$_aDZukAWMrA8Uym)k9F`5AV!!YAE6kv15>ABHxK4i^Myuq`tSTo- zf0E{sGrm!e%ETbCNlJqw;L>fhb9JJ=CxLLR>C9ndDQ--gRK2zQ?UYU%i}qhPZ>5~0 zITp1Om$iFe@4R%F#H?tFjAJ}H=M&uUvLHp8s$Ek(v!qocO< zUQ2MS%T00iP+bUXC&0_>kpnLS>Qu>qOw`U=f97Y6!}DXXyzao%p%0Bbc~9b4=bDw3Mb>Q`Bx6`LiQ1+O&1Z?h?rns?ge1S7 zpZcKSC2&4uq-hkpkCq02CVUCTki>yZ)y(Fmm#CTgXMye2ga zSsAee6&u-^3TBT_Sc6Byp4G2VHHx+`H>0|r=B}Rg^eG0~J}!ZxL-%!6A#KE}JGX1GKYrCgg;og`0IgY$;vjN#X$63H zY^hmu)_aRJ00jBoL?YIUBBo1LNF`NDh;QH-y^(Lyl#0CauDS|GZb3q(w|B}@3CmB+ z+e0~OM__*Pgn>Ha#C=cIr;>Bg-#4zYc;e9dA(~Si=2lK-O5A2kmuzk=WIeOf(A%%; zm=&g^OLZO_>nx9q?_OdIw{9}dLD zvHv9o+KwC%jWt;N0uQrQ>jP5j4b1851bQtu#+Q~}Kc31I_HA7p3Y6&G?PUXF3H6}@ z+Q{XubY*}12X!NNw&KI%{z}dYArk&IA&1$0R+Y>VWfy^;L$pjS3BLc}y>IlOR~$*z z%-!B1OqOo(IYSxJPm$1@p%-4)vl>~ISDNJv=~lySf4}Sc2+dru#?{?gij3?kOzW{} z$ryvzYo~d`XnnCK{dPdHRf^Pea>=}IxC!XKJ;leW^D`|-7;FUV@vBQ0T1;|H=ro<7 zGam(H&DT@90y({F>>g<;#1AO#v{l@tJbgfTA%}Dz-+tv+JgNGrFAcwSSEl#EG&bsy zGXSFUl3KOWO-MG)Ud5C8u0G|~b28e#kylkSBkc;GH}F7rz>~m@dzVU>P0g2~d7t)C z>7_O}dGwUu5dTE#kzo^FPJ_+{DRPsP-$hsqyEd`X5A(gA__9-IS%ro&VNW_>y#2F{ zL!GWU&65$XV=1?w>};*apnX~K!l(9A<{H9vJ=(Yel0QDfYbf&^g4gl~pI?0B$OiTF zOX;Cmz_$yJ=8_vHMW!_BPfUrY;icK;=C0*4QYQLsz?mKJ{995d0(V#Lgp@BURL*E~ z6>W0oRizGD9bBBy`x6uqKpJzmdI&GpEwtps38rj);(&l2)_uEN1i+~f_ePG#a#Q+_ z2H}Xsrvvp8tnV+_E_v(pe#6nEA?0_{DZ{SE&xz6K+xgl#{wV{goI_cyqL-=FJjYuE zk?`wda#+VM4*bX9L;cG?L@iJ3Ik#r2N|6k@Yxw#KW_^3?kCXCJwg zug#?wG7PVAj|cfG$HnYnSif(t&hm`=m)$*6;UyBG$Rqh(=(0?Rj2onV<86&Ke9vuE zZsYv;rsNO*G83It?o5^Y)FGvxdtzHekldQ@@khF^-2pm*A#HxP3d*{CV?oJ!UFXYG za2QQZV1{eB{FKj=NlbXEp|W>{t22WjaVCM)Eo=oTtjnpURIX?~tS*h5(lMY$#*E$` zeG8MuF7C)yR~c}z=p+c{yWa~EVFQmHIX56GA|5`UDcU@55-}=rp}&MrF9tyPIJyeJ zssausg7W~%yCB53+l@tAjk+WfLQXOZ5zQSPJePRf=wesZtz11 zUN3m^mzBI#xOROYcc=9i61m&Om@rmd+)F?|!A zG$s*0Bo@=Qh@$nz!&y3T*K*knn|M--Wq=x{>qHoVh(+*fZOMWgBIbikqD^Xhz+s<$ zh*F)s>^{d+VW||ed{cM1ZRj)G+uZp86-{JOr!5QeX?Nqq)7_qgZ9UR}dAEvYB%jO= z;!Wd^^EdlCAbH`;*x;T=UXt<^oRq{KbLnc|fi*|hCKfCDQ2H=b$5o|bb+MInuBCi} zm>5dZ3uoJa!s_Y@LM@k(G(JFj*xPiSsPCzd+pM9N2=1~8X_6%GAKcSDzj%Rrs+ZID zj;$8`@k3jPHm2ZaT}E|n)Nt85O?OLe*a6i88ws-F$J$1|r{3$fo$5j@O|9WK>mE60 zFI~MGcRD1>gvvlAirD;y`!JCaDLAoolVIL%vG_5s8vV-}ER+Y`X}EqOGl%t*ft%?K zmel(Ae6yW6fk9=u9~(#XL_#T?oM@PNC~G~_ux=lBE8hSj0Xf}{(z!6rY@=*cf_y+^ zPN>*85tgVQDX%u>(;Ic6v$6oBS4G(d)9y5MvRlBSFJEqoK18OQo7(~}N;Ldn0#bsG zKWxGS+?UDbiH`o(bMAW`+GBYUQL#p+&tE+k$(WFTSP(#L#L%uPr&SO_q)hMv=YLL^ zk$dGlli0uBzc$ni@()AOn>i6I7iV#=bz9} z%*&1xQ;iadcibk!_4oXWLJEz)V_ob;GR*JSylb0xJhjw>F(-8m9N?4vJPQW!dz%6; zpGM-Zx9}2YGsv<}uL>?rOZR9HqM*e7!IhxF zT9H`YEO>}MP=6)gUBdIZ{>iphXISNGAN*{>V_@zj?fLM`Qr_ECO{i+_9qKd9Bla=Q z2^xxM4?^svPu)MBOY}q?1?5vF4k0En6IS7?AD32XCGxkN)$c|AV)quSn`+ zn^eGv6QN6Z+0s?GYOJ1kFSnq!0y1Fgd&-`i;zuz&mBStoSw$Mgt#3^}jpDID_jwJ(5IXCzxWpgqRB8%K7RQHR%n>Fzgu)*dNfbD!jK8x)$ z=`UX*r_&4-MMPddZ;d*ksy+%Ks2Lci4RzVDCEJmil5<3Y&iI{K{ACCi@B!MB0a`;F z#^XDe;dAi~$%07UYXvVlQ|8$ML3Y%3 zA*c$Q(GwUY6u&C!eI#4z&LNWwy`4RfTiLDHQSYb*)VI=)+{WjwO*oT<)1xJ^@?MhS zh^fLyDg3GI3~#(5bkuwetiH|84U)=Vx#uBMmbN_O@An!1Jbw|wwvCD#R4m=kI$Vg^ zJdsdn!1!U+Iyt1jW+MF$X^nWh2DWsnnlcS}Kv!~WmAP;Rw3N(~bBug98s^j!d8a&~ zj^2W-mFpI|s;WQo;?~>=W&0d z)`CAib6ly)PNw5yN6Q_*4rTjZxps1q0uKrCJ5GjW>yF7C8_%szyz9F3$uiDEwdwKT z!zA_wW(rE`=|KwKCGn7cFyxGO!1sPl{CxEq_Ed; n>1mlWy ### 关于复制的研究 > -> 如果主库故障,那么异步复制系统会丢失数据可能是一个严重的问题,因此研究人员继续研究不丢失数据但仍能提供良好性能和可用性的复制方法。 例如,**链式复制**[8,9]是同步复制的一种变体,已经在一些系统(如Microsoft Azure存储【10,11】)中成功实现。 +> 对于异步复制系统而言,主库故障时有可能丢失数据。这可能是一个严重的问题,因此研究人员仍在研究不丢数据但仍能提供良好性能和可用性的复制方法。 例如,**链式复制**【8,9】]是同步复制的一种变体,已经在一些系统(如Microsoft Azure存储【10,11】)中成功实现。 > -> 复制的一致性与**共识(consensus)**(使几个节点就某个值达成一致)之间有着密切的联系,第9章将详细地探讨这一领域的理论。本章主要讨论实践中数据库常用的简单复制形式。 +> 复制的一致性与**共识(consensus)**(使几个节点就某个值达成一致)之间有着密切的联系,[第9章](ch9.md)将详细地探讨这一领域的理论。本章主要讨论实践中数据库常用的简单复制形式。 > -### 设置新追随者 +### 设置新从库 -有时候需要设置一个新的追随者:也许是为了增加副本的数量,或替换失败的节点。如何确保新的追随者有领导者数据的准确副本? +有时候需要设置一个新的从库:也许是为了增加副本的数量,或替换失败的节点。如何确保新的从库拥有主库数据的精确副本? -简单地将数据文件从一个节点复制到另一个节点通常是不够的:客户端不断向数据库写入数据,数据总是在不断变化,标准的数据副本会在不同的时间点总是不一样。结果可能没有任何意义。 +简单地将数据文件从一个节点复制到另一个节点通常是不够的:客户端不断向数据库写入数据,数据总是在不断变化,标准的数据副本会在不同的时间点总是不一样。复制的结果可能没有任何意义。 -可以通过锁定数据库(使其不可用于写入)来使磁盘上的文件保持一致,但是这会违反高可用的目标。幸运的是,拉起一个从库通常不需要停机。从概念上讲,过程如下所示: +可以通过锁定数据库(使其不可用于写入)来使磁盘上的文件保持一致,但是这会违背高可用的目标。幸运的是,拉起新的从库通常并不需要停机。从概念上讲,过程如下所示: -1. 在某个时间点对领导者的数据库取一个一致的快照(如果可能的话),而不必锁定整个数据库。大多数数据库都具有这个功能,因为它是备份必需的。在某些情况下,需要第三方工具,如MySQL的*innobackupex* 【12】。 -2. 将快照复制到新的跟随者节点。 -3. 追随者连接到领导者,并请求快照后发生的所有数据更改。这要求快照与领导者的复制日志中的精确位置关联。该位置有不同的名称:例如,PostgreSQL将其称为**日志序列号(lsn, log sequence number)**,MySQL将其称为**二进制日志坐标(binlog coordinates)**。 -4. 当追随者处理完快照之后积压的数据变化,我们说它**赶上(caught up)**了主库。现在它可以继续处理领导者产生的数据变化了。 +1. 在某个时刻获取主库的一致性快照(如果可能),而不必锁定整个数据库。大多数数据库都具有这个功能,因为它是备份必需的。对于某些场景,可能需要第三方工具,例如MySQL的innobackupex 【12】。 +2. 将快照复制到新的从库节点。 +3. 从库连接到主库,并拉取快照之后发生的所有数据变更。这要求快照与主库复制日志中的位置精确关联。该位置有不同的名称:例如,PostgreSQL将其称为**日志序列号(log sequence number, LSN)**,MySQL将其称为**二进制日志坐标(binlog coordinates)**。 +4. 当从库处理完快照之后积压的数据变更,我们说它**赶上(caught up)**了主库。现在它可以继续处理主库产生的数据变化了。 -建立跟随者的实际步骤因数据库而异。在某些系统中,这个过程是完全自动化的,而在另外一些系统中,它可能是一个有点神秘的多步骤工作流程,需要由管理员手动执行。 +建立从库的实际步骤因数据库而异。在某些系统中,这个过程是完全自动化的,而在另外一些系统中,它可能是一个需要由管理员手动执行的,有点神秘的多步骤工作流。 ### 处理节点宕机 -系统中的任何节点都可能停机,也许因为意外的故障,也可能是计划内的维护(例如,重启机器以安装内核安全补丁)。对运维而言,能在系统不中断服务的情况下重启单个节点好处多多。我们的目标是,即使个别节点失效,也能保持整个系统运行,并尽可能控制节点停机带来的影响。 +系统中的任何节点都可能宕机,可能因为意外的故障,也可能由于计划内的维护(例如,重启机器以安装内核安全补丁)。对运维而言,能在系统不中断服务的情况下重启单个节点好处多多。我们的目标是,即使个别节点失效,也能保持整个系统运行,并尽可能控制节点停机带来的影响。 -如何通过基于领导者的复制实现高可用? +如何通过基于主库的复制实现高可用? #### 从库失效:追赶恢复 -在其本地磁盘上,每个追随者记录从领导者收到的数据变更。如果跟随者崩溃并重新启动,或者如果领导者和追随者之间的网络暂时中断,则追随者可以很容易地恢复:从日志中知道在发生故障之前处理的最后一个事务。因此,追随者可以连接到领导者并请求在追随者断开连接时发生的所有数据改变。当它应用了这些变化后,它已经赶上了领导者,并可以像以前一样继续接收数据流的变化。 +在其本地磁盘上,每个从库记录从主库收到的数据变更。如果从库崩溃并重新启动,或者,如果主库和从库之间的网络暂时中断,则比较容易恢复:从库可以从日志中知道,在发生故障之前处理的最后一个事务。因此,从库可以连接到主库,并请求在从库断开连接时发生的所有数据变更。当应用完所有这些变化后,它就赶上了主库,并可以像以前一样继续接收数据变更流。 #### 主库失效:故障转移 -处理领导者的失败相当棘手:其中一个追随者需要被提升为新的领导者,需要重新配置客户端,以将它们的写操作发送给新的领导者,其他追随者需要开始拉取来自新领导者的数据变更。这个过程被称为**故障转移(failover)**。 +主库失效处理起来相当棘手:其中一个从库需要被提升为新的主库,需要重新配置客户端,以将它们的写操作发送给新的主库,其他从库需要开始拉取来自新主库的数据变更。这个过程被称为**故障转移(failover)**。 -故障转移可以手动进行(通知管理员主库挂了,并采取必要的步骤来创建新的领导者)或自动进行。自动故障转移过程通常由以下步骤组成: +故障转移可以手动进行(通知管理员主库挂了,并采取必要的步骤来创建新的主库)或自动进行。自动故障转移过程通常由以下步骤组成: -1. 确认领导者失效。有很多事情可能会出错:崩溃,停电,网络问题等等。没有万无一失的方法来检测出现了什么问题,所以大多数系统只是使用**超时(Timeout)**:节点相互之间频繁地来回传递消息,并且如果一个节点在一段时间内(例如30秒)没有响应,就认为它挂了(计划内故意关闭领导者不算) -2. 选择一个新的领导者。这可以通过选举过程(领导者由剩余副本以多数选举产生)来完成,或者可以由之前选定的**控制器节点(controller node)**来指定新的领导者。领导者的最佳人选通常是拥有旧领导者最新数据副本的追随者(最小化数据损失)。让所有的节点同意一个新的领导是一个**共识**问题,在[第9章](ch9.md)详细讨论。 -3. 重新配置系统以使用新的领导者。客户端现在需要将他们的写请求发送给新领导者(将在“请求路由”中讨论这个问题)。如果老领导回来,可能仍然认为自己是领导者,没有意识到其他副本已经让它下台了。系统需要确保老领导认可新领导,成为一个追随者。 +1. 确认主库失效。有很多事情可能会出错:崩溃,停电,网络问题等等。没有万无一失的方法来检测出现了什么问题,所以大多数系统只是简单使用**超时(Timeout)**:节点频繁地相互来回传递消息,并且如果一个节点在一段时间内(例如30秒)没有响应,就认为它挂了(因为计划内维护而故意关闭主库不算)。 +2. 选择一个新的主库。这可以通过选举过程(主库由剩余副本以多数选举产生)来完成,或者可以由之前选定的**控制器节点(controller node)**来指定新的主库。主库的最佳人选通常是拥有旧主库最新数据副本的从库(最小化数据损失)。让所有的节点同意一个新的领导者,是一个**共识**问题,将在[第9章](ch9.md)详细讨论。 +3. 重新配置系统以启用新的主库。客户端现在需要将它们的写请求发送给新主库(将在“[请求路由](ch6.md#请求路由)”中讨论这个问题)。如果老领导回来,可能仍然认为自己是主库,没有意识到其他副本已经让它下台了。系统需要确保老领导认可新领导,成为一个从库。 故障转移会出现很多大麻烦: @@ -116,48 +112,48 @@ * 如果数据库需要和其他外部存储相协调,那么丢弃写入内容是极其危险的操作。例如在GitHub 【13】的一场事故中,一个过时的MySQL从库被提升为主库。数据库使用自增ID作为主键,因为新主库的计数器落后于老主库的计数器,所以新主库重新分配了一些已经被老主库分配掉的ID作为主键。这些主键也在Redis中使用,主键重用使得MySQL和Redis中数据产生不一致,最后导致一些私有数据泄漏到错误的用户手中。 -* 发生某些故障时(见[第8章](ch8.md))可能会出现两个节点都以为自己是领导者的情况。这种情况称为**脑裂(split brain)**,非常危险:如果两个领导者都可以接受写操作,却没有冲突解决机制(参见第168页的“多主复制”),那么数据就可能丢失或损坏。一些系统采取了安全防范措施:当检测到两个领导节点同时存在时会关闭其中一个节点[^ii],但设计粗糙的机制可能最后会导致两个节点都被关闭【14】。 +* 发生某些故障时(见[第8章](ch8.md))可能会出现两个节点都以为自己是主库的情况。这种情况称为**脑裂(split brain)**,非常危险:如果两个主库都可以接受写操作,却没有冲突解决机制(参见“[多领导者复制](#多领导者复制)”),那么数据就可能丢失或损坏。一些系统采取了安全防范措施:当检测到两个主库节点同时存在时会关闭其中一个节点[^ii],但设计粗糙的机制可能最后会导致两个节点都被关闭【14】。 - [^ii]: 这种机制称为**击剑(fencing)**,充满感情的术语是:***爆彼之头(STONITH,Shoot The Other Node In The Head)***。 + [^ii]: 这种机制称为**屏蔽(fencing)**,充满感情的术语是:**爆彼之头(Shoot The Other Node In The Head, STONITH)**。 -* 领导者被宣布死亡之前的正确超时应该怎么设?在领导者失效的情况下,超时时间越长,意味着恢复时间也越长。但是如果超时太短,又可能会出现不必要的故障转移。例如,临时负载峰值可能导致节点的响应时间超时,或网络故障可能导致数据包延迟。如果系统已经处于高负载或网络问题的困扰之中,那么不必要的故障切换可能会让情况变得更糟糕。 +* 主库被宣告死亡之前的正确超时应该怎么配置?在主库失效的情况下,超时时间越长,意味着恢复时间也越长。但是如果超时设置太短,又可能会出现不必要的故障转移。例如,临时负载峰值可能导致节点的响应时间超时,或网络故障可能导致数据包延迟。如果系统已经处于高负载或网络问题的困扰之中,那么不必要的故障切换可能会让情况变得更糟糕。 -这些问题没有简单的解决方案。因此即使软件支持自动故障切换,不少运维团队还是更愿意手动执行故障转移。 +这些问题没有简单的解决方案。因此,即使软件支持自动故障切换,不少运维团队还是更愿意手动执行故障转移。 -节点故障;不可靠的网络;对副本一致性,持久性,可用性和延迟的权衡 ,这些问题实际上是分布式系统中的基本问题。[第8章](ch8.md)和[第9章](ch9.md)将更深入地讨论它们。 +节点故障、不可靠的网络、对副本一致性,持久性,可用性和延迟的权衡 ,这些问题实际上是分布式系统中的基本问题。[第8章](ch8.md)和[第9章](ch9.md)将更深入地讨论它们。 ### 复制日志的实现 -基于领导者的复制底层是如何工作的?实践中有好几种不同的复制方式,所以先简要地看一下。 +基于主库的复制底层是如何工作的?实践中有好几种不同的复制方式,所以先简要地看一下。 #### 基于语句的复制 -在最简单的情况下,领导者记录它执行的每个写入请求(**语句(statement)**)并将该语句日志发送给其追随者。对于关系数据库来说,这意味着每个`INSERT`,`UPDATE`或`DELETE`语句都被转发给关注者和每个关注者。跟随者解析并执行该SQL语句就像从客户端收到一样。 +在最简单的情况下,主库记录下它执行的每个写入请求(**语句(statement)**)并将该语句日志发送给其从库。对于关系数据库来说,这意味着每个`INSERT`,`UPDATE`或`DELETE`语句都被转发给每个从库,每个从库解析并执行该SQL语句,就像从客户端收到一样。 -虽然听上去很合理,但有很多问题会打破这种复制方式: +虽然听上去很合理,但有很多问题会搞砸这种复制方式: -* 任何调用**非确定性函数(nondeterministic)**的语句(如`NOW()`获取当前日期和时间或`RAND()`获取一个随机数)可能会在每个副本上生成不同的值。 -* 如果语句使用**自增列(auto increment)**,或者它们依赖于数据库中的现有数据(例如,`UPDATE ... WHERE <某些条件>`),则必须在每个副本上按照完全相同的顺序执行它们,否则可能会有不同的效果。当有多个同时执行的事务时,这可能产生很大的限制。 +* 任何调用**非确定性函数(nondeterministic)**的语句,可能会在每个副本上生成不同的值。例如,使用`NOW()`获取当前日期时间,或使用`RAND()`获取一个随机数。 +* 如果语句使用了**自增列(auto increment)**,或者依赖于数据库中的现有数据(例如,`UPDATE ... WHERE <某些条件>`),则必须在每个副本上按照完全相同的顺序执行它们,否则可能会产生不同的效果。当有多个并发执行的事务时,这可能成为一个限制。 * 有副作用的语句(例如,触发器,存储过程,用户定义的函数)可能会在每个副本上产生不同的副作用,除非副作用是绝对确定的。 -有办法绕开问题 ——例如,当语句被记录时,领导者可以用固定的返回值替换任何不确定的函数调用,以便追随者获得相同的值。但是由于边缘情况如此之多,所以现在通常选择其他的复制方法。 +的确有办法绕开这些问题 ——例如,当语句被记录时,主库可以用固定的返回值替换任何不确定的函数调用,以便从库获得相同的值。但是由于边缘情况实在太多了,现在通常会选择其他的复制方法。 -基于语句的复制在5.1版本前的MySQL中使用。现在也还在一些地方用,因为它非常紧凑。但默认情况下,如果语句中有任何不确定性,MySQL现在会切换到基于行的复制(稍后讨论)。 VoltDB使用基于语句的复制,通过要求事务是确定性来保证安全[15]。 +基于语句的复制在5.1版本前的MySQL中使用。因为它相当紧凑,现在有时候也还在用。但现在在默认情况下,如果语句中存在任何不确定性,MySQL会切换到基于行的复制(稍后讨论)。 VoltDB使用了基于语句的复制,但要求事务必须是确定性的,以此来保证安全【15】。 #### 传输预写式日志(WAL) -在[第3章](ch3.md)中,我们讨论了存储引擎如何在磁盘上表示数据,并且我们发现通常每个写操作都附加到日志中: +在[第3章](ch3.md)中,我们讨论了存储引擎如何在磁盘上表示数据,并且我们发现,通常写操作都是追加到日志中: * 对于日志结构存储引擎(请参阅“[SSTables和LSM树](ch3.md#SSTables和LSM树)”),日志是主要的存储位置。日志段在后台压缩,并进行垃圾回收。 -* 对于覆写单个磁盘块的B树(请参阅第79页的“B树”),每次修改都会先写入**预写式日志(WAL, Write Ahead Log)**,以便崩溃后索引可以恢复到一个一致的状态。 +* 对于覆写单个磁盘块的[B树](ch3.md#B树),每次修改都会先写入**预写式日志(Write Ahead Log, WAL)**,以便崩溃后索引可以恢复到一个一致的状态。 -在任何一种情况下,日志都是包含所有数据库写入的只追加字节序列。可以使用完全相同的日志在另一个节点上构建副本:除了将日志写入磁盘之外,领导者还可以通过网络将其发送给其追随者。 +在任何一种情况下,日志都是包含所有数据库写入的仅追加字节序列。可以使用完全相同的日志在另一个节点上构建副本:除了将日志写入磁盘之外,主库还可以通过网络将其发送给其从库。 -当追随者应用这个日志时,它会建立和领导者一模一样数据结构的副本。 +当从库应用这个日志时,它会建立和主库一模一样数据结构的副本。 -PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志记录的数据非常底层:WAL包含哪些磁盘块中的哪些字节发生了更改。这使复制与存储引擎紧密耦合。如果数据库将其存储格式从一个版本更改为另一个版本,通常不可能在领导者和追随者上运行不同版本的数据库软件。 +PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志记录的数据非常底层:WAL包含哪些磁盘块中的哪些字节发生了更改。这使复制与存储引擎紧密耦合。如果数据库将其存储格式从一个版本更改为另一个版本,通常不可能在主库和从库上运行不同版本的数据库软件。 -看上去这可能只是一个微小的实现细节,但却可能对运维产生巨大的影响。如果复制协议允许跟随者使用比领导者更新的软件版本,则可以先执行升级跟随者,然后执行故障转移,使升级后的节点之一成为新的领导者,从而执行数据库软件的零停机升级。如果复制协议不允许版本不匹配(传输WAL经常出现这种情况),则此类升级需要停机。 +看上去这可能只是一个微小的实现细节,但却可能对运维产生巨大的影响。如果复制协议允许从库使用比主库更新的软件版本,则可以先升级从库,然后执行故障转移,使升级后的节点之一成为新的主库,从而执行数据库软件的零停机升级。如果复制协议不允许版本不匹配(传输WAL经常出现这种情况),则此类升级需要停机。 #### 逻辑日志复制(基于行) @@ -179,7 +175,7 @@ PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志 到目前为止描述的复制方法是由数据库系统实现的,不涉及任何应用程序代码。在很多情况下,这就是你想要的。但在某些情况下需要更多的灵活性。例如,如果您只想复制数据的一个子集,或者想从一种数据库复制到另一种数据库,或者如果您需要冲突解决逻辑(参阅“[处理写入冲突](#处理写入冲突)”),则可能需要将复制移动到应用程序层。 -一些工具,如Oracle GoldenGate 【19】,可以通过读取数据库日志,使得其他应用程序可以使用数据。另一种方法是使用许多关系数据库自带的功能:触发器和存储过程。 +一些工具,如Oracle Golden Gate 【19】,可以通过读取数据库日志,使得其他应用程序可以使用数据。另一种方法是使用许多关系数据库自带的功能:触发器和存储过程。 触发器允许您注册在数据库系统中发生数据更改(写入事务)时自动执行的自定义应用程序代码。触发器有机会将更改记录到一个单独的表中,使用外部程序读取这个表,再加上任何业务逻辑处理,会后将数据变更复制到另一个系统去。例如,Databus for Oracle 【20】和Bucardo for Postgres 【21】就是这样工作的。 @@ -189,17 +185,17 @@ PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志 ## 复制延迟问题 -容忍节点故障只是需要复制的一个原因。正如在第二部分的介绍中提到的,另一个原因是可扩展性(处理比单个机器更多的请求)和延迟(让副本在地理位置上更靠近用户)。 +容忍节点故障只是需要复制的一个原因。正如在[第二部分](part-ii.md)的介绍中提到的,另一个原因是可扩展性(处理比单个机器更多的请求)和延迟(让副本在地理位置上更接近用户)。 -基于领导者的复制要求所有写入都由一个节点处理,但只读查询可以由任何副本处理。所以对于读多写少(Web上的常见模式)的场景,一个有吸引力的选择是创建很多追随者,并将读取请求分散到所有的从库上去。这样能减小主库的负载,并允许向最近的副本发送读请求。 +基于主库的复制要求所有写入都由单个节点处理,但只读查询可以由任何副本处理。所以对于读多写少的场景(Web上的常见模式),一个有吸引力的选择是创建很多从库,并将读请求分散到所有的从库上去。这样能减小主库的负载,并允许向最近的副本发送读请求。 -在这种扩展体系结构中,只需添加更多的追随者,就可以提高只读请求的服务容量。但是,这种方法实际上只适用于异步复制 - 如果尝试同步复制到所有追随者,则单个节点故障或网络中断将使整个系统无法写入。而且越多的节点越有可能会被关闭,所以完全同步的配置将是非常不可靠的。 +在这种扩展体系结构中,只需添加更多的追随者,就可以提高只读请求的服务容量。但是,这种方法实际上只适用于异步复制——如果尝试同步复制到所有追随者,则单个节点故障或网络中断将使整个系统无法写入。而且越多的节点越有可能会被关闭,所以完全同步的配置是非常不可靠的。 -不幸的是,当应用程序从异步追随者读取时,如果追随者落后,它可能会看到过时的信息。这会导致数据库中出现明显的不一致:同时对领导者和跟随者执行相同的查询,可能得到不同的结果,因为并非所有的写入都反映在跟随者中。这种不一致只是一个暂时的状态——如果停止写入数据库并等待一段时间,追随者最终会赶上并与领导者保持一致。出于这个原因,这种效应被称为**最终一致性(eventually consistency)**[^iii]【22,23】 +不幸的是,当应用程序从异步从库读取时,如果从库落后,它可能会看到过时的信息。这会导致数据库中出现明显的不一致:同时对主库和从库执行相同的查询,可能得到不同的结果,因为并非所有的写入都反映在从库中。这种不一致只是一个暂时的状态——如果停止写入数据库并等待一段时间,从库最终会赶上并与主库保持一致。出于这个原因,这种效应被称为**最终一致性(eventually consistency)**[^iii]【22,23】 [^iii]: 道格拉斯·特里(Douglas Terry)等人创造了术语最终一致性。 【24】 并经由Werner Vogels 【22】推广,成为许多NoSQL项目的战吼。 然而,不只有NoSQL数据库是最终一致的:关系型数据库中的异步复制追随者也有相同的特性。 -“最终”一词故意含糊不清:总的来说,副本落后的程度是没有限制的。在正常的操作中,**复制延迟(replication lag)**,即写入主库到反映至追随者之间的延迟,可能仅仅是几分之一秒,在实践中并不显眼。但如果系统在接近极限的情况下运行,或网络中存在问题,延迟可以轻而易举地超过几秒,甚至几分钟。 +“最终”一词故意含糊不清:总的来说,副本落后的程度是没有限制的。在正常的操作中,**复制延迟(replication lag)**,即写入主库到反映至从库之间的延迟,可能仅仅是几分之一秒,在实践中并不显眼。但如果系统在接近极限的情况下运行,或网络中存在问题,延迟可以轻而易举地超过几秒,甚至几分钟。 因为滞后时间太长引入的不一致性,可不仅是一个理论问题,更是应用设计中会遇到的真实问题。本节将重点介绍三个由复制延迟问题的例子,并简述解决这些问题的一些方法。 @@ -213,7 +209,7 @@ PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志 **图5-3 用户写入后从旧副本中读取数据。需要写后读(read-after-write)的一致性来防止这种异常** -在这种情况下,我们需要**读写一致性(read-after-write consistency)**,也称为**读己之写一致性(read-your-writes consistency)**[24]。这是一个保证,如果用户重新加载页面,他们总会看到他们自己提交的任何更新。它不会对其他用户的写入做出承诺:其他用户的更新可能稍等才会看到。它保证用户自己的输入已被正确保存。 +在这种情况下,我们需要**读写一致性(read-after-write consistency)**,也称为**读己之写一致性(read-your-writes consistency)**【24】。这是一个保证,如果用户重新加载页面,他们总会看到他们自己提交的任何更新。它不会对其他用户的写入做出承诺:其他用户的更新可能稍等才会看到。它保证用户自己的输入已被正确保存。 如何在基于领导者的复制系统中实现读后一致性?有各种可能的技术,这里说一些: @@ -505,7 +501,7 @@ PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志 在Dynamo风格的数据存储中经常使用两种机制: -* ***读修复(Read repair)*** +***读修复(Read repair)*** 当客户端并行读取多个节点时,它可以检测到任何陈旧的响应。例如,在[图5-10](img/fig5-10.png)中,用户2345获得了来自Replica 3的版本6值和来自副本1和2的版本7值。客户端发现副本3具有陈旧值,并将新值写回复制品。这种方法适用于频繁阅读的值。 @@ -563,7 +559,7 @@ PostgreSQL和Oracle等使用这种复制方法【16】。主要缺点是日志 * 如果写操作与读操作同时发生,写操作可能仅反映在某些副本上。在这种情况下,不确定读取是返回旧值还是新值。 * 如果写操作在某些副本上成功,而在其他节点上失败(例如,因为某些节点上的磁盘已满),在小于w个副本上写入成功。所以整体判定写入失败,但整体写入失败并没有在写入成功的副本上回滚。这意味着如果一个写入虽然报告失败,后续的读取仍然可能会读取这次失败写入的值【47】。 * 如果携带新值的节点失败,需要读取其他带有旧值的副本。并且其数据从带有旧值的副本中恢复,则存储新值的副本数可能会低于w,从而打破法定人数条件。 -* 即使一切工作正常,有时也会不幸地出现关于**时序(timing)**的边缘情况,在这种情况下,您可能会感到不安,因为我们将在第334页上的“[线性化和法定人数]()”中看到。 +* 即使一切工作正常,有时也会不幸地出现关于**时序(timing)**的边缘情况,在这种情况下,您可能会感到不安,因为我们将在第334页上的“[线性化和法定人数](ch9.md#线性化和法定人数)”中看到。 因此,尽管法定人数似乎保证读取返回最新的写入值,但在实践中并不那么简单。 Dynamo风格的数据库通常针对可以忍受最终一致性的用例进行优化。允许通过参数w和r来调整读取陈旧值的概率,但把它们当成绝对的保证是不明智的。 @@ -630,9 +626,9 @@ Dynamo风格的数据库允许多个客户端同时写入相同的Key,这意 #### 最后写入为准(丢弃并发写入) -实现最终融合的一种方法是声明每个副本只需要存储最***“最近”***的值,并允许***“更旧”***的值被覆盖和抛弃。然后,只要我们有一种明确的方式来确定哪个写是“最近的”,并且每个写入最终都被复制到每个副本,那么复制最终会收敛到相同的值。 +实现最终融合的一种方法是声明每个副本只需要存储最**“最近”**的值,并允许**“更旧”**的值被覆盖和抛弃。然后,只要我们有一种明确的方式来确定哪个写是“最近的”,并且每个写入最终都被复制到每个副本,那么复制最终会收敛到相同的值。 -正如**“最近”**的引号所表明的,这个想法其实颇具误导性。在图5-12的例子中,当客户端向数据库节点发送写入请求时,客户端都不知道另一个客户端,因此不清楚哪一个先发生了。事实上,说“发生”是没有意义的:我们说写入是**并发(concurrent)**的,所以它们的顺序是不确定的。 +正如**“最近”**的引号所表明的,这个想法其实颇具误导性。在[图5-12](img/fig5-12.png)的例子中,当客户端向数据库节点发送写入请求时,客户端都不知道另一个客户端,因此不清楚哪一个先发生了。事实上,说“发生”是没有意义的:我们说写入是**并发(concurrent)**的,所以它们的顺序是不确定的。 即使写入没有自然的排序,我们也可以强制任意排序。例如,可以为每个写入附加一个时间戳,挑选最**“最近”**的最大时间戳,并丢弃具有较早时间戳的任何写入。这种冲突解决算法被称为**最后写入为准(LWW, last write wins)**,是Cassandra 【53】唯一支持的冲突解决方法,也是Riak 【35】中的一个可选特征。 @@ -640,7 +636,7 @@ LWW实现了最终收敛的目标,但以**持久性**为代价:如果同一 有一些情况,如缓存,其中丢失的写入可能是可以接受的。如果丢失数据不可接受,LWW是解决冲突的一个很烂的选择。 -与LWW一起使用数据库的唯一安全方法是确保一个Key只写入一次,然后视为不可变,从而避免对同一个密钥进行并发更新。例如,推荐使用Cassandra的方法是使用UUID作为键,从而为每个写操作提供一个唯一的键【53】。 +与LWW一起使用数据库的唯一安全方法是确保一个键只写入一次,然后视为不可变,从而避免对同一个密钥进行并发更新。例如,推荐使用Cassandra的方法是使用UUID作为键,从而为每个写操作提供一个唯一的键【53】。 #### “此前发生”的关系和并发 @@ -722,7 +718,7 @@ LWW实现了最终收敛的目标,但以**持久性**为代价:如果同一 > #### 版本向量和向量时钟 > -> 版本向量有时也被称为矢量时钟,即使它们不完全相同。 差别很微妙——请参阅参考资料的细节【57,60,61】。 简而言之,在比较副本的状态时,版本向量是正确的数据结构。 +> 版本向量有时也被称为矢量时钟,即使它们不完全相同。 差别很微妙——请参阅参考资料的细节【57,60,61】。 简而言之,在比较副本的状态时,版本向量是正确的数据结构。 > ## 本章小结 diff --git a/ddia/part-iii.md b/ddia/part-iii.md index 2de4cda..082b78d 100644 --- a/ddia/part-iii.md +++ b/ddia/part-iii.md @@ -28,7 +28,7 @@ ## 章节概述 -我们将从[第十章](ch10.md)开始,研究例如MapReduce这样的**面向批处理(batch-oriented)**的数据流系统。对于建设大规模数据系统,我们将看到,它们提供了优秀的工具和思想。[第十一章](ch11.md)将把这些思想应用到**流式数据(data streams)**中,使我们能用更低的延迟完成同样的任务。[第十二章](ch12.md)将对本书进行总结,探讨如何使用这些工具来构建可靠,可扩展和可维护的应用。 +我们将从[第十章](ch10.md)开始,研究例如MapReduce这样**面向批处理(batch-oriented)**的数据流系统。对于建设大规模数据系统,我们将看到,它们提供了优秀的工具和思想。[第十一章](ch11.md)将把这些思想应用到**流式数据(data streams)**中,使我们能用更低的延迟完成同样的任务。[第十二章](ch12.md)将对本书进行总结,探讨如何使用这些工具来构建可靠,可扩展和可维护的应用。 ## 索引