You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2017/12/03 20:12:16 UTC

[21/51] [partial] zookeeper git commit: Added documentation page and reworked docs instructions to address jekyll issue #6586

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperAdmin.pdf
----------------------------------------------------------------------
diff --git a/_released_docs/r3.1.2/zookeeperAdmin.pdf b/_released_docs/r3.1.2/zookeeperAdmin.pdf
new file mode 100644
index 0000000..686f28f
--- /dev/null
+++ b/_released_docs/r3.1.2/zookeeperAdmin.pdf
@@ -0,0 +1,1549 @@
+%PDF-1.3
+%����
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 1202 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gaua?9lJcG&;KZQ'tUMg-qdI455(;'VEgUNh6hb7g[%56Bj#s4\eL\Zs*dP^&kCVSFATo!%M9usa_/\?3TO1(H[ct=1dX1Cf/%7B/S@$kB-b:hNs(kr(Io<rE...@m>%OS8?Rt@XVdKD_u:rVR,%Q]B<tWZoTe#InhVHKp'(teY`;!5ho@^V/-RRI^_$&:YBNR_%NYU'LdI`5_D8]\NJaVYfP4-OM_K?*+FA-BQ.<X-?CZ*,sU.I2es^5H<!1]fZ9a2Nr?oCi*OI5:7]]Lj5!0?&$qf$R<9\\PV)D]6\@HtQ=gEiWQ?<'NK0^0B`tgqohphZE[g_Y`6`CT:hQL]@c$M.+[$07kFb)T1-[HLd"8s6b'fneoEtMmO@@F%WgtJB2bQ4QQ?MP+f"!.>0S1[G;ZdI\?J(FD7:#4BW!+,A^&\Q-Xk89[G?cS1rDgqhDgL]1\&A-0"EQp-51#]F9\QAM2X:HYEDn9IV;50+HbV5&U?&46[Ha=sCsc`5j2?FLTc+J5)k#"*/3C5+b$
 ZhD7C>1!gmcD]Z=3;kY6.<26BreE.@bCnaPr)d$3[slQE"-Z;]a1,HBu(On'eHNq<WmMl*>Lo"RD:F+$8h60qp4\4BTr/RU)=#1-.B$UQc[2Eu/@6VQuQmR[th=jR&OL<GoV6e,s:#PpjYO.ii0YE,i99QE\"5C\>#qi/JM0AnBL,!OM1E'l;dc(/FGOS<d6tU&P@L=X5K~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+16 0 R
+18 0 R
+20 0 R
+22 0 R
+24 0 R
+26 0 R
+28 0 R
+30 0 R
+32 0 R
+34 0 R
+36 0 R
+38 0 R
+40 0 R
+42 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 511.541 169.328 499.541 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 493.341 228.5 481.341 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 475.141 272.816 463.141 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 456.941 292.136 444.941 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 438.741 182.672 426.741 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+18 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 420.541 300.464 408.541 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 19 0 R
+/H /I
+>>
+endobj
+20 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 402.341 184.844 390.341 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+22 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 384.141 402.824 372.141 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 23 0 R
+/H /I
+>>
+endobj
+24 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 365.941 192.836 353.941 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 25 0 R
+/H /I
+>>
+endobj
+26 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 347.741 185.48 335.741 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 27 0 R
+/H /I
+>>
+endobj
+28 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 329.541 178.172 317.541 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 29 0 R
+/H /I
+>>
+endobj
+30 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 311.341 164.168 299.341 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 31 0 R
+/H /I
+>>
+endobj
+32 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 293.141 202.832 281.141 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 33 0 R
+/H /I
+>>
+endobj
+34 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 274.941 247.148 262.941 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 35 0 R
+/H /I
+>>
+endobj
+36 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 256.741 357.46 244.741 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 37 0 R
+/H /I
+>>
+endobj
+38 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 238.541 238.48 226.541 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+40 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 220.341 207.172 208.341 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 41 0 R
+/H /I
+>>
+endobj
+42 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 202.141 196.156 190.141 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 43 0 R
+/H /I
+>>
+endobj
+44 0 obj
+<< /Length 2266 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb!;e8Q4D6'Y_ns:elQkOJS8mP&`@u&22ZG6[!M6OW(*,NI%Z09R_CrCOJ?L(oX5[.4ui"Du9A_hs3;5>.cid%GN`lj6C5b)7L".Yi*hc64;XIf.h,t)HRm<pB0/41ldEjhB/9YD'C&[4=q&&5E)YPMq;$g0-I=VcPO!jj-g"FL0I4hHPSI@ccEW$>5YTa;2.6O-FI:<.'ZLuYAIUJ7G_7nGuP';p+IVX(/1Of.jDZhfnS`u@k1[trF9(m0@JVSeSe?7k'Y?.,a?=$clLGoR:=E^NZR:_7/;$9(,*u"M9%5<@8KC99o+S0X1r7OSf8'l$CWVP^9N7<ED4DiT+f*D*PQN3/;H2C9!VZr1YaI$:"!F\I)l]0RBiq4;o\'lnY%qm`/3mRTa[_Y+'Y`$a\2W0'H'siQB/gBaAagc-J]JA0C[2YMU$:e0Vn)ok@*Z[^5B'Kr@05sgl09Pp2u#1"$5ba:]])]&-=M:8bpZ^:9Jg7qV\)A$?<`>).`L7iIoOg"_BEYZT&X0F`G_d*IBj,f&KN.GBh5fEk>C2d*Qn/c3>2SZoSRbI3@p8B4_75%U+@Ua!?&T\8G$+RQYG8=DRVj!h[7G:FkYPXVF7,<]MkqWifH,nn'H_'mMeI6>/0%GhU:4SlU8bgeCMB1.(/_%)o1m:/k;@gr3<op[FF)nO.7BiRAPl45l-hTl?q:qp>(F69jUE.u$j40;`.Y\O<E4Ah]Zq2^6Gm-nXlK?p(2=an!+"+R',6U46bpcY_2jTm+NO*WDQF/4k#?p:HlhNC?tLELY([Cq)hIYT>?;R[.p^oM/pPXdMm"=;e5\:nopX<j7C\0G%%6_(K<@/=Y$Y7P9R]m3%8g]O)'5f/0ut08^+IOk=O)c!6MD1YBiiC_O&cg9Ib^N_.t[!^IrPr/N(GGXj0S+9fPZoEL5lF^aNiKCl?$b=cD$R27)-e.ear!G>'gD4_VV2h?K>4!QT.omo!t6-G]ODf3*eq`I2dL.p<tSd
 @fbA^Z5mVWYN/Q1i6)V[I;n[-ZW_c'NI_Q'lf;T+Y0Qr]K5!"8Us1XY7*bUI=]aK)3&D,$ZlCa^\O?4\1i+cjoU;%mRdQ0@KDA3`933_bd51F=`,&W]t\'gBO"$<*m[UNN90&V4)QZj-frkH"\.)PR&kK-=Cq'g/q.&;+\:"Q">f(>0;M0(rcM<U/'W3E]t(4-nb?Q6n+WlCZR,-r+(*LT*2Dg!#_#8nphXo>B[L1$_%Dbd[/gG2]qQ],VZX1OXA*<<a4MP2h:2\:D`'$XYSPKe&RNpJ\LodUB?@UjF.lD6_8XDN?L>:Up_T-K:8Xae*RZadV6aA9udT_Aa0i!?T!.I4:\V:4LO's7+Z?0=S-V/b<M%BXA5u<C8RS^0p(pemO7sV0V0-0,Z&8LfFM\JC:#,i8F'11'_`?URi'NUQ6o5AG!u5mEc7"S2aRg)6)Sm9K`5QE'G"2l">R=nH3D-p@mCXGq:oi,=b1Ep+1sabf0@Q=>ot8\h@rn[C.X]9A<dPGOU%qO"p@_C^0,SOr"saOm@/81k]66+N+K"@baQAX:8_?$+J<Mqddfk>]Z@Ga]Fh-qPT,!JOk`4@`&PMPnJ@h=I5\Z#&P$-fm,3"C;%r[p2bS0OiXGOP'j<.!g*)N\-99th%.XM>c(_U:3JR2QdebP!9DQi[BP9f9_:.S$Te>pL(0'@'IEd_E`GPb>,%=aQ]DV[$He`;Knf5Jj06#s._:W`QnWjCg+l[c"1Ftu?:QYPFUpSYJgB;ftnm^nJ!Xn=?F8EIt=L/Ea1![^CL%bG5AG]2A6+<BBY(s/Wqpquu=kPZ#FHJ<EL:.W[a6nD2J;&gIdg^.I!,g2'4Br!8h#sbs_BUoe,$Y9)Eh9IGRDc_*195ES@O%n(l<ep6jZWV.^<Nhkg@\k-n(mbTTI856RM`1^A35qKib!cFDqL[;'?,TqYbS>%pTDtt9;1,^9aEX)K?G`1G;:\MnW&Go*ORn.2/;^lR\3H$`6)=\M;=e
 fZ?hVY7uk4tQr7F3bdI=,e3Gl%)"*D=b-eV3XL)3&)skS;;-(6bA,n?7,&%_>L.s)g$m4chDAeD!]Y8<=4sc:!Z'mk%!M*A*hr`Ymc:\c<glgPQ`G>:HmkqLgRAB]Xn><s8f^Zua5@=^Q65Ki(j3B#qb;F&<`FE+p7U'hr5*3PY(=`%?TS8sL\.DflUL)(06RH^&(&iYYFX?&#r=cH;TRU_Erp#9*>JM";pFNIqF!f'eY3s2$,ZZ:*rD;1md5.t<Ir+i2r=+g)i2Q~>
+endstream
+endobj
+45 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 44 0 R
+/Annots 46 0 R
+>>
+endobj
+46 0 obj
+[
+47 0 R
+48 0 R
+49 0 R
+]
+endobj
+47 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 612.466 213.0 600.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+48 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 595.266 257.316 583.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+49 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 578.066 276.636 566.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+50 0 obj
+<< /Length 2721 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=.>E@Ms(4Ml_+VY<#$Y3q5\p>.`cnnIcU]o2;=^Wo=#EDL4S4KA@;<,1$I]4h.A^PZ:5pdpQ*hM\A/t(=P2a9O`I(@)M:B,`dZhBOM`Gqu/L/IjD2@9^^4it@7S)8-jJ+N3\gW79#J+L1`n[i#>re%o`Ae_#m&&$$#qp5$'.kRck^&#RW,os,V%p\MHC+C3:<X$bA]O\G'q6pnW)64T6PgRo17%#.AC/<#IcHKJZ_.$&_hFOjo[cTA'+)>3N+H_5S^R6+F0E0RMr%O<r$rAq+XUa?\==l20*.1@Z:gRl`_"[#kD8<WW:dA$TX;+fr@Z-BboN=_fNlZ&8+qEsnaV0"QL`?,FN8eaNbGiLq_2SE/i>,FG()chta<)<!KgC;i]&'S)X+2/s4B=87/1X".@e'[0X7fLYQ0,V[4b;cG.b1hp:g:$&=n._4@(40>X5.UDHdUmnqoMb?7I(5UUOokT[R(`<g_,\P/KP<_;$4OXl-SS6ptbH;l7JTH`+C;e&P`R30Ue"l-c`Ka%d,4`H*<d164I-]I%W..:`nPA"Bt_iBH.N9e1M7\WNr&/U=j1jZQ,`(C3pX+oRL]s/HkF$K(*Q:>,E2@N["Wa)f[9I5rUEQhg>QF92UZ5mngcslM^[PG;G?337c)@i<;N#i]*HOEmI6iP^!H%U!EhY?+KRhm"M,6LV6U9h.lVa'p%XW7%#I77EnjXkOj_!)tk"0f@>IgS>;O.`$cP[K3[@V,Vc"m^slAeZ"LFq=lE.<hDg<Ept6,c?;s6@>/DWfL<paQJ_B;jXX`^!&:X@9"8UB"%Lk4!1j,8hQ[Ao@-D!/4-g:g@])]r?bgS>R6j<L+Qt!AJ&F7\N-DY/i&GCh?%F"fP*6ikseZ&gDF\5aObP+`4(\BM:4Y'5H@5M1"Ipb/7kMkD2W2]"kEm+o/H&i-p2TTL['%Z'^as5X(5i&X,f\B+?VMPWS2QuET1IIa<LRP?(s-4B0J>,si?VWi%]@RPj!n
 9S^BZS0V'%D^,)C8lE#FAp\9L.ER*pOPHr*bnY5BUWKh>KL<T3r"VH$[C\Ql[n*CD\C(5\ag=@mm]Nj3I>=)MXoB)3Au:2aUK"lI<.Q8BBWP:E_oGP-6.SR7>mKm8]9UK<8R4;)$]K]YY`dr.Hgi8Oa`>VY8[ph_e:n/M&0U4Eoh#qrJRDaKu=?9@37.[.!A^h1%EUpK$?9r9\mf=*B*+=t^+,#%\#js-0\H/<Z:VV(uW.g7c_u%AI+tm.2GTfKJbQ?^$BGhY3tCDn*Ge]hf"DD%:):B;PI#o?KM8.:2(?>M)?+mP`Ru/[F2&L.ZkFZ[S*gbq=AT^=Vi54-HK*?(cZu5ET@6WP_0Q?6o%"N,m8d#Yle[h(R.F0Y*gfIbXGA<?;m6QF=3'rk^:h.3p/1Qh$l+T6c^-5-B%rm-^GGOgZYG3tT5"KS"_J44f*U&:bPp-_'MbVe8f5O/M._5:)H;8.^b#EL==/9MA5`!Sa6FUd\LJN1gQ?b`E#f!$(nBZaR5'6Spl$Dp]r[J:mo3I*4e"T`&85C1aKcTMY[A/e3XNl)H*R'"T%"9,V[7\U^$k]"u]=/:V7EcPjL5jd-,CM*[@>aY(#TXtGZF\m;7T?LK$<W#C#U1lEa'R3SqWHU?[jBj20F.$Q\fLns>MXQ,fI[Oo4/)h@@s)([!uJ?\`KMiQWM>J=KlrXrQ=N_pW*Rpt9P41PV`?^G4X/kd.spe6VY`j'sRK!7NZlT6oRXSTS1P4IF8C#'l0grt1V_>?b)Af"Dqae,Z6fA%sZ+qV1jYVKi*[U(=Fr<2+(CC;691rq:Z9%m!>S<Z@<gGT\`[ReB"DpG:<%/%X<%\+`-[R\YT>gd:Z%!;1]F18!/eU59).1W(U:[5-&I&RJlYi9L).HD)LJoI#UZ&ET]XS8A2B'lP'k$43T(D@Ha:LSE!qP+b,PM!T/'PQZ%QZ[Y7f[jBehOEA!''i#KlaD'Va3G+$F3Bb)))\$HgQQbQXbqOL-6oO
 V26.D\4?GeMi%W4o`483;UIMa?1Q(A5K+O!_r!qe7NX-KQ#Bj2+X6M1ZI##IX<0!g=)AEa;H-KS(^mF4,KEMKCMZsZ!@<9q_r(@-)+2!$u68j"k4g,k!'[@eN]6.U*aH&A9<\E[hH@SE2`IS'[,L`;TQQ+HJr.KpqJ^Nl,lWL;k.`lEb7r52,(1B]PdPZc;)I'/qHDeF21h,:a9h>5L+/Y@h\K>GoX4s^2MlCP]cW&c_r+VFS?2/fJ_Z]4U[G>Zl@4qKJa.a)Rh;_30-KK'75oBGc1%_:SZ74/hh*7MKPJ?cVAGAIDG'D?"3!.!i'4Oe[os\Z2Q)!jU8Dc\j@I-m:60)63f5t:3(!-B0hu:15\HGcKHF0=kh6DQs<fGK?$>KHg<aLD67^AT1&\:>4`Xs2@iV4t-drmVN?<L`*mH(E^1*8RqcWtE%R$dnLQGXJHW!fA"o,A-;ZuDRXQ.!0`N@?1u5\T'jb7DqU.CpDhfpCkIjqfi\&tUI*Ebql[QAtL;h@_J1iSlCAdA8*8lOt^c8WpH'$dkO7VU117/\#rJeS!t-]6=_Ab`&gmIldZ-#tgrNf)o4Mg0Y?BNkZQa7trR,efdYLp"6qO;t]CS!(_b@54l6H8.nBW.'1n83fZ<3GaRE/Hr1nqgFRI=dLN?LK[#DLIVMnNB'gC!G%bI<%q;RL6R;=dDadTB\s.`\[=7,j0=nW.Y\"oMClhNLrrDfsnV7~>
+endstream
+endobj
+51 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 50 0 R
+/Annots 52 0 R
+>>
+endobj
+52 0 obj
+[
+53 0 R
+54 0 R
+55 0 R
+56 0 R
+]
+endobj
+53 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 552.4 335.664 540.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://java.sun.com/javase/downloads/index.jsp)
+/S /URI >>
+/H /I
+>>
+endobj
+54 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 457.2 346.284 445.2 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://hadoop.apache.org/zookeeper/releases.html)
+/S /URI >>
+/H /I
+>>
+endobj
+55 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 344.8 231.648 332.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 35 0 R
+/H /I
+>>
+endobj
+56 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 326.604 158.4 350.604 146.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/)
+/S /URI >>
+/H /I
+>>
+endobj
+57 0 obj
+<< /Length 2388 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=-8T3BB'YaHGkYRoY&CVglD7Ls,*@+((2"mV9MF,m5As>jG<79E=IXRhh5#RVWS3ql?XnTMWUL)har-E_[hZ\.GnF,a5lk7nVJcPf5If'#*LH].\k>]=/]D2?aogo4GqBRb%G9,;/Nq;M;F$\W\-1QE#?1&C:KjPmZVN]eT8`YZPK6,KD>[@4:AO(=K*HA)"i&L\QL_l-QW,E(,mq3T-*Xbh'c^fQUg\3t?;fDQ\^^[uLb-FUEZ@;4HZ;-6h)Z^1(3fp37>pO!ebK?A:q+JlfKK+c[*BdrX?9Q"%n-9i,1$&%SXZJO\KMWr=*^/"ePoW>BY-*E!+;5['$$=Vcm]uEKqpucah2@0?qha+#OY\$lO#!:("k%"TV+@-c=XGZJr4!=XI'TD6-$#-t!o\#C10K4m`4)O%jG6iSOYrT'C,uUP/BSf<UC).A3u/9=b>cu%1'X9eUQ9,U'0dCC!jZ:IJZ\5OG@Z%Nl:*LVPfF,defgB@I<^cbGE;#J"Cin/7Z4H>/m*3Kl_],F[=]QT,T6j_ba8o?PkJYVOJUh^pW3e;=<n8t8Te;/lW3/YI*a-6AH?MNZ)]"]M=fHYnBMGT6RjBV-HeuiX6Y"JGh/0$5<tY7'4:r\L[bQ?;GWYD_6d*9m<^>@^J"C194RN=WF".UHI[UPjk8Hi/pI6:,peL8H#*EeDV?T8c_'Uggf:U-WuXbA8\,^+0q'T4LSRS4!KXOJ^^ib=1)eQ(_<3UM"lG3@hjieAnD,8*mLW4<E#.]7$2gB1FfQ.3<Y*V@e"U,#5o%GQad2-tl2W_X]<R7gV-$HSjN"l,<^En1$K^/Sos,;-)D\oX-KE58*nSEJP4b#5B@2a[\7:LF3KY:upZ@e&.$Cc#4TX9OFgDip4daPq1r%J%q^G^$Qe.aT8g=k#qPm$(W^^:NE%'F=`-aV3V,kLXYWl*-=!`P]fOaeZ9.cnOjQ=.sF*iETIJ$0#EXOe>X<6at'UO*rC2`><?HcBuW3
 V:*<as...@-kbY>C=3hXrn(QG4;UK2]rT>j"8*#Rq'3EY<V5).JbS,"482=_/>V%fhZ6"fQs;!\K%##E)gk18ZPq1qQlC(q;.B^<1+!^^Ygmm;p*X;("s]/8>f@E=Hkp(XmMM1C/W+E#>tR^h7:N4HUhMgUO`8C;RE<]QH\b#g\0;NQ06L"@\2Y*=!%c]EWK$/6lgGLBpV1+<ghN8)B(:b<&[9]=\>)0FR,+ZPeE^!"^kY8*>[i;'L!EaN\C'I'MnGXN*`4efrZ13$&j$bGQ/fKZ,oq3J5R,>_sn&q,Ab<83N/6b;rm@4bj;;Lqm5MR&]=;MF;nT2LW3Q#'S0AGbVtX!L.q%C=[R"P6+OU31emZ8[27c:$e18\'Ah#iL(7mhiH)3a,1R8pm>2O>+q[WmF*&OC50Hgg8G2HIpn9lE]sWlf:CW/@b`"VbdM3SWl.r>%;b`'C@g$ZASF@>6QgB@`6i[Gf#TUt+FCbmk3/4e]+HF=?iRs:dJ8@%j%%u]\OYX5QqkqhIXm7(5&df+)dHR\_)gI66sr86fW;u
 X/ON4&H6Pd%J*\h&$;pb,0D-$36-D#cB/t_Q9SdlO4%![MM1f3X^^1^g9CNr)\#f3Y#Y>_UrS%`t#-TpR<b=&:&*^TCPsAb8$`H"4cf9\NF-FssK@+Ynkd2YT%-dQm2f"t7NTu<T^G7J+ZurbV^_ZRlLH1>BKpAdGm_uQHB,oHQ[&`_K-kBI<5#!^Y!ZN;8E,`*%qb@EZ7ThiHVFq\ZD<Nb".C'=aoJ[a*6Nlf]+1WOoN57s0;#Jm3gX/C<PfF"h49u8GNM:A'k@:e2)E3]KTl0=-#\"Qi?i,?\<AF!6LkB;,8A:4Aa"#j24(!^/mFnnmbbs_4VW:92%I8KCn>c@0U7Q;a[Wr_@nc%TQ*m77o)$H)ppEoi+a1FgeU>,H%7+q!XBSR*.~>
+endstream
+endobj
+58 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 57 0 R
+/Annots 59 0 R
+>>
+endobj
+59 0 obj
+[
+60 0 R
+61 0 R
+62 0 R
+63 0 R
+64 0 R
+65 0 R
+]
+endobj
+60 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 664.8 155.328 652.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperJMX.html)
+/S /URI >>
+/H /I
+>>
+endobj
+61 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 448.968 254.347 514.632 242.347 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperStarted.html#sc_InstallingSingleMode)
+/S /URI >>
+/H /I
+>>
+endobj
+62 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 90.0 241.147 299.64 229.147 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperStarted.html#sc_InstallingSingleMode)
+/S /URI >>
+/H /I
+>>
+endobj
+63 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 370.296 241.147 532.596 229.147 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperStarted.html)
+/S /URI >>
+/H /I
+>>
+endobj
+64 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 402.636 219.947 445.98 207.947 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperProgrammers.html#Bindings)
+/S /URI >>
+/H /I
+>>
+endobj
+65 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 90.0 206.747 246.12 194.747 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (zookeeperProgrammers.html)
+/S /URI >>
+/H /I
+>>
+endobj
+66 0 obj
+<< /Length 2712 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=.gQLU*&Ui84n1AfpLF,<=(Vf@?1L$.2->Tfb>a<qP*!qcFMhK<t>k7Q%n,bF3Jtc4KZSdEgk8Z;sh$n$]Cc?juDZ8Gdc4PLhD,S^QS1'9Qs,`,q+"3!%KM\RUcI:q=c%k]KLI^7l$%00ECqS'=K7CVagX=19PL.tuc@<S*N=bs"o=M@-HdC-TkPXnmg%\n%]hR>0$_>0)C$Z$)OX"MZEt]HR0@%%hPp4chV`Hl%I)Lrua;`c]@Wd,NoC?RY?r2H2aBKE7JM7K8"EgK\NZe!e9;FPR.Fg]f9<uVo"\<_86AQQaX)ni;8ERZIrs*$M<a"LPi.?tAdnM!a$'BmY)MQcX.oS#8/nb/aYd,-'0*cKY\EWi4L:>://?'SATcCU!LkE((@E8ATim2n@Etl[<dY[G4l_VMR?8"J6+W_jgEi4"]Gqr"LSj7@6j#?adJoFl/'I#@WB])?7YsV'idM1q_\2@.IY_"9,-CR7h"pFGtLm8]QV'V<$OdC4)B@W'O*N4Su[V1e?$4n'T,%(-RX!>+2BSkeV9c+)ETF7(MV@\:Z&O8`RF@@l3;^D0C;mGoGS8@_2U'%%V0Cqm\$j2#&,4Ac<X=TLnXPDR;lEJ&;pkq6J!<%<G8>('f(""N`OjMF"OZ-DF3NZVQdCdi&lSBGIIa[]43:?P90QLeqo4U)#NrApjaNM56=LBn';rOY)g1eu:XM0dHgW"gAU^Qa(Pl;uPbD)9b\RV[na5.8B*0!kLR#iq)N?`Ws#Bj7]^Hh1%phGjgE^T(,D\&[+'R`_#8+%'$PsUf)chr#mX#cn4<,M1!:kt4JKcN\O<#nB*C0/&r3j\\$H*^PbTA6Y<W?9;(8pg6KaIVVp<:*L1N/.>`<aC$VaY7C^OCVM8'I#7S#UHu09^E<gZnt4W^LgJH0ZYcF1*ZDh>I'.LafGQc30*(@Sc/h:R9$IjG*>g[#a[tR+[Q8tS1hf%[mI%2b@lbYJ)j$![Bd77:'Q#oH<K<u41
 uIBcu;J5$H^F)8`$&+9rrmrR,V\S.7@u=`1e7s/&Y%Y,kdA0eiqC[(0&+*eJ'2]+9EZ]7HV=a<gk5?T39WFUXt/7ADo;s'I#@W+PWb$nLn)oBo1pMb,bK@*"g&-H$o](P@,s"!Q_!t*4[^m#^1@ac5Q#fL;>53K4Y$26sr>H$&=hu%O&5P;l'+A5MJ)c#qW%=1=[(j)A!#Y7_2'jZp\B<A7]ppCTfV4.(Z*2&oWiE;1DUg8+)=m-s"%/Wk/;5+C%rT],O!H_]dkD@GVH,HEZ07@%q>&aEBLm+He5dk2h,jp&-\mpT*9s9Q0,U`S3c38^cH__oSD=5X!Y?IUI;.@lN%.NZcOCdi:YI#j;<$X`&hg3FX\]C;3g&Y/tl]A`=P5[!C=8]<]mg'%_?BG90;![uPC*a.Z3*ML$da?sI2:0CQgHrZrVhmn&bR5"#[j^/p5f#n9dGI&N*0NfgbZk<+)PkKTJ7j+g("'eF$XhCd@IbmRS`:Ka7Wd.HY8/M>l8J3+F]]&'TN+8#Epp$),FJ.qClj8AmVT&4.n%OZW`Ct`K)Zg,*ed`6pOS42,+Kc8!<o(-!I*O>UE1e/5(60*7'Q)=BiN7s.@9JmN$KkZ912Q%P:hsn!\Y=N3?ZEi&Ye57*TKMt&T_2E+7aW*amY0-%Y46/U?(,[blS#iXZLUp1O?HF=%W^$!N):EoSW[8hUP@iC??Sf?dBL*.D0.a1np>7J8Xp6.MN-#IrZ6BiI#i*gUrK_&BbhG,lmiL+b=bC#(X,?;5o,C:K>JA+m]$_$CB<Q.'lK3FO*sn#MrGa<MjP;rb.=9(%B>48<[]QOChNpjY8-A:_40Q!?%BlEnZIm:7R[]b<W-#Q0`J'Y_SZRK0hgni4p/tOV]>Cj\-B4],)j83UMe`'r"u#9#r5?nY7GkNkhCcG!$\?O+45g&pPGY\F7M?2UAVl-cHd.KHIgjZYN.udJd$i+a!)*$M4lq";d,Y1!N>G'\I`oV!1LBXPALRD
 iBo*"kCm1aE;AHD$#IWN&jqR]-YNfH&"X=7Alq<>C)&hE&q2Mjsh+t]&Eub!,%V26eU4GVM_gC4`d5Z=+e:Cnt3_e,\<X$ae:!['*,g`c@!EBR>DL"DQO/p;SVQaF[T5@nW8"//cit)9M'%=,+JYU\o#)@GBe;D`FR\DP=H=<;!&sD_9HsAkok^nfkbhd'TGkm9+DCh+&_D<:[,qg?.o:WLNe!eZsVs15XC$<R3'6]e06].Tio:8oA?Lm5hMmtCd/JVr#0b*;<DkuPo9if0X7PW@mlS,b8F1usjog%NKFS*B434*3t[Ub;=j1_soQaSI+p$o6bFHs)V:9BgQDK8Z_@:o+spq)MnS>;_d/&mkV7s"Y9ZH=%H\"(%dQ3XV;"cGG&chD5?c4_uTTG1-bK*MU[f^o.(H;%bnhB9MW?WSc@g7`#"*enTK9N5aEW*dT5H&',VE`596q_.dCS5JH"GESOM0ad:>R[5E0AeM'5U9-,XFdnr0r\WBiO"\*ALD!"F`!n)N5)-tb:X[?d'FuH)'d+]\r$o0kI/[#ZT7(Hqg$T>O$-0dLpmu0PL:ZEUrL_%Le=X_)M1L&DN6Ca6BLO3^75OJI^1MY.6K4*$HNXr'Bg`t]Vb?sXCQ-G@PoifX$HAfKrU)U2IJ#uj02YM4J(['!^HbnokAU:F]F:jgO$#atgNRLpMp2%hC]Db$fBAWFkH)@t*;=s2'_F?~>
+endstream
+endobj
+67 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 66 0 R
+/Annots 68 0 R
+>>
+endobj
+68 0 obj
+[
+69 0 R
+70 0 R
+71 0 R
+72 0 R
+73 0 R
+74 0 R
+75 0 R
+76 0 R
+77 0 R
+78 0 R
+79 0 R
+80 0 R
+81 0 R
+]
+endobj
+69 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 664.8 284.964 652.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 19 0 R
+/H /I
+>>
+endobj
+70 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 647.6 169.344 635.6 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+71 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 630.4 387.324 618.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 23 0 R
+/H /I
+>>
+endobj
+72 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 613.2 177.336 601.2 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 25 0 R
+/H /I
+>>
+endobj
+73 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 596.0 169.98 584.0 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 27 0 R
+/H /I
+>>
+endobj
+74 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 578.8 162.672 566.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 29 0 R
+/H /I
+>>
+endobj
+75 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 561.6 148.668 549.6 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 31 0 R
+/H /I
+>>
+endobj
+76 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 544.4 187.332 532.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 33 0 R
+/H /I
+>>
+endobj
+77 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 527.2 231.648 515.2 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 35 0 R
+/H /I
+>>
+endobj
+78 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 510.0 336.96 498.0 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 37 0 R
+/H /I
+>>
+endobj
+79 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 492.8 217.98 480.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+80 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 475.6 186.672 463.6 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 41 0 R
+/H /I
+>>
+endobj
+81 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 458.4 175.656 446.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 43 0 R
+/H /I
+>>
+endobj
+82 0 obj
+<< /Length 2211 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%$99\*g%)2U?kgj9V_ar9=\':e>VG3q%eigB7&%"_tS<ZL/U=O=6I3In[b*"]S9Y=#E8H9i_%fkL)2a;1=s(iZ*KE(C!Yt]$b#Qjenr:]kd^)I[A%kP]%h<)2kgLh&,Y"do;IfFtT_WURCYO?n_Bt(PJNI=!$_`u3,%f2Cm[V'GMl`V,+H>1'ek=].&1n>C^;sq.^?gaiL9:"Y5i\c!qrG?D$SmCeG`#Gl:b3;lPLd1ED6g&-FM_+&!Si.'Nmat8K6D'ROd'DSeBi/G4`q8SgM5!j<_FZZ7U<[=K+EOqOiL@*SO8Qlc7D#+Hd)#-VGWhT3<QYgl4t9:(h0Xu$k209d./464KL(qA*<V,q;SsEBb1%?p2(S4^.!1X0>f!WZ]3r5;'72E=k=j4*SCWN'Hbu5?0=ig!9(@LISmG9L<Tr2.1.!.La(ik6Y+A%uOWV$tT]ECLCE+bIUAOoA+jkf@p<FP)UujraEF'qX-&p:E%5qK-L+2epf"AqN_K@UZhs:/Yb]QjZ!:i703fPP-#Xnq^J:I](q.U-$@H.aqV\+fQ&?g40l&p[H*un(OJV>M[=)#`Tc#ZG6dS@1\#cp7er.RM0+FnKed?b]I8oksP&8EWA,e+h"_[_Gg,X<0O6MKkerima-onkHEA_F"#k>`ZZ1XoSXQ7[jrNJKMq>Ok`IjN5$[^S=fJohh_Z["B)EGq%8Mo7KO/!,>n:af:#(9Srm#g$JGMP`i"9Se`^E]E]4rEdU1YZYHV<OaW5#+RcC?MLj)5NoX\&0L(el@K-U$-&mKTM"c!(J6d>)+d$A.cDh<1[,V/@S0/Wl[3:\<F62@cH=USTa8oaClu6,GnRZZ9VZsF@BuGl180V=t-BW/-d$VNG\5q:+QnOM:cK:=2@aWA*'Tm&_HRN=Eafqd3r\Q$+)oXU3*1)DucioasUJ`0WA<rA9<Sa%&_q-OEo&qri[Go_<8uZ,R54g4oauP3a3?X,RL@.ON6;Sk%rPX]dKb
 q-J%9n@UlP2r'gpNu!)4aZ)U(mX1i_rLXdSHZ$;_1'6ok#a1c8(T1IRJ"M7gO)+`rh[Xn(:Ke@V!C(8O"%<(-...@Q>0<Tpo3L15XtY>OXdGG!OaP!=t>C`JPL$E'_m;[2(m_7YiJd9f4-u1YPrb3-_"JZm^4IN^pM)7:C;2\t0<a%+'uKHEBlei.1nrSbnA8AQqMi''@9'E2At)p"!sSq^0I_S2PE5%bNaG%PmRmX(CCZU1mAF,9e>T$ub9E5'JRr*$F6KV/3.HO$V*B)VD1p7P8q;OcUG4f:j:$,BmjDIV)=\*$`6hGRE_0Z+dl[2P(_TT2XO\4qgBl>sh<FBqqojV]T)4l_,8UqSOeh7SosT&1lSM#?VaW$3@+<]di^7!qYm>Js[/h#4"4,apoe]Y%%rKLmd)Qb42[Y\\,eO?/a7FXr(.ZO!7kJT;5#)Fn+d"+.4/orZ-b.2^WBcJ`0nt$qNTrj"^G;P#%eVhE'9BPptFp4VEPLpm+G>$uH9ETgth**$i'!_3bZV:4p0%/ceRnF#CiW1pk,fcI^5,7qa:Ccp"Y#6A'g,P^\ZBD?)AOTR"VCgU-?RCX(Bee0n#@;%S54-mt$G(cd3s+,TgsbR2$O2`%WCEo8`oJjE5k'%_As?%(gR_N9"j+FOr-(If3rRkHH1O`lSH>2io>^!5K%1#j;7Wgf3HBq[sQ!fGVDhCrQ$oiA[H-828D-h%D<QS2c:WS5P(H@ge,4SOlt\3=nKDfVJ&*;F<78Y_>pa#(+%*PdnQUL`-pS5nt
 Kek;hTZl)uEk6/_`I4KtUGA')X<8*8GYAkE+.8jTSPl1kDIeUR-PVYlclN>9>adDKSTmdqSq]V>s\NW4@iC9sb6gf`C3hQ;IO&9)2luDA%70m*?$m.9qmuoa#XiLUfqLlABLQ`?RIeIg7V@bYa^,)miD+E'TIjsb#[g/5Won2&ciJF8_\VJ>aNKODble\GK`E@ADf"?F&jXHV%q[Y_g#j2~>
+endstream
+endobj
+83 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 82 0 R
+/Annots 84 0 R
+>>
+endobj
+84 0 obj
+[
+85 0 R
+]
+endobj
+85 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 446.604 370.228 525.276 358.228 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 41 0 R
+/H /I
+>>
+endobj
+86 0 obj
+<< /Length 2665 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=->E@OI&q8_FTsnoiK[Ka=:__P?h&pPEO>d!cjuh!'D0$q[/gYf'r;&46A8+N-]SduTY!nb"j30I>E.<>Hq=W_/T,Z,0_>j6gREJh_Naqi%7cs<3aH'I@H&`Zck2q_oT:apN^]m$p?bX>e1R?tf^V,[Jc\GR4gDdWVk/'@/l*j,GMqua*3&lEF54$6=&CAP0rCa-IKfBG<b5%\$n6<*)hs((7hRW19Pf5os&j-q]KS/;r?>&P7V0#t.7Z$`tI-rR(G3b\T)DOfLG.ciE?dh'b@C1d@[4Xn$1D,*"1-^WI7?#fX>HtS6MnDp`4ID(;m"`D")/[GpeSn[A;lmI6'^5($0D#/7a>H!o5(/*jWFanAWgVFYFZ`GqC--i]nDSi"<.QpX@)")o#AA\l=Vm:Io$,j*#hP'[gQH=t;<X4FG12&AC2qmjJk\n"Dm`^;PF,QUr)iD&nrm,YqQAs\c1=E)MO2e4WHPTZ,MdROeQYshj#QLP[DPic"s/#?buHEUF@1JjY(IgWU+/Q>f>F^&+TB-a3p?gl]f<"^SC_')b4BD=JtfPc,!k%!on7.:"PAR_enrSD>g:O+eXGQ@h=*nd2hKTGTmi1"m7,`;&S2hQ0<ocMZ>$Q#X/FZ_dhuoh5gifdf0$3?W7Y>d)i4Ye/P]3O22Sb5>)V3.3W[Bo't&$-N[Xo#4rKj+KPE-_U6s*!_5jd^=rc#u+%TNch8VY<>$Vp*BN_^H/9GA;LEX(l2*MZnEETK8Q59-j<OLW';Dp=U["L>t-H%-L'Z?7=;PGuI'gd8EZ(@ZG8SV6G84$fR$b>(#RdUsFp@*7+<hWBKIp-MN7R@!SB@)?%F?AuLmte)%BUUfT"$b,67c2b]JGcI@A9%J(3a02oEkC<+fCk#r.3r)Ej+h+n^:^c'6/YI>7ek0)(;T.m>P/RU>hdJ#5T8=^i*k:'hW&:=G"Y[*W(NJME>1DsbMjWpB[U2C+<<I4,2-5QSb&!NS3#j"SB1;(%-
 ?fo?',+5$D=&CVHd/.7)U]EONP12+4aE:1`2e"Fe)/;_-BABYq/W$7?"[8>EQ1Eb%h@eo:g=<MS?]5@"j,b&m%n`&$%6QV83(/T*I7!@q^@/QV.UY7$BFH<jF[.iX+4#<%B9/<Fr/$.'3&0Z*L(a25,[Tl))c,1e<cJn('XL(;p4%QrZb92PI5=Cbe\:$!ZS-;=G%[XiW4a#ut)(*]ZBRGhK7(Kcdp'r.JOa="S;rc1rd4@A@l"+B^cXJ;IrU1bRg=j?hOMnD2q>KuBO$Gh-%[1bVmVgek,9,Ra`gm;Wha`3khEX&=B]fM?L]4UBf,P?4Q4ms0n&Q)fP&Aqa);_6ce5p'=1@<J?u,&U_N0TNfW5mAQRk>eQ25@k[.[A_`giVl9d\HUqts1/M?$90k913)a>o$4M\7,gh2n!0#3^J1hJ-`/Oa0'/+n3*e#K@dY%>[9*;Q7XoM`>G`*Mmbjeq1]s@)'IL6^7"!@?\KK+-:"5i1[l/B6P?b=sq8$;joSqN0\-\+c=%gfo`J:3eLoT&Gd6rpN`9HSOL>POlXa+?5iB'u;<P//udoVOsY04ho@J30e5)"+^imEP3)`-df?n&2(lBhq:=0BV?cH%3Bl@drIo5!X-u';PpBh"5V0@D_#h)]NO$!fbOtHP8W%eT"a9-:.7VhT(h]l].&`E6u>0$Sfmb*Z&-N*C_3n3f$&I/sgc+OFE`)oPFq7KHI8-l`')!5-.Rpna-UBPA-G(Z*S2C#<LblU;7(jd8/#5^S/WTU^gkCMceljqS=2'7pF<M2MUHTRoYghA&Cg4'DbJ)`ELHcB4Sg-S_UWg3Ct"YQ9X+C2"Xk0#D%Wq+0;pt!T\*>ES2aggXeVG.B)5qMQ;^EUZI*Rd+\R]%`)HD#.Dq[IM_mJif-g6ri7LTjEjKg90'SFP#6<M`tWtreO\3bOR#c6>kB:4cUX/g9-o#g%,:GF,sK_^>4Xoh=Po*bNKu1#_aAih\5,e>TMgO2=rk5g$og%
 b#dW]*DB!RVH-EaA@YqYWL]^T4D)Lf]h<*<eg>Zch[_+Id1>&/"`%-dsC1'h/5-?s6]AP6r9a_/=0MUIo"g&^*B*!p&_GPB]R1o?-$YEV#b=se;3fFaTJL!/tr:u_r'V57#R,Qjf)X_M+DQAljV"@`O,fOl'4uH?G`UXIa#r,\Z02]peb[o4K6/e+2Ct!Lr&X?B:j*<9B>&J;j:i#8(-Oa\]OZ.XQ;!;HsbXdA7pK6O.>Q[88.=LD6*fUQ8=M#n6IKs0fo&HmQc/1ZnB\_RVnrdTL8O6C+7"DR>4&]V<B%PQc7:^HOC"+<UWefmM0UJo_giilm(><B+NOJJj[\\e%-6duh$/@$pNs:YLOhi-4K1TClmmBUSg-&MGPQoa)/k#n!&Y\Nq/:'UTVle&.:KlkSBXP(k^sEMqa_8TW*sH80kQ$:*Qd:fr0/`qZ]QEHRG8mYfW7Q@!<-,0WHP&+40XF]1\+dV#Z>cKRVD.0.R0@&_"ATbXb3^4`)#U'Sn(tOZQrWZoYf9C>EoAH"o-7bhp0rtn2$V'h1`:-*`-6g39#_G=is5o<lmH400%$=;ilF\YE,1gGIo47mQFhRc>*H=GBKu'b-f9'ql"TALrPMo"n4h6$e[B`A/p[;YHPkFn0&%8tel2;AU!m;BB@0G5"e(n[%i^IC&-~>
+endstream
+endobj
+87 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 86 0 R
+/Annots 88 0 R
+>>
+endobj
+88 0 obj
+[
+89 0 R
+91 0 R
+92 0 R
+93 0 R
+]
+endobj
+89 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 168.636 660.8 240.276 648.8 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 90 0 R
+/H /I
+>>
+endobj
+91 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 111.66 526.0 155.988 514.0 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (api/index.html)
+/S /URI >>
+/H /I
+>>
+endobj
+92 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 179.988 382.108 216.66 370.108 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 31 0 R
+/H /I
+>>
+endobj
+93 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 218.316 205.602 401.952 193.602 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://logging.apache.org/log4j/1.2/manual.html#defaultInit)
+/S /URI >>
+/H /I
+>>
+endobj
+94 0 obj
+<< /Length 2142 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,>F1g;&:XAWi2t*]M2DE;gcd#uPMXWonOqX/5moI!=[4U+FkpE^&Jm7/OmOtc]3`8tc$YuUAj5'h<o7dqJ$5f;_p=+gg*aTN71oG-\bZ+[%k(k8m+'O2>lD6[]30RX55&XicSjOChqRtrT6c-,(m$UdhPTrEI)3mm]_#O:I\dkLFL>+o=,U,DC;0WhC/N,Sf$-kV05pI"P!]6tlS(N5jASBjBXu&Eap+2KG8MQpe%qS>[/NqF]r\t^k3X8P:-:%4cZ^(LRd4Th=#*/#5L+bf4#pZ<<hF<,b7SYm+V?>r*T#1+>kTJ-NQQTTHC4%YrA=nY3#di_'Wo8]q2\(oZNa1@j[L^LN7e&Pf=8$s7H)n.OnEdFg<2[GiX'P-7n[.lHWYFt*57FU?Uf!&dr_FdEee_(C7aRg66(.",$.2b>u:WMkYT%O?3qHF_`MbFZBc5Wi(Di_YOJN!Dp#4s(Sad!%&`=ZfsLf:>.m@-,HI]J,B[TqTc3Po?OL(<NqC+fB;b9&f\e#idiB=bkQu$]*B4R#'(D<j-p#2:<Mdj@FRkcNX*=ol(A!B`(k]]$pJ;S8(l@;Gi66BX_sbm^o%ZeA4AYNmcunJ'\dk>VcB:k=Psp5u'J3[pSBP'4P6`dmVg`*LV]9GnN'8g-SG@f?gQUG>BS0U#L>NYZQ95!#Hmu[%b2UY&@eLo;[\Bd4C-l[LG+kgQ<F0a`Z5Ro'jO1KBgcM#IrP/rc9iT$K-fK_n-<fr!Wc(6C"XI3'[*\'ji?!/CU+Xg`6/bFS>4'OF<P:"rWGC!ON6@7`ZXm'lIC%B<CfQ5Jmj]H3k)9Sd^u-/R$EVq(<,EAqC^og^#LuAsBstFJ)Ni_b'H6WWb[fNNgrH5?C<*naQis`&GYURIrkW6sIsQ8*/`$EnK=;aDKOHGdj?l:%51Cqdk+6AS/hK?I#HYE/=NAFMq1M8N\"e'#q[RDefF@/<_YkofoCITG!K$$]j1jgO`&GT20KW/NHda>_J\
 8XTJ/itTJHSrH]5]Yu"A);<@k>F]d:WLM5E,oo-f_$:1c:neMntr^o<f,L&,^EBG\[b<[G5qZZfkgc6A3t$"pJ)uTU,HZ\"-1ng#2G6?%&,g<iKSTL(<Dmeu!?kaRNMNZn_%f["qUZ.A$#M]!h"h8=O=>/-G*.I)>H568;^&JI&[@XuX(GZ3aNAB#]u;16=1GiC77fJ"pKV;*nqUOhXM\2Tj*m)_D/f#P"S.Q6E<Ah(99c$Fp0_Z/@;t^VUkddbXK)>.XflWYDXg,u%GiKSj!ES=1:85iC<n$8W]pl`^tX+=>3`"<Nh#3&YG%ODS-QF[E\[QL,a=f37<B!L5Csfh#&MO&E?0%"YQp"(?ikgA!fPH9_h'qr4@=/]Gas&l%n%9V2d$?E63/NEt4QacV4acbI"N^U#d&FW\j!42YTl4e%[+.,6bs1Eb%T*D?Pt"c[KQr6F;`K^3l%Aol"#grQ'P*!5@u17uscV$Q_M4;7r+rccT.Q?p$I-Yu[5BA'_obqt*op^.s`eTlTP+@MHu#m@jsL\E>?=qYnmd<af:pGddil;BZp'Erpjnn91\EId^+i!8e2.Hq+4!MQj'2)s*c?@jgu*^Y-GOls$52+ZN_Ej-<5L7:tq*aKEF)@A+(QiC.QV]Hm7lFJJKc&r>:S?iC#[ng(3#q\M`[$V^].0*0ZimD3JFZt`pE!7Cag#u2-X[`==$[oP@WYg^%MrRsqr1rq2oF:CX##&6NJpHlB1Z8&mjWZS13$IUU!&0lQ($]8E9\$SWZP:,EGBW3oIh/r%?#o6(\9+E7S89.!0I=c%*TC@dF$I1A"=Do0]W)o:N&ZZ,!YOUSk]@Dk()!ji?Jl=8Ri&KY2KQU&Kp(!lI!p-F]fMXk%Y?Hqhpo_jZIn3nT=%jo67?K":XPuLgriaOM=;qJK9UOkj;&\<3ucji<;0X_%$X.njTpir@(7"OBUEUap<)2B'uqX9QtafWEbHR_><T]Z5<\njWD)#,3$0'F;-'S
 2CHc1^;E"1&*tE`&8`0W!-BmYC&@o/k92Ia7^')gl]prS``-JPcOq8fVVttU`J#lYalg$GeTYL9?31[7'As2t)UtO_dboV`\?%:AYp+WrIiQcf+<EVO>&7d\\`c0>oh4SQ:GK:3+6hh0&Rj?t~>
+endstream
+endobj
+95 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 94 0 R
+>>
+endobj
+96 0 obj
+<< /Length 2081 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb!ku99\*g%)226d&jo9#pW@:gbrk*9q!tWiuZpO#MQ%ccH;q5;;O@K^<k%)A]a7PB+I^\`bXl@&GQ6Q!2WbTX)AbTIpPu"K?p$f`$MQ"L*?KhKDP?6^^E^H1T(f0o'3-R=&0ss`l+_6qd%5g^'fG[*B)eMOZ?@<It$E_d9;;=#!oAWqR'MlP5%qWVrACS+Ic[])qD7.:MA14;;*ULJT/EWH/TQ`O[EoO(24!sBQ0p!=mSY3q9EI8r-nTs2WEhXo7sYsf.BQ,T@1gF^M/J]l"PfYCInc)%lRdR@"X'S8CT][doQ0_&H7f.B6Gde'tP3*JJ5Nf\JRP7h\LNg!Xi34^ZBgAZ5_seC\%%b%mSZT/Q^_`ol)D4)8<hO.kr#^GWD`Nk=(,CPM7*bRGh8KiO@JS]#lqC$=2g%),M6cbQZR7KN^rEP2Y2#,V5'L)jtR6_f/k:Q/6D4_@@K4lMn4i2%iX;NPL7PdN70u6FJD]F;jFdO8Eb^PQ`f3fLQr?r4UCiQGl]R(s=Yc4d!WGmBfi)g0G\D$.p)#*9O!6br?0(c$3q\!_I;*4bBH1$8HBjBBC0p:r7n*r[BsBZ15M\`-sfZc85Tn]'r*nm$#4*)54F*2k\>*l9U6;q[69D[8ha<!DSUN4bp>j!Y$dc0dB9>&S.3n--neT"tE-n/%q9RM/Ad1&I'LU3ZXiqhsii2V`^25Cf.PH]b?)[]L3>NX(=+2+b4J[riGe+&0OWCbp6rgoNb)+clZD:1G6i$)^+p[^ZT_lKeeH#<a=UR>W2?c,k5Ln8pl!._>D(V&sE8hlgGaYB(Q1+.oDU5JS\3RLiOkDP3842A89q,(X82.*]/u88RBWg(1pmKGL`F>BQSgkYn285M.=EI[*U3KMFo<ZYH+(V[pj,-c+9>e"UILrF7kdd1a]<u]arf&ZfXHm4LZ8j0t=Qk`bA=c/*>t>-<!&t+X(f'==Vh-0.mZDaWoo*;!kHVb?8PA$DuaYP]>4Ce[7qnQ)
 !G]HZe[(I0S`Rj5f:A&b13gK!`,6F1qDu5Dr#\acE+&4U!-7M?cbbco;QI$B%DXApDDk',WR<HZ4E']p@5_+R[FZfun0S?oGjs$"K71+QTEXWe:[Pi_EtmG,`\u'J3`nCft&a;gs#n8Wq1<pQG7`1AbI\_<lX<2/=F\/Tj#d6iVM/oRddd13eZ3:,V0JW6!14,eI$14;`@el8cNK<i7b5A*C/9R,n[[Y#aPPP$&4?d\Ys8Ehb>o==qA)+GT&7Mje_p6T'Jbe+IQaC.+t]T4dGh6cDbjd%aL.o3,5\m,/Jm5)+g#i2<'b.E+sD0^i8R;C`OY:G_!4M?c>U`%hk3Ag]'?aM\J!07TqjlJ;78FK"_3oYh4r?N#uF^GFA5GlZ=<YpA(4B-I?&7r]CTX`fHdq;fed530b$C)&1,Pk-ErRHe68N#aA.Tod:PVD)NCR8JOi[abh#3eJQfL%SiqH=h]W..Qd[-C<0ra%7uh$?5HrE__d/!cr,aFtXee=V-b+moeT#9&);$5LQkT%%GXCoINXT=)*X$bjsPN,iQhIl$gTZO*9mUD_:\'#jRs$?[N<W+dH.S%Qn;+Rf\pcmL&#L2YZ:YY"Cg9fa4PNG)!UHCuUJeJRa)L61BJB[5&],jp.-0^Qd=IFX]9]ik8UW>sMDI[)t+6b:9ir>,borh==__6?64s8Pa$:L-:G(iV5tsA6Yg32,C3+l*5S+5KUod8NWHI*\6:%Eu_<`QCc76c9.#TFtnl0mE/&%<+].HD5?p=OS5I43qtLF.ao*#-ft\]NgT$2V[+CNJ&N"KNYXKZ=kLqd0FW]q"SYLp$S!rfP-'s!V%8YOjB0r21t'%oU0^C--uRXF,U"4LiH8J['BY'Uf;(I(b__1+U,/MbTe'o#>5^@:@-A+=1r],g.W>\<VMj$tj0^f\</:-maN</&EV6B%.-TO-\V(.;gClV^9EIS,eCjC;Dr57KQV*>erOXSI(nd?$p^Kms46&#6@NXC"h<_:
 gLI,UB-=*@UW>QJuiJ>$^4</M*diR:2"leR'Y]kHXk2c6[*Ajg>PKX/d[:S,71i&HA=HoQ42ncL%mV`1Spd"~>
+endstream
+endobj
+97 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 96 0 R
+>>
+endobj
+98 0 obj
+<< /Length 2255 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gau0Eh/D%+&:`#5+lm2dd'+/U?!n1Wg(`q3U0B_g=ORLEU2?WfW(Brdn#tX5b<!e1itb:Fe0_$PIGb!`H+c7c]/oiPbcs(qqsH#DM/<D^!<7Cpqu+BU!tmUp`N?bYhp5UnrVJ7OIES>RBXL%14#.cS3EAr@;\I`S[E>U)cW49Lgq'073R;68KIlD&6PS!n[2%msc'.kWBnKFLTTn&;;t+n_=j(P`1c9UR6)Z@r"s(gDRcel4(3#6ZW:"qb7(TnD_D6hpW*^Zr>7Nd0>,r/iZa_a[7^Jo'biDM5Ru&c>RTaD6%FU?sjHnKdh>ni;a,X=]e0/6WYi/`'`li2)-hN`2D3'@FI(.EcabffuG0c6u4-27jen$.#?E)cJo9n>2\UNTPIm!IB2YX8nbDbVs:e]bJ;Y)9(<gV:eH^6MsmQ7o(O_nZ0n[arR>+7N#/PI\"&I$@TSNl"Z^:7Zq)fR,56^tT\L96e-&JPf>c;.)2aPqe/YZ3*60SKTMM6s`]ce<2r260TmAt5^112Gp*`3EqUK[lb\Xj3-1ZHqf-A<V2.9B&f1<Zm^kmZ6S>\p=^O;3YEF+@2^,*AY;ZZJDmnEE,AH\7W]cHV/4YR+=u7apL9%69A]THH3EKV)^BoCY!%]dA#\`0!WHk,RU5/MHm)M99L)Y'7,7njFnY3`cEeSfbDTq2'm:'XJ3*QOaKO$E=3MM&'VV&g@MZMG\<STYJ`.![Vj\6F,S$ZEN-G)aXioLIV:lH2gp<!W2koc(O\=J$/\@[![.fo\/.q'd/1;u?^TlAAXRq]mBg/7h$CcdaJ+3@>mS5l=!S/YbjGb,#r)"NJJ-piO]5T31`\'iRK,^9$I2R%Y/P]1P1bsG8=;fLQEu0[YV^PP-i]M'2pP'dgT@D$V7gPo!u\-tr:/Y3[5f4@L:V)=62c$T5m!eCITlHXR^W3\nlr$D,\2/8MM;UtrBP"=U6r)&&fT2dT]Ylh@lbcjO0_a,P(]//`B]RmN]fJBD@
 8j0Pe@qbfg8ZsJ32ZYqAdmt(jB<?F-^W2_(gFBV#W._2[>'V`Y4eSb-ZR/0tYFjG:PRUbcH:7LNk,7c*hG-W[]S(0]p[=3:rGb03a6K:(#(aoJe(,15e_4(cD#;,JaBY:,?+Z(7V2Ll2W:cKiIXdR)]2)<NB2:R5>b((C"O:c$<l:JnFqeOT-q,8UDT.%n>\pK4*0*$^%*%-Kbf`;u0V5%aDaQ7V(1^k#t@pXiE^:K-0js]$INh)7J9X39]aU`.9c>i;84<)s5M$;\-tjp]]CE.C<MV93jmENm)JI`[;>pPTD4?C8!fAZd%:Q1a)5Ek>,"G=.0:alo@gSNLrSa2f']Hp6#h2"Q?)=/_F6X`\<2AMSMO*%iO?hBR?uh>*J:+L(KK"gB>Q2?ZTH#dU9R[BW=COUH!&O6!j0#BbMdc><FX3Y';.3QpakX@esefT8U!@o^!W!JQu5ZiFU`n7`EbB"%YD]CqrlrFD(,'=J4#2JoD".rd=;8f.U?2X+KI2l`6cYq9jb?m7L%hFY$M_.%[(4[,C`Z8*8<BL`:+r,GX>dS*'XG>j+'M$R<QK>CUA$eILeGUU=PGmN5/[5p\"G.9F1)U#DKA5,Aj27f?r,I*PY=F516;R/nqh9VU?qBe$5R`qOqA%fr%,+PcR1$1j]YO+K9VG]Oe.A5aL<VZQE`a_I`]<SY<7JPcqU9^'`]Rr&QK-IuZ4_1X/Mj42"?GBn9&r]PS)T`j_BH7PHn4j07.4h6B->oJnd%!9n2+15p,80Ee"/:>MYLRPRt7leOPF;&uAB`Z5UOVtV(fI,)NXLJOf-j3g8$*+cY1,6N-7.sT!FMKKnKt6TDId$8,WX1]jf90&>o_\n1SQ%7:LRKY&0PTCnarF;8;Zu&Y,LpM*pi29Q_mO3@*X>'Gi&WNYWWTa@pIX`r8j/h*dU#Mie$_FuI!QjPEM.C=HJ=S?VdW*tIn$euo@K_Rju$D+BRb4cH=*t&7G;7=GmuN3eYQ3Yc?^;
 29?j`@[>,E5+chYlL[[o[Ra?d=%(3kf]WPCk[d_P#l-C+Z&>Fr.k;`RJA)@V6QT0MN4%!\$$I4>D8tiDcd#fJ1.L$@FQWeb0Y3F(E*bmV3T>4X?*;[S1^hc>c%C%s8H$jQ=aC<+0M8DQKcYUKVDN9\j)J96kJnXBD)#="lM$!as0^MW65O1q-]4r>4H_bgXI:l_\gQ&/]i44;V=[G$Aoo34WLEZEgSSQmmkqqN4AGqVB007rI>4\luUhCtM%jrU@>Q~>
+endstream
+endobj
+99 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 98 0 R
+/Annots 100 0 R
+>>
+endobj
+100 0 obj
+[
+101 0 R
+]
+endobj
+101 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 250.992 483.0 294.324 471.0 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 102 0 R
+/H /I
+>>
+endobj
+103 0 obj
+<< /Length 2011 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gau0D?#uMo'RekG_-?;p6pUkiaIAAb1.fruGWVJ)gBS-r="thL_!CZsmff$=C+X]oe&EGU,gaTF8*:rLbF@&Ah.lIs6(JJ_I9=E?ELl33$30ssDnc\t,Er@,_k!:9Di6Pe-htDOBZQc0JMNRFB_\Y&JO:<f=...@PaQBql-7b54dpZkJI7mZ>PDd)n8PT9s(,"f5:`4uc)8<MaQN7WR`5AW62kI@/Ujb'o'LVtp"D*:3ogX9Lb(r6(0PJV<2'SOcW\K4-30Y?!t8(6X$OR^"!.kpOu1QLmK%lA``q81A4UaY:6F.r&<FN($P,Fj*Bd3;?`-0:2Xf)mUDR$l6.8I+tpdgTIC?kkRbi`?TO1djlHN2D1S)/o0*fjiM$%QH@%TMWn>RG6[FOq,VR0TX.L2#>!Y9RPpqn!-Lc[-0/cYC?oN7$I.k0&b$K8]^cR$nO`J)r\ZZ*ZL)@@BCMH"\Cu_T8\#T53-"#^q8i7o>ib&qOn0s9qqo,7B:1D;'Ne4gDci(c#K_`OAI=k)DL]VR"Q,"r4Xcr:f0oL6=No9&o76d0Y'f%eBI(A[Rk8&H^?Q5\\WT`8Zp>hVB8-j5hQhi:!0YpQoh(1ILm'7EdI[XQ$iN5`u0lYdZ=$S+/HOi6i8s1Gq:'H`*^!uXN\EAO_>[)Kn&DV_\#hZ3_NXo&LGZA?D-drj)HBk6t/>NmHE7NJacD,@kZmImg/pQ?k
 \f%>:nJ-j$)cGSsfM1<,FYkX6i*^C.VFZ/^ACVJ2V%*MHeMo8trgZC:6hS[7%#4cfKX;()&088:2X3_qCTA*Y2^ER\Jt\#<8$krCtlk9!?R\O9_HqIZG>o(=oU6_C-0eIa1]#>JeDg-jf$_i$jh&U+`QVD`KPrT*29O0R4^+]#nOZkSa9Q50=:?N9B3WS3r4#QpL6di_?(n7.."BV]loqEAb$JpS.#9.nVpsf2gj\?qBc;HoY<t>1J4hT[484lJSA!)7Nn=LB?h!S+2"7-o.>)EUWMua&:iDm;Q(S<>dt0qU9rFVf\D-)kOaI5\VGV3[Ds8.s87/X&h1m/<nF_e>%%9_&6ig#cP8;O'm.;'0*B#>N+Qpd3)^n+Yusk;.<pP]A[/ghT,qe<!'t"DL$PDNWU%eZ[`l,+7GS:,rV%U"s(3gj1D[`mBY-\K>ZkQ'_5k>>p5U8IGCA0I2:3jAQ$"3^3]\PXOskUs*YM,D;dK`3cCA*..P(^h(l=n1S;qVdPWS8!$$10BVDM<K-UhH_h(&Rj@2`]D-B*8D.L-/em3'l(BD'>bN2R[e7jJrp*l2nH39p98?d>6UeV'&iS;'_LBue\MJGYP7ip8`1ko2NT5$LR+s7>GoN%8(W.fP7Om2VG6_cm;[`,TQJ2jf8LbttS%"mTL_2uU].1g2!G@27l@iktQb:9iKN^KPjC3!Ti;+.;e$kQ>*[%cqA^iCsHZBj4b.D0i,iE$H_WDh%\h-Rre2nAl7/jb7i*C$7JWU4:O%-ZO+HD9LiV4iJF<[e@cCX"hF/kC.re"2mj$=!jgK<JEZf#JZPM2;1f&g8s"1(ts#+B>p^+<an@=#<_ZJ`-R$[!*TQOe$mhg)MLJg&$o*/f?lrk7^.\d?rQ6d<&-u-6'+)74E82\tejLM-/sHpiA@CQglhM+s6`Wj'$A4]l1i$4.mJb0O:b_5j'20h.Z3s_K>-LeNd6d^Qs/W9,dF*!kHI.mfEVd)rkGp%!sMSk<iQ
 qr2^%Br<ob=YqH~>
+endstream
+endobj
+104 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 103 0 R
+/Annots 105 0 R
+>>
+endobj
+105 0 obj
+[
+106 0 R
+]
+endobj
+106 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 250.992 582.5 294.324 570.5 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 102 0 R
+/H /I
+>>
+endobj
+107 0 obj
+<< /Length 1876 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%$gQ(#H&:O:Skb18*LThtF%uLG!2nbkuihn\_cq:Z66m`q3>42[opl=c0=^#[IaK?t;a>7I@c4';b^O*<EI...@L>:N<,F+Kb$<$JoW[=T-'UeUn;V.ucNQOQSX._LWH)=-BtZ/&Z<"9DT2lc)^K<-jTTqXa\V<iYEV@.t^Y\2Cbh%Tm\G)93>;9:aCDJ`NahZ1,/Yne0c+-D7M-[jsN\EEgefq.T;(HqObq<3s?'hbrl5*<`Ro"ai,A_o,WMjeZF*1XGY!L`][iCK.>p5PPOJ/VQR\Nt,ZoY=ZED!Q(8A=Zg0;X-Zr64gR'L&RAJ*(bSD[2VO/YtnFP1pid5k]O,c'j-a[V>F:io,4:W"@Ugk&"+86%MuC7jteAZ4-tXA1ZP"[n9^A*bKJH2ePjX6qMCOb%FspKnEo6_l^kf8h3l`D$j(7<+go=iZ_'I0Us'MQWt,71F`5],5s,B&B[3[p[gmRI!JX0Vc;dZcma:/QK<:uq-cUa+iKYKb[uZZaNnO=js.(>Z2'1Q',_9-2mns]/8srnMeSHUdg<>Q&[3G?h%=hB`tiJ0:PCfE.SI!YapD6j:`@,\-q[NMacr#P1YC*V'HjIlR3b;V+?eqFnUTe8Y5.fma$LDeQ_)JKmWp;W>1Mn$O01TXPX9>!qlGc<AmRh%co1.+o"6ns]04ZS+1Zs_P)+G2gu3/S:E2kHSb8<kh`9M?i5Nep+4+O^*[D:S)cpq]%abd9GJHPoOrB4`6;=N+_.!$*oMK5LB?DD"*seDY"dIHS84Ac]6$Hui!u'YM&kG521gupU,7oJV?E[:['^Vs;EW&%cl&h`AHp(JT&0/]aENXo;VQ5?7%>k<7p3Q"ig7(q^-<Pe;YI792aKb]?>\GMiV=.Kc`S055<*!^F"<OI5[G
 :o8%2Zke]S$@h,<Q[...@Bci>4XZEUSIs:rrN'0)#X~>
+endstream
+endobj
+108 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 107 0 R
+>>
+endobj
+109 0 obj
+<< /Length 2422 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU5=c_;q&:XAWcs'Ek@79C&hibF;U'K%'/dh5qi(C@.6kWK?lSuYn,KZ6`/CMqS#dQ-9EB*,?hp?:cRr<M?Il?(B_#JVJXijrs$q'gU#Q<geJJYQX2KEQo4DoW$]`%1$5PA7@qs-31fOH(NrUiP9DuiaXqi*](EoA*a`goE:6J$F)L%FJc1ojX)lMA`=FC'eig5Fcac&4uVqs;\[ZH[JOJ%a0KoMV8<D)3j")Zd'7gA-Z.h!;P]Q)EqnTk&26=,j5P'RH4EWbf"iVUG:Pa"r%uX7Ea+qu4TOhdcZ9m%mBds6iI31m@OO5ICDUW=!QK#V)<EQ3ji=eof`[`;7`NCF.Hl7eKn3jITNk2uXgKI/U:?!e%K-pU<g]p(2k7F"cse-Woen3HK-5cksq]27h=ZRCMYb`CaZTf4<tDX"A<0UbAj!0UTHr+-F3@lOW(CY-Q-LFH)O%,#?5fV]cOSF4=K5FpF(qHZ_hc(91oBpO[7tip1s']CFsPZS81:RSm1Z7!g;W4;(?CD!Sdai7-76Y+i#)3%:+E.YA$`:ib(Lm="`n'7+iP[97KGUWQ'Z1+)DR+f5H^`aXZZ,-]<!AN=O#2.KIH+)\Ae/T&GJ?\-h5[u$/fP&th@"mT+EDel2n.2?a`g*ITmFSgL[&KSSmM^:LVR)_QDHU[K3cXY_aI2#IL=^^]/\,G>24']l#GQ@M.7=Y/Y(Z%:#B0dg,SsSd7U9/"[5SGB(6NCr]dKtb@di+tb?$O626l/;C[^[*48)e9Vq:@Qn("un[8%O-#fN^.$HEQ$Kmo#>"36rWbF\`I!)kc.`Ge#5jB9\&Y1r_l"ScrBFD4%Oap`qH$<Rj--9k33X#"5tC7tVJnG/i`4,4$kc.Z"?sRS&pGfgE&-rtc23P'&P+d9cLNDd598,sIN3[J#D,(]&ADHDn^,p8"RIk.%lm,C9eX,-Ap?9<UWYH/E4ZN_D0lG9T\]Athj1=KiWYn1nDn<?aN[`3=7.6qH^@:D
 2=M_-@m2iaUJr"u]^c)JB=9V3GgeR`umhK?h4G*:h\81\O5%bHnnH)'LK]k]M044X"-bCMBlb75WH.(^s8'.-o(XE7e@\Vsg0"cOnX5iiBrlDo[0P?rIl!(0tT11^'Zra.o>[!Oi_##l,(Ensc%h%0nF369g!J&b0uj$saWQ7RF,:%t?`NTFJ@$B0:e$L%tYn4pkU@)5mOBaP;?,*#$n,:QVc:1.&&q65Eq11h[*+'2""H@SI'%(%co&*KUIoBlhS%+W+-QFjC5qC]p$"/mgd+*6+W+L`/JO=El^1-hr3EaLcAP,^$DW/L>-7mWtIURjfB..GMkd?qDW*e44ZF8m<#]2#@@?F2Mh=/<W'8Fd[`%cp"Kb4H21<<?,\bf2TI#nUX?ZQ1#lc+,J6mOsS&K(f9$dmTp0M%`8#K82,Nf]mK7_#S#lZhTD3oDAb[U#So-]@7W7^;*o>gj[%ifBMSss]Y@*2AZj36A"/T>GTP)h(MelMBsn7-6J<cs>%l-?k^-d)85]P5NG))="0s("En6e8KN)6KP>#kQ\a0W``M%:[VcP:F'^MnQ8Pai%8`jKtQNQMEjglptB+$t]$jZ<e[7@OY?lO=eCQAj`60qp[9a$X-(q+S]Ll2ZS>.<Dsj"r>s(_n^Es$dm!c;T)rANVrmQ;o^DBiPB02cqSd$+-+u9Qq2FD;=<"V'D^R!X`BP7%!K*i>TgmN.X08(s^$L3\@&c0Jd4%SEKa%f6AE5Ml_S?"_q(BEq;)I1tW8QHA)dWl7HM=,`,o(-(dt5\pNQK<!!^J)2XuF`$j@]4$4c:E_rcV7;)(a.Vs+*<BkF2r5W3JLo8+l1dDH.DcZ-sa48_b"o%nqW:HWn@Na-*gVAWP63D!WX:tRZ<!Em&@)<D@[oAC5e0U]n9;PN*7EkYEPP3KFLhka#r*'#C4/uDRHKY##mQHaj???KT9JBoocfrE%_L-!\ir&Yug$ks?%8D@0hA9h`#VT_^IpM4I9KPQ$S=K<
 urOHaH%h?1o]S`'k.U[^V<$$Oo)%OYNQO.RlSq/Fh\$plu#07)?8NPQ08NSC-BVl,+W>q*39S6=!Oq*0"q7T\ed)90^.?`I/ITY>cVVu"H]muU\_T@E^j5E,jdWlYqZ<[1<H.(0<mZRS?!%)@1]@($eX#971"!<KXBN4+U70ZK!BJc;kqYOD8OK-mI,RU?W]ogLcN!Y.$!'Llg&mNi`<.FG)[/'Nuak+CdJaVE!(I8&2fG^XB-t:pZ']<!H0um.+HM4K\TFr(!iSn]5@Sq)a2Tu[tn*Br&fA*=Ken8uEdH,"$o).`#mNGN=4%9Ql=@@Ug.Zam3ZXMe151mhE=^UL[>\AiP:fpTM46S=0n9H<b2kF(ebT7R=.U\uarEesIdj=MD2\3KPOeXQXL:3(XHs@(m2e]=J:6;d7F8l;uC;CV~>
+endstream
+endobj
+110 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 109 0 R
+/Annots 111 0 R
+>>
+endobj
+111 0 obj
+[
+112 0 R
+]
+endobj
+112 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 175.992 210.456 236.64 198.456 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 27 0 R
+/H /I
+>>
+endobj
+113 0 obj
+<< /Length 1951 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,9on$e&A@sBk`uq8Ykj[@Sp&TLU+)OK]*=-Nc%20oS$4/!UpQ0ZlT:7\F"!7*TEmFe/Whi-3:l9pGH8]pe`-0En@%i\YZUb?pX1mPs5To)IM:f\aca`/bZc`L?ei=W+\G=X56(UGnq%G0X>UH9R,u6#^^L(QT:2Q$aCB-gHQQVdV@\aHWb"p%SbFJTqCc/Vn:T.VZ-gmTa_)sZjX5!>*\8TR9/A*GOp(d;b%eun'aAT3`V!nLH[PfsLgLu\0WBQ5R%&Qg'J&iiIF?Fn2H!Ko&>=AlLTT.7/U!/RhrN[FIYKgUaDsUpj`e>3BN7O,GpdJmhGH`6BXQmF(+jtLEfXJ^;\U"]q.b^j\2d`a,/:^s@^GRV@KB&_9sHCR8k(>[jpg%iY/S]35k:p1f;T<T>+hjpQ*f4"HP!>X@n3/Z($ttD<(f36jcUlM*&nV1`,7L0\`B4hPK")8X;2Q324-hSEEal3j4NsK>$VL6gAY*0mN!`k_jdPLRd^BpD"tH&[,h@k^YooNCaZe$(H,#fK;#/QBT[M5_&M#4^b!T]U*9h2-#$+P9S?<L!jU[WU'7S,@`1smkEr!DQscJa;f#h%`Ztj]C?<H=i/E;-DhP3+;rD=[hXU^ad=KGY:K+D9WA27=bY8-qjK$J';c>Yr50?HEaa(QZ[P&24<cX)l+->O*5R8ZO45&9^8MYDg)[t=#W[TW"ck^g:(Ml4uRH"b7%_P(,iIlF$:3N#5>i#fb=uRIQGjO-"kg7kcYeM"\NbG=cDGV[jd^#c+f(5pOBqNoh;?e[PfQ.h=s"d9iPN]6WR)D]G2QBrg6;gMA,6C8T#GZQ8MW+5=U[00#E;tU%UU3@JQT<099bl$''Q\)FC?P]^XF2V1VZ"o6_PLY?H%cDf`G=<qC-!+n8?o="mHTs]m5^H_^_^3bA_t-pNc?,-.WIq<n*)XYUE-*74];2bp*'g_BrhKt?T9Fq!*ZtSiB=DsA,7^7(5e$p:b%QMLpn`*cQ
 T#i:_KA)SC\U^kjfb2:n;QCUL`YhQks$sjc*^%SlG2_$cX&tBO[A#RB_<FOR]cKF]R;:O$!?(dQBk-g>c7T[5V&41Z-lt8dW6"bQVkAUJ*2VMd+9V4.r7qTE4FlKIfD1Ppjob\W-h8e5!iE10-0?7C(5[_i8j]P<!SmP[`JhKSLRc(i'9\eiMT=cM!f4[kE3A`^Er:LNeX,R!5_r8+1p'mDGui*^9OJqag(fqiOp#G;EY3+qW2kfcahLU'$>o:0pWm@,EB-1RPiuI]t>m5AktaZ%p:H+G0uZTY*euQ@MAB"M[d"8J&CZ;X?1L__Z'^1:/G'`ckd'IAh+Cj,O4FD.oc'mhnk9,HOD!AiaM$Q0;WtLJ'/:/lHbGCpD,\9l`+].<pIW;-0.l?it.9*d%PC<6q#@F`IM+0Wka]6c3m1eI7%REj=ERTEW6kW*F.pdmu86F:1s`)$11.fum)WSVZSUEJqN6od@*&joOe1j3sTPp17l-@>^i8e's?t2LKLQ\G=^K"`(H6GLCRT72s!%1/*L><f*Rr4In6<@]uhkg;f!;=YUVtF/ulT/0/RZK!oj]b.`jKV3Q<l6jt4qguLnQ7cGO1B7pE%d73P_oQr\Jc?0&q^(h'C9+o:uF>"I8,W)Y-YI3"B%?Bb'&r\F['P->j*3Qkff`+SYN6MLJ`>.aNGhRr\[a.K`pJ$Qk33ldV9]`'lUsgi]E<7[*k9eW<mCFQrI(IN04ZK_cdfT;lR<TV98e<Uf@\rfBbK)G36TAYCT\k$EnH9)^=3>d^d.*:X:$XHDLWB^LJ(8o&0;!p8/ad6)Y$gZn!]^J!GfuK8g"Dq:F1P_["Yg&mpgYFoP)!21i61%(+j2_4Eff8=3?iC\i?\5BLNNM[@1qd$kkhn3SZ-WLg`@fj*QLrbdiQgm4T9@3#GQ7cWWZ$8lZsNZ[aE&M,[>i@<"^4arr>RUQeq~>
+endstream
+endobj
+114 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 113 0 R
+>>
+endobj
+116 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\104\0\145\0\160\0\154\0\157\0\171\0\155\0\145\0\156\0\164)
+ /Parent 115 0 R
+ /First 117 0 R
+ /Last 123 0 R
+ /Next 124 0 R
+ /Count -5
+ /A 9 0 R
+>> endobj
+117 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\61\0\40\0\123\0\171\0\163\0\164\0\145\0\155\0\40\0\122\0\145\0\161\0\165\0\151\0\162\0\145\0\155\0\145\0\156\0\164\0\163)
+ /Parent 116 0 R
+ /First 119 0 R
+ /Last 121 0 R
+ /Next 122 0 R
+ /Count -2
+ /A 11 0 R
+>> endobj
+119 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\61\0\56\0\61\0\40\0\123\0\165\0\160\0\160\0\157\0\162\0\164\0\145\0\144\0\40\0\120\0\154\0\141\0\164\0\146\0\157\0\162\0\155\0\163)
+ /Parent 117 0 R
+ /Next 121 0 R
+ /A 118 0 R
+>> endobj
+121 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\61\0\56\0\62\0\40\0\122\0\145\0\161\0\165\0\151\0\162\0\145\0\144\0\40\0\123\0\157\0\146\0\164\0\167\0\141\0\162\0\145)
+ /Parent 117 0 R
+ /Prev 119 0 R
+ /A 120 0 R
+>> endobj
+122 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\62\0\40\0\103\0\154\0\165\0\163\0\164\0\145\0\162\0\145\0\144\0\40\0\50\0\115\0\165\0\154\0\164\0\151\0\55\0\123\0\145\0\162\0\166\0\145\0\162\0\51\0\40\0\123\0\145\0\164\0\165\0\160)
+ /Parent 116 0 R
+ /Prev 117 0 R
+ /Next 123 0 R
+ /A 13 0 R
+>> endobj
+123 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\63\0\40\0\123\0\151\0\156\0\147\0\154\0\145\0\40\0\123\0\145\0\162\0\166\0\145\0\162\0\40\0\141\0\156\0\144\0\40\0\104\0\145\0\166\0\145\0\154\0\157\0\160\0\145\0\162\0\40\0\123\0\145\0\164\0\165\0\160)
+ /Parent 116 0 R
+ /Prev 122 0 R
+ /A 15 0 R
+>> endobj
+124 0 obj
+<<
+ /Title (\376\377\0\62\0\40\0\101\0\144\0\155\0\151\0\156\0\151\0\163\0\164\0\162\0\141\0\164\0\151\0\157\0\156)
+ /Parent 115 0 R
+ /First 125 0 R
+ /Last 159 0 R
+ /Prev 116 0 R
+ /Count -24
+ /A 17 0 R
+>> endobj
+125 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\40\0\104\0\145\0\163\0\151\0\147\0\156\0\151\0\156\0\147\0\40\0\141\0\40\0\132\0\157\0\157\0\113\0\145\0\145\0\160\0\145\0\162\0\40\0\104\0\145\0\160\0\154\0\157\0\171\0\155\0\145\0\156\0\164)
+ /Parent 124 0 R
+ /First 127 0 R
+ /Last 129 0 R
+ /Next 130 0 R
+ /Count -2
+ /A 19 0 R
+>> endobj
+127 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\56\0\61\0\40\0\103\0\162\0\157\0\163\0\163\0\40\0\115\0\141\0\143\0\150\0\151\0\156\0\145\0\40\0\122\0\145\0\161\0\165\0\151\0\162\0\145\0\155\0\145\0\156\0\164\0\163)
+ /Parent 125 0 R
+ /Next 129 0 R
+ /A 126 0 R
+>> endobj
+129 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\56\0\62\0\40\0\123\0\151\0\156\0\147\0\154\0\145\0\40\0\115\0\141\0\143\0\150\0\151\0\156\0\145\0\40\0\122\0\145\0\161\0\165\0\151\0\162\0\145\0\155\0\145\0\156\0\164\0\163)
+ /Parent 125 0 R
+ /Prev 127 0 R
+ /A 128 0 R
+>> endobj
+130 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\62\0\40\0\120\0\162\0\157\0\166\0\151\0\163\0\151\0\157\0\156\0\151\0\156\0\147)
+ /Parent 124 0 R
+ /Prev 125 0 R
+ /Next 131 0 R
+ /A 21 0 R
+>> endobj
+131 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\63\0\40\0\124\0\150\0\151\0\156\0\147\0\163\0\40\0\164\0\157\0\40\0\103\0\157\0\156\0\163\0\151\0\144\0\145\0\162\0\72\0\40\0\132\0\157\0\157\0\113\0\145\0\145\0\160\0\145\0\162\0\40\0\123\0\164\0\162\0\145\0\156\0\147\0\164\0\150\0\163\0\40\0\141\0\156\0\144\0\40\0\114\0\151\0\155\0\151\0\164\0\141\0\164\0\151\0\157\0\156\0\163)
+ /Parent 124 0 R
+ /Prev 130 0 R
+ /Next 132 0 R
+ /A 23 0 R
+>> endobj
+132 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\64\0\40\0\101\0\144\0\155\0\151\0\156\0\151\0\163\0\164\0\145\0\162\0\151\0\156\0\147)
+ /Parent 124 0 R
+ /Prev 131 0 R
+ /Next 133 0 R
+ /A 25 0 R
+>> endobj
+133 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\65\0\40\0\115\0\141\0\151\0\156\0\164\0\145\0\156\0\141\0\156\0\143\0\145)
+ /Parent 124 0 R
+ /First 135 0 R
+ /Last 137 0 R
+ /Prev 132 0 R
+ /Next 138 0 R
+ /Count -2
+ /A 27 0 R
+>> endobj
+135 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\65\0\56\0\61\0\40\0\117\0\156\0\147\0\157\0\151\0\156\0\147\0\40\0\104\0\141\0\164\0\141\0\40\0\104\0\151\0\162\0\145\0\143\0\164\0\157\0\162\0\171\0\40\0\103\0\154\0\145\0\141\0\156\0\165\0\160)
+ /Parent 133 0 R
+ /Next 137 0 R
+ /A 134 0 R
+>> endobj
+137 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\65\0\56\0\62\0\40\0\104\0\145\0\142\0\165\0\147\0\40\0\114\0\157\0\147\0\40\0\103\0\154\0\145\0\141\0\156\0\165\0\160\0\40\0\50\0\154\0\157\0\147\0\64\0\152\0\51)
+ /Parent 133 0 R
+ /Prev 135 0 R
+ /A 136 0 R
+>> endobj
+138 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\66\0\40\0\115\0\157\0\156\0\151\0\164\0\157\0\162\0\151\0\156\0\147)
+ /Parent 124 0 R
+ /Prev 133 0 R
+ /Next 139 0 R
+ /A 29 0 R
+>> endobj
+139 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\67\0\40\0\114\0\157\0\147\0\147\0\151\0\156\0\147)
+ /Parent 124 0 R
+ /Prev 138 0 R
+ /Next 140 0 R
+ /A 31 0 R
+>> endobj
+140 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\70\0\40\0\124\0\162\0\157\0\165\0\142\0\154\0\145\0\163\0\150\0\157\0\157\0\164\0\151\0\156\0\147)
+ /Parent 124 0 R
+ /Prev 139 0 R
+ /Next 141 0 R
+ /A 33 0 R
+>> endobj
+141 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\71\0\40\0\103\0\157\0\156\0\146\0\151\0\147\0\165\0\162\0\141\0\164\0\151\0\157\0\156\0\40\0\120\0\141\0\162\0\141\0\155\0\145\0\164\0\145\0\162\0\163)
+ /Parent 124 0 R
+ /First 143 0 R
+ /Last 149 0 R
+ /Prev 140 0 R
+ /Next 150 0 R
+ /Count -4
+ /A 35 0 R
+>> endobj
+143 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\71\0\56\0\61\0\40\0\115\0\151\0\156\0\151\0\155\0\165\0\155\0\40\0\103\0\157\0\156\0\146\0\151\0\147\0\165\0\162\0\141\0\164\0\151\0\157\0\156)
+ /Parent 141 0 R
+ /Next 145 0 R
+ /A 142 0 R
+>> endobj
+145 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\71\0\56\0\62\0\40\0\101\0\144\0\166\0\141\0\156\0\143\0\145\0\144\0\40\0\103\0\157\0\156\0\146\0\151\0\147\0\165\0\162\0\141\0\164\0\151\0\157\0\156)
+ /Parent 141 0 R
+ /Prev 143 0 R
+ /Next 147 0 R
+ /A 144 0 R
+>> endobj
+147 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\71\0\56\0\63\0\40\0\103\0\154\0\165\0\163\0\164\0\145\0\162\0\40\0\117\0\160\0\164\0\151\0\157\0\156\0\163)
+ /Parent 141 0 R
+ /Prev 145 0 R
+ /Next 149 0 R
+ /A 146 0 R
+>> endobj
+149 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\71\0\56\0\64\0\40\0\125\0\156\0\163\0\141\0\146\0\145\0\40\0\117\0\160\0\164\0\151\0\157\0\156\0\163)
+ /Parent 141 0 R
+ /Prev 147 0 R
+ /A 148 0 R
+>> endobj
+150 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\60\0\40\0\132\0\157\0\157\0\113\0\145\0\145\0\160\0\145\0\162\0\40\0\103\0\157\0\155\0\155\0\141\0\156\0\144\0\163\0\72\0\40\0\124\0\150\0\145\0\40\0\106\0\157\0\165\0\162\0\40\0\114\0\145\0\164\0\164\0\145\0\162\0\40\0\127\0\157\0\162\0\144\0\163)
+ /Parent 124 0 R
+ /Prev 141 0 R
+ /Next 151 0 R
+ /A 37 0 R
+>> endobj
+151 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\61\0\40\0\104\0\141\0\164\0\141\0\40\0\106\0\151\0\154\0\145\0\40\0\115\0\141\0\156\0\141\0\147\0\145\0\155\0\145\0\156\0\164)
+ /Parent 124 0 R
+ /First 153 0 R
+ /Last 157 0 R
+ /Prev 150 0 R
+ /Next 158 0 R
+ /Count -3
+ /A 39 0 R
+>> endobj
+153 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\61\0\56\0\61\0\40\0\124\0\150\0\145\0\40\0\104\0\141\0\164\0\141\0\40\0\104\0\151\0\162\0\145\0\143\0\164\0\157\0\162\0\171)
+ /Parent 151 0 R
+ /Next 155 0 R
+ /A 152 0 R
+>> endobj
+155 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\61\0\56\0\62\0\40\0\124\0\150\0\145\0\40\0\114\0\157\0\147\0\40\0\104\0\151\0\162\0\145\0\143\0\164\0\157\0\162\0\171)
+ /Parent 151 0 R
+ /Prev 153 0 R
+ /Next 157 0 R
+ /A 154 0 R
+>> endobj
+157 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\61\0\56\0\63\0\40\0\106\0\151\0\154\0\145\0\40\0\115\0\141\0\156\0\141\0\147\0\145\0\155\0\145\0\156\0\164)
+ /Parent 151 0 R
+ /Prev 155 0 R
+ /A 156 0 R
+>> endobj
+158 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\62\0\40\0\124\0\150\0\151\0\156\0\147\0\163\0\40\0\164\0\157\0\40\0\101\0\166\0\157\0\151\0\144)
+ /Parent 124 0 R
+ /Prev 151 0 R
+ /Next 159 0 R
+ /A 41 0 R
+>> endobj
+159 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\63\0\40\0\102\0\145\0\163\0\164\0\40\0\120\0\162\0\141\0\143\0\164\0\151\0\143\0\145\0\163)
+ /Parent 124 0 R
+ /Prev 158 0 R
+ /A 43 0 R
+>> endobj
+160 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+161 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+162 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F6
+/BaseFont /Times-Italic
+/Encoding /WinAnsiEncoding >>
+endobj
+163 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+164 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F9
+/BaseFont /Courier
+/Encoding /WinAnsiEncoding >>
+endobj
+165 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica-Oblique
+/Encoding /WinAnsiEncoding >>
+endobj
+166 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 14
+/Kids [6 0 R 45 0 R 51 0 R 58 0 R 67 0 R 83 0 R 87 0 R 95 0 R 97 0 R 99 0 R 104 0 R 108 0 R 110 0 R 114 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 115 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<< 
+/Font << /F3 160 0 R /F5 161 0 R /F1 163 0 R /F6 162 0 R /F9 164 0 R /F2 165 0 R /F7 166 0 R >> 
+/ProcSet [ /PDF /ImageC /Text ] >> 
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 85.0 488.266 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 85.0 194.669 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [58 0 R /XYZ 85.0 343.4 null]
+>>
+endobj
+17 0 obj
+<<
+/S /GoTo
+/D [58 0 R /XYZ 85.0 183.747 null]
+>>
+endobj
+19 0 obj
+<<
+/S /GoTo
+/D [67 0 R /XYZ 85.0 429.4 null]
+>>
+endobj
+21 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 328.028 null]
+>>
+endobj
+23 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 289.975 null]
+>>
+endobj
+25 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 251.922 null]
+>>
+endobj
+27 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 213.869 null]
+>>
+endobj
+29 0 obj
+<<
+/S /GoTo
+/D [87 0 R /XYZ 85.0 332.708 null]
+>>
+endobj
+31 0 obj
+<<
+/S /GoTo
+/D [87 0 R /XYZ 85.0 294.655 null]
+>>
+endobj
+33 0 obj
+<<
+/S /GoTo
+/D [87 0 R /XYZ 85.0 182.602 null]
+>>
+endobj
+35 0 obj
+<<
+/S /GoTo
+/D [95 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+37 0 obj
+<<
+/S /GoTo
+/D [104 0 R /XYZ 85.0 214.828 null]
+>>
+endobj
+39 0 obj
+<<
+/S /GoTo
+/D [108 0 R /XYZ 85.0 362.28 null]
+>>
+endobj
+41 0 obj
+<<
+/S /GoTo
+/D [110 0 R /XYZ 85.0 174.256 null]
+>>
+endobj
+43 0 obj
+<<
+/S /GoTo
+/D [114 0 R /XYZ 85.0 322.5 null]
+>>
+endobj
+90 0 obj
+<<
+/S /GoTo
+/D [null /XYZ 0.0 0.0 null]
+>>
+endobj
+102 0 obj
+<<
+/S /GoTo
+/D [null /XYZ 0.0 0.0 null]
+>>
+endobj
+115 0 obj
+<<
+ /First 116 0 R
+ /Last 124 0 R
+>> endobj
+118 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 85.0 458.213 null]
+>>
+endobj
+120 0 obj
+<<
+/S /GoTo
+/D [45 0 R /XYZ 85.0 297.641 null]
+>>
+endobj
+126 0 obj
+<<
+/S /GoTo
+/D [67 0 R /XYZ 85.0 243.347 null]
+>>
+endobj
+128 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 577.0 null]
+>>
+endobj
+134 0 obj
+<<
+/S /GoTo
+/D [83 0 R /XYZ 85.0 149.416 null]
+>>
+endobj
+136 0 obj
+<<
+/S /GoTo
+/D [87 0 R /XYZ 85.0 409.28 null]
+>>
+endobj
+142 0 obj
+<<
+/S /GoTo
+/D [95 0 R /XYZ 85.0 568.147 null]
+>>
+endobj
+144 0 obj
+<<
+/S /GoTo
+/D [95 0 R /XYZ 85.0 309.865 null]
+>>
+endobj
+146 0 obj
+<<
+/S /GoTo
+/D [97 0 R /XYZ 85.0 150.99 null]
+>>
+endobj
+148 0 obj
+<<
+/S /GoTo
+/D [104 0 R /XYZ 85.0 538.3 null]
+>>
+endobj
+152 0 obj
+<<
+/S /GoTo
+/D [108 0 R /XYZ 85.0 258.227 null]
+>>
+endobj
+154 0 obj
+<<
+/S /GoTo
+/D [110 0 R /XYZ 85.0 475.4 null]
+>>
+endobj
+156 0 obj
+<<
+/S /GoTo
+/D [110 0 R /XYZ 85.0 385.628 null]
+>>
+endobj
+xref
+0 167
+0000000000 65535 f 
+0000050653 00000 n 
+0000050807 00000 n 
+0000050900 00000 n 
+0000000015 00000 n 
+0000000071 00000 n 
+0000001365 00000 n 
+0000001485 00000 n 
+0000001629 00000 n 
+0000051052 00000 n 
+0000001764 00000 n 
+0000051115 00000 n 
+0000001899 00000 n 
+0000051181 00000 n 
+0000002036 00000 n 
+0000051247 00000 n 
+0000002173 00000 n 
+0000051311 00000 n 
+0000002310 00000 n 
+0000051377 00000 n 
+0000002447 00000 n 
+0000051441 00000 n 
+0000002584 00000 n 
+0000051507 00000 n 
+0000002721 00000 n 
+0000051573 00000 n 
+0000002858 00000 n 
+0000051639 00000 n 
+0000002994 00000 n 
+0000051705 00000 n 
+0000003131 00000 n 
+0000051771 00000 n 
+0000003268 00000 n 
+0000051837 00000 n 
+0000003405 00000 n 
+0000051903 00000 n 
+0000003542 00000 n 
+0000051967 00000 n 
+0000003678 00000 n 
+0000052034 00000 n 
+0000003814 00000 n 
+0000052100 00000 n 
+0000003951 00000 n 
+0000052167 00000 n 
+0000004088 00000 n 
+0000006447 00000 n 
+0000006570 00000 n 
+0000006611 00000 n 
+0000006746 00000 n 
+0000006883 00000 n 
+0000007020 00000 n 
+0000009834 00000 n 
+0000009957 00000 n 
+0000010005 00000 n 
+0000010199 00000 n 
+0000010395 00000 n 
+0000010528 00000 n 
+0000010748 00000 n 
+0000013229 00000 n 
+0000013352 00000 n 
+0000013414 00000 n 
+0000013579 00000 n 
+0000013778 00000 n 
+0000013973 00000 n 
+0000014148 00000 n 
+0000014335 00000 n 
+0000014510 00000 n 
+0000017315 00000 n 
+0000017438 00000 n 
+0000017549 00000 n 
+0000017682 00000 n 
+0000017815 00000 n 
+0000017948 00000 n 
+0000018081 00000 n 
+0000018213 00000 n 
+0000018346 00000 n 
+0000018479 00000 n 
+0000018612 00000 n 
+0000018745 00000 n 
+0000018877 00000 n 
+0000019009 00000 n 
+0000019142 00000 n 
+0000019275 00000 n 
+0000021579 00000 n 
+0000021702 00000 n 
+0000021729 00000 n 
+0000021868 00000 n 
+0000024626 00000 n 
+0000024749 00000 n 
+0000024797 00000 n 
+0000052232 00000 n 
+0000024932 00000 n 
+0000025095 00000 n 
+0000025233 00000 n 
+0000025446 00000 n 
+0000027681 00000 n 
+0000027789 00000 n 
+0000029963 00000 n 
+0000030071 00000 n 
+0000032419 00000 n 
+0000032543 00000 n 
+0000032572 00000 n 
+0000052291 00000 n 
+0000032709 00000 n 
+0000034814 00000 n 
+0000034940 00000 n 
+0000034969 00000 n 
+0000035106 00000 n 
+0000037076 00000 n 
+0000037186 00000 n 
+0000039702 00000 n 
+0000039828 00000 n 
+0000039857 00000 n 
+0000039996 00000 n 
+0000042041 00000 n 
+0000052351 00000 n 
+0000042151 00000 n 
+0000042347 00000 n 
+0000052405 00000 n 
+0000042607 00000 n 
+0000052472 00000 n 
+0000042836 00000 n 
+0000043053 00000 n 
+0000043348 00000 n 
+0000043647 00000 n 
+0000043869 00000 n 
+0000052539 00000 n 
+0000044205 00000 n 
+0000052606 00000 n 
+0000044475 00000 n 
+0000044751 00000 n 
+0000044943 00000 n 
+0000045386 00000 n 
+0000045584 00000 n 
+0000052671 00000 n 
+0000045812 00000 n 
+0000052738 00000 n 
+0000046105 00000 n 
+0000046365 00000 n 
+0000046545 00000 n 
+0000046707 00000 n 
+0000046917 00000 n 
+0000052804 00000 n 
+0000047222 00000 n 
+0000052871 00000 n 
+0000047463 00000 n 
+0000052938 00000 n 
+0000047725 00000 n 
+0000053004 00000 n 
+0000047945 00000 n 
+0000048144 00000 n 
+0000048509 00000 n 
+0000053070 00000 n 
+0000048794 00000 n 
+0000053138 00000 n 
+0000049021 00000 n 
+0000053204 00000 n 
+0000049257 00000 n 
+0000049467 00000 n 
+0000049680 00000 n 
+0000049873 00000 n 
+0000049987 00000 n 
+0000050098 00000 n 
+0000050210 00000 n 
+0000050319 00000 n 
+0000050426 00000 n 
+0000050543 00000 n 
+trailer
+<<
+/Size 167
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+53272
+%%EOF

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperInternals.html
----------------------------------------------------------------------
diff --git a/_released_docs/r3.1.2/zookeeperInternals.html b/_released_docs/r3.1.2/zookeeperInternals.html
new file mode 100644
index 0000000..fe2b753
--- /dev/null
+++ b/_released_docs/r3.1.2/zookeeperInternals.html
@@ -0,0 +1,748 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<title>ZooKeeper Internals</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://hadoop.apache.org/">Hadoop</a> &gt; <a href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://hadoop.apache.org/zookeeper/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="ZooKeeper: distributed coordination"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="http://hadoop.apache.org/zookeeper/">Project</a>
+</li>
+<li>
+<a class="unselected" href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a>
+</li>
+<li class="current">
+<a class="selected" href="index.html">ZooKeeper 3.1 Documentation</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Overview</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="index.html">Welcome</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperOver.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperStarted.html">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="releasenotes.html">Release Notes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="api/index.html">API Docs</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperProgrammers.html">Programmer's Guide</a>
+</div>
+<div class="menuitem">
+<a href="javaExample.html">Java Example</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
+</div>
+<div class="menuitem">
+<a href="recipes.html">Recipes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Admin &amp; Ops</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="zookeeperAdmin.html">Administrator's Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperQuotas.html">Quota Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperJMX.html">JMX</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4', 'skin/')" id="menu_selected_1.4Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Contributor</div>
+<div id="menu_selected_1.4" class="selectedmenuitemgroup" style="display: block;">
+<div class="menupage">
+<div class="menupagetitle">ZooKeeper Internals</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/hadoop/ZooKeeper/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://hadoop.apache.org/zookeeper/mailing_lists.html">Mailing Lists</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="zookeeperInternals.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>ZooKeeper Internals</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#ch_Introduction">Introduction</a>
+</li>
+<li>
+<a href="#sc_atomicBroadcast">Atomic Broadcast</a>
+<ul class="minitoc">
+<li>
+<a href="#sc_guaranteesPropertiesDefinitions">Guarantees, Properties, and Definitions</a>
+</li>
+<li>
+<a href="#sc_leaderElection">Leader Activation</a>
+</li>
+<li>
+<a href="#sc_activeMessaging">Active Messaging</a>
+</li>
+<li>
+<a href="#sc_summary">Summary</a>
+</li>
+<li>
+<a href="#sc_comparisons">Comparisons</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#sc_logging">Logging</a>
+<ul class="minitoc">
+<li>
+<a href="#sc_developerGuidelines">Developer Guidelines</a>
+<ul class="minitoc">
+<li>
+<a href="#sc_rightLevel">Logging at the Right Level</a>
+</li>
+<li>
+<a href="#sc_log4jIdioms">Use of Standard log4j Idioms</a>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+  
+
+  
+
+  
+<a name="N10009"></a><a name="ch_Introduction"></a>
+<h2 class="h3">Introduction</h2>
+<div class="section">
+<p>This document contains information on the inner workings of ZooKeeper. 
+    So far, it discusses these topics:
+    </p>
+<ul>    
+
+<li>
+<p>
+<a href="#sc_atomicBroadcast">Atomic Broadcast</a>
+</p>
+</li>
+
+<li>
+<p>
+<a href="#sc_logging">Logging</a>
+</p>
+</li>
+
+</ul>
+</div>
+
+
+<a name="N10022"></a><a name="sc_atomicBroadcast"></a>
+<h2 class="h3">Atomic Broadcast</h2>
+<div class="section">
+<p>
+At the heart of ZooKeeper is an atomic messaging system that keeps all of the servers in sync.</p>
+<a name="N1002B"></a><a name="sc_guaranteesPropertiesDefinitions"></a>
+<h3 class="h4">Guarantees, Properties, and Definitions</h3>
+<p>
+The specific guarantees provided by the messaging system used by ZooKeeper are the following:</p>
+<dl>
+
+
+<dt>
+<term>
+<em>Reliable delivery</em>
+</term>
+</dt>
+<dd>
+<p>If a message, m, is delivered 
+by one server, it will be eventually delivered by all servers.</p>
+</dd>
+
+
+<dt>
+<term>
+<em>Total order</em>
+</term>
+</dt>
+<dd>
+<p> If a message is 
+delivered before message b by one server, a will be delivered before b by all 
+servers. If a and b are delivered messages, either a will be delivered before b 
+or b will be delivered before a.</p>
+</dd>
+
+
+<dt>
+<term>
+<em>Causal order</em> 
+</term>
+</dt>
+<dd>
+<p>
+If a message b is sent after a message a has been delivered by the sender of b, 
+a must be ordered before b. If a sender sends c after sending b, c must be ordered after b.
+</p>
+</dd>
+
+
+</dl>
+<p>
+The ZooKeeper messaging system also needs to be efficient, reliable, and easy to 
+implement and maintain. We make heavy use of messaging, so we need the system to 
+be able to handle thousands of requests per second. Although we can require at 
+least k+1 correct servers to send new messages, we must be able to recover from 
+correlated failures such as power outages. When we implemented the system we had 
+little time and few engineering resources, so we needed a protocol that is 
+accessible to engineers and is easy to implement. We found that our protocol 
+satisfied all of these goals.
+
+</p>
+<p>
+Our protocol assumes that we can construct point-to-point FIFO channels between 
+the servers. While similar services usually assume message delivery that can 
+lose or reorder messages, our assumption of FIFO channels is very practical 
+given that we use TCP for communication. Specifically we rely on the following property of TCP:</p>
+<dl>
+
+
+<dt>
+<term>
+<em>Ordered delivery</em>
+</term>
+</dt>
+<dd>
+<p>Data is delivered in the same order it is sent and a message m is 
+delivered only after all messages sent before m have been delivered. 
+(The corollary to this is that if message m is lost all messages after m will be lost.)</p>
+</dd>
+
+
+<dt>
+<term>
+<em>No message after close</em>
+</term>
+</dt>
+<dd>
+<p>Once a FIFO channel is closed, no messages will be received from it.</p>
+</dd>
+
+
+</dl>
+<p>
+FLP proved that consensus cannot be achieved in asynchronous distributed systems 
+if failures are possible. To ensure we achieve consensus in the presence of failures 
+we use timeouts. However, we rely on times for liveness not for correctness. So, 
+if timeouts stop working (clocks malfunction for example) the messaging system may 
+hang, but it will not violate its guarantees.</p>
+<p>When describing the ZooKeeper messaging protocol we will talk of packets, 
+proposals, and messages:</p>
+<dl>
+
+<dt>
+<term>
+<em>Packet</em>
+</term>
+</dt>
+<dd>
+<p>a sequence of bytes sent through a FIFO channel</p>
+</dd>
+<dt>
+<term>
+<em>Proposal</em>
+</term>
+</dt>
+<dd>
+<p>a unit of agreement. Proposals are agreed upon by exchanging packets 
+with a quorum of ZooKeeper servers. Most proposals contain messages, however the 
+NEW_LEADER proposal is an example of a proposal that does not correspond to a message.</p>
+</dd>
+<dt>
+<term>
+<em>Message</em>
+</term>
+</dt>
+<dd>
+<p>a sequence of bytes to be atomically broadcast to all ZooKeeper 
+servers. A message put into a proposal and agreed upon before it is delivered.</p>
+</dd>
+
+
+</dl>
+<p>
+As stated above, ZooKeeper guarantees a total order of messages, and it also 
+guarantees a total order of proposals. ZooKeeper exposes the total ordering using
+a ZooKeeper transaction id (<em>zxid</em>). All proposals will be stamped with a zxid when 
+it is proposed and exactly reflects the total ordering. Proposals are sent to all 
+ZooKeeper servers and committed when a quorum of them acknowledge the proposal. 
+If a proposal contains a message, the message will be delivered when the proposal 
+is committed. Acknowledgement means the server has recorded the proposal to persistent storage. 
+Our quorums have the requirement that any pair of quorum must have at least one server 
+in common. We ensure this by requiring that all quorums have size (<em>n/2+1</em>) where 
+n is the number of servers that make up a ZooKeeper service.
+</p>
+<p>
+The zxid has two parts: the epoch and a counter. In our implementation the zxid 
+is a 64-bit number. We use the high order 32-bits for the epoch and the low order 
+32-bits for the counter. Because it has two parts represent the zxid both as a 
+number and as a pair of integers, (<em>epoch, count</em>). The epoch number represents a 
+change in leadership. Each time a new leader comes into power it will have its 
+own epoch number. We have a simple algorithm to assign a unique zxid to a proposal: 
+the leader simply increments the zxid to obtain a unique zxid for each proposal. 
+<em>Leadership activation will ensure that only one leader uses a given epoch, so our 
+simple algorithm guarantees that every proposal will have a unique id.</em>
+
+</p>
+<p>
+ZooKeeper messaging consists of two phases:</p>
+<dl>
+
+<dt>
+<term>
+<em>Leader activation</em>
+</term>
+</dt>
+<dd>
+<p>In this phase a leader establishes the correct state of the system 
+and gets ready to start making proposals.</p>
+</dd>
+
+
+<dt>
+<term>
+<em>Active messaging</em>
+</term>
+</dt>
+<dd>
+<p>In this phase a leader accepts messages to propose and coordinates message delivery.</p>
+</dd>
+
+</dl>
+<p>
+ZooKeeper is a holistic protocol. We do not focus on individual proposals, rather 
+look at the stream of proposals as a whole. Our strict ordering allows us to do this 
+efficiently and greatly simplifies our protocol. Leadership activation embodies 
+this holistic concept. A leader becomes active only when a quorum of followers 
+(The leader counts as a follower as well. You can always vote for yourself ) has synced 
+up with the leader, they have the same state. This state consists of all of the 
+proposals that the leader believes have been committed and the proposal to follow 
+the leader, the NEW_LEADER proposal. (Hopefully you are thinking to 
+yourself, <em>Does the set of proposals that the leader believes has been committed 
+included all the proposals that really have been committed?</em> The answer is <em>yes</em>. 
+Below, we make clear why.)
+</p>
+<a name="N100B9"></a><a name="sc_leaderElection"></a>
+<h3 class="h4">Leader Activation</h3>
+<p>
+Leader activation includes leader election. We currently have two leader election 
+algorithms in ZooKeeper: LeaderElection and FastLeaderElection (AuthFastLeaderElection 
+is a variant of FastLeaderElection that uses UDP and allows servers to perform a simple
+form of authentication to avoid IP spoofing). ZooKeeper messaging doesn't care about the 
+exact method of electing a leader has long as the following holds:
+</p>
+<ul>
+
+
+<li>
+<p>The leader has seen the highest zxid of all the followers.</p>
+</li>
+
+<li>
+<p>A quorum of servers have committed to following the leader.</p>
+</li>
+
+
+</ul>
+<p>
+Of these two requirements only the first, the highest zxid amoung the followers 
+needs to hold for correct operation. The second requirement, a quorum of followers, 
+just needs to hold with high probability. We are going to recheck the second requirement, 
+so if a failure happens during or after the leader election and quorum is lost, 
+we will recover by abandoning leader activation and running another election.
+</p>
+<p>
+After leader election a single server will be designated as a leader and start 
+waiting for followers to connect. The rest of the servers will try to connect to 
+the leader. The leader will sync up with followers by sending any proposals they 
+are missing, or if a follower is missing too many proposals, it will send a full 
+snapshot of the state to the follower.
+</p>
+<p>
+There is a corner case in which a follower that has proposals, U, not seen 
+by a leader arrives. Proposals are seen in order, so the proposals of U will have a zxids 
+higher than zxids seen by the leader. The follower must have arrived after the 
+leader election, otherwise the follower would have been elected leader given that 
+it has seen a higher zxid. Since committed proposals must be seen by a quorum of 
+servers, and a quorum of servers that elected the leader did not see U, the proposals 
+of you have not been committed, so they can be discarded. When the follower connects 
+to the leader, the leader will tell the follower to discard U.
+</p>
+<p>
+A new leader establishes a zxid to start using for new proposals by getting the 
+epoch, e, of the highest zxid it has seen and setting the next zxid to use to be 
+(e+1, 0), fter the leader syncs with a follower, it will propose a NEW_LEADER 
+proposal. Once the NEW_LEADER proposal has been committed, the leader will activate 
+and start receiving and issuing proposals.
+</p>
+<p>
+It all sounds complicated but here are the basic rules of operation during leader 
+activation:
+</p>
+<ul>
+
+<li>
+<p>A follower will ACK the NEW_LEADER proposal after it has synced with the leader.</p>
+</li>
+
+<li>
+<p>A follower will only ACK a NEW_LEADER proposal with a given zxid from a single server.</p>
+</li>
+
+<li>
+<p>A new leader will COMMIT the NEW_LEADER proposal when a quorum of followers have ACKed it.</p>
+</li>
+
+<li>
+<p>A follower will commit any state it received from the leader when the NEW_LEADER proposal is COMMIT.</p>
+</li>
+
+<li>
+<p>A new leader will not accept new proposals until the NEW_LEADER proposal has been COMMITED.</p>
+</li>
+
+</ul>
+<p>
+If leader election terminates erroneously, we don't have a problem since the 
+NEW_LEADER proposal will not be committed since the leader will not have quorum. 
+When this happens, the leader and any remaining followers will timeout and go back 
+to leader election.
+</p>
+<a name="N100F7"></a><a name="sc_activeMessaging"></a>
+<h3 class="h4">Active Messaging</h3>
+<p>
+Leader Activation does all the heavy lifting. Once the leader is coronated he can 
+start blasting out proposals. As long as he remains the leader no other leader can 
+emerge since no other leader will be able to get a quorum of followers. If a new 
+leader does emerge, 
+it means that the leader has lost quorum, and the new leader will clean up any 
+mess left over during her leadership activation.
+</p>
+<p>ZooKeeper messaging operates similar to a classic two-phase commit.</p>
+<img alt="" src="images/2pc.png"><p>
+All communication channels are FIFO, so everything is done in order. Specifically 
+the following operating constraints are observed:</p>
+<ul>
+
+
+<li>
+<p>The leader sends proposals to all followers using 
+the same order. Moreover, this order follows the order in which requests have been 
+received. Because we use FIFO channels this means that followers also receive proposals in order.
+</p>
+</li>
+
+
+<li>
+<p>Followers process messages in the order they are received. This 
+means that messages will be ACKed in order and the leader will receive ACKs from 
+followers in order, due to the FIFO channels. It also means that if message $m$ 
+has been written to non-volatile storage, all messages that were proposed before 
+$m$ have been written to non-volatile storage.</p>
+</li>
+
+
+<li>
+<p>The leader will issue a COMMIT to all followers as soon as a 
+quorum of followers have ACKed a message. Since messages are ACKed in order, 
+COMMITs will be sent by the leader as received by the followers in order.</p>
+</li>
+
+
+<li>
+<p>COMMITs are processed in order. Followers deliver a proposals 
+message when that proposal is committed.</p>
+</li>
+
+
+</ul>
+<a name="N1011E"></a><a name="sc_summary"></a>
+<h3 class="h4">Summary</h3>
+<p>So there you go. Why does it work? Specifically, why does is set of proposals 
+believed by a new leader always contain any proposal that has actually been committed? 
+First, all proposals have a unique zxid, so unlike other protocols, we never have 
+to worry about two different values being proposed for the same zxid; followers 
+(a leader is also a follower) see and record proposals in order; proposals are 
+committed in order; there is only one active leader at a time since followers only 
+follow a single leader at a time; a new leader has seen all committed proposals 
+from the previous epoch since it has seen the highest zxid from a quorum of servers; 
+any uncommited proposals from a previous epoch seen by a new leader will be committed 
+by that leader before it becomes active.</p>
+<a name="N10127"></a><a name="sc_comparisons"></a>
+<h3 class="h4">Comparisons</h3>
+<p>
+Isn't this just Multi-Paxos? No, Multi-Paxos requires some way of assuring that 
+there is only a single coordinator. We do not count on such assurances. Instead 
+we use the leader activation to recover from leadership change or old leaders 
+believing they are still active.
+</p>
+<p>
+Isn't this just Paxos? Your active messaging phase looks just like phase 2 of Paxos? 
+Actually, to us active messaging looks just like 2 phase commit without the need to 
+handle aborts. Active messaging is different from both in the sense that it has 
+cross proposal ordering requirements. If we do not maintain strict FIFO ordering of 
+all packets, it all falls apart. Also, our leader activation phase is different from 
+both of them. In particular, our use of epochs allows us to skip blocks of uncommitted
+proposals and to not worry about duplicate proposals for a given zxid.
+</p>
+</div>
+
+
+
+<a name="N10134"></a><a name="sc_logging"></a>
+<h2 class="h3">Logging</h2>
+<div class="section">
+<p>
+ZooKeeper uses 
+<a href="http://logging.apache.org/log4j">log4j</a>
+version 1.2 as its logging infrastructure. For information on configuring log4j for
+ZooKeeper, see the <a href="zookeeperAdmin.html#sc_logging">Logging</a> section 
+of the <a href="zookeeperAdmin.html">ZooKeeper Administrator's Guide.</a>
+
+</p>
+<a name="N10149"></a><a name="sc_developerGuidelines"></a>
+<h3 class="h4">Developer Guidelines</h3>
+<p>Please follow these guidelines when submitting code. Patch reviewers will look for the following:</p>
+<a name="N10151"></a><a name="sc_rightLevel"></a>
+<h4>Logging at the Right Level</h4>
+<p>
+There are <a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html#FATAL">6 levels of logging in log4j</a>. 
+It's important to pick the right one. In order of higher to lower severity:</p>
+<ol>
+   
+<li>
+<p> FATAL level designates very severe error events that will presumably lead the application to abort</p>
+</li>
+   
+<li>
+<p>ERROR level designates error events that might still allow the application to continue running.</p>
+</li>
+   
+<li>
+<p>WARN level designates potentially harmful situations.</p>
+</li>
+   
+<li>
+<p>INFO level designates informational messages that highlight the progress of the application at coarse-grained level.</p>
+</li>
+   
+<li>
+<p>EBUG Level designates fine-grained informational events that are most useful to debug an application.</p>
+</li>
+   
+<li>
+<p>TRACE Level designates finer-grained informational events than the DEBUG.</p>
+</li>
+
+</ol>
+<p>
+ZooKeeper is typically run in production such that log messages of INFO level 
+severity and higher (more severe) are output to the log.</p>
+<a name="N1017C"></a><a name="sc_log4jIdioms"></a>
+<h4>Use of Standard log4j Idioms</h4>
+<p>
+<em>Static Message Logging</em>
+</p>
+<pre class="code">
+LOG.debug("process completed successfully!");
+</pre>
+<p>However when creating a message from a number of components (string 
+concatenation), the log call should be wrapped with a "isXEnabled()" call. this 
+eliminates the string concatenation overhead when debug level logging is not enabled.
+</p>
+<pre class="code">
+if (LOG.isDebugEnabled()) {
+    LOG.debug("got " + count + " messages in " + time + " minutes");
+}
+</pre>
+<p>
+<em>Naming</em>
+</p>
+<p>
+Loggers should be named after the class in which they are used. (See the 
+<a href="http://logging.apache.org/log4j/1.2/faq.html#2.4">log4j faq</a> 
+for reasons why this is a good idea.)
+</p>
+<pre class="code">
+public class Foo {
+    private static final Logger LOG = Logger.getLogger(Foo.class);
+    ....
+    public Foo() {
+       LOG.info("constructing Foo");
+</pre>
+<p>
+<em>Exception handling</em>
+</p>
+<pre class="code">
+try {
+  // code
+} catch (XYZException e) {
+  // do this
+  LOG.error("Something bad happened", e);
+  // don't do this (generally)
+  // LOG.error(e);
+  // why? because "don't do" case hides the stack trace
+ 
+  // continue process here as you need... recover or (re)throw
+}
+</pre>
+</div>
+
+
+<p align="right">
+<font size="-2"></font>
+</p>
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2008 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>