hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ni...@apache.org
Subject svn commit: r694707 [2/2] - in /hadoop/core/branches/branch-0.18: docs/ src/contrib/hod/ src/contrib/hod/hodlib/Hod/ src/contrib/hod/hodlib/NodePools/ src/docs/src/documentation/content/xdocs/
Date Fri, 12 Sep 2008 15:07:04 GMT
Modified: hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf (original)
+++ hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf Fri Sep 12 08:07:04 2008
@@ -5,10 +5,10 @@
 /Producer (FOP 0.20.5) >>
 endobj
 5 0 obj
-<< /Length 1555 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1548 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`U97*El']&XfYa`i\'I3gk4&7WWA3--c[F89c?!rb2I3lrZ`+7;'?h#h]nk79[f]+N7n-/V-h0\Q%]UKC[)Ij!UY3/LA"0_]j%QnAYn/Y='q9H3.(C$Ih_q:A@3e(I`82AIlDk0N8`Tk'nqa)B3e&S9*o_>,U6B?"6QI31ehp1khRPo3aDH^O&&eWa9@6<'tRH:fi!NEiFi,a=:nj:bkQMpc<j*TqeHk4ad,eb3cmJVDLNAdN#b@1$[+U-2l<&.eDM;99F;*Q2C0!7F4F+N__0m6D!"PI49kSkut.i'&n6mb7K9V6PXNUK*e?_<5t233fR%1RlJKf\CQ:L%h_JpVJ4&U'!C5LQ4co89A9^'A[MbHa^%1Z_,$!l;p@&.CobmR]C*$k3LsrqEE@N5],sjkkVb"^BMg\3<dW8<+>pULjed7)7(OZ'IbM,Ui"5@;@m=BOe$^1m+&rjU[W/H?+\jfL,Q4LL./upkU,En\5G1NRc^!/8?R'mGKTGP(gI/)`_r(=/D_PeQ>cE)+M:T*^N&AH?I-G'EEsHd(0@966^#5%R`U'I@RQ?$9"q1h+u5[A:s#4rTY2<;E+QGPCk1/EWY5Z3<@ruITHn_(fGWBSt)of9GSg6$QeQ/%_I:_"V?0uWf7$Ml8]Y'kBSdpMb4s?N0=gGC_cBF+gr#6j%/L19<893pcfUD3XG0^SR"G7Sjt>Ii$_ceim80?FUp']TcH+K^Z'N6;n66JXiu1PMc7u#P7[UE+@3PD/W>g_";!et,eqR%;F$g#VF?5'rAK9<rj=i(/cnS9rk<#X5T*o\K<^sJ&3j=FPg,h[KcXeCX3#l!plWlfJF*-LWRd[apBC&O=D7XPg>R\ZX(3M8oaQ3nqOL3f?csR&#1@)*`Rg!=L5qqu8P%7f>NnDqq._cDq:jmR<d_[jY5%%PT`Uig6-ltg!14?FDHMB&An8r`]In/YL[AN&)-jDr"*_5fF)2DWX^R,L;S_Z]A>F&
 0>0IJ"roS5<4VbVujg895DDm&E@G?i&%/Xd(]Er>=>'ZmNGQgTR"CV.jB<[pAY^]qsXS6Bu:H0'k_!W5\JAN&q%+ob*0`E@,>jq$;Vnhbb@/V@d\%@*br+jsF\%@)+Dr;]b/-ksb0Y,uF+V4_/ijoTc0hiULO0gI%`@J<LL8<ZD*^Psm4DrN0AD\*:pe@N]H9\(e1C"q?ld6&5'sQ#S<,&ABQreS4]N&J2Z!:qENb5A,'g4:mmM:33JU>?u@^?'pn"*tXCltLu2iseAQu^p6M,g@H6:"jT@<W'mEl)!PmFqj_Ih;TK@6GK^Fk>3_chbj)j'jI#oH0G$V.B'%"Y5ft9lfs2b.BSc@<EepNo1-e+LLj5"cT'+6.N_/>i_17,0*M6%$r[]FALS,4l3n)i.IO!@n+^+-sF*HpX?t1k+t]AK#@=,2^2#Dgg575iX"hn#JU`)eLtE/c_osG-jg6)(ZQ1g%R]4a'k+f=>WiJ'=>os.[k*"Pip.3I]L\)EB%t.8Q)&@]iH+gZ#]OD"X!2>*QjYN^'<3'0F-g9.9.I['bgk)?"8*Ob+9~>
+Gau`Uhg:hN'Rf^__->BD0TZk(]t$_*VJDW;ERon^%iAh]h["7VB^5Qh'0hGYm+AVY`NJeDKJ1F0kh^BAi8%r5dhk.pE'7hh)gM%jFPo1NJa[jKcZb-:\M3MX*6-:banbPf6]uH'I-Y%3-s#52g_]h^RQ`#dVT4`D'mat#Z&HD>rcTV1e[1J!GLIIOObgM2%bnN@aY]pg%7pHJ"eY&>PS]JuZL%$M*8`R@kBj/A+n=A2C@C?'BXAB->RmNI$Rp=$V3:@8:[J(JO88l3G&dHeSI97hNNnC&+NP$37,Lfi=Y\Na+(QQ@c1Hk5deNgZrUm_b;=jR-f[(2^=K$;$pr)jV/@^%n+(:KQnKSK8Y*LV5nf<fb>*_m?S1-[;&dU[kKO>Y.EDOI.A8"Man\8-o@4_,H0E2N0.bM$Z_tAlOL#b2o0kuHI9a'ff&8O9/8qOni'=O2/N&HuJ9G:P8>5h>YW$b)[NBOYPJ*?QoL(>[6)#pYphcQH*`hIW#h[](;,+4p9^6'XAGu[Hd?B$gbT4-5bi;j&aW)kp*8-+89%BW9R-mW8jj?OD)f>eaZV-qbEdbV:C:,Zc\e?;&fPIg#QSEqhaQ4jhEaU.0koXe;j_N;q+n\a&&`FL-tZf$sPlED5[=TJ!dbM!e`Un2Q,Eh4('2Qt'U_Dhi&b#[Ir)e(;u30(?u]#72@N;nOXkIpB!d-9ZPm<QXU#*,Fc-k>X[<VOk7(tsOnpa_s!1mP[!dE9Z\5!K3&2$pO;":<6<C13(f,_5Ye-2D+APlgM50eG0Ql*hOPn?:XS?6Xpll0itB#*eZ.1)Sa`!:^RmR^1Vh=QiVJZ'l*"J04S$"N[`!S8/!/EfYaS`'WeIcjh/9?R8@UWGg-6dI0cGrE9CK1QX4&0"tBY1irkk:I9pKhb",Oc<%'?akmjUZ/PjlE5eH@$l/QU$@9-T!PjXJEPqXJ0I&Ykj`Q,9gi!]Bbi")T*r'd143%Q1fc%</,6cl:6Uo5
 \Y/P3qkAMu.d1a?sBhlhTk@PAe't2qS_m$?<rL9HlWKfDGMcXl57KCF]GQuo*!W1LA`d3\PkR".r!8+tP(f7a%ScS^`!6-+u_"EV6nJ(bH'!.].pib8MP^a-hr-$[&iskqHK]N46(FBq[2?Z?3>?nXg*N!NqnqiZD14P"dd#ca=_ZNI#Q,a>[P3eY>(r'eW<::&KIHI1IDEV0SW<2d]%oo&J/nS+TYI80S5*kNYe\R2%XeI0Ig"W:*4E.Kk#Ab/`r7q\qcPB)uE!&,sKdipjSQJ<A.MTfGW)-5k9<!@:!9<gjh^GR=UTj1?ReU$XH"1)17?[WP1SBs@5+uA<18d^hr`+7<jqq-[:DJh=d+W[Z0Rg;-<WCopO]SE<*(.Or>fK=]*G)_QGl+q"%rVB-))_/]B\d"O:Bk0qQR^5f%c<3"Lc@\AHfZ]4,H*C;r&/e$^PkHAT:R!s-m7GRN),6k%#Hc>K_:pX\Ir_mB^iEJ=oLb+f-B@%OWJYh[Y)s_8`BGqcfB-k^mQp\MQH&N0"@uWW-6P3?%Od_WVAq==$uuuq/D!1~>
 endstream
 endobj
 6 0 obj
@@ -596,10 +596,10 @@
 >>
 endobj
 100 0 obj
-<< /Length 1906 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1882 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5gMYb*&:Ml+(k##-7MR@MQc3EbhU2d.F>rkVD>&OHBUcULl0=EgJ%q4!M'Ik_XA+TUQ7t+b3AY_gke(2.I99kT\3d6erqUdR\W4;mI:*"$[/,/;$$#/Yj/^GT+'3BQ/P`]5e\;]Q.WL-tZ+0+QY5Y>a7LD]dB^)X!3fLFNjhOFt@=5@tQc@l+n_06tHHML2:/$rX3n?80ksF:@Kuf>ZZ$M=l3n?80lU'e!6>1!%qYCu0:fZ37m?Ln2m-=Uaj[E1?qp][L]NV56^TIt;Ecm"e:s32.S=9bg24qEYj_f".V+PuM*a,B5ra)_A%*p*LEJ)_#m"'uqgDm_5(\MlhND%nYVXO;@P33!Ebc?]cWm'JF!Lk7.JS`Wm5@\T[1iH8=foB]g95`CUF:bE"EkCWo$G%WKi;-Vgg33NF5V*XqXQ3FKb)@^Obkkjf8!8V6KBL;_O:%AiiJAKs=XIORKH2lfO:JWHf2Mr<CHo/q\MhXF.CEZ_FT0`/@.[49K#ImA_'bf?e8C.qC._AI7:'N+:g'9R0knN0\Nq9WJiVDRToT4i'8.?!:CZW8NV.AJ[m6X1Vj4addt2YX7`X*2#IVB&-HB7O0&k>m"R%FlOB`%t-::J@W"!.@T0+_6TqltAe`9\Q/7t:aMiaE<kN;n4(INUb0mTO/6>%.;L[$)d4Ho7:mud<%;\NGB:#2\I<E\B,iS_WbFfP4e+K`<JqDRV.hV\Yul8[ut?Eg0Q5U-_i!saTEPusl/9I+f(SK+%nWjKc=U9J.44aR1_9Knl"J(+\N[^;#">JqfZ*K5?Cgmnb\nOY7=q7aVX/#<r#GQ/:DWBl/Nq$[=i8oiQgR[%75,7eISkop57B)JN?8\$Wq5CIlsT=;`d?#K/"l>4KM#c!?pjFm1e20Xo6PZf&JSislgQ`?;9l'7)-Lh3LL+Ddp2BrXQab)+NWiO[kmD0Vp\8u^F1UQW04i;[km&nJ$?_MR",O;k9h$dXg^1ULY
 ]W<f7g%S*J&IW".M/mitSLsHN008d?ZqpPXi)'#sbm$Rm#9*$<)+`a$L&<]+\TdeHE"Y+_>L+WRDG%NlnGe+UE$d6R0eW4;ta@\c76g!V]L$-"\O'%n%$\OI(?G&@aIIL`H*YM#d"f)htHA@-1=Zr3jB*<\(0:I]!R0-HsSa^s+[*co8H1NRcRJj;Iko4_;3bgY+\rgC"YJ&'d]1#=QXFI@J,YRrO0ApMo[P^.4lnIqZDHPe'>KFG+R&_I)I3B8$_$\PP"6aRpoq'].6n>"Hf_+m^jB;2_cglW-6isFKFHL)3D0H,pm0qS\E-9tA\N0$^Z^J.<!B;iGS0*#-[K>lRS#6S)D-m*4OmR\G[tEDqH-g@#*<QPr\mo!&nDt$^F.R;B(tS]YSkA<3($amCY+1l0SXNIMC]R7KP[<9m4oOEU]DS17Pttga6QO5:bTT;HDsT6A<83aqq+]"l=^<_qlaFEh/RHc1#ZT\/gU"Ua?4AF34qB/!>s\OmDgK50C1bd)V2h36=LQVi4BMl+Vn&[KfLR)h`V'?c\pLsODG$<:@)k!K)kk?[d3sU'Wo&[9TBh'E.3Slh/.!Xs+u0V?b+@t8UVIR-"i,U&H-2"h%jTS.HYtLOJPG$$m&*.02S=:qr/ul7WS=WCGfQ"'mToAfd$orWDKo=/-(@b@lLE@#g[B=66J*"4HI4mDOO/i9Sq5RQE`der!`cgiEhe:hTgPJJrHFS.H&gGo_&R,!I([&i-@:gBH$B(%?i?BOCI.jW@k!SthUu`BqFo^"!H%hYj7`5Z.Opp?)TsgJr;4/Jq<_$-!9&(XYj8S$#R0+l,>+NJVlPpC=OG7A4*>qn`,6)DZ[5B.H,?^'9^F<KN\#q2hpo/[XM8pshqT^;fQBDF)M5%eT+./Q?QZ<fD#u>:rrEr0/PH~>
+GatU5>EbO7'Roe[@.L[mfd.aa/tGaMEc:N3G.W0;qLCl?eJcQgZ5`i@*,IkF&B87Eaj.aCS]c4pT?*LWebb-P\!:`GiSV[UjOfLSq`arM=T/+;o/rLF3OdS?5?Dcp/^?VO_,&[@C2oS"@r]O!*V]_l7L*2n#LXQdF;TR6mD)lM-02/^/5>=PnWPJ_oTUkCSA\VMkkN*88/M+t(F%lkLm9SflM/<:=;O$E(.'g@f2j&!bH3;l@C'uL+Zo2F[:iOk\^.3KM=ls5s4ik(V0,:[&7f\dcLlhBkhipMeTRj_V+Q$,+6+?drG+QD*np.?m0%&`nRF-DnTrMuZRCOc)OH8^<T!Cd'e`1Nl;ou!<0\i=""$Gh!86#ch\0lgWS_6kN41o.CN@9%V7jr<=dWK-;:%a'Om<N-#N$,d#dI&;M38g_X`C#ilM'DcN$Jd6#L=PG;(?PaL)/B-`jrmQ&n]Kmi,t\e\YaE>48>5)m@#m/]$q5#K)B6b_W\+bAXo!`"HSZ2bcH\qC.^9*78`2eWU_r!j.VGOjN\4PF,sQCg,%2f0XN9=D7cB?b08eU>5[GR,AhCrL#n7#Fh>e(-6U<<E=Ri+#3eng7i+MT>mCT(L1ks8CG`lAo;!jiP5<]5##`uG0#Mj7K%\pEINAc2+iIFt&04c4HXVBrn9g,@<(ZnWpI=d%<td`%n(=Lm<E0eYjiHHY;j-o`*#ba!Wt/(:i!(NuW1,d(MD?fr'CP(;7fo05]d&BV?n%o6!B[h7O/atTlU>5@ZZbj`3ZZD=IeZ^@nW9'6Kj]ej$[nM+SsB0\iANm9Tf1e8Dsf,)L"q-*M4t."E*>H!5c'V`G88?[>BAj+lS;c..+XpG29dPYqX*`YhO1jRkBgKPaG&nqQO=.q9$j0JofBKl4lAa\NWm`NnW(dl`aMs1@ZP!OW`'HU<M"*.<'A?[7CqVXDj*5\DO*lrGr[9ULe%H.qpTV/PoKJ\5hl[jZj-88CT^#BlSY]
 =OflDlCj3tpIY2;HK%)0)WaogE*9r-.b__<Mid0P?ih"'!,jr1_GV;t$hEVlbBA^YlM??Yi.Sie70e)fn[9^XhRc!$8In(oXjYtXM_8L7si\kh1Z?Zdr[J7k/7XC*P:q/m"p#8d=RjCVL;2XN?7i+MT>mJB;hdA;/@;]U1e.%ioZ^bV6:3/8OH%E;UY[1HhFAt-%>4@slZ5g$!DT;:BJErl=>Ce*.j5n87IFZ@Y`kieA(9'ngj&'1PpBnnQT,9H$NnR>4Rj"pAFB!*(]\Y&5qUF8s4O7#F^?SSR3pkEo6__uqBL?M$<+2A."Ra#Vf"]d61=#Z50;_bSN5I.%%t$5b#,9Q%9&%kZS,3fDn$J\[(bIaucD2O19(s4AM!-MSF$N<##Vfcee8CE-$B+ctNtL_*)b_&erNugjk"OE>1M<Rr`7&;Q/M'l%`sKFr?Mc;(A:Q^Q:n'QXHHjYsLoZGuqujmg1[)iMUIuHUrq+0\SLtEI>euVYDAWFq,@/IA'[S\UVh%Qhk7@T2MbC5'eJ\'UW5BID)+<7VpVo*-Bha@O_XFf*E+WXpj0W@J'Q9XK"<ZNtRu>!N["]<f^'q'G]>R(@^,Bsm9f#_E%]DYPHjt.B^sGg,R-pMiF<97tG66YaG51@-Y%5-,!ubp[jlnZA75.U3)mSRI4YX*,FJ%)Ud?S&!!5-I8[p?S$("s_Sf'+DIi)1ND1ojYE)q\$G'C4e=loi)Ch<he%olnfbRJ+V?8u+TWdr7d\$2kXDk!*]&S$9^VDj,ebBG`T*rR%d0es%,Hn@B.m:fDqcct@D93)JZl/+arbpT3\_3ZRbj"m.=DY'qRT'27c.f7u?%c[Vogq/lIjhS/dcpPea/?X20lb"fBBA\n>L^9XX"[dXCO=t7S~>
 endstream
 endobj
 101 0 obj
@@ -611,10 +611,10 @@
 >>
 endobj
 102 0 obj
-<< /Length 1888 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1875 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5>Ar7S'Roe[&Gi[886(crFX`%GD;$fq!i/KFm:"\#Csf[,=nHfmOafU<(<&XtP-),\!n/:<jZDA1OSLl.I@edaSKVc#I_O#ma*'#[o>GQ6ld'JunSFh$3O9L-he+$\IQnSEWVDHD=RSb87;'5B#EJR,%eU;SnKW4\N4X^=lm&4ZLHPSbgUnK;PI;Q,Bm(#T,5oGjWh]M+URk5fh49?1RGb,-3N2liUV9J[Skat$6sSX*+:H`LT!)bO_.?.78!Y*Wg'R&u0"0nHl`Z4pP,=Ss>O2T(pViF7V-9_;1J;**]%HMc>".`:5CB.?8TnhHD9]h=PnImpr_[C?@EkBf2dpL#geSKe;4nr>DRUk.p<X:4D>Vf$2;dh"<jMMb'%gP\-*tkI\H:OjP)#!q1Wq0KJFI[_Q6cd.2rIN(AF")3PUnaD',K':e;]3-<2e./jFmVG$P8-KLJMZiMNY?hR9>^e[#s4NU57C9as`1u,%caJh/UIXOG84Bnh0*`P\nsEI8Xqe&D=:0VcJ1fL8KL0&Rft1F265!-arm6Xt*=$RZf)o5&#YrK-o`^aF5T2?iX(]lnStB<-BS@MW``m9R(_lV?`bp@2;?JY=/LnBfq(6.`l-C)8KLB6NlM`1i"<c&!g'mY`YU#7Df3=N^pO0^=@L<dY1[>BEARMX:]5h*qs`I:tm4`KR:EI37mSf<$@M3Ns>7F(&Go_j't1?1arfu_IC"n@[X"^A]o/Q,bTlC8c>Uj<qs/,+56M>fQ!YcFiFn:4;*9B^!R9c,CQY=:H3;I8+&=g,Cqo66isRRSSs+Thq_)fERmDE'+VU;+XC\eJk6cB:H.0d._]>oR0;!<=lO)-VNZ!_QT8rE3e)$TbNuXY6E`st,>?RtGej/_R;4nSW@D%9JgifIg!^+@?XMd!<9DU!H!jAi*bjr"'RJ<qD5o&(^k:PPf$aY<`#L1`e"N?r?%Q!H#toZ/Q,'),Ll<>X"LXrfp"2444O1?
 `'q'C]&[Rl.rRZ@%b+^Kb9t,Y(Y':pR9S14<e`+\>d.a"*".mL/2Zj^kH/Ou[X;J5gN:i];BP2k&AQ_Id@/LpnY)GEs:m$.?8X<c0g.&9MX2KiiAY+nSE0I:eEP+a)]m6Z^#`:nIs43_LiRBEUn@[8$^Pu^JG@h;UU?FA7lE4Cm76_-1.(l8k!B8,sBP>]=-@E]^fngO+>rnX;-j',FA=B?&ps+[4<kOao!U\+r+bR`6[h!2h#De*KR</(bYl0*K12-&Ga\q(uC_l:ap+CX!9%Hu`*Cmc+W#po,5pd'V9a>436sY=Z\``lnY;W;?`IT4XfAYc./lu&H;&W,PB#24@Fg5H"A<jqCQAc?h^?oYJY!nf11UC+U1NP+OVjRL>#d5rrc^fu0M7Q6+G42B,.M&6WIi5bSf7TFn*Q(NVp(F2.5\VA-kG/O+MWU>X3:eWC1edOgm'12kEsEpYF$ib?6ZoE$ZNG+ofV.FHdnja6a?ZGn[/3)7m3V&U4&2P(:d!RTN^(`9&UPL2LK[08RTM.]Boa)s&[dIr$S41\(,T(hMUI.'4T2dLV/f(Wk=c8[E@+iO$pFZuQdCk6&=$Lm+!2RGa+Am@6SQ<<;%:GQlqgc'rHL99]Dcb6VF=`<HriB53Mpkpj,C%E\1Yh^:CtM_SpkHg<+2'HlD^JZS)$s8ADn4Kgsq'9%goEVJPGc<cMBP[>!?tDKYq+ho'OfuY]]JtC!0:g.g[H8qGB)ba=k8,8ZZ2ES(kPOlhL,nm.aWp8&)F]DKTck@Ls=KeMm??DbU'UaXacm^jpS+ki<Ba?E+U6G3Ddr1gl!!Cid5?4BZSfj*niZW>0Rr?`iHEc6%5W'!B"@<On1KK?Oe.Z<4i]W'L^ulj)@>kDSXCb?ka3Pm$P?BL*;1~>
+GatU5gQ(#H&:O:S(jY?MfI.pil4Od7Ep;_<"Ij;!p7^4G=e]akP3CG-h>D[MgD#FoaHpERCPW0TjIA4dF/XLES,>I>4A<h<WW(aL@b5Ut5nKtjT68K+Qle:2RoXntTDUEhp%.dCRa9J2n`+LNV$*4T3g$Ile>g=lUAi[/"Ze`&eND`eS]PanV;C&i5+d-;0%_48cQ>60p6POk]/s8<eDH21mp1m6Iu25&jT-DT3U6.R%^:j73Yg]<2e5NAZHj:"GO)c>I`^)trQZ)=3?Fa:MWs#"b^$2g#U;5$lBA0)Ue+WM1Z(@dWYVls?O6?&cZJm>d&&j_)t%OV9/7sJB$$Q%)pX"oB#Sa7T(6lNYYWC;Nb<4Oc*F.hi4qJHru,4/8WF`9$=/(c2`G(`I$P`ER*8T=e![9Y>(,2h2fXnZ?LRcR'8Mm)LUp'GIL-lEM7/(i92\n,>Q9ekYrM*Th2"0PLFZokQr,KMnbg!:f.4B4J=4H-jnrXS=iC/=R!>;)&E8em>4DBUo-tf$?qnDNH7b%tc5WA256^4O-uqFT/G/h4hNf9h.HEoMQNGT1*`,ZD.T%gVUfJbX2[`<nX=V;Rg,q%-,NSV>"QJ8))`(SA,&\to!>mUq<:IIoQ=KR5pq0n(c7%hEN*9;'T(BfMg5'>uK#ii4+G&Y6N1Hn=1L=(e!\E/Q!\2Il6\Be6moEokM+O!61n!EIq+G3&"-@!<0&3[HZ:gDi=fE=<.c*$X%m[682<W#7f.$gU4<$Y1+j*J]"u*O2(dY!7nD,:P#AMW;r(,3,@*\odN]Xt*^3+^Qm1l'HYRK)FD72T:TCWbrOj",ZbJHc;.\&TpZ)n(k#BpIM*tA'[M$^-p"dYE6cXAP5N3KCILcTj9XFQLb)S.1'FedKMT6[Gr]-h^\.G8_a*/Vgi]h%W@40?-?T>*OKSrT=1j0XG12/5jt&46QIA>e?F:WE@CKANF)qI_!=rBj,?ar%2RL_dZ0V3B?r-bX,
 YU3\G1]E*$O>/>YJk`N8YOSUSsk?[2"`P9A"HRCZHH3Gj-d/f`m?btUl!D92c9%%W&,/I>i:)=jdoQnm:9Lm6U#LPC[VRSQk*;#M1>KlN-JlSOroj*dkE$uUaikYgkOKgP-n`67b.]Z\uGXM%d0[l]pg52X].JRiT$/kbkVa3"(8p'`N8epuX[J^leqSeX1H.6Z@KpcMJLTqL![C$3@9:Ii]8)q&`kSi?r2^I:^6jc=_OaMp9,ni2%AU1A.@p;gJnK+MCpf(].8jN"JHmfArA6'>UC+S<9jUU%]2&&dV[VOPRf][+Q&;Bil'QCuCNS0]?&Vmj<j7.`6b==IK%"X07_LrU3hs#sEd-t6%#<ZYP.1DdKgg9-N`/-qc6fs7j$GIB<l/@W7ijj(;^MQk\fUL$(+dQu11kTuPpc_sqa)$&V\ET_G(TK)Q[X=>1RpBl+,"n]Y<tII(Y"*>G;&Vtegb:IqY1GcN$NWnf33IWra0R>0<b^7oAuh;Zh#+-eR/a&k0:Ia\MW2pUD:03fp=:KIH'$83j2aZZ7#&u$hXJ\.,SpHWOg(IA1*e\50<N5s[:O&\@UESg4U]RV&f@&^6(O(eWF=)4]Kk`"&:.V#.nuB?cVW?m!H\R'3r0J%^E5<q?0RA6c7"t.1pRniN5D#cB/+Oh*.edbpmu?,?@hI#*8c41eD7Oc1aJY[BKSiad##Yj:9SP.C\WW#=tJm@^=N2IV>fIk.l'c(n*`e^>;toUmd?\RY!^mYHe3m+18PB/q7:oO'^h%W=goTg)i9XhdbR;YT7PV'KJ=hafMo7,6A[<BlgL*@Y!@QNVi6uTFktE'XEU-ef1?=i?f[s7,k0B3,MP!&QX8.&J2#^F%;Mr,]tA[H2D>Tss-@0RoD~>
 endstream
 endobj
 103 0 obj
@@ -626,10 +626,10 @@
 >>
 endobj
 104 0 obj
-<< /Length 1971 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2013 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm=9lo&I&A@C2n<hEf$pbLOF_p%uDC1RCYrXnP4[:8@Tcj`-+-ulo$[uPN!L=Q])/B?fGh@Fh=R8BC[]<cEX++3lg5E]VX,UUN<Y,Dne&UkM2>2G;>:$\#X5@"I?JHQZmT=i\J(&T8E+"H6r>dt?`'6!AC]kB#U3EX)*Gn2/cO!gs[\JVQ!F=U?obJ&$bSg;Ill!KZrPe2r%sca``V+Y:)=j,=ln)T&o-)G+]\!7tR%d5hr:Un/W7C`&>reJ9NqeYdDpp1#^n0r(ei(#:I$O9n[C(1q89B<Go9.63/&]W$e;P4;C[5nSqf.YV]=&CH35-sLr`2.CN$\$\:!+Ku1ARS(d[6kiJj-(7M\#Yu4Q6*D0!"&hK%I;J,k2DNLO_*49,cF8PJMJh80<f2_"dZ":k3&Ik=rd%;?LZ/X?O]@.J,DUd6od=XD(fC%\=e`Og9C66DO!eDX[8li_;CprV\th5\:Z3@g%<u^r?8nG@3j3_&"]r1IZQJ4!cFnTI>%)2eDXd4=J#"QiO`R^1Vb(E9L*QZ_HTtXogpNn>\BdhS(L2:A+C5'R3B2<l'l.#)p4lE[)Ne[lR26`LbPY&n6J#!:U<N2>`e73^@&pqH3;o7WT]img#/0#u^K<MJGI_WTjN6ZrY_.2]4<=A/3^+,,sUc4tq9aLr,6O=`P'JHBp%GGhiL_PdVcd;YZcGW]!TQV,L7$6&j:1hahn9XNsIc?j/Bsk@Anbp4lf^)G*4:a90pG!>H%p![cR-/h/C+*;)+@;UPnBs7"jKRGYIMU#64\.o),#1mf7R4f9UPT@nkq5*N/VfTg;=etHS&mZJW:=dq=B1>>sA))S-"M7t@V^-09,iQ/'Wm9%AC&8ui?VHY(>/(K)?&7VW([?KpW"%H2MI1ui?TJ:.1i3s>b`'I8,U7hcr7g`E+V'YV:#uDLR$@$(eNH21g?2$>rSIh7]!a*^`1?M;3ZQfl]Ousb&,iu*q-'BaiSJ8CnRa<9
 2P)aZ*Ca_a.*4\XQ,!BY=?5TQTl31)4j2'QJ7M)t<A=&;9qjad@YeGOi<We@([=mZXp09\Jg6q'T+nDb!Fl-hN_n^;2bmj3>k[f.KF7Qj/^TN>d1_L>j^M-T&U#0%F-[3BcR_fdn*nQ[u[Q6`9]XPB<P_+qJ^0('Q7KNP-7:p+9:02>$Djn#j'Alm?FQe*5TnXsl:j+\U-bV/^C\NY1$7%QtRN[k8Da5j1**8C7'qs-F8d`?,SFa%.@9kgm1Yjahh4^]bm>G!,e_N;k`nhV<7KP[N>]Jb`C5[15BF;6W>[1A$rNpq.6Lt%)l#?S]+8Vd<T9!a0fHm%n//hkb!a\Ff[1`&U1j%&aQB>r,;Ko))nkWP1_N&+2l:bJ8V25J\8GBcBKk(Z\Xr)eU5r#@;3@ZGYX:b0\f(3n?)'X3C!P)n-LN"r?5IY^:n)%8(FMAY0!e1R$a>$2>AUIb<NA'qN>KWUg*@4'l!1^^J)YGdU-qVY!?l;ZT2rG)"`_1$Z;E<UEFPuQ2S?`fZfm?Zh[3.3Ig8oqlO*aqBqVuRFQC"r3!6l.Q>_a+K"D.aj9ZQhR'Qn/V)[[Wf7//Ki\GrneBEOEnRFb&-4UIc`5lC]ORGf@0'rT<tV<6'ApLHlBT7fG>((tJ9M(+VKXC.;Q2etrDr%@o7o:c>H0Y"-@.8=KM?NLp6iH[Y3D5]f2Uui@87"2A2B*CmZG@rt3&=/4M/.20u4?:.uR@;WEl\0_c\>kBq;3%Q6Ef2s"b.s>oF`fKScu`Ug3drmVFZQfQgP6#LpWH<f4BkM-cYtgBZ=8&lDo0;t?@=8ejpfR*rl.HXN"R!MHtZV;X5`jOcUb"\T).?,*&X=q8&*>75sl=rp3ds"%EGHp7[&tAQ"K5i:q%U,m>XY36jb(]jD[0Lj&=Xg8<%Haj^KK>Y2b2@[=q$KEYQJQB]&Eg4qUoNh"%=5`k27b(qdcTjp#6`<1L=CO?*rsr<G3J9eZ~>
+Gatm=h34<d&:aF]_.,7L,7'B^a5iCVd`G0dT0%=3q]LNqeGsXc39U;</iK@;(:NHRR5bsQqsi-R=0)#+p#<l8naD'3>PRr4&NR:0/XK-*oP+4$Nr$IaXccnX`UA_/0:kpI3e^Ah8*tDjGjsU(\mpL*r..:L$cm%*C7H;60[HSkS_[I;kbZt82f&9;P]$2Z.D;@V5M+<S'c0$(BtH;;)1RCEhX!s"?ZFKFRE!^Dcs58U2\3hN/[O'n_E#3o^gCPr;9SPWok_s^f"(J:X'36GmbAq<\Zb9==+d'Fl@S-]8[[`d8-Mf=,>l+^rjLCmNYV>lm0&s]/<lKt/CcH;<Q2E14Y)W`D9;NePdUs\]&#P;K6&9N*^J48p0kB*\f+V2ZPC1nfP[W>\Z!@=69EUqgoioF5Ms6SE_-Yc+Rla</S5@NU_Lf!$mG^EF<G19>M3cEMPhH134XeZO)#ns_*3&M2^]RNnO:I!52+LZq:$A:5PP<2>k0l^CsUR`DKmK=7P?2am\u@aglNi&7"^gdCV@!tE^Df0lm&Gm(JcRqLfH;_2_<-)de^0]n]n3_n:s^MQ!.&+=q10VrXQ;)!b5B!YSZ!aK^h\MO;&R^cO*Bc/G$M'"DeX$jriq0NZbY4WZmW+W-MMG#1$ClOc"!S@\Z0$Is@Kff2m(n[c<1j<>-Te5_'d2c2CX[d#O?@(GF%%>SRAj'3TrZ+lg']X'a5+!kjR2Z3p_I,$.X9BI\mtl#6uNPq#N!*C]If(G19[)0>lVl[+lbH>a6JrCE(LEXkh=VV-u71'n@(XnS[IA3<@=r3d7V;NQbX=ur#b)CSX16DsOWg;t[/B!\S%Asl<2j,uV5IR"O^OAaj(Z]h97JN#$NMV8sLg(]p\Wh*1@WDddVTTe'IpCt50f&nU@M#nWD_IRmE[_(6Ee5_1YYp[b(L*5o-"=`!1/o!K&m*-G>?p<HIOddtjhmDoMaFp</B7!ZSR-Z4bVkqUU/kP=K6W#9
 ^U\*U0^mVkel_sm6[%4%_N^Mrnk_4o\lQ&/-p9L^:7V&5_q,XA*]JU!)'\ff'!k):e412gM_+Rc#*4%&f!KUA^+htFl":#*0#7[;elRP;;WO,(-CC)J#9nA?6i2DlPg3K86G/AJV$Y6Y5gR'p&/bV/8.I^#O>t&BX/$W'3G#jQ21uWdf,ZFB*7hhql]ptf7PU?o!'4WMsHB'1kIrM_mTr4]PJo.fBrTX/t'Oe+->)SRa2f`+fF,P@I*=h,REpS>Of"lYph'T^ejjk=fi^Sgt.R2WIqf-iVHIi<t%m7Ra$qccnF(i+XMLqI%q>(Z,;5=M"V6A!u5_[G)E#)\/MBS5%V'`#hMG:g\U5]bK'iY@(?6QY7CeuaS33F_M1ICDHi7m=`kFD96k&hEY%1_"Sk/"LTX$)%RB:fSm9f<j:@s<M7,kj\79dlMj&?`ff;odks]&q7ic+a\of,m@g0#c(8W1eo#"0QE6M\cCZkCIt)EP+*i4GmBSm$8?-4@MsJV^WQ^a0CuBVW6d[PQIMlF2h:U$Z-AU6aT9:X8%B*J3^Z'6MjrYEuIGF)B^Zsjq5YE*\96G5FU$F^7#>c7b6a1i`sP-[j,lEr*JNU2\S7P2DD^IJC(gP)Z@TF3(kmBrp9\k$b2OK9P<@1,?qg%]&;_p(p!hW`HbD*4+K!-g7j1g:NI.#LXZ1&lk]8IBTZu;ESOW(popA=A4T6kpK-DhpDFV=6c*elZIa&N=#J@GCFt5]5Yql`^8(F3U<c0[F/:\Fd*gZ2:K<:ui(n5+$%^SN`KFI?U4NKQ`dm+<i5ZZNP>F2)S[b'YKI8Z=)+*)uq>9qk<BrYcet!S)l>B.c.'TISkut:)(>A7@chfe)s6,O#[f4+`7O4b`_=mN=(]h>U[/4FYZ!BEe?,:%oGSULSID>I2W*U3q$jU-D"p[=\pAmU[*PiU1qVWmg&sD$7Q`!SKO6^.L5cBh23.W!Mn]&<!_kdm'+(\Ut(bV3uA5a
 b%:O-&sHc&A0Lu308iT69W0L5%j-H1/j~>
 endstream
 endobj
 105 0 obj
@@ -649,7 +649,7 @@
 107 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 394.5 356.25 532.85 346.25 ]
+/Rect [ 394.5 300.0 532.85 290.0 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (hod_config_guide.html#3.4+ringmaster+options)
@@ -658,10 +658,10 @@
 >>
 endobj
 108 0 obj
-<< /Length 2132 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2055 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm>=``=U&:W67i*2b?L`m$h,Th*W3G+_eZ1?7Uq`p@<KaC0t4JJdh^>K/I7.?(KO$*QX_!Z[(rH85<eUI,UIe.E/N$n/eG2l`&AaFS%nXInjo9Nip=qhnn1EJK)CgP@^Yf)2$E@So+pl1)2M'L?Rl*\$4\sE+(P6M[sZZr:2G.gM:ct^ZpcpmE^H>sn-PAcCo`Q,(E>d_[W?\^EaSR$"o?Af:rj"=ZO[DNlGm]JF>Y(^M+G@0,M"'$MYO#C&+[3`PLJNZn*UtEVoYs0.Vh>)&\#(FC[)-bj8`JcnYaleNVbkT62J'_a0e@KcP6tS2`All-5K'lmmBi&agF#G6YMq>CZdMc=NL`1q#2D(gm#h_6i1_DYK`j-H[C&dZpoZ0?]CiU!+laY.HQ@XjK1ZjH/pn.qn:ktPfG\<,-%JSVMTIYS")G,/b9)A_3ZeubAOCp*mdL6,DT3/lR/qLZ=>0qrWk4-:6qe;+M-2jddX81S-K>73[a&C!lo<ca7M?K8BB8eOm'?g<*Vf:StC'9hKBqa'B4\nu(KbXS%-A0G,T0Cc7>SKtUX1GIP53,SZ16rUm^n1^A17`=]lHW/A?bi6"Z+N[7"f$ldGqmUN8q:abWWpp?3t[WZU:#3I*5V%%P=2cW]Wn;qT&WsGG;?B6*p;3V@*DO'D>rLZk`KG$1cu-HH2$J#5mbO;3aDp9/;)d@0jTY!_LTITLjAA824mE/9om=Mi@6p[H#`%<Fe7l==VR3_IoP2fqFC66%2iQG7R4FTFT?-8lfJ4@<:WW,'3uB,@uKi>llQC-Qi,LR?*B+SP4W*9Tf/g4T4J"U-&Eg$_#S6NREN-F4iFBU,RZ>@=TF!CRkMoU\<mNP^bhC'[sCbMj17'hn1]#NIL[:G1Mi*LZ:MHtXjC^dAP8J;A:ZC[.+$<T,>7V^#%A22,s\LGVob-'.IiKFTn4ASWL%WW8M^#>lST8#T`]Dp[F4')`Bo,Xl7;YAYZSXiFX39
 GTp<mfAOK%;&cNdC99NS1Jdmc'iHZSm:^B&Y/H!#t7CO\B&m4iP?nAC+:7\3:#9JV(Ye2+C<^hG\.6n.GGk%2UAH8<M80@So++.YQLl#.S9>)lm`.,3P.I"C>fGr\>/M@:]dY,;o0.:*kgIoL)>?^:%Z@lN5?NAICZEsgpfckC)Is<8cA0E!g8V2I$QpqDY"c*+8W6NnHgL-[)6!bHuGS!=t_:_V*A3M)[!#jCHI4N;,'Jap-9m"&>,SpLF7rK:'C&Eg;BBjVi:'#J`/M4N>:`JgJ"b^3@*MkK1,[9e,'[C3Jc3+Hi*S;QU&ta$&-T4[h6YM8![VKm<"V($Cq:_9<I$TP(#6`BWigO]`AJmb"rSU<4$/#GuXb(JW.W,@lY6CFI6a1,S!9(OcDa68d)*\/C=I)r]_^K6$_JGMdDT%(.`HYh@iBc,0O%/uP6Q1u;R@^SFD5?F5Le@ND/h4\;*"6K$=u$'"@\mf2M\-VlSC"7C85Etm.g.^u=aD'':2>@P]pJ-ZmoR5&CfZdW@(mK71DU4o-qMN`+`0HqpP?7nbDjp)ClEE9:mOjoW(s=%aZZY->4m'JaB9L6-MTa*F'/dL702W;^uCPa)ti:C</iuD>i+F[V5"f$-jQ#YqHUcjETOn__0aIP!>3cHoIp"S\pAM/:Eo!_3!r+p*Z+uV^Y'a-bY$\kN9XUJgSXfTl1)%ge*T1IF;duJ2V/h=Z(fGTBYU05@5a91<hDI'VBl?mJHI4YQ(1hsX`2m*6!g0Q+VW4Y,NRKSGKKjMI6hbC2ipJ=En4^OY=F,3]ML!Y2JZghW,L\BY"pMnoEY1SmbE_Ia$<Y.^5r+;V0^7B6nRt+lR4JZ9a:9?=PUU]__aOL@rW4-qpEI(h.H/e9G1[fN-#T!o$MjYqi;8!&?n9Xb.&l%c-r#`okbbl@nLOMD7CpD`fn"-:r<lO+kpd:"DP.$R%CXjNOquC146tb@bme4h$$1?i,-Tdri9o6KNc
 Qu$?bq^.$j^u^NsaHAL"TN>t;Ei#$n,anTY"i.GASG3%<b^$f;pj_:sGbc8OO>)D2WiU@p.)Sh:n13e0BngSUnkfp:al,NTBsbEF$`nO"30B0QJomaEot]2i65MdsO@Q#7/IilK$Cn,:4`!:N.%,Oc<~>
+Gatm>99\*g%)2U?kgj8kG/T_Y+-UM"O-q>3f/[s,*jcQnk!YLT4lSH9^6E2cTL;pnSa>^',sqh)&bl?&H+fXE\s[u;+n&#%^7DD)L$pU[9DOp[qX^5>?kG(GkMG7cO4ijRjdD?Gnh6a'>!AlLpS@c,b*W.h1BVnJJ#2eg.(reW3OW\aJtQ9#/<#FDo\#=an<bB$PF+CW3IKbbRr4N*2cQ`.UVq::LC[X4eBN*t#0XrF^:ZrWWZuhrSbZoJIJJLXZDP#;N%>8.2LFo]B4UPfS)[m&AY6XBdkiT*Fd2:f<@X`IjQbl)Pe6,8^Y\*?IoV@BIaG0"m_BJXZH#Z\7ULDCmY,AV0&GF?5F@c_dcHC\+2^8AR)RF8SVVIIP3:W5$BibB$nJ>+i^L,SP2lbI8Wp1K11$=an5gW:GJ"YkO)*TA8QD!;J'ml<YUiu`*FQcR_l$>,XZ]#iJpVE'6PE&=V]g`Z+Le0j9BjHX7bD*>MbX@LYjAe>@1s'eA@Ea4CEVD[,At"g4")fMA+?E&0,V;]%qANlRm7o*LDB&VKB<@?F+`+#I`NX^2MM?72e%p@W6B:4@<(4ffEsg*\9/+f,jm99e74Q0Vs:933$:3^^'W?16dEH'X=DGO)"!,la:R$Uk@#gFFG*ZuYjBU"-4Q2]*-C1jqdU+-Z+^$R`oX"A@To%i%f9@E\!!0.dJu6LaXfC82Qr/>%XsC`'pcO<cnO12]I9rp.u:Ah7>?!4Ra=aP8sejia]_M-+&$^U^&6QN<d^':ID:[k7'=n;!ub+6G,'Q*'gHF>aG".*,#(E+_XSP23Zp8u?oNDU>S4@Q))@!cLK7:<OppSKle2u=J8\XU5X;*H,*fRr8uno^:NjD!=_W-)&[A!Z.hJ./JB01GO[I'A"75-qem-.k."JUrUJXG".DQCRafN,%6fNtG[=b7u!Jnj9Tr]WH/If4`1mrVJHHf\l[1"$1N#XfAp,f<"ClZB4biYS#0W-X2Fr^+
 pUJUY\TV3f)Q54HA`3un:!3K:bV,(^"KW3'nm(%BKUmQ64K7C2YF[ZR*][g8VUKf41976iu98h&qqP_:E1pgPpH5b1.S>8Arj-"PTF<bS6(TAfTfn2W,iFhCF*uED#o'7&nr]T7'*ZN&>;?bq'41HD,`LI-cA:U"ro!jR9LD_<`;ADj%K9,YSf-QfTF%2Vr]Mb!6Ze8<An;:K3(n9Z'>NrI;(ZD?>6nhUS59$dr%QI.Es%U3>2r(>P'MTU"=:Fsn$[%AAhZ9s\3cG`8bRIn%fHGn*Gm/pc_i3A42U)!K9$X2nZ;YgV,LV\b5^i9,!KQ&5iZ$M4J!0pUG<BDW8>3NEBa,Ee*1NMh)KkZt;HYICB6;-r#B%<s0tP/!c1(LoR<StqTUf,FjC(1($p-Rj2Q)h4U)tBM+G*?"fQ@+Fk5\if?"h2(k2U:>K\mJ8g^4=,L7DF6f[(DPnD1!(&<KaA%KJ;VkB3CN``Q!/9bG@H(bfTeD<$Wb!q6)2UaOo.nMlujTuV*sN>?-k77_hd$'*nN5XXO'`##"YNFH"MR+Pr'8M*rG:Elq>JXX#m[NB9Uci0C1/POYePg;4\PuT<U07dbojUNbtZ7=7H4"SU(+i^V<(rK4j3#_j/g!pNh.7LVuUUlH8:NXd3-X4sm^5&O;O(#jQ!FbA?E\M;#eXO@c=U17:kI.,bY"K^/NnFg#b%Rp6#&:u$bXDgM1@4Wd`AMb^l;fBkT]]_\gBonc7^@^=5u'"HFhJVLG6;Nh2BP8H=)OCCrNIti?n-$i)5$N+b#;u'QsR\SS3)P,h"`J$+?1g_cn\qN=UidtGEWf:dO=5j)EB^9NOLhChtlp7*dapkX^?(W$7VuT0e\Wj)T(f5+U[6\4.On.(@,@b]k<s8mIH9]C"D/;geP$>NOP2"bP\3QOD=_Md5V)X`7HM,r>r[c,P+tEBj]\<XFc@e^P>TidtW;/AG79TqA)m3?KWQd6Eca">>aW;\r7$MiKT
 7u*C0!6b`KEQ^)s:(mFBji6Q!Z*LMU09_]7IBc`/g>>K6*9,QXTAlRlSD8gqHRM-bf.+7$Du.K~>
 endstream
 endobj
 109 0 obj
@@ -673,10 +673,10 @@
 >>
 endobj
 110 0 obj
-<< /Length 2406 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2370 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!Sn=``=U&:XAWi*5Q9#j-R1c*?:KD;mBL44C2+!0N@rQm*4c<n(L6(!g0CPb$OmUlED9&HWa#h/C'a"nQ2LoQ#9MjiGdanGDK!d$_&IXp]_rBD6]2=;E]8=%e6*48S(&`OuX1_d`n>IX:*hL'ca2k=9j/8r"KUX&_8.F*1]VY-^ERVb<GKBG7_:F.@q.iMff4a?h-rj`.s#L/]!*.9a)]MPPUYh8_3%Z<X3]!8\&nWfZBfHB-".BR"PKjuN8biF+A-6oQl&BU;Dp6nVOB"TPGqhtE;D!bOC6PPoNr`f`haXh3cBC5*7kU<RtTMq&_&6*cRUB4u$`TIj,02IE`WED"OIqVYN=>fOi&11([!K17P#^fPB+\H5QCA?tEbM6EUTk>EU=p$+a=*6eZ*"e'95-2_p24g=4qfARgQfpcoq0?g!ucLq@-mJ&<?bB]CVM&r8T=PkmG4@h>TkTHd)JS++Gd'Vr@GA#MJk*_LBFT5<!:/(tPjm&\I%/7t$c>:05H1V%#\pKV+OBoe&,l(S%peg,:[^(0A&um2h@GVHX(off5,/"ZS=l5RX_`@5<p)7!^2WH4oe`tXljj0?)3NgC`;<MpKGdKp:Up>YkUCR,)K';>V]/a<m`humU9.L-ANb:)E!Rq@>ATAP2fO++l'5+EYB2=?Bl-+9e.d+KkBF&EB3Yl7Z)%\`<EfnGR%!dG\AZaB$l;<A_;(R8U8;J$a0@9E;Da3e4=(bR/i'nG9,)mnhPdXEP@$,-e&o!Qg$!EY<)?*ed,KIt-Au1fg5.)Ag\V<aQHX>cJdN2rK9Q)-7q8sE)!T,uS%&Rslc.J]ZCrgYAN6BctpN^1$]Bh2:aPM<\ATC$#9nrmJJU/k[MKRRe0gdqa/P:_;Khn/>70klmNh:/Y/2C5iQNAP;BI+=[jXJMqPi0kn!\)g-Vh".R/9"jo^a)+:Z5j(llE=$"KL]cc=RS,r+u,G+'-Z-:@/h82n-5LW>Ad"^4HC\
 sPJpCZIB-sn64O,Z.roV8ith-QA^]Bm3.?&h=%$0$9I?Ic_s<,LG%PT:o,eNDMmipI;CZ.l1D-=?IXm6]4hp$=7mnVb!tgC=$RoPsO-#ti6Ad:]X`tn]C2>6fN=]Tmh%N&:&"_IX9kT&C(3GK>6/jpGIH&m^Vs7%Fp*O6dNq;WV&gXITmj&u8<6ir1bXKQ*U\a+``8+t/p^4MR1%tJ7l4_%cb9SUB';33F6St%a*RN:j3d.Li3``p))"2p@6,DkM"jF3@+!,$&=iB`2DSZ13d9AN/coBMlA]9V(Z<iGH$C:\%kRRV6YQnqXkUemY3/$"W5FrLZQ>^nsrWm`]3PVV(biC5c%tISi2Vbg*VL9T]p5=B5Olg[]Umr_)TsCJo.*;94mnVTV7Ldr2Q5cJHk4Kl"JWjq3+5LCBQ4ert^pU'ek.,HQ;]\scE`_8ViaQNEE?Tjl#'a;`fQ%[$ZmeUdnqLb-YH\="Q)7A6`EPa@+2rW;LOo<(@kA\IhcbY`S02dM]^%aR/o%:_A6`I_E0'8\b_:eB#UX3mQQj'g&sm>h_GV+&0l:@fm\(PgZ9Ft[):hWORP+2kqHa2+H"?erg[Q[7e`SILet6Im\#FlW`m?Jgk1a3`B*]6V8ZiKBfL0p#,h0l@$'t0iluIm`&*e2VMX`=>$qt7ke%S>=6T4`->n5QT.D$SK$^fcVrr7.%KD3qD'^pLO41V`U=TU$B/q?fBLj?QS<nNJEg89Y+$e)PPqZM:3jeN6ZXKjQDLkPkt;b3@d=IV]I@R#,I&c-GTiFj1\hhHdcab:f7636D('HBoFb6OPN)''gs-H5+T\b!.2*/ZWfC)P3l13<$K"p&M988jVU2I)MeG&N[%Fb;\Lct"SlN?=NA`YFj1W&rmn/E;X/9U_)VA9$IMDjF%$Jch_0:e&RA^jsa#':oe<bR*V_iOM#@+-Q+%?Y;jd58rHJcLap<o,6jh(pd<CPH/O_Dp;5AmElibXIEC_L8e
 FQ<Fn%UN5(FsLELHD]-=CY14rni>Z&hcS,i$70FfNh_i`;t!h!k2`2$R"s$fm=1)dA[T'RNeG`8\[q/Ge13#;*(1XM\,dmEB?"'(,Uqd<Ni8tJ_B.Un\'-6"T/8O`X=.G=B]eX(m:k'e]%7s2kV1/&]3Bj%u`^b3&*+m:lR44;mHfKlN>/1JBgcT&],T<[%^/),&7MQ=OTQ`d\I.c&jaSuMP4b4R4!""H.ORe/Y0o/me5Y,NFK-fjeqXQiVrLORJt['^">$5j.D<V7;&fMhO3kL;&Z6g7"q8K*3d$uG'Qp%^f@$ErhtVLd64hIludR@`f=rsW9p:`[--k1cPES'9I<<%aK5_*!3[YT'P&\gPQ[?M@F*>4lhEN@KDVUuqKM^<ENFY#LNO:"j<J<Q&3,P^@',=d6*RgH,qMgu!]6kg0~>
+Gb!Sm=``=U&:XAWcs,k)(aaLVDiPLoBQH"-44C2+!0N@rL*BS<<n(L6jbX-OfkR$P>&12_TZ(B$D\%BEjsMhE-\%`7fa@^cScf6PB!1I:\*]F+kDj,9^^4U%T.Nfe3dGo;!fI]S!4;pY%X_2:W2P\![6]0Bra=!$T#*]g01W#?TVT$_L<_Pif&O]GFUWCE8522m8?8P#+0"@@_*Kr>PMA4E.eXI3>0"3q\DX$Sa,04(B9mm,H>u;b[)DQ`H"'bL)XsFV/$R3>N^YL?2W)`-4+4e)S"6%?&%&5Y=3m#iR2R@arPZI,/:X\>q3i\k9E\h@c=Xi;k&:*jfHr>c>*QFR'R;)c)jWnGXuZJAihYOXET><B<@cgEY618_`28Ng2R,ia^'aJ\="KMTX2])=,#b7\[CZ%hA!&#\=fD^qW+VtK58@VJZYWd_nQsIH`N]hSc6G2h*>_l(dmj1rHt7c/[\kmD7jp^c`=9W/*)Y;o!!Ee6eX`lI;CDou_GVQ-b_dc1AX]PQ%#YfOg,4="BH";dZkI[7eggS3bpCasEQjcjdNW+.0(-6<=\?%o-9"%')ud4"Ufr&i,CZ]+[U62:Z0jXO&'aVq7@UVGkF8U9\f=jlJOn66)92tu^-SumCU3RuW6;JW,"Bihq-%8iC'<-8DJOp%"AeA@jROrIhr[6PQP8:uArbmaWs%=4$_4rjrY"C]2Xu@tTfMZ%oX-Xfq3X,X2aNcG42[=taK]SKh'NXMre3Wk9F'qH)O9-WHYLl#gJB]0hqbqH,I%^"FY%d#?`M5/4AY^Zq4!dK-4(3(2,V2hH-UY\a4&5G>:\r'm=9Mb>:!FVPX'i5TVVEh3gSfP7.IjG;pM+#g*d[NN*C_W0+^shVqLI*b,4SpHD)$VW<QTLA<r'@N'cHk'cFdQQje$MoaKik[a+',HtYM+GWHRY>*_F!.MJjN/4IVmP[q3X/L(7LlOq/O=@3JJ,3oEg+9rCOcjkH_[0l>4&YfK
 7AiRK+E1MhF)qG@^@=g%(`<-&jOpUY6^fdMqUe`RU!aP$UdU![!4RWE@1t1b]o6bD4m""OFW*uQAl^O#6j8%&.[1pqKPMG>Td7Q3"/<IQuMM^D#eD$'_X[bXi`b1<SfR]D5#l5F(7Bs[lAm6;XNj7U\q[&2)Abp%jMcd=u$1r!^bAid)B2qX*r7Fr`p<.DtFTp(N""N%k!0k/3Ef9Fc>M+K@eriIL.?[1f3"6i?Pb>o5I&_"nf?3)Q'T%th6hM356:?o&!aQL#5D4%"X1E%_[iLLdZMO+t/!l)<j9*%ifu`eahY[V8Wl*SD1K)A*c8$H7NP:1(Uoqi`?PAQh%n%Zq03U`D*hbi3>#O.3Cr>fTF_2#Qml6p@m=9agHn]-H:L.oKZCk\a$516SknD+_2O/K\gfn90H^aE4:a!/e^n"jH6KKb(!%ehuMX&s&$$U0Cq%pi#(1XP>hg@cCHBD_AFolbF>DS$V]0f<9,B/uT)S8aenfu/d(M8sPW&Xb`Qt^r^H^KLe(H\kVM"r&]AYU0'@u$k]=D4P4GMJVi94'<"LOTieUHOKGRjrJ!6>b$jNs\[HW^-S&G[`kOb$rNS1>rao;f+F?Lt*"),IP#<oYVP\.98m[[,O:#QIHqO-NEnrZgM3G7sf=#n51"nlB$S>>8WnPh.Z0+!f&#9[AP@sF5`Ra/?E&de`)"sc-2L47K=C0\d649Agj2A6W&Gn2]NUc(4.a"BaR"%]LOFF,@?J'@8,mU\u^SfqUck5ECg_O3ktE;P[$.Bf9,V&q#U5W^/&"[e/<%8$eIN=XDqLgh*dR/JVhhkp?hq2fT_/p+ALH2VA$=<O:JSpg\l4.B\hiEm+*7H*-\6/G^!g^&/KiQhAq2f9^V+a,+Ft.7Jst$l>33bq(J=[1^+qBb0a6`T5mU5/C]i2Mc5YE_)FU?BY-Fi.EA5*Z!56Jhc%ha*OZ8#a6[p"0(;M,+Q]uR?rS.UQEE%p%&9u1l/D&^qN/
 oB+Wooq;@-Sdfp!PHK`RT_.%6d52G*kqVcUON')Hh]iFn_1hhI!l`C1UA>!gdD/i]FPQOfWXU#5>0_(UE/%^nG`b132!1SL/?Cn54A]u<:Qg.:UIO[(eZ<,m)"Q(g0a)fAlVgqtefeDQ(<Gg`.$H'Y^8$'TPpM7,D4]/Rn:DS[KikKl\T^VG@q3Xs<$%rGHV!>!\SAlE<,aIYm'cS]@5mh9R5S9OE;gSpgO>*NpaAK`7XlYQ0I!VS?4B`FP7CI!16]m(P20X-E&2=c.qX(Y_*'WK]t[O&ZPfa`=R9?SQHlca_qFJUQC\,0.+f'(ZJXm&Y>!X*d`e<K$?E!8r`*e0?rI+K?3lBrSo,Z+rCDHZA&H;O!ghX[PVHB6IE?bg]3"8q$99)~>
 endstream
 endobj
 111 0 obj
@@ -688,10 +688,10 @@
 >>
 endobj
 112 0 obj
-<< /Length 2172 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2277 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb"/(gQJ$q&:N/3kUfPpGEs,$>OpjuY1G+(m)3r8OJH+e7Y2I3=tV>ohl"#A*lNRC43:.<AX<VM1OV93q>eiCMjr8VIR0<)q"ngb)8oY2[LN7WX876UR20ck>@q?T?Mq0T^04e!3_O5)s/e0eUUDu:%p_*%ga!rr^=k/gHbtV,^0P'MHD`-k8G%h0cZ.@9?H>t(rUO!$rSm84bC8t46[S_Zd2&oR;8h_-^[O99,W]1BpEeJkZ!@5](,A;BEMj2uZ\TO)]qh`d=H/V$@Tg'pp79G!Gb#r^?he1b^2"7m^9p]oToMETS#cGa,-j=sBtoWnW84Z<VZ.\4Tp5G'*MXllikC@-&b]9a33>W&Dr-^m:r&cR&f6Vm-Bu?!bWZK:=U1g9`:/T97Ii-k"T*X,n/YD\HjqA+7#EM.o8=_XSp\T_%SKKli!b[fZ!Nln>HUW_="(YcO4##An<66EI\F8tn8k+l'H%nM,*HMgPH"1@E@f]6X`rcd$'(C-X#^s:E$>Jr(VHG5+Eon3%DUL;:67%FK8eo2icTU$:p6N_*`#,MH;?-%8LNBW4qu+<$!`8TTacV'YE;@5QjT!30*DUi\'_I"(iusf'tt]oQ&=q-js5ZUp6c=WT&Z^;ZdB8iCeC3M-Lc*nVlDr`Cuk+%g-/SA>NM![9T!'k%rtc#S/q[.O#+lr?!mJ$gIpAZNL,G5b2$5m?09''fk<^^gQQCbq1$G59G<9qe7G-F]:LkUfr-qt!Mu+6bsb\m(Pf*e7W*u-+!#hQp5/E/S4]=AQacFkUX,Z"7iq+g+*WNhcKO;[6^[%c0afK.5Up`+(l&"mM=9H:*XW`n`Be0aG]F->G7FlE=t%)5bcFaaEL.?6$VDSYZEDY*3HpBLX`k[u_$[<HFMo16)56=Bc-&cuN..JR/!*n&\eFnUKuj!4Lc=jciC8t1'm@279MZdG3"6_/#u%!#&k2MdWg)^u"9:33[W5a"cIoA]S.``D]<:d&rnc/
 r(Y@na=RCL$r1!E0F;?go9MW4FU6[`7Q)DGTG17`p\([.0(`_(>d>=D+pF8!CNnd0m:'\`ZCF?@BkC(ZSNHYS3AZ^0k1M0A3`c,,ihSjR-=Tg#\U)"ZRZR$=O'%LHhYk+79kn[?9eE.c$`[BRc:/F1B+ecK-l(065oq)kf&e?:tdMbhP9Gaq[V*o1?&t0CSS<XB#R[TV(7I5qI@QO";G>]*&K5uL<`Dj2@]Vmj02O[<XqVO`4TT>2$O7AHp1at9>E*n=l&h-%RqUABRT9N:G=rS=aF^UR=%g40=@jLYT5*%THDJ-EP5mdlt*U3V6Ed_:13Z5/YZb4(:Jld7aRDd6r\`W65W^rhYk&CSZ@$fi2,;'),<.(%D36lTbZnE]!b2Pr[X#%h<5eWN.`:`0$#W,s`GRdZclQ%2-`t^]P9g+Kh2R.uu1h8Or`%bG)Aku(Mr!d`J9`aHjkU.[3Ri!YDQ#5.%nt:.9K^,g06$[%,%n'iplTT/e4$QJ3IK%/`X?jA-mk!ak#<BL(Fd9q.,$q$<4j"BH3155JH?Umd6DUpB7_"[:=*?GBT5(ghq$;HT?^YH'm;em>EFU"D(rD,S&BX^]I/'MpVSY3QZ;Fdh^s?Te#uQ-"J_Or.k;2Q2(q8Hd=$?<C$8km$;EMA_e?&5be'1i%e&e'Pbm5Z]<6V@@AlVXtAuAB)VGm'XY*$n?C/`,HijeDRRt:b93SK^c"u/8!Y>(dc47cWtTL:LSi7;%>b2B;[YY."jU8D3MrsR:*-.MOBf;7QOKdh.]@U<#tb/-0<afI0rbeBf*<VHAeKW3tIq8/@W-F#V<0+t/.0_eQ=9?k"F1ll18T]AQ@"$.(.gGtse_&L5H4QPETgUdl72WD(MNU!F&g-Xf^kW26*I_op4N34RQHFd9K1M$COBNGP_G#cl"pGQ[J<Z!/NlWMnu@h-Li#-AU4BVPJlfufU5Le1$@>/UT@kYtK8[BG&VpUcFf0X]U)akKct^(d
 ,;3*uHC2k><.n>_F7j^Voq*O\8!iIGNRa1=RpGSo_8DQ)$XNu$dar*+K;\5)AL4+AcFdhkG<<arW=ndD]_TS!%/^XTQFB3S"FU^CmE\%e%%a"6(:2&/)ND#ii:m8qLcS:9#>W`_I=qZ1$<Q^d!]^&`/Tgr_A]rT!*Xc'nJcMu)c[XeAUu#8*+_H%,k'kV.\~>
+Gb"/(gN)%,&:O:Sn?'fkKb31UIEKNhPK>XqUU1PK-NfKm`0ql`?EEqj]=]dFK!Lk0G!,I0ZiDZ&Sis[n]incJXY9)pW3M!4[hjTe9Z)!YphMtao?+=3i_jCL_Ur,kEq/G]"P4n_qXf\]f:WQOZ//fSbp3sOW6n@^(i`:)=<EJdSpcbj&T8<PgfUgnWFrD[<JV`h)h/akpTT`8/CZ=>4YY0heTKGi[)AP+;J+taDn-_j7p_.,NJQ'>36\FF*8o.S4>4a;glB],hY?6nRrM8XH(:R2Tfa<>)I9'XdV'W=ATq`$/1VidJ&n>e1IQo@ho]2;N-R'8l^Wa>,0)T@8Yh`,-<(8VD3Z@WA/r?X&fL7<[o\qr7>Wt'$3aNq4siDLTpbX;WR)4%1CF;+$0u"rGF%JOhGlQh@u6^'ZZb-/-obWI1OTl=9O2qOg<5;ZNa!NL>cu5Z7S(]kbOpZK>m8'QI`UN1"-g,g9[8Z47@B""Zu=bYK+#)Cg$a9Pq<]JOOK<VPQ!hKcic]T^A!No8'LfiZoWj^KG^(<::>AJHa?66+&4>%$mJ%Hj+>Af22XrJ3fXk5BYgopg,`q!:&eRkF]pC],I[4Z(\"YDgB"gq.\^iONX*TPnC7aHGK\Bb9H@\GN7eP9[\s.FLrGKSQf(i&$KgL'K:j8L);a&(Ucc'0)k?(]l(tN_g5J4,HY`:6*`2/2+2$p2;4QW\Tqo%_pE^)\n[f'fI4$\L9N?fi=MEQCGA[k6rHms0sFUGr0//ft?F#jD;pb/.tf27,E'"h4U`De.u75@:FNcD0-,mI;)KlSg^'[uW$@[XrF&Er5m)/OO09W)uXn0\\*"PJo?b#"SSIZ4X2'pa_f[7AVJ:E@3('/+DCM.F^3^.7PS*(6d`pEJ.,l6IP40H(pd3>X2=iK"(EWQ6_M4"8%5jg*HS*#(N-O$M/>6%:5coFRq#4VM]InIEFM:dSC:OePIj6?aJ]YY[/>"AM+Q@l@QuH`:5
 ][1XoTFkA+h6(P4rZR(>8c5sn=En\8_?X"A!?ZnFoSBZu#it:/TqRl%Xo&<U`5KM[1jg44?99r*i@43kiDlu<?;kIn3`"22up":C++-ZP;b9_>iJ%#b7lMqXoKU@M(\seNO+YK4ZJ14M?Kf4Z%ZTu(NE(nuC2J:92N`h&.LJgOECA`0'c9mknqA]/@'='r<.hQb':.D=r8rG1N(3>[340M(s!?^Za+qnCtNMd+B!s41k4UB4KLmhXC#!<&E:_#aQm'_X::SbcNk&bLq-(Kreb;Z-+GPe<I&:P^ir/:OG.uXsC(&p0S23DHqN%gapO[YgK;H9;0VO[r0c*s5r,U=_W6Dp-qQrgU#C#i;]Fuh,EEU<mMZXSkrWj0jHKX&h65N-=u2pdJj1Yhsl=5QDJiBoGU`nB,[M+r\OEDY/1Y1i+F.s+-4Y[TfF*TI:A;[.d;,,XfUqQY&O&Pl&;,r@YRQr!&i&iCLV#Y)IH?6LBUHieGLs"p?EBQ6dpU(:'k'!B.%Bm3#!BSpT688lQ3Z2s/>i:8a3WZs)fM)ejC;8#B?>:cC-8_81AbL0lf_dZd_$NpJ#FYA[D4H:c$m\aV98cbVdLH7ah\XlftXpit&Gu<Q<_'=@oRDagI0&W7!U_$C9H,cLUYb/k?HH)UhTU(K&;Kn/A)$<&!dtFZk0aQ2'&`Pg5hP]GQc,4$/BNZ)W4Jl:@)FVB$'spD&h3dL@B=^EZ;5RpaN%?]MNNuOHhbZhiPTQ4.D&1$+N%7:rD)]Z"6":mJck)mIH0)FC6rBBh,AaC_O&OKn^X0rg`)bJQcT2FfIN%OF_Aso]*CB$W<[bf+oEQ)B4+RS[SQtrdOB2o$+"oLp*B<'9OXlh.Kj>jD.;ga^-:p0/pEH#4f:I0^*>FI+b!l^5&GKbG6W@tbE*-\a3-.$oC_m/i=8-"&:iQ(tlLL7SPcFlOF>6e5FCe0j1P1<A4b&ejK=[8UqW\d9\l>9X[,pj'CK'LS')9
 2LldM)qe.%3IYk+^UIVR.';KPfm@Q)"lcdnrBToG!p4trtRRQLNKld?@X.j23Sj9]rX1S?EuV:B90;@f-h=a0<h?>b!/pr[0fZ]D(@HmAJI).%_?=pZ*R]WL0a\]M%iLhnMJei,`4VkLG<C.`Dk9%0c!%NHAQ1BJtr^!=Pl]_r=UfSqV-aL]?,^A<MhGp!.J(SK8t8DlO`%rob'];F18HcY7'^&cKZi<<OKF<!$aoYsap?e`E?N/)ZU=`2DmGQ$")\X$56nUW[U[$E0.T\6qBA*EXWHP)AP]RKoY]*[a~>
 endstream
 endobj
 113 0 obj
@@ -703,10 +703,10 @@
 >>
 endobj
 114 0 obj
-<< /Length 620 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 958 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gat$tbAQ&g&A7<ZGcLpG$qZSUFDTYXD(fa&p!a0H'iC#Y+rrfZq!Ukh9Zg*3'S[%@R[i1Omp%0qkJV`>0IY.dj2D9J&;HnSVJLYS.>&dW,tP^Rn*5Bu?XCbQ'D"SSHYC!DbQe6/U@BQ<@>H=&)Xr)4FL"o@Og*I)iumgjlL_g5/k_bCPq)]$<!q3f\,^^qq.>H9Oa&/]U'O4m;Kt<ac]6>h;Zbum3W4^Ep'1OP1^tR5q7l&.^aG?<h*DPeA6Q\4/M*\"Us_V->$S%3[uKT%XkpfZf8,%_cU'X.]sdC#gSQX#"cJAcJ2/,b=N`'p^J%7$'2Nu]&1":e8Qg30`e.)'UiPLQK2P4g??G![hr9*4k!#L$J#1Q$YO=-]i2S.mo?_FC#rdQ:-<K`:F,i$31dX3V\l-s/)$(>FB04+Q!&9>n5$p^TomS1E*6()d@/!rDi$Z(D30o#]ChsG;6^>cim?G[H>Z3G;394n4UX@-%2!/QlnV[Lh'LmJ<mtW=PVA0CWGo/,9L(WC/\VXo,`ZYEr2-TOoohk/gD,lhL;Y"gA9Z.dVL`jVf8nQgjn6msk>l7O`rNg1.b-`9i2PgU=fBV(AWH[N5Bmb;k)77]f"!!CKY5~>
+Gat%"a_oie&A@rkFK5LC$n7<BN_,^^6%QJCHYSIh[O@WI,Uuu\qX7'ok")qN)MSY0WStL8Ho'jNC2p^d4>)Gte^(irL_7'XcdVoY2=EFH"F4#kXS(T=iqDBXYO@<:*'LWc(V'.TqF@X4PBhree68^"O6'0X@9;#5C\:OdZ%LN`5]G(sGe!LXq^XRI,n<]/YnIS/a.0Eh@p/?eb-F1c?s)-fH*:3;=GqslCAf9M1LOIY-(_9_1[SX5/J$#mWB\D&F7W`*KJB'C;?Kk:POE*>UK#_$:(R\*aMUc<e]U'Q(X^&Nk64XM,mk;jAi"s;?0-3_beQr9(aDtA.-FWn?m_!FaMB?MW_NP>48o@LE\O2]6=sF%B8eW8LWmk;k+1S'&G_YacGdjBW;<<uUSJTSRI+WGZ4mt4?H,Q!`%Jr!I"V`p/%B4^X<hUlCj76LO`7)<>\mq%"k]C=rdRB%Oq<>`(g.@RBaf/1M_f'E:&NLFjV+S63c2`M#*pW)@2B(pM99oXS12IAoYiQd;pQ)B_tn1fC;DU;gP>X-92RM_d&7I\pQX>[QPjOjcSq^D5f%]m(T#-!:\/sje<o]omdU>)ZraXi,*fhC7D9MP&=KQ-41L?V.ah@QY@j.o3RHS<c`5H*=Mca^Or0HM,h=h("S!b#du2Z'8n&i!X^O)%E#YC.FT>MUVe[aEA_H(4Q&J(QZ_tW!Y&+[q2<<4.B(VTgHp'/h$"c;2%V2HbFF;T[9GimP<e0Cr`dHbiie1U-pH2?R4V>)^6Jljcjl^Gj^(j"k_pJ.`4.cubmqN^Lp!mA@Rd3B]N*mb'XM9n]k09@l88R]=VZ;Gc"b)O$$f?h=.)uMU&_u8U:uM,5JNF<L%##b/!ig;fh-+_r^+\Pjf8A!p7&*D6&S!g<qo7pU;.n\FHirbS.^#@g!ClKWSOIDG+Q1hYT[%4\Qb_0b;=PnUA=36!F-B6N~>
 endstream
 endobj
 115 0 obj
@@ -1130,43 +1130,43 @@
 49 0 obj
 <<
 /S /GoTo
-/D [109 0 R /XYZ 85.0 155.0 null]
+/D [111 0 R /XYZ 85.0 627.5 null]
 >>
 endobj
 51 0 obj
 <<
 /S /GoTo
-/D [111 0 R /XYZ 85.0 341.9 null]
+/D [111 0 R /XYZ 85.0 280.347 null]
 >>
 endobj
 53 0 obj
 <<
 /S /GoTo
-/D [111 0 R /XYZ 85.0 216.647 null]
+/D [111 0 R /XYZ 85.0 155.094 null]
 >>
 endobj
 55 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 659.0 null]
+/D [113 0 R /XYZ 85.0 598.2 null]
 >>
 endobj
 60 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 533.747 null]
+/D [113 0 R /XYZ 85.0 472.947 null]
 >>
 endobj
 62 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 456.094 null]
+/D [113 0 R /XYZ 85.0 395.294 null]
 >>
 endobj
 64 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 266.841 null]
+/D [113 0 R /XYZ 85.0 206.041 null]
 >>
 endobj
 89 0 obj
@@ -1189,157 +1189,157 @@
 xref
 0 152
 0000000000 65535 f 
-0000066235 00000 n 
-0000066455 00000 n 
-0000066548 00000 n 
+0000066561 00000 n 
+0000066781 00000 n 
+0000066874 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
-0000001718 00000 n 
-0000001838 00000 n 
-0000002024 00000 n 
-0000066712 00000 n 
-0000002159 00000 n 
-0000066775 00000 n 
-0000002296 00000 n 
-0000066841 00000 n 
-0000002433 00000 n 
-0000066907 00000 n 
-0000002570 00000 n 
-0000066972 00000 n 
-0000002707 00000 n 
-0000067037 00000 n 
-0000002843 00000 n 
-0000067103 00000 n 
-0000002979 00000 n 
-0000067169 00000 n 
-0000003115 00000 n 
-0000067234 00000 n 
-0000003252 00000 n 
-0000067299 00000 n 
-0000003387 00000 n 
+0000001711 00000 n 
+0000001831 00000 n 
+0000002017 00000 n 
+0000067038 00000 n 
+0000002152 00000 n 
+0000067101 00000 n 
+0000002289 00000 n 
+0000067167 00000 n 
+0000002426 00000 n 
+0000067233 00000 n 
+0000002563 00000 n 
+0000067298 00000 n 
+0000002700 00000 n 
 0000067363 00000 n 
-0000003524 00000 n 
+0000002836 00000 n 
 0000067429 00000 n 
-0000003661 00000 n 
-0000067493 00000 n 
-0000003796 00000 n 
-0000067559 00000 n 
-0000003933 00000 n 
-0000067623 00000 n 
-0000004068 00000 n 
-0000067687 00000 n 
-0000004205 00000 n 
-0000067751 00000 n 
-0000004342 00000 n 
-0000067815 00000 n 
-0000004478 00000 n 
-0000067881 00000 n 
-0000004615 00000 n 
-0000067945 00000 n 
-0000004751 00000 n 
-0000068011 00000 n 
-0000004887 00000 n 
-0000068076 00000 n 
-0000005024 00000 n 
+0000002972 00000 n 
+0000067495 00000 n 
+0000003108 00000 n 
+0000067560 00000 n 
+0000003245 00000 n 
+0000067625 00000 n 
+0000003380 00000 n 
+0000067689 00000 n 
+0000003517 00000 n 
+0000067755 00000 n 
+0000003654 00000 n 
+0000067819 00000 n 
+0000003789 00000 n 
+0000067885 00000 n 
+0000003926 00000 n 
+0000067949 00000 n 
+0000004061 00000 n 
+0000068013 00000 n 
+0000004198 00000 n 
+0000068077 00000 n 
+0000004335 00000 n 
 0000068141 00000 n 
-0000005160 00000 n 
-0000068208 00000 n 
-0000005295 00000 n 
-0000005898 00000 n 
-0000006021 00000 n 
-0000006062 00000 n 
-0000068273 00000 n 
-0000006195 00000 n 
-0000068340 00000 n 
-0000006328 00000 n 
-0000068407 00000 n 
-0000006461 00000 n 
-0000009091 00000 n 
-0000009199 00000 n 
-0000011644 00000 n 
-0000011752 00000 n 
-0000013980 00000 n 
-0000014088 00000 n 
-0000016499 00000 n 
-0000016607 00000 n 
-0000019085 00000 n 
-0000019193 00000 n 
-0000021582 00000 n 
-0000021690 00000 n 
-0000024001 00000 n 
-0000024109 00000 n 
-0000026775 00000 n 
-0000026883 00000 n 
-0000029581 00000 n 
-0000029689 00000 n 
-0000031697 00000 n 
-0000031805 00000 n 
-0000034308 00000 n 
-0000034431 00000 n 
-0000034465 00000 n 
-0000068474 00000 n 
-0000034600 00000 n 
-0000034771 00000 n 
-0000037229 00000 n 
-0000037352 00000 n 
-0000037379 00000 n 
-0000068540 00000 n 
-0000037514 00000 n 
-0000039438 00000 n 
-0000039546 00000 n 
-0000042415 00000 n 
-0000042523 00000 n 
-0000044523 00000 n 
-0000044633 00000 n 
-0000046615 00000 n 
-0000046725 00000 n 
-0000048790 00000 n 
-0000048916 00000 n 
-0000048945 00000 n 
-0000049139 00000 n 
-0000051365 00000 n 
-0000051475 00000 n 
-0000053975 00000 n 
-0000054085 00000 n 
-0000056351 00000 n 
-0000056461 00000 n 
-0000057174 00000 n 
-0000068604 00000 n 
-0000057284 00000 n 
-0000057450 00000 n 
-0000057749 00000 n 
-0000057977 00000 n 
-0000058270 00000 n 
-0000058494 00000 n 
-0000058841 00000 n 
-0000059172 00000 n 
-0000059421 00000 n 
-0000059718 00000 n 
-0000059967 00000 n 
-0000060287 00000 n 
-0000060607 00000 n 
-0000060940 00000 n 
-0000061259 00000 n 
-0000061455 00000 n 
-0000061701 00000 n 
-0000061929 00000 n 
-0000062193 00000 n 
-0000062484 00000 n 
-0000062872 00000 n 
-0000063338 00000 n 
-0000063598 00000 n 
-0000064085 00000 n 
-0000064496 00000 n 
-0000064843 00000 n 
-0000065105 00000 n 
-0000065339 00000 n 
-0000065453 00000 n 
-0000065564 00000 n 
-0000065680 00000 n 
-0000065792 00000 n 
-0000065901 00000 n 
-0000066008 00000 n 
-0000066125 00000 n 
+0000004471 00000 n 
+0000068207 00000 n 
+0000004608 00000 n 
+0000068271 00000 n 
+0000004744 00000 n 
+0000068337 00000 n 
+0000004880 00000 n 
+0000068402 00000 n 
+0000005017 00000 n 
+0000068469 00000 n 
+0000005153 00000 n 
+0000068536 00000 n 
+0000005288 00000 n 
+0000005891 00000 n 
+0000006014 00000 n 
+0000006055 00000 n 
+0000068601 00000 n 
+0000006188 00000 n 
+0000068668 00000 n 
+0000006321 00000 n 
+0000068735 00000 n 
+0000006454 00000 n 
+0000009084 00000 n 
+0000009192 00000 n 
+0000011637 00000 n 
+0000011745 00000 n 
+0000013973 00000 n 
+0000014081 00000 n 
+0000016492 00000 n 
+0000016600 00000 n 
+0000019078 00000 n 
+0000019186 00000 n 
+0000021575 00000 n 
+0000021683 00000 n 
+0000023994 00000 n 
+0000024102 00000 n 
+0000026768 00000 n 
+0000026876 00000 n 
+0000029574 00000 n 
+0000029682 00000 n 
+0000031690 00000 n 
+0000031798 00000 n 
+0000034301 00000 n 
+0000034424 00000 n 
+0000034458 00000 n 
+0000068802 00000 n 
+0000034593 00000 n 
+0000034764 00000 n 
+0000037222 00000 n 
+0000037345 00000 n 
+0000037372 00000 n 
+0000068868 00000 n 
+0000037507 00000 n 
+0000039431 00000 n 
+0000039539 00000 n 
+0000042408 00000 n 
+0000042516 00000 n 
+0000044492 00000 n 
+0000044602 00000 n 
+0000046571 00000 n 
+0000046681 00000 n 
+0000048788 00000 n 
+0000048914 00000 n 
+0000048943 00000 n 
+0000049135 00000 n 
+0000051284 00000 n 
+0000051394 00000 n 
+0000053858 00000 n 
+0000053968 00000 n 
+0000056339 00000 n 
+0000056449 00000 n 
+0000057500 00000 n 
+0000068932 00000 n 
+0000057610 00000 n 
+0000057776 00000 n 
+0000058075 00000 n 
+0000058303 00000 n 
+0000058596 00000 n 
+0000058820 00000 n 
+0000059167 00000 n 
+0000059498 00000 n 
+0000059747 00000 n 
+0000060044 00000 n 
+0000060293 00000 n 
+0000060613 00000 n 
+0000060933 00000 n 
+0000061266 00000 n 
+0000061585 00000 n 
+0000061781 00000 n 
+0000062027 00000 n 
+0000062255 00000 n 
+0000062519 00000 n 
+0000062810 00000 n 
+0000063198 00000 n 
+0000063664 00000 n 
+0000063924 00000 n 
+0000064411 00000 n 
+0000064822 00000 n 
+0000065169 00000 n 
+0000065431 00000 n 
+0000065665 00000 n 
+0000065779 00000 n 
+0000065890 00000 n 
+0000066006 00000 n 
+0000066118 00000 n 
+0000066227 00000 n 
+0000066334 00000 n 
+0000066451 00000 n 
 trailer
 <<
 /Size 152
@@ -1347,5 +1347,5 @@
 /Info 4 0 R
 >>
 startxref
-68658
+68986
 %%EOF

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt Fri Sep 12 08:07:04 2008
@@ -7,6 +7,11 @@
     HADOOP-4060. Modified HOD to rotate log files on the client side.
     (Vinod Kumar Vavilapalli via yhemanth)
 
+  IMPROVEMENTS
+
+    HADOOP-4145. Add an accounting plugin (script) for HOD.
+    (Hemanth Yamijala via nigel)
+
   BUG FIXES
 
     HADOOP-4161. Fixed bug in HOD cleanup that had the potential to

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py Fri Sep 12 08:07:04 2008
@@ -451,8 +451,43 @@
       raise Exception("Invalid state: Node pool is not initialized to delete the given job.")
     return ret
          
+  def is_valid_account(self):
+    """Verify if the account being used to submit the job is a valid account.
+       This code looks for a file <install-dir>/bin/verify-account. 
+       If the file is present, it executes the file, passing as argument 
+       the account name. It returns the exit code and output from the 
+       script on non-zero exit code."""
+
+    accountValidationScript = os.path.abspath('./verify-account')
+    if not os.path.exists(accountValidationScript):
+      return (0, None)
+
+    account = self.__nodePool.getAccountString()
+    exitCode = 0
+    errMsg = None
+    try:
+      accountValidationCmd = simpleCommand('Account Validation Command',\
+                                             '%s %s' % (accountValidationScript,
+                                                        account))
+      accountValidationCmd.start()
+      accountValidationCmd.wait()
+      accountValidationCmd.join()
+      exitCode = accountValidationCmd.exit_code()
+      self.__log.debug('account validation script is run %d' \
+                          % exitCode)
+      errMsg = None
+      if exitCode is not 0:
+        errMsg = accountValidationCmd.output()
+    except Exception, e:
+      exitCode = 0
+      self.__log.warn('Error executing account script: %s ' \
+                         'Accounting is disabled.' \
+                          % get_exception_error_string())
+      self.__log.debug(get_exception_string())
+    return (exitCode, errMsg)
+    
   def allocate(self, clusterDir, min, max=None):
-    status = 0  
+    status = 0
     self.__svcrgyClient = self.__get_svcrgy_client()
         
     self.__log.debug("allocate %s %s %s" % (clusterDir, min, max))

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py Fri Sep 12 08:07:04 2008
@@ -252,7 +252,6 @@
     self.__cfg['ringmaster']['max-master-failures'] = \
                               min(maxFailures, maxFailedNodes)
 
-    
   def _op_allocate(self, args):
     operation = "allocate"
     argLength = len(args)
@@ -313,6 +312,21 @@
           return
  
       self.__setup_cluster_logger(clusterDir)
+
+      (status, message) = self.__cluster.is_valid_account()
+      if status is not 0:
+        if message:
+          for line in message:
+            self.__log.critical("verify-account output: %s" % line)
+        self.__log.critical("Cluster cannot be allocated because account verification failed. " \
+                              + "verify-account returned exit code: %s." % status)
+        self.__opCode = 4
+        return
+      else:
+        self.__log.debug("verify-account returned zero exit code.")
+        if message:
+          self.__log.debug("verify-account output: %s" % message)
+
       if re.match('\d+-\d+', nodes):
         (min, max) = nodes.split("-")
         min = int(min)

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py Fri Sep 12 08:07:04 2008
@@ -116,6 +116,10 @@
     """Update information about the workers started by this NodePool."""
     raise NotImplementedError
 
+  def getAccountString(self):
+    """Return the account string for this job"""
+    raise NotImplementedError
+
   def getNextNodeSetId(self):
     id = self.nextNodeSetId
     self.nextNodeSetId += 1

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py Fri Sep 12 08:07:04 2008
@@ -51,6 +51,12 @@
     self.__torque = torqueInterface(
       self._cfg['resource_manager']['batch-home'], environ, self._log)
 
+  def getAccountString(self):
+    account = ''
+    if self._cfg['resource_manager'].has_key('pbs-account'):
+      account = self._cfg['resource_manager']['pbs-account']
+    return account
+
   def __gen_submit_params(self, nodeSet, walltime = None, qosLevel = None, 
                           account = None):
     argList = []

Modified: hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml (original)
+++ hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml Fri Sep 12 08:07:04 2008
@@ -351,6 +351,37 @@
         it is better not to run this inside a tight loop without sleeping.</p>
       </section>
     </section>
+
+    <section>
+      <title>verify-account - Script to verify an account under which 
+             jobs are submitted</title>
+      <p>Production systems use accounting packages to charge users for using
+      shared compute resources. HOD supports a parameter 
+      <em>resource_manager.pbs-account</em> to allow users to identify the
+      account under which they would like to submit jobs. It may be necessary
+      to verify that this account is a valid one configured in an accounting
+      system. The <em>hod-install-dir/bin/verify-account</em> script 
+      provides a mechanism to plug-in a custom script that can do this
+      verification.</p>
+      
+      <section>
+        <title>Integrating the verify-account script with HOD</title>
+        <p>HOD runs the <em>verify-account</em> script passing in the
+        <em>resource_manager.pbs-account</em> value as argument to the script,
+        before allocating a cluster. Sites can write a script that verify this 
+        account against their accounting systems. Returning a non-zero exit 
+        code from this script will cause HOD to fail allocation. Also, in
+        case of an error, HOD will print the output of script to the user.
+        Any descriptive error message can be passed to the user from the
+        script in this manner.</p>
+        <p>The default script that comes with the HOD installation does not
+        do any validation, and returns a zero exit code.</p>
+        <p>If the verify-account script is not found, then HOD will treat
+        that verification is disabled, and continue allocation as is.</p>
+      </section>
+    </section>
+
   </section>
+
 </body>
 </document>

Modified: hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml (original)
+++ hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml Fri Sep 12 08:07:04 2008
@@ -412,7 +412,8 @@
         <td> 5 </td>
         <td> Job execution failure </td>
         <td> 1. Torque Job was deleted from outside. Execute the Torque <code>qstat</code> command to see if you have any jobs in the <code>R</code> (Running) state. If none exist, try re-executing HOD. <br />
-          2. Torque problems such as the server momentarily going down, or becoming unresponsive. Contact system administrator. </td>
+          2. Torque problems such as the server momentarily going down, or becoming unresponsive. Contact system administrator. <br/>
+          3. The system administrator might have configured account verification, and an invalid account is specified. Contact system administrator.</td>
       </tr>
       <tr>
         <td> 6 </td>



Mime
View raw message