home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / alt / msdos / programm / 2071 < prev    next >
Encoding:
Internet Message Format  |  1992-07-26  |  32.4 KB

  1. Path: sparky!uunet!vtserf!GroupW.cns.vt.edu!linkt
  2. From: linkt@GroupW.cns.vt.edu (Tim Link)
  3. Newsgroups: alt.msdos.programmer
  4. Subject: Re: text modes
  5. Message-ID: <5119@vtserf.cc.vt.edu>
  6. Date: 26 Jul 92 20:56:59 GMT
  7. References: <1992Jul26.134202.12205@news.cs.brandeis.edu>
  8. Sender: usenet@vtserf.cc.vt.edu
  9. Organization: Va Tech Communications Resources
  10. Lines: 636
  11.  
  12. In article <1992Jul26.134202.12205@news.cs.brandeis.edu> dernis@binah.cc.brandeis.edu writes:
  13. >
  14. >I am interested in using text modes 0-3 with an alternate character
  15. >set.
  16. >
  17. >For some reason I am under the impression that character 00h-7Fh are
  18. >not alterable, but characters 80h-FFh are alterable.
  19. >
  20. >Also, how is color handled in the text modes.
  21. >
  22. >Mitch Dernis
  23.  
  24. Mitch...
  25. The entire character set can be altered in the modes that you are interested
  26. in (0-3).  Graphics modes only allow the upper 128 characters to be altered
  27. so you are not completely off base in your recollections.
  28.  
  29. Colors are handled by having an attribute byte following each character byte
  30. in the display buffer.  For each 80 character row on the screen, there are
  31. actually 160 bytes used in the display buffer. The attribute bytes can control
  32. blinking,backgrond color, intensity/font and foreground color.  The attributes
  33. work as follows:
  34.  
  35.              +-+---+-+---+
  36.         Bit  |7|654|3|210|                     Colors  Normal   Intense
  37.              +-+---+-+---+
  38.               |  |  |  |                           0 - Black    Gray
  39.               |  |  |  +---- Foreground Color      1 - Blue     Light Blue
  40.               |  |  |                              2 - Green    Light Green
  41.               |  |  +------- Intensity/Font        3 - Cyan     Light Cyan
  42.               |  |                                 4 - Red      Light Red
  43.               |  +---------- BackGround Color      5 - Magenta  Light Magenta
  44.               |                                    6 - Brown    Yellow
  45.               +------------- Blinking              7 - White    Intense White
  46.  
  47. Only 8 colors (normal) are available for the background. Sixteen colors are
  48. available for the forground (8 normal & 8 intense).  If an alternate font is
  49. loaded the intensity bit controls which of the fonts a character is shown in.
  50. By default the alternate font is also displayed as intense, but this can be
  51. changed by loading the palette registers.
  52.  
  53. Rather than try to explain how to load the fonts I've written a short Turbo
  54. Pascal 6 program to illustrate.  It doesn't really do anything useful, but
  55. hopefully, you can see what you have to do with it.  I used BIOS calls to handle
  56. the font loading/selecting and direct screen writes to actually display the
  57. test data.
  58.  
  59. Hope this helps!
  60.  
  61. Here's the program ( There's a uuencoded ZIP file following this that has the
  62.                      source, executables and several ".FNT" files. )
  63.  
  64.  
  65. Program ScreenFont;
  66.  
  67. Uses
  68.   DOS,CRT;
  69.  
  70. Var
  71.   Regs : Registers;
  72.   Font : Array[ 0..8191 ] Of Byte;   { Storage for font file }
  73.   FontNameA : String;
  74.   FontNameB : String;
  75.  
  76.  
  77. { ReadFont reads a font file into an array in preparation for loading
  78.   into the display adapter. Reading is rather slow as it is performed
  79.   byte by byte.  No matter... it's only a demo. }
  80.  
  81. Procedure ReadFont( FName:String );
  82. Var
  83.   FontFile : File Of Byte;
  84.   Index    : Word;
  85. Begin
  86.   Index := 0;
  87.   Assign( FontFile, FName );
  88.   Reset( FontFile );
  89.   Repeat
  90.     Read( FontFile, Font[Index] );
  91.     Index := Succ( Index );
  92.   Until EOF( FontFile );
  93.   Close( FontFile );
  94. End;
  95.  
  96.  
  97. { The EGA adapter can store up to 4 fonts in it's memory at a time, the
  98.   VGA can store 8. (This demo only supports 4, regardless.) The memory
  99.   spaces for these fonts are refered to as blocks.
  100.   LoadFontArray makes a BIOS call that copies the font array to the
  101.   display adapter RAM in the specified block. It also reprograms the
  102.   adapter for 16 scan lines per row, because that's the size of the
  103.   font files I have.  The lines/row can actually be anything between
  104.   8 and 16. (Some adapters have extensions for taller characters.)}
  105.  
  106. Procedure LoadFontArray( Block:Byte );
  107. Begin
  108.   With Regs Do
  109.   Begin
  110.     AH := $11;     { Function 0x11, Subfunction 0x00 - Load User Font }
  111.     AL := $00;
  112.     BH := 16;      { Number of scan lines/row }
  113.     BL := Block;   { Block number - 0-3 }
  114.     CX := 256;     { Number of characters in character set }
  115.     DX := 0;       { Starting character number }
  116.     ES := Seg( Font[0] ); { Segment of users font }
  117.     BP := Ofs( Font[0] ); { Offset of users font }
  118.     Intr( $10, Regs );
  119.   End;
  120. End;
  121.  
  122.  
  123. { The EGA/VGA allows 2 fonts to be in use at the same time.  The particular
  124.   font a character is displayed in, is determined by bit 3 of the attribute
  125.   byte (normally the intensity bit).  This procedure determines which of the
  126.   4 supported font blocks will be used for each state of bit 3. Block "A"
  127.   will be used when bit3=0 and block "B" will be used when bit3=1. Note that
  128.   even though bit3 is used to select the font block, it still functions as
  129.   the intensity bit, meaning block "B" will be intensified.  If this is
  130.   undesired, the palette can be modified to correct it. (See proc FixPalette)}
  131.  
  132. Procedure SelectFonts( A,B : Byte );
  133. Var
  134.   BlockSpec:Byte;
  135. Begin
  136.   BlockSpec := (A AND 3) OR ((B AND 3) SHL 2); {bits0-1 select font block A}
  137.   With Regs Do                                 {bits2-3 select font block B}
  138.   Begin
  139.     AH := $11;          {function 0x11, subfunction 0x03 - Set Block Specifier}
  140.     AL := $03;
  141.     BL := BlockSpec;
  142.     Intr( $10, Regs );
  143.   End;
  144. End;
  145.  
  146.  
  147. Procedure DisplayPattern( Offset:Word; FG, BG:Byte );
  148. Var
  149.   Address : Word;
  150.   Attrib  : Byte;
  151.   Data    : Byte;
  152. Begin
  153.   Attrib := (FG And $0F) OR ((BG AND $0F) SHL 4 );
  154.   For Data := 0 To 255 Do
  155.   Begin
  156.     Address := Offset + (Data * 2);
  157.     Mem[ $B800:Address   ] := Data;    { store the character }
  158.     Mem[ $B800:Address+1 ] := Attrib;  { store the attribute }
  159.   End;
  160. End;
  161.  
  162.  
  163. { DisplayTest uses direct writes to the display buffer to display all
  164.   characters of the 2 currently active fonts.}
  165.  
  166. Procedure DisplayTest;
  167. Var
  168.   Data,Attrib:Byte;
  169.   Offset : Word;
  170. Begin
  171.   DisplayPattern(   0,  2,  0 );
  172.   DisplayPattern( 800, 11,  0 );
  173.   DisplayPattern(1600,  4,  0 );
  174.   DisplayPattern(2400, 13,  0 );
  175. End;
  176.  
  177.  
  178. { Adjusts the palette so that the upper 8 colors (normally intense) match
  179.   the lower 8 colors (normal intensity).  This makes both fonts display
  180.   in normal intensity. }
  181.  
  182. Procedure FixPalette;
  183. Begin
  184.   With Regs Do
  185.   Begin
  186.     AH := $10;            { function 0x10, subfunction 0x00 - Set Palette Reg }
  187.     AL := 0;
  188.     BX := $0712;          { makes upper 8 & lower 8 colors equal intensity }
  189.     Intr( $10, Regs );
  190.   End;
  191. End;
  192.  
  193.  
  194. Begin
  195.   ClrScr;
  196.  
  197.   If ParamStr(1) <> '' Then
  198.     FontNameA := ParamStr(1)
  199.   Else
  200.     FontNameA := 'SCRIPT';
  201.  
  202.   If ParamStr(2) <> '' Then
  203.     FontNameB := ParamStr(2)
  204.   Else
  205.     FontNameB := 'MEDIEVAL';
  206.  
  207.   Writeln( 'Reading font files... Please wait.' );
  208.   ReadFont( FontNameA + '.FNT' );
  209.   LoadFontArray( 1 );
  210.   ReadFont( FontNameB + '.FNT' );
  211.   LoadFontArray( 2 );
  212.  
  213.   ClrScr;
  214.   FixPalette;
  215.   SelectFonts( 1,2 );
  216.   DisplayTest;
  217.   GotoXY( 1,20 );
  218.   NormVideo;
  219.   Writeln( FontNameA );
  220.   HighVideo;
  221.   Writeln( FontNameB );
  222.   Write( 'Press <Enter>' );
  223.   Readln;
  224. End.
  225.  
  226. ---- BEGIN ----------------- Part 1/1 ----------------------
  227. begin 644 scrnfont.zip
  228. M4$L#!`H````&````H0P.XF/8Y08````0```*````4T-225!4+D9.5`\`$@,D
  229. M%38G.#EJ>TR=;A\)!@$3-.7VEO=!0D5$O,.(%2]"A/C@&4U08<2/$2-&>$9[
  230. M6$Y8WN':AQC1P3=LA&_8#]U[$/[#,W@(_[`7(_S#\=O;T`X)$@BV;^1!@0*"
  231. ME\C@'2F1(D:*$MX16SN$MV$C;JP8X6G8B!DK3O@:ZBWV%]17X*"OF-#"-]3;
  232. M,'^YPP#_\!_>X@2>#/,U5+,J5/`-67'#5W#=R=&>8:#M:?B/`0421/!E>(<(
  233. M$03;UPB]1DA08,``WX@WJ8!OA!*O\!54T_XAWB`/F"72$)#EF9,D20(<4JC0
  234. M_T*&V3OI%S)DR'PE2I3([YT.&WFR688889I-GMC0,X>+&#%BJ&`C*R:L-,8S
  235. MQX@1(@BG80UB!`D42+"#Q&C@F8/%2*`O3A`CF*APJCC]XZ0*(2Q8?VT@@F&P
  236. MAO6'91"^,V9F>J"!KQPL<,"`GKG/H(,+)XX<.GA@P7R>.4(,7&3!SN&;#-1'
  237. M#I+OL&<DCS;:.QDR1).<\+_PX'OF/Y0\8'[>'E@HCV?^('^@7KRVK_&_@;9L
  238. M[0ZA+>)IT]YOD&_4LQ[6(\[T@OB+>(8+FFW%^C2$QX?W%R08;8J</7.>0@4U
  239. M*X3/QSV&#!JT<>7*GIRTGV=:A),7+"AXPXOE/'.O88,&%\I5:/"\07T]\YQ&
  240. M,+_U@CVHCV?.5VS78$$7[$-Y_447\1XH3R#?Z/_""1/TT>0)TS^,IP]TRI03
  241. M.T8,\?3!GJ8%^<G_#+O0($^@$5*D$#Q"Q.P5)X;SS#D\Y2(G.A!L)XDB+A5,
  242. M%(GC#A8L5*1%!7USPTE]M(&CC>SFF=M.FB281/+,>6TM7[,_DV([@;%@^0+I
  243. M2R\7RD=PV#>M-&G,`+'O>#.;^89S>Z)#@WR%(V0H,73^0%^&)_!E)?1E.EB3
  244. MJ"?9UW1PX4*)R-5<T67//'GVS)I5JV;-G#ER1,]\+&DZB5^PNRQI[)D+>V^M
  245. MC2J5.5"@084,GF).N4:2&@4.>*;]J,6"Y0T4&@<.%B9&A@8'_#KU76^Q8/FF
  246. M,9(4&D@7`/W?DZE<,VU0I.>""*=_&B6*X&&2-%N:Q.\B`>HD2AAPH*\IM;E.
  247. M(^^H?Y(Q[&!_$XYOJ3-,K*1/D@@:\;4;WBN1)`Y(85D:*%>Q0H4/%=*-PX0A
  248. M[-!^B7)M$B-.Y!]1(HD\A="4@\01Q>$G-?(5"GJ08$&']/`WDK5TR9(G2WI&
  249. M?`U!12T\Z#4)TD:/Y0X<V)^A^1)D,)@X'L&?<(%70D*@H@L>R<%1T'R^/%1(
  250. M;R%&2=[^J(YG.,A?>E@@STC)MFUKWP[I&2F6,F**);Z"^TW]\R6*-&G!'`4^
  251. M>*9V0Q:]84=(X!6BC!&_9,DRKA!>EX:;Z2JXX&[WF3.&,=?CPX/9N>"##_?+
  252. MT`SLT,:-"5NP[_F$!"LUZ8_]"W:,:],0<;+YGJ]!/]^H=WF&61Q[AN9AM;U#
  253. MC9J.<=K>IDIQFV.^AH$L>X9X6KZAWG8<L*4\GD(\P[VS9_CAPX(RXO\)/ZPI
  254. M[!DFX=MAU=1\...Q_[Q"N]^YT2]V[G<<`<TF33/_-^S,G[D6]19%5F]!/"/>
  255. MHIY17[$GPGS+,\R_N.O/`?',*O>SE06[G[_P8<\P5\Z[-UAS#I]P:IDP\;36
  256. M,.?O=O<T.4S,8_P7;-\T?[-FS8C"S;XI?MXS=[A!2\9OP6/[1"I(\@689WDB
  257. MS.]37T9\RU_0>[T#]/:M8YKQX>/G;W]^[(LT0+P,^3*W\S#A\2314&E^SZ@F
  258. M#^8))M<&ODQD"@U,,1#/?.#``<HD6/!CS;(1:K?#KOK#,W+FV><?Q*E54PS!
  259. M5#\^TRQSLS,$"Z:YZ)9)QHSGSAF&K:HJ&$*Z8(BML6#P^/$Y0PBS8.FC!:MY
  260. M<\A$R,3]/4.]@S5OT``\%@S.G_@&]VYA)*!)?W#$GD)\`JBWP&/\^.$=JO=B
  261. M+`00Z'_O8,8(\8[Z1[E#"+,GP9\]4V7H,[[Y'[=A6GTPX-#G6"Z6<Y'G_L&?
  262. M^1+LOW?4/^J=\(KX!F_FS>"^Y<O@C`#YQRWLRXA_F#<CH(S_^8=X&O44(<P>
  263. M%^J/$&]$\_2C7S#2+P\P(()I^/""(1\^"(8XQ[R&W.N,,G;V"5&M[GZ$;8IY
  264. M.$$E^_@*+#)@_YI;(^*[GB8/RH=-#?^76:FS9U2GR=,6-(K4VA(<H\R#:9N5
  265. M?AT#15N$"6^3P\+$7*$/(WS**PINY_.KYC.1=[MW[WZ'&5NJI-^^?9LH.XQ_
  266. MXNZ!\Q,>S)JPI_FP7T"P'JHOQ!-H#-&H+Q.#C&(60B#/!"2^8=*`C@T4J3/K
  267. MOQX))4HF;(^$0!/<"@ON&9&,?LB003!GSY8'F#@N-4HC8RY#L74ULMX#[]=/
  268. ML/P`0`=02P,$"@````8``)`T%!U.1[F=!@```!````L```!!3E1)455%+D9.
  269. M5`\`$@,D%38G.#EJ>TR=;A\)!@$3-.7VEO>"0?8;N'3@P+TS!_;SC/_?_O__
  270. M\//_GG&`-O_^"=XG1P3/.$*./IQA,?+D>?[\>0S&/:."CK]GA#B-09G0+MC/
  271. M#_O:D&6:YFE6J%"S/+Z1PS/W>NIAW_C#@PTSA&\&'`>PS#&`;<_DSYD_8<*$
  272. M"1<^N&?R[YC@QXX]>]X\,+Y)C-O`FN>V=S10L'#Y_N4+%RR09S+@P(,?_WX\
  273. M.##`7XCUOBXN],P9P6)L7^/;MV_?NW%#<,ZTS[$P.=IX>YL<#8[U444X.=G3
  274. M8/T\PV)X"L5,O8T(GJ'!OP89+`V/$>9?&-V(8`<+%DS76+"2-/O?+`EGQ!<"
  275. MPS[\1BDESG-X`R(8#)\LV([EF6)"2\,%SY8M6W_#Q#.'R%<Z=/A\?7JT:)DO
  276. M!&@NUJQ#CCCA@F?.Z&D<+1;GY5-'3MU.7R1""$_#-`<W#1-"5)3Q#!D$,W.T
  277. M=?]\W?/U;\W/2`RM+T"""E:<."&"&&S4E4&(QP4:^(H#!W1-<C3Q>[NU,SQ9
  278. M'.<D3CQ"(#Z7-&JFC\EQL7Z>,?4-\C1H`'!03[M%DT;_1?]@;](O4*YFC7QO
  279. ME,?7:+!\S<`.XGLA3RN,+V)/+Y8N3Y=&C7QCCZUF?1IX"B65"#,QP+Q9,;R9
  280. M)-"T@X&\&1(0=$20H$%L6]S2)9*O<4/-\OFH+Z_9MF[;G`$+Y_-,.;DG!^5]
  281. M0/6[9YK?5YOY:S'$\P-MTJAPX,""%V[NG>3O!B[YD^-[IOV+!4N6+YG(6:R_
  282. M9TBP\+Z,_>_<N''CY/$\T^?VW0_0>NZ;Z",%:ZAG-$;L<-Z94I-%R]?-.QJ>
  283. MUA8L;V-/;T>,6S7R%^I]N7*U:G7JU*BYITDG?-O?\/SV4CQ?P7USZ];IXW7P
  284. MC6:+E\S;:+W&A8.'R]&A8>>\0H7<GNGUH,=]53"7R^,9)_/6:.&`ZF"^T6K5
  285. MA+5?MFB>Z7O/T\7)T<5;J._ITL3Q9WC_AEZ'%O9EDL=KD3"^2<#`G.I_AP8%
  286. M/!+V6R2#;Q(B3K;&4`'0C@G#'48V>+R,.;)USNTK&B18\ VAF38OE&279N
  287. MM,\A>G<.:<^4.7/FW-U\(T5`<3G?A&5M$2:?MS@>;]R@3B;<\W4TN?/X&N:+
  288. M.(.IJ;_V\`R>(5HX[Z0;*`X7+UMWOT9CQ/%Z$,&N\N_ZM6O7KGM&L[1K[FN$
  289. MK!.?"?,M@B>!1P*D\63E$Q3:X%/[8#X/$>P>9<#13;R-`?)^NNPR:8@&TIW7
  290. M?M8MC6>T.<"CGE&BOUHWOS^2=\12]<I,W3VCYXNUR0,4#B$>[=<(H+!E[D#-
  291. M"H=8';Q")`!'16A3Y`R:ENF7B>>#BSP5[(_)Z)EAMGS8F1X-#GBYE%X#>'2^
  292. M@\^$WDT<_PNFX6`-;QNBNT$?WZAW>89A57N&<I_#.T2@*1A63E+F\33J:YBG
  293. MY1GF:?D&XUDPQSU#))(]0RG,$3Q,&>CF%.H9)I'T[TR8/F'.`-E(MSLW^L7.
  294. M_4XS^=%&W/^!?/DSXJDBFCV%(6W/,&]1SXBOY(DPW_(,\R_N^G,`E*CDO!*`
  295. M)MY03R-.]6&]^+"7@FI?1F;6^S['T?%A#=G_!3L&3T;SV86_*7[>,^UPP\\F
  296. M')$`DGP!YEG^!/,L3X9YEK^@=]SZ;B0RU4R.G;OW[]LS7R2V[J3OH^'"[.YL
  297. M<',^%Q-">!A/1(A4#J:5L&=RX,`!*P4'/\81]K[;89CSAV?DS+///X@33W,>
  298. M(0X1_$:;;&UN$"@PS=MDLTQ&)!(,\WQ55<$PSW>_$PS3$;%@[!F-[QD:WS/2
  299. MIHU@;L^8$@KM[QGJ':Q]`^^H?]+&.[2_;W#O-3H*G7A&/84)&KBW((+_\`X5
  300. M_+]W\/_>P<A8J&_[!_,._>$=\15YXR_HFS!_M`T%(/J&O/<UHFWRWC^X=]0W
  301. M\8[Z)]Y172:^(8+[&LQ?J&CL">#>0GT9^X=Z,UR4L7]P3Z/:1'P1S!O`/(TR
  302. MH5DPZBO$,PX?7C!,"^T/@F'0X8)A:"/*V,TG1+CZ?AQC/X$QB!^:'`.2J,9`
  303. ML!'J.TDV0+<`%OX'!^]L/!:"TP04AP$TRNT^*N,X.(8`@N"86">D?AE[9LVY
  304. MW2/$/;CM/GX(.*$E@"Q4$8>8L\_S:V#_&-[]J(2'\336R/283\&`;,)8Y*.:
  305. M(**'ZM'$(*-:%/&,@L0W/!I(G#AV.#<<_#\?#C%*]`Z6C,:1)I@5%DP`#Q-,
  306. M/M@39\^6QY-);&N41L9^AF+S:F2^!^%"%"P_`-!02P,$"@````8`JH+Z&'D`
  307. M[9QT$0``(!@```P```!30U).1D].5"Y%6$4/`!(#)!4V)S@Y:GM,G6X?"08!
  308. M$S3E]I;WFVH%";`A0)X`(P(\:O"H:=P#`0*9GJF`X3EL>X)A#S'L.(;]R+`S
  309. M&?8PPYYFV/L,NZ!ACS3LEH;=U+![&_9VPWXRP+P->ZAA+S?L`I[V)\-.9=B_
  310. M##N:8;\S[(Z&G=.PQQIV8,-^;=C+#;N^86>05%,U[!:&W<2PPQCV),,^9=C#
  311. M#/N>80<T[)*&_=*P<QKV4,,^:]B*[`![#?NS8:<V[-F&?=RPHQMV><-^@<RN
  312. M8MAA!AC.JU,#=#?LB@NF>A*OFK@\;L$!-?,5X'Q@=L@3]TO0X-7&O@'^MW@5
  313. M]W^`4#7?/7!]3.")#?OU1SU@_Q:T2<UD$U@'3>."NO(E.;MFHP*F\<6^W`]\
  314. M'"M`#^@?54#]8.($N/FBHAV(THCM%]23"('3-39-3E0P329FWU4X@:ZD[[CB
  315. MQ@T6^5+$$XDKXK8P1,5&"8HV"O"X023/!PA_M%*`C+&/IH*DYGX4'88-$>IO
  316. M(GSK0H"B`12]@#&SXHSF@]D+T'>2`V&2SQ7]=/"+H35OH%D7"D=L]-_8Z`'5
  317. M__/:D(:""HV;@-(X`:7U@=).0>`Z7I_L:-\@>X?J"_XJCG)WUT\`.-(DQL
  318. MU+]BJ_QQD37414+ZH$G$%9KOU\RN![H8'[0"]LO_?]UE:*L!M,&)>:BP!0BG
  319. MQM'W_8\;Y(#D%S!S.,P#-9`\`68^AGFP"9)OP,RM_C/:A_D)$H*?V)S"\A(/
  320. MC`ERN,&I0Z4FA4H58=.B1),6M1J4J4BI9<.23>OV+$BS;]W2(3XMV[)S7;IT
  321. M"1+*\6'GE@5Y-VQ:NBX)NC3JE`K;R\E^+DB>1<HO*]>GIJ[K@Q$/I"]F6%4N
  322. M@>S`<M<JEW@]#97[_B7.`^X)D.X':S-<S%I_8P7I07>1ZR?^-BC0X15J"*1)
  323. M`4@#S1J;/P32D`V09M2PO]F.:/ZWA6O[HFM>:X`O+U\@L5%D"]Y<<Y=US6'N
  324. MFM4E._KE_&$'<*/W$\=#B(.,2CPWC!YH/SQS]'?]P1NTUNV/WL0RI^#V$P5D
  325. MK[D2L15%H2U%@:SY$3@R!#APV[0/(<,F-+"-%I&5WU+'(,\8S],#3/5(4&EP
  326. M]"C4:8?H,K=Y6N"`K`GI&PY`YIH/2'O7Y;0?HK=>D.=!N@IY#K1KP%;M=!,^
  327. M-$#:"&7^1^^[H&+B)/^*1BM2M%>1,X&+SG)\&N'5B@0J&JL(TDF7!V9TEQRM
  328. M;E)G0;K[CCWWO_B%"L1]XQ&_#WVF]/OQ1Y.Y>X<?=;<,B'MCR>8A/P[7)>_"
  329. M+G^3AR8_M]T@3X)R!<*R[6FU_=6"6!62I]L2M\2(LYA76A`WS(BW`<I*'FA!
  330. MP/I5UK40OX/XAD[XW``-HF=9D+;$V2#1ERPXS"[_6!#*.DY!Z&,#5"B]+D+9
  331. M&(S<)3QV0,7R%5/WKXSK`F6,=@72#CB:J\C$%LV*1.QPJXC86JO(`$U^-)AH
  332. M%RMR.%2/N-D&=(P=L(\I![L7X,[+!_R(]9ESQP.L&W#8LRSI@,TMO-72%;^>
  333. M/FROZ#<.A#T4W208G2>X^<C%W&TN/DH0_8@\[_8_J#-Q9:P3M2N^JF#XNPB&
  334. M?VI@^+<$=4:_>U)G_;LCHAKO1__.\6[TGURG@Z:^.]%_<YTNSQR_(*F:<@=-
  335. M-><'*D?P:Z%YQ3Z2?K$#ZA>)Y>AO$C!.>723_'+T&0=PX\H5:2M'@LM,\P.5
  336. M$G&S-GK^`K%HJZ)[5^PN7W6ZKRM0)G#T]_"3BBGE=PD(M0"F7>Y%'=]^-P)3
  337. M"[09IOF$.FV.:4[*!Q>H#%1&3^L1%Z[2`/G^@<$]JN6-+1]F68:6-8\:/AU0
  338. M<H:`#K^TAXO0`)Q1V9,\&)N@='#7^NB:6-;[R_Y0\0B7=8DB6A=?);A0.ET+
  339. M@<MG_L,]7^PA]5ZD=J"TTKKXZNUQS:[%YQ^FKE\)XNY.4[=$@#NGS]5X?_YB
  340. M[.3#HAY`^N5Q\V%AVS8_5/%P\T(5'QN.WK`GR8^ZM?>9Y@Z.(`XB2]/YW`/<
  341. M'72$'[4K!%Y7HDQRUAV[0L0FH(O=R,YW1U_1GU3NT6;QOP2/%WG^&O$$`9W:
  342. MA89/7)0AXZX.G(>H=2#CIA*-%X4)\(.63)W$%3/?#8<*+P_<)W6_AEOEN^SK
  343. MN']`CZU^"NU;3-P50_$:$S?E4+P'U.U>JRYF5S`W:')Q58)*E13WU2:)]V4X
  344. M<]M5S#'F^C]7*LT3(5V:/"?2A5%9TW&%\]Q(]R3/@'1'\C1(]R9/C72-\FQ(
  345. M]RE/D'*?[]1.=]G$.T#OC@E*>[<+?/'\];P7;J>+&S9"=*$UK,IJH91L%.6E
  346. MXM6O)_4]75!:/$"]9T:O%N!0\>_71]K2643;%0&MZQ6B=W+&CP=LJ'#H$*R,
  347. MK$WD%57=M<(N9.8VB8TYLVX2?8KAQV=@2_;7<D5?P`:3W0[2XN_%[N@YH=[8
  348. M^>4';\2,Y(ZN",-6.#6JE,1QN0"QB+JKH+*WV,MG\E1(MR;MA(H]_/XRUJQ2
  349. MT9<-J-6_L,!1NR`5-8ZOOTC+2$<-``F2CGFZ#43G]0FL&=DQUNA;`CRH->O6
  350. MX?Z-C8[:Q1`[A5UK&VA!6W#Z+)#V`*Y/SS``[V3L!0-Z\%S%UCV4.[Q8^^)[
  351. M>!E4'@(J9\&44.4YCP1%\D3_ANQ!_X.;LQ#X`_#:#S3U<`!2OYXCNI^65'R"
  352. M5/:JC=31X_V__B#ZGP#8]4C59;UXT^AC`EB;3K2VK=;V3=S49=H?*'PQLKU;
  353. M>M@.W:^COKB08E<*^\&R!ELND=YYG^X8L[_JT>#BYRN=+=VDK-BFETCDV!H[
  354. MH/G_@<,^6@"MO(QH'Z33FV@6A),@*=F9-FR#'VQK_@IL?XNL%6-GCSI@W?WZ
  355. MB@T0OGCXZOWBV:_#TN=9KQ;/_^#'+U)RJU>K&FP.\6#7KUZ'?7Q8+T]TV"&A
  356. MJ,&M5O60.7/>==!V.,5Q=KQ=L5>&T<<%7_RCQZG%[2+DWQIJ*\E.>&3"0Q,>
  357. M7;/B([:^_^@5J_[EG"9<E<TA\E^EMR\.)KSPU5B(-T9L-S%B"_X#XV[@;:X+
  358. M%%T[8P,"\IGM%Q,O.&%%3W`Z>L;2QO1H!1IA!AAQ`[SW:`?"8Q!.<Q]-PG*:
  359. M<X@;$P=145P%QG'&#EG<7"?IV]TO*'_(_%VRIEV#X9VX(Z/9?/!Q`I9=R--O
  360. ML60ASW6;.W[$L;HZGL2Q7CO^1\Y37`#;3$$K?PP2:RB97X)H>#<FMX!MTPBN
  361. M&ZY"O`RQ3>_W;9@-8AU\_D.+:8(?,/^<<UAV%^>KM*D<79L'["1UQ[HUJU:O
  362. M7[M^//@<-S0#[09VT9$#>&*6ET#UF<F*&)OY_M$R#//@"X<%E$-#!+A`01^!
  363. M3IO<Z4&Y@K?)T!1PZNT9#U_IP4D/7@^!%DQCS4WJ`(E[=)'F@<'[A(QKRH]R
  364. MU4?S:+)9-12#\+*_&%A/H(M"7J$`*$&6]%B\@IGM20H_U-,O.`6A?<K=`06B
  365. M^].ACAJ=\+LA+.]A.>L^7I*S3O15E"L??0WK*UA_0%QI,_'?I>(#FM17H[.J
  366. M3GO^\-ADLCVV`DGW]01J:?OQ"<*$$K1YO(F][(9')^ACA;(*'!T#ZU@6?MOS
  367. MU*$P)GA0,71:K7N(U%W@QI`C2=*L:?,FSIPZ=_+LZ?-G7:EU%MQIVY"X'MQR
  368. MW\K!_$&&^7$#=+&KR<2:NZ[!QN(>^A9N7KEISZ*Y'N78E"!CYL0YDV5.F""%
  369. M>,\VK%LR4?H02Q_@\L$^B).8OCR4\>D=^U],WZ9CH@*H>%6!?P_RI7!\0;D/
  370. MF-T@7P3.'4<(OG,^[F3GF_5?P*E7$I^;\#[VG09U`I13[<JJA^KO$,@HYS$O
  371. M]K`39%\5B%\;;A:\2ME7KVY<E$Y@-^VI!QB/3-IS;<[S5[/F^<2@#?NI8N0R
  372. MV\\G);%6_<%DVBEQ!3]#>LD)'+N!8V=P;(GH11U,(EY4H3(TK\ODOQZA+I(?
  373. MZZU[]C6&CP7V/7J^2^QAG2S?(ZCI0CQF9C<#QTD$8B312P!*0LN7,QHC_.8P
  374. MD\`5E,M0H82<UX4<<YI8N#2&8X':$2RM9[['"'77ZT9R,D.;[PQW?6:[-X!_
  375. MA-D%;_)_AL_Q`:UK,^IA'H<P[!,WB,Q[1$TW(#'_+Z!L=^6PILT3<)_,F6["
  376. MQE5AH/YRGR92B1=B]\79TNF4BSO43P1[W-H2]L@9+[<O''#="/B\SB'8!&-?
  377. M2YVM;&:RR:888MX:H.>HGP#*1MWXR,WH!0HQ^A90>+!V@'/J(^E+:RD)2EV+
  378. MM3>N='TNX9JG_8/YN0*Z??M.;+<WH&E+V0_8G>4OGKX2FH*UH@FGE380RS'9
  379. MI]1P\:H,-(YY'`.:RX6@14&C&17D)S)8LHTI/.WN'6[H9FP,VY"FY1Y<&>SL
  380. M<9=YZ"AR8`4XF5)8>,?!^PEPJ&G[R*:PC;%I!'6@ZS8(OXN^5U6@LG28'A1-
  381. M4*]K&5Y`8#@^O>97=.>C@Z`C4M/790];PT;N'U[6/Y+`/SK-OZ$,&=H#_)-1
  382. MK7K8%&8R'$'NTUTIZ#ZJ<5P!T3"BH)X?YE+H9<P"D"E<H)90O>&0G'U=^NC)
  383. M+*\@,1YB;TL;HGH7D8)JMQDTD!1#=\#_&/KH]_X;)R.,PZ,GP,Q-#NZK042)
  384. MDND&4'$,4!%[JP?U&3AM!2*%Z[G"O2+Z]OYNICLPRFKJ08TB)KC3J<&ZZU?&
  385. M1\Q@;,KEL7LD=_]U2^3[(O+YLPKD5R*C+B3[>G\7;L5$_ST'.H\_<#WZ;<_6
  386. M#T<S+68-?['^^^&A2DDXWQ_7<UY\;+GJM6(=.'U@]&5<GW[A>KI@9-*<\RJ\
  387. M'_W^],'!`PZ>YHI+<U;H]Z71M"Q_:4,??_&^@Z^]0P*,'CW:XNQ\X[?!?J#S
  388. MB=_K1X<>77K3NNH[YWW`CV"^X/J&G?YA(,B[0#Q/SSK_X/`?6/WHZJ-C%\>R
  389. M6J;!_;=L;]_''0X';71GK(V1<=:J0H4J_<!HV53U"KI-XK_X2?<Z@Q%R`;5Q
  390. MI`+0P3IR4BH>!3V#>D>H"!=8O1M<F/SO`)KH`^/=]G(G`CE:HFO<Q/P.IONI
  391. M!U_WV*XJ3#G-$0"-8HI5?8.S9Y7K%YQCN1LO`)(.;A_ZP/Q'%2/S"NGA;`&*
  392. M4O?Q*8^8X@'EII">M7S7=3D^7?_A#!Z-T9<;40C8;BKW(_R(*F@KX8<W=X[X
  393. M"H_\<9LK>/$/=Z.8)N1><0FS72<S-CMSA<GP5)O=5$Y>)S&QL"?)+:UJAE55
  394. M,,/HPA4`[08<@3P9<UP>F%W`N[%O@/\M7KG<%5QN.JZ:^V*C!I$83(?N+WH'
  395. MJE`1_@-W?^#D/P+($GK>'MO?17-_TR2"Y=_4O,N1[@RFQ@<AU@#]#LD:-(*L
  396. MU:X_J.&F?0#<0Z&:YD*U9Z*:@J8S5,T1`H@X(.A<MZ!S@0I:R,RXAR6^#L,Y
  397. M3]T!+H-B5&9P7:.)5D`C<+@D32@/E^F\"FL3OH!+]/`+K,`6>,TTGVN@-7Q]
  398. M1$D43^9#S`MLR1JV-";;7`;1O*X#3C),HN=TNF`2:H'SNA<ZB4S02>+-0"X5
  399. M:H(4;6#A4"#BG[K)K'T!H]==)B[J4^>VJF_T*+6X50.2@`AZK1_E&LB<<*D&
  400. M6])FJCK[9ZYZG0TT5ST)$;VI^G^<M8)5=8X>HYJ\7\;EFM`S5#P.:)X%Z+2\
  401. MM.KK$E`59RQ\P=\7L+(I\.^`G^X%EUB;)6O;1HU,+7#V#J+"E6Q]B#A8U123
  402. M!-D']%PWX7.),#,X*'JB`&2JV>6#\_7(`LBWA?'/^W@@<6$JS2PS@I,V-"%M
  403. M9@`O=P%AO'&ZW`*]T[/+!(9$W$":Z+HK<-6EI:T!TG:I4)JQ@RTUMN>HEJ*H
  404. M!\JH2'$LS=>*NFB(48#6043"O1XFK8[A/$1.L[C<DHYJI)L@3D"&`L[O`G2Z
  405. M!S*6<<;KZ:VX!_@P5<(#+!^ITCM@_N![SE]UI,_-$%T`P;`;[Y.7[>NOBMFF
  406. M\R-%?GP"W[LGR+L#>G#3CYFVP\R/KS1.E^"02M\;"0L5#``J(&EH4$L#!`H`
  407. M```&````H0P8ME\.?08````0```,````345$245604PN1DY4#P`2`R05-B<X
  408. M.6I[3)UN'PD&`1,TY?:6]X)!]ANX=.#`O3,']O.,_]_^___P\_^><8`V__X)
  409. MWB='!,\X0HX^G.$Q\N1Y_OQYGAB.@T8%'7_/B'$:@S*A7;"?'Q[X'#*;IGF:
  410. M%2K4+(]OY/#,O9YZV#?^\&###.&;`<<!+',,8-LS^7/F3Y@P8<*%#^Z9_#LF
  411. M^+%CSYXW#X9O$N.VL.:Y[1T-%"Q<OG_YP@4+Y)D,./#@Q[\?#PX,\!=BO:^+
  412. M"SUS1K`8V]?X]NW;]V[<$)PS[7,L3(XVWMXF1X-C?5013D[V--"<:0Q.H0$T
  413. M4V\C@F=H\+]!!DO#8X3Y%T8W(MC!@@73-1:L),W^-TO"&?&%P+`/OU%*B?,<
  414. M_(`(!L,%ZX,#@`K;DXOXAK;Q^]L89EO1#.!\6+`^!PYI\PS&PL..<6N,,\<T
  415. M$TUJ2>]T,X9W.%-;<#!/0ZDG;<%CZ,>0-V@@V!F$&>'Y_R/]P(+3ZG]O@J-&
  416. MPW"&_V=ED."QSV]K&VK@@#X;/SY\6+"/^VR<PY$+IA%\H\VR@#^,U+C/(4#/
  417. MT^#`@0.-!`YMT*%'&W`L+B?@->V'">-E\@WO0^V]C_NZUT$U3D"Q.`_B:_2X
  418. M8?8U?H;]XWO&YY,7C)MAEIF;$4UF?G(#@@XGS#@/VY9Q^1H?XP5G"*`-J&=_
  419. M^_:M6S"M@_]]N&$/_XN2/1-\^5&_8X<>]?>-#P\.'%CPX<(F`?L?^">(+IPL
  420. MCF]X?M^'>1K_]WG.)W0LV('\HY\/'_LC3`MX5G!>XL.-/WMT#+"H5T,]8W&V
  421. M.''P9\>:9<O7[=EQWR0<W^,Q9X`V/O[NWS6TXV.^\?-Q\_9],W_8<*\/]1;2
  422. M^SG?Y_.]11ZYYYD/?[['*QJ@^SF\-E\S4!NDD7W/CX?K\^!P\;R^C&-B7(MR
  423. MK8X>Q[?`JKTV":!I]F@&F_BY;EW[]ZZX;SRX&#'/T^B@-^+/OC(N;=C8[^/_
  424. M!P]TR!,N\&"_B_-X,PON2]BO.$Z.#EX%R<-W2!Z\3MI`#"P8[#_&I3(5)IC<
  425. M(Y2?W].,>>$AOP\C^#KNS8][(\[7&."QWT&)45AAGX<*_@"H\YC_B$T(</\?
  426. MDZ?V9(`GOX_"=<<!25"ALT"!`B!^3\(,M]]WO&S-6!G[?1JFC%:$=R<)7?NV
  427. M9\374']C;\'[>E9_2-DW-$R_`_Z1_ID?^X</1ML/^L<APN2WV=(*8.>/$71Y
  428. M1MI[=N-XGI';MX#E/YZ18VEBY&CB][%@\[O7VT/@CQE>&G#''''"_0?ZI`,M
  429. M.9QA=_#RX0&\"6Y;.8S+,[&+?3XHRI/!"?!)CS,^8S"R<!^R4I"I5)BPFWF%
  430. M*$0HHO:?+Z/V370WZ.,;]2[/,(A`GF'<Y_`.(3,Y&$?:`.B@OH9Z6IYAGI9O
  431. M*)QGHI![<+FXF=>C>;@RZAGJS+69#71S"O4,@TGFV,^$Z1/&KZ&"W>W.C7ZQ
  432. M<[_#3'_H!)O]\R0_\V>D#T&7IS"D[1GF+>H9\94\$>9;GF'^Q5U_#H`2E1P7
  433. M&*R9-]33"(W^,-1YV$M!M;?;X_EMG_,X6,JSC^W_OG%^:<]7K-DWQ<_S/7)#
  434. M1Q,P*78X0,*^`/,L?X)YEB?#/,M?4)_K;ACR.V=`9*K9Q\[=^P<6[3-(GFS9
  435. M^FBX<%OW7"ZV<5`.AQ*.?P^@`^/ZC73(OP,4`_O\P?FZ#;7;89CSAV?XL\\_
  436. MC!-/<QXA#A'\1IML;6YH&J[9HELF(Q()AGF^JJI@F.>[WPF&Z8A8,/:,QO<,
  437. MC>\9H9(M6.T94T'A_FT\0[V#M6_@'85.O$/Z^P;W'B=$H1//J*>P0`/W%D3P
  438. M'WH<)(:?#/;?.Y@9"_&2$/_8._2'=\17Y(V_H&_"8"0X`:$POB'O/01PS=_[
  439. M!_>.^B;>4?_$.ZK+Q#=$<%^#^0L5C3T!W%NH+V/_4&^&BS+V#^YI5)N(+X)Y
  440. M`YBG428T"T9]A7C&X<,+AFFA_4$P##I<,`QM1!F[^80(5^]E))Q@#.+%DF-Z
  441. M(M48"#9"?2?)!A@Y/`QHYG2E+L[8"ZT^;`2<VX%4QK!P#`$$\<*C.B'[9>R9
  442. M-=O;/4+2@]ONXX>`$UH:5J&*.,2<?9Y?,0R<`][].(7Q-`[`D>DQH((%V21H
  443. M!^`7RH/#QH3Y:.(9Y:*(9Q0DON'10.+$L?TLK`XL0$"-DE%,)(XTP;"PH(*Q
  444. M#0;Y8$^</5L>3R:QK5$:&?,9BLVKD?D>!"-9L/T`0`=02P,$"@````8`&CN)
  445. M#>4TY/_>!0```!````H```!&55154D4N1DY4#P`2`R05-B<X.6I[3)UN'PD&
  446. M`1,TY?:6]X)!]ANX=.#,@7L)[^>9_+_]__G_PX1[)@'>_?\O^+\^.2)X)A%R
  447. M]/GG&18C3Y[GSY_'8-PS2NCX>T:(TQB2J:4E^//#OK9D1LUYFGG>+(]OY/!,
  448. M[V<>]DU^/-@0HY_O@OL*6V;28XB:_ADSYD^8,&'"A0\?W#/_.W:,L(\]>]X\
  449. M,+YQC-O`FN>V=Q(P</#P^?_GUSYP0,\\X,"##W_^__GPX,``?6'J)K^?N(BE
  450. M+9@AV]?T]FW![]VX(=B<(L'X97UMX"OLS(BGP3U#!4M71#![&_5%9VA@?X,,
  451. MO(@#A`@3S/-@84+@&@D<./!_:\.+'//]6!'-F!?Z0F#X[[]P;`_&AMJ0&U#!
  452. MX''B"*:0[9DIOIOYAC5K!NB&J7?<OW#@?`T:]O=.PFG2=AEBA.G&>`>+3Z3/
  453. M<Z]SX\:=[WEF>,^ANZ?A.>*$"QY<L,/%R>%IFJ/#@P>"W2&'IVF`NOWS]2?L
  454. MNL*"]\<V=C3,U7#?71FD;_M\M$>>>%X?Y<?`_/O_]XCW`[LT7C[I%NP?/SY8
  455. MFOZWU'_]@65VZAGY!RS_1S:%EL+A'8NVQZ/_J>_O&][/OLU71/LMXE^""<\D
  456. MMN4;\4S_^4;IA?V%/<.]F0\`BM5)!_091DAH<-ML7,%]38*;2X+N:=+CS[GC
  457. MW[]_1U:4US,'`J]N(,-@C\3/WZ%#_O[/CQ_W9OR!TA*[\HT^P%WPY[X):_7W
  458. M)O[O&1(\N'_XX\>^QO9U_[YB'=?YQ.#0//Y(/&/!XXET9O3FW_OG[_[<.Y8U
  459. M!_<V<N;-LV^?;]\\>\9GD./G[W_'+N^88CUP0#-[,_$$_?<5W#>^[_L#WXBW
  460. M$:\Q7IX>.BTC]V94;&&20]W!`-^"[6OB&7MT?.;,F;LW?W_^]NS-&9^)ZN3-
  461. MB,LS?O?G!["-S/T)%4?V9=*O7[AP@KE?/[^"BHJ]"F'=&PIFW\2G&N.'ZL!!
  462. M&N9Y8@WW^X#_^WW`/S)@'D?'&0;Q'!F\0I0Q(KCL,'V&#LHSKY'HF'N],\)]
  463. M2.;,A&H8<[D>;/$=>+"6.X.81:3"A"W87"$-`.=UUSX$UF#'.)F&B)/-=ZY@
  464. M/]^H=WF&A8F1P3,T#ZOM'6J,.L9I>YOJN-L<\S4,R))GJ*?E&^IMQQ&RE<=3
  465. MB&>X=_8,=]@U-/YOI%M3V#-,RK4PUM1\P7Q=P$*ZW[G1+W;N=QP:S<9,,_\W
  466. M[,R?-2SB+0;0[2VH9\1;U#/J*_9$F&]YAOD7=_TY()Y991"%>13LV8<]PV+8
  467. M*?8&'^92,*>6"1//2_'YN]T]3>PTQ_@OV+YI?C[+^8HU^Z;X><_<X08M&;\%
  468. MCQTN@"!A7X!YEB?"_#[U9<2W_`7UN0/T%I&I9G*8;+[]^;$O4@YKAGR9VP7P
  469. M,)%XDNAX`?)K<0B7#/R_,)NJ0$E&'`<'"WZL638>S8==]8=GY,RSSS^(4W9V
  470. M#`X))C;5+'.S,WX;IKGHEDG&C.?.&8:MJBH80KI@B*VQ8/#X\3E#"+-@Z:,%
  471. MJWESR(3(1#U#O8,U;]``/!8,SI_X!O?N_CHB%LQZ!NHIA*!!O04>X\</[]`8
  472. M6#QJY:/>P8P1XAWUCW*'$&9/@C][ILK09WSS/V[#M/I@P*$RR:""8O9S_^#/
  473. M?`GVWSOJ'_5.>$5\@S?S9G#?\F5P1H#\XQ;V9<0_S)L14,;__$,\C7J*$&:/
  474. M"_5'B#>B%"@)1OJ1H%#16`U3,.3#!\$0YYC7$!XRRMC9)T2UNOL1MBD.`FL=
  475. MYJH2S+R`-+=&Q/=@(MD@8[##IH;_RZS4V3.JT^1I"QI%:FT)CE$2X3F&7\=`
  476. MT19APMMP,9@KU&&$3WE%P>U\?M7Y>(V^V[U[]SO,V%(E701IHFP-/,GC[H'S
  477. M$Q[,FK"G^;!?0+`>JB_$$V@,T:@O$X.,8A9"(,\$)+YATH".#12I,^L_8PJ6
  478. M$,+V2`@TP0V%>`:7C'[(D$$P9\^6!Y@X+C5*(V,^E&+K:F2]!R[!%RP_`-!0
  479. M2P,$"@````8``)`T%.1ZCT$;!@```!````H```!&4D533D\N1DY4#P`2`R05
  480. M-B<X.6I[3)UN'PD&`1,TY?:6]X)!]ANX=.#`O3,']O.,_]_^___P\_^><8`V
  481. M__X)WB='!,\X0HX^G&$Q\N1Y_OQY#,8]HX*.OV>$.(U!F=`NV,\/^]J099KF
  482. M:5:H4+,\OI'#,_=ZZF'?^,.##3.$;P8<![#,,8!MS^3/F3]APH0)%SZX9_+O
  483. MF.#'CCU[WCPPODF,V\":Y[9W-%"P</G^Y0L7+)!G,N#`@Q__?CPX,,!?B/6^
  484. M+B[TS!G!8FQ?X]NW;]^[<4-PSK3/L3`YVGA[FQP-CO5113@YV=-@_3S#8G@*
  485. MQ4R]C0B>H<&_!ADL#8\1YE\8W8A@!PL63-=8L)(T^]\L"6?$%P+#/OQ&*27.
  486. M<W@#(AB<WU13!A7115L:[IG_&R;<:;_#@P/W.W#PL""0<)JT709A[<9X!UY`
  487. M[G5NW+CS/<],"X-((\9E:CV_++@H)V;JV`T:"+9K@XK<MJ3_C>EM<49QY?_<
  488. MA,`+'B*(9?P?EH'Y?&QK!0L<D&<3N_OQY]OGCS/N"31&G'B"1/KY)@?`S\-]
  489. MX,/_/:,'^ABV=]*@0X\VS1K_%Y<_T)M*+WA_WT@/:MMS7?<UUMC]+;"/]*/-
  490. MOA'*_,_<SA!/7C!OAEEF;L:83/E)#00Z:IC8/"I;Y$Q]C0]T\/EPSS\#;`O>
  491. M.7`_;R#^]G]$Z;!G[H^W?*P?8O7W3@8+LP(/]A;QS<=\(_^/#0N6+%^R8,..
  492. M_?<,%?K#^X=_5D?O\\S29F_#\P`<#-;(!XW'#?S>QOD\\_%CS;+%"Q<O6[-C
  493. MQSUS>+W'P;R-2E3?UC1[FAP^?O[VY\>>D7ZXB3=B7Z;!?`7732]_[M?@@6^4
  494. MV_8V\1=[[6!;ODQOS_06E->H;Z(9-P/I1#/UQO_]%@U`FZHC^T:;Y?$T0DL/
  495. MX@,/]KLD#TZV8`J02$"\3[T*SI,A@V"2!Z]3C%(J`/(_P^4("62#S->@GS?V
  496. M&C0X+2D?/_M8;]\(4FXZ3R8==$%]FC7VCGV3?[ZQOY>AUGS>DL=&!;_'W;Q8
  497. MY+.OD>,\&XGCSXC0=@-DT\;>$8)G4>B=QO%ZX(*Y[7^2+<](;Z##OH)Q-D\(
  498. M[VWP:'A?040Z\:US/@_U3^)T\(\C4#49]HT.OA'^]B2HWX=[)@!/GA$NW\X`
  499. MY97^'!`6\J\9P7M&(*!V0S'"(58'L!`)X.<CM"ER]LQWNLE]$"I/QT1\TN/,
  500. M,+WE,ST$[CY``3$*)/@=?23RSO%A]&5T@WW[QM[E&>80R#.,^QS>(415`#_3
  501. MV2"/IU%?PSPMSS!/RS<8SX/1+7N&8BQ[ACIS;*9\GW!*GF%,GOZ="=,GS!D@
  502. M&^EVYT:_V+G?:28_>(+-_GF2G_DSPO>@D+9GF+>H9\17\D28;WF&^1?7IZ!$
  503. M)>>5`#3QAGH:`;.,X=I+07VFXNE,GQ,+L-35?R%;G&E^:<]7K-DWQ<][IAUN
  504. M>!T2(W8X0,*^`/,L?X)YEB?#/,M?4*#K;B0RU4R.G;OW[]LSKHGS9,O61\-%
  505. MO(8]CQ,@GXL)(3P,QX"*0JYIKP/SL'W`P\'!`7S[:#X,<_[PC)QY]OD'<>)I
  506. MSB/$(8+?:).MS0U-PS5;=,MD1"+!,,]7514,\WSW.\$P'AD1,#!D$M\S-+YG
  507. MI$T;P=R>,244VM\SU#M8^P;>4?^DC7=H?]_@WO?'(5'8U#/J*0S0P+T%$?P'
  508. MGP`.((']]PY&QD+!)+A_[!WZPSOB*_+&7]`W8?YH&PI`]`UY#R*`:_[>/[AW
  509. MU#?QCOHGWE%=)KXA@OL:S%^H:.P)X-Y"?1G[AWHS7)2Q?W!/H]I$?!',&\`\
  510. MC3*A63#J*\0S#A]>,(Q/]@?!,.APP3"T$67LYA,B?;P$<=@.XH<FQX0DJC$0
  511. M;(3Z3I(-T"V`A?_A=*4NSABG"2@.`VB4VWU4UF)Q#`$$"0"2L4[(?AE[9LVY
  512. MW2/$/;CM/GX(.*&E816JB$/,V>?Y-;!_[(-S/A^</8TU,N70X?\(8QX<Q)@P
  513. MCB2T+&%C#%$(@3QCD/B&1P.)$^M$JD62_P`$U"A9Q43B2!/,"@L&&I&,?K`G
  514. MSIXMCR>3V-8HC8S]#,7FU<A\#\*%*%A^`*`#4$L#!`H````&`*J"^ABJ_W:@
  515. MP0<``*D1```,````4T-23D9/3E0N4$%3#0(!$B,4%38W:(F:VSP%!A(31,7V
  516. MEO>ARGU[5F[8MB"GCI5;MJQ;HV_=TMW94$'PKCJW[)SB#1(DT:=360Z52F6Z
  517. M6PTK1WI*+7MV+D@=QC/M7+IEY<[9/NJ%/Z@_J)QEG7<K2)@N7>*,F3,FR*X@
  518. MGYH%*31/^=X1OD'N&==TWWCOLV5!FC%>PP?_9M.R:=Y]_G,G1G?9(,1FON6F
  519. M=7O&&F4]A5C'!,\]_QZ63#V7@WQ0=YAH./.%KJ"W&^'5=#0_2#CC&P[S#DLW
  520. MC?CBYVS?R*]E"Q?KG2X:^@6]Y\)EXW[9.RP<J^X"G)%?^.)6^A>^[/><^WWG
  521. M>SGOM'2H)YSHM6Q;-QEC*8:L$=]QT]\@G4SK-O/+6"2YW/]$^\K7;+:M7)=M
  522. M^]:%7!&\\O0Q_+N.UJ44C>*M8BMUI*5!IMPQ)ZI[&M$JC%S&S4IL>R9U0ZWQ
  523. M?&G;?^7I)C/]0K1X-]I)G3V@6.D]Z-RY:<^Z1=&,9O%.H;,KQ!R:#G>B.G56
  524. M)57)$\39UA\I^;>,\R[MA3S\U+ICQZ)P+KCK*NW+?H,L^M0(.>A#L%3[JCI\
  525. M4;=DUD!3^>*+'@VR10YR#!<^AW%7O>O"!?''T^"#SU%#L,G;E.ERW'0Z<=J\
  526. M;J/V_CAT:878^),XDM@HM)425L4(HYX#K>%H+V6GR0)S?Z9/3<;IJG.[3"&T
  527. M65/'0O4=9H\]9W$MV^>6^2?#4)OP-A-V7:&L#M5?3%8]=LW_FI],WY1!C99Y
  528. M_FN`S>L6FB0T2^JS98-L;W_L6[AIK@]RXK%-L)7H*&)1.G!2[*!-ZHKW@;W+
  529. MCDWSVZ5O]&RK3N+_;.>^B?IP2%W/*<;ZL[\SIHW\)>5D8ZS+4+:]K](NOEH,
  530. MLPY;!ZM5G2>@5KQO/<3[K1EB[#6I[IT41/FV<]M1YD#F+X@M37;FIENGJV76
  531. MRTC&9J?19'8L;[IW6G7%$D?UDR%Z2OS4-XLSK>6<:`YB][6\W<ZQC:U)))L?
  532. M$@VC?TSYP&(I)AR9D"*WA20Y=:A63*YA%GW%](T&D371-\\#.T5:1]([23)F
  533. MC%F)6DFC==V.R36'B8=ZL[CLBS43G80)$V0+>@XBEB['D'0?9)(),H<)([.D
  534. M$&R65EU3V.ZT;ELQ\Q>E`9&XLP&30H"94/9+2KF#=&-?V6N8+6>HYT.QJ$^9
  535. M-6W0S;81;"90'\UI$*R^_IPHEE'3(+)F@%+EFPX:PSU13\271:>(NM6Y:$-O
  536. MA0%H@3^BUQ!*R+LWWD_>S4`9+Q0*_="5GD,?+GJ;83KF@_=KM4B-HHF'R<*-
  537. MZM74IJE0@_P"U(/T(U*I;QF4(7CK8B9^=`M)"\4V6XY,B]F1<-[*L779M*+*
  538. M3<473M0"-U5G+EFS@.YELK_-'$_F%MC$_PS.$N0&""ZV+MTR&9]&Z2;ES[#L
  539. M>\R\57;2L>\IA+:'%X1-::.H]YWL9731)IY&J#![,]M`59WO-($ZLS;6R:B6
  540. MJ<*Z/U/NL'1DP[QV%X`K1085H2SD(YVKJ*M\SNP)`S)<3'HM5(1Y,&.Z(#FG
  541. M\VFJ69:UDWW,^VW=LVC`FYA#OOEIQJLV>BP=2B:X.0N#E7/I=(O'9(\TFF9C
  542. MALY"%U=UY9I=#0V]P.5(TI.D.?0]#3*OT_.FO1KA`+Z584<7Q=RE6/XQ@B;S
  543. M2DKLW6+!6HT=ZPI1LFR9)MK*.EXH\]6IPDZ1R@P[&OM!67S4*%5J9@HV^11*
  544. M>!TJ4Y`JE9UZK$0!.QW4*9$NELCKIU*8-THAS?E4)+[>,CXK_OH<5>\816)!
  545. M(M)WGT6&"701')1F+@/7U@RJT#Z)!+S_:I=QC91S&@EQAJ5\RJ(/=?64B"OE
  546. M1!+\C$ABH$RHCX!&R3J0E$@2R0P-Y2591YFC:AT+V8+01XJUT",!G]BB#$J6
  547. MK)R+,9E,2!]M.`@D".E.1%J'P4@J"##LA1\C7#4OV%I5;20(_(@0#+H1(6D$
  548. M)8U4QJ+9*H:L]QM7^!H^#U+6O,<E\173RKZK<'R0UTT0:I&H)BD4Q\9K'>\Y
  549. M"!:U^4N?.PB!&BGJM@.1R3[_P5P9X[_"2N_XC_#(U'_5BU"$**D@:SJT'JT4
  550. MC>EW[#?=LG-!A"BX9&U&)*]Z-!1*T0M;J%Q<(HI!4)2P,&.1+QX=I7L[*4FZ
  551. M<`PXH'%D():<+*!2@L%!4(FM:"B&"Q.]`&=`U_##`(((#^/G=2_"BO!@K(P*
  552. M'PHNPH,ID\8PGQ&>JA)&BZV&24UWCJX@SWUSXM7T0/@STG'LR@*SY+R11TB2
  553. MFI4:8&-*%8F,8L\])%0D$"ZE8;78-Y:Z@*7,*%QH#>(^C`,#K98(F03P`BIE
  554. M4,6J8F&L*G08JRK6B6VADQ!P$HW%5O7-F#(2&7.6*!(W`6;8LG'KF(6)J(#0
  555. M%:7!M!P-:-6MXSH4T7X;$&*<+R\V3Y\@3Y[X:7%D00#C>Z#'@+,$T67*0SXY
  556. MI0/LI%"IG@`'608X4(6`0Y8!#JSR?K)I4:))BUJ)4HGC5R8]V?CV3X#`#($G
  557. M6I"$<KS#H*3?#:.P?H(`HT`0BF_*DOND"Q^LJ8AG.!(^1G[0A>0'K@SKIB=D
  558. M$)*#"*)G(@!ZR^`,A$(5S_N(8/5;K%G"VV]P)[Q]JVDJ6K_=L60DJPCS&LD)
  559. MU&C,@RS$O,!N23H40>`\BZSNY?J@,X9^5:X"P`Y02P,$"@````8``)`T%-.(
  560. M[)M5!@```!````D```!23TU!3BY&3E0/`!(#)!4V)S@Y:GM,G6X?"08!$S3E
  561. M]I;W@D'V&[ATX,"],P?V\XS_W_[___#S_YYQ@#;__@G>)T<$SSA"CCZ<83'R
  562. MY'G^_'D,QCVC@HZ_9X0XC4&9T"[8SP_[VI!EFN9I5JA0LSR^D<,S]WKJ8=_X
  563. MPX,-,X1O!AP'L,PQ@&W/Y,^9/V'"A`D7/KAG\N^8X,>./7O>/#"^28S;P)KG
  564. MMG<T4+!P^?[E"Q<LD&<RX,"#'_]^/#@PP%^(];XN+O3,&<%B;%_CV[=OW[MQ
  565. M0W#.M,^Q,#G:>'N;'`V.]5%%.#G9TV#]/,-B>`K%3+V-")ZAP;\&&2P-CQ'F
  566. M7QC=B&`'"Q9,UUBPDC3[WRP)9\07`L,^_$8I)<YS>`,B&`Q3Q%-8%VUI.&C6
  567. M=</,F8;8=WIDZ'PO3K3,%P(T#7>[=[X8?>[=[N`+2)X[W1IWOL>9TL(@THAU
  568. MF7!R?QF4"S.6[`8-&JBVI_!M2_K?F-X69U17_L]-B&HD1!#,Z']6!N[S45PK
  569. M6."`OD(//[Y\^KC'16/$$23J&?<[")Z'F1I[5IX&!PY[+-R@0XLFC1K^)U>_
  570. MBP,%S,_[@<;Y/),<UG9_H-T[^M_3-)C/P?ULRS?<LOX1=QQ[0<`9YIEZ,\%D
  571. M]B>XH$V8!6-/U`%/A/OZ@0X^'^[9GP6V.P<FCV'/DJ41,C_XV#/)W[AQX_RF
  572. M<G_/9-_A@0$#!AQ8V)>Q+1\\6+!]HUSCX,CQ(WON3=@S#1S8F[%_?GC0FU&\
  573. M;NL-^[DGX!C^"/F@\2QXX\SQO./$D4/'S]S8.QJ<U@7;V\C`P\OGCA3(!?=,
  574. M#@X>/G;F1G`?[,TH;@WT-VH+ZA_85XAO-,8'WXBW?=Q?2.!\HKBA/^/_,[T%
  575. M.<Y)++BOL6<7*Y8FC3>B(V?.G+QYVSN_AAXNG$SL%L?@V#/A[C2>AOUO*/0U
  576. M^"!.PCC9@MDW#HCWN8%7P7DR9!!,\^!U@E%"=:#^<WT2(8%L,%[>S^R_YXL8
  577. M9^QV3B"ZMV]X8V[J]]$.N+!=Y\;>$8/$_X(-T\L84*TUG[?L#UBP[VF?S^L6
  578. M!.)K?!YG(W'\&08SW4'@22S`WMTL6KQLS?P^CN/UP`6[+<BVX)Z1WL=\#?<7
  579. M>\O^PK[)N6[!POL*[E6V:_#!,\[=3*A8-RIXO<;A<C3.JQF'").?EUTFAV_D
  580. MO+>UQS-RO%BR-''\!GSD[,W?WOE][%OXYVCB<[%GC9FQ`<#=1M3HOT8$[QB`
  581. M`.,-QPAGV#X1:X7$YZ*VV;@P&<,#G,!%FQWV6FB/,\-P^;`S/03N/CX!,0LD
  582. M^!U^)/3N\5G#P2#71G>#/KY1[_(,@RCR#.,^AW>(6)3`SW0V`#JHKZ&>EF>8
  583. MI^4;S.?!+-F>H1C+GJ&0D&#)0!>G4,\PEZ1_9\+T"7,&R$:ZW;G1+W;N=YK)
  584. MCS;B_L^3_,R?D3X^7Y["D+9GF+>H9\17\D28;WF&^1=W_3D`2E1R7@E`$V^H
  585. MIQ$:_6&]^;"7@FI?AF;VNS[G5?%A#=G_A6SQA43:\Q5K]DUQOTTZW-#1!$R*
  586. M'0Z0L"_`/,N?8)[ER3#/\A?4Q@A.262JF5#,]_Y]>^:+Q-:S9>O#X<+B>"[C
  587. MM)OP`'J'PW@B`K;9:QKLP#SL(%8K!0<_UBR;]]T.PYP_/"-GGGW^09QXFO,(
  588. M<8C@-]ID:W-#TW#-%MTR&9%(,,SS554%PSS?_4XP3$?&@K%G-+YG:'S/2)LV
  589. M@KD]8THHM+]GJ'>P]@V\H_Y)&^_0_K[!O<>SL'?L&?44%FC@WH((_D-/@,0`
  590. MD,#^>P<C8Z%@$MP_]@[]X1WQ%7GC+^B;,'^T#04@^H:\!Q'`-7_O']P[ZIMX
  591. M1_T3[Z@N$]\0P7T-YB]4-/8$<&^AOHS]0[T9+LK8/[BG46TBO@CF#6">1IG0
  592. M+!CU%>(9AP\O&*8G^X-@&'2X8!C:B#)V\PD1KKX?Q]A/8`SBAR;'-(9!!NP?
  593. M-D)])\D&Z!;`PO]PNE(79XS3!!2'`33*[4`J>TDXA@"">.FH3LAZ#LJ1F-OV
  594. M"'$/;KN/'P).:&$9A2KB$'/V>7X-[$<AP?(!X:QAH7T\(F61T7^$,0\.8DP8
  595. M1Q):EK"QABB$0)XQ2'S#HX'$B6/[65@=V(^$&B43MD>"86&!`(U*1C_8$V?/
  596. MEL>326QKE$;&?(9B\VIDO@?A0A0L/P#04$L#!`H````&````H0S@QQ1]'@8`
  597. M```0```,````0T]-4%5415(N1DY4#P`2`R05-B<X.6I[3)UN'PD&`1,TY?:6
  598. M]X)!]ANX=.#`O3,']O.,_]_^___P\_^><8`V__X)WB='!,\X0HX^G.$Q\N1Y
  599. M_OQYGAB.@T8%'7_/B'$:@S*A7;"?'Q[X'#*;IGF:%2K4+(]OY/#,O9YZV#?^
  600. M\&###.&;`<<!+',,8-LS^7/F3Y@P8<*%#^Z9_#LF^+%CSYXW#X9O$N.VL.:Y
  601. M[1T-%"Q<OG_YP@4+Y)D,./#@Q[\?#PX,\!=BO:^+"SUS1K`8V]?X]NW;]V[<
  602. M$)PS[7,L3(XVWMXF1X-C?5013D[V--"<:0Q.H0$T4V\C@F=H\+]!!DO#8X3Y
  603. M%T8W(MC!@@73-1:L),W^-TO"&?&%P+`/OU%*B?,<_(`(!H\3)TZ,"!%TVW'/
  604. M;/%;&B9XPH0)^Q/>V!O"[IE#]&_9,F3_-FW;]@_CF8>-/=LL@[`VNWRQH6<.
  605. M%S%BQ%#!1E9,6&D,+Y,003P-LVY^67!13LS4L1LT$&S7%DY"I(K3/TZJ$.+1
  606. M$"',W;#=!>YJ:']7!@F,>(#/;VL%"QPP(,^FAQ]^G#EW+ME^&&C3<.%L;<'[
  607. M]>OGF?Y_\$#P_]@+KG-H_@0)$C1`3?U%V3U0QX[_.W00W#NESKZ1^/S<LX</
  608. M%]PS_3]XL-"U;SWPS/D2)4K4^/_CQX+[IO\&4\K_?"."C0US(":>(1$,29A,
  609. M^4D-]!DF2*AL)F?J;PKM#2+HDWP^\>?>_GCZ]._!]2;I<V3(D&'>XN'>3),G
  610. M%]Q?L(</'Q*SU/=,^Q^WSKX1VPZ</WAPP3T3RLH7)(A@>Z;'CWMN]WI'/:X3
  611. M-L2X?NYQB=UUA!@(QW%\11)XHRRI+Z$%$T8,&;__=^\HK!4LN+>1QU=/'CPH
  612. MV&?/GO7,PT=.7'@06P?.G#G3F]&#ANR'GWT^[8_;@Y'%P3TC@P5[\O\#_LP-
  613. M"Q8\C"X+MC]CG\^,^S/QM\-X"TYM^YH^_N<9VB@)P*&;-V_F-5U]W#<N9-4C
  614. MY)Z,M;U@HBB>AO\'YQ&(KA]Z&_\#.@437],!<_".2#5N7.^4[E'!^N=32;/#
  615. M4!V8UR=L9X$$K&%^'_!_OP_X1XXP7LG!O9+#Y.!(Z`M.?2&2<)P,&3IXTP8=
  616. M&(\C\DFXF1U\/CQS9CFW8<Q)/#AP8,$'Z^491"S2N#%A"_8][U2NV<3QOV`:
  617. M#@D1)YOO^1KT\XUZEV>80R#/L#RLMG>HD<V<MK=I!"S;OH8)?LPSQ-/R#?6V
  618. MXPC9RN,IQ#/<.WN&'SXL*"-NH#U\6%/8,TS)TW]-S>>)C_WG%=K]SHU^L7._
  619. MT]!H-FB:^;]A9_Z,81%OL8AF;T$](]ZBGE%?L2?"?,LSS+^XZ\\!\<PJ][.5
  620. M!;N?O_!ASS`9W8>]P8>]%,RI9<+$\U)\_FYW3Y/#&K+_"[9OFE]'=KYBS;XI
  621. M?IZKTQLXFGQ)L</Y6=@7H)[EB3"_3WT9\2U_0>_U#M#;MXYIQH>/G[_]^;$O
  622. MT@#Q,N3+W,[#A,>31,=352T..1S,$TRN#0[[<*C9MC";JD`/'#C`X>#@QYIE
  623. M(]1NAUWUAV?DS+///XA3=C:`1$$DY$RSS,VP1"RP6'/1+9.,&<^=,PQ;554P
  624. MA'3!$%MCP>#QXW.&$&;!TD<+5O/FD(F0B?M[AGH':\ZG!(\%@_,GOL&]6Q@)
  625. M:-(?'+&G$+L`ZBWP&#]^>(?&D""QE8]X!S-&B'?4/\H=0I@]"?[LF2I#G_FQ
  626. M$`.GY\"A,LF@@F+V<__@SWP)]M\[ZA_U3GA%?(,W\V9PW_)E<$:`8!"(+Z/^
  627. M8=Z,D%&H?XBG44\1PNQQH?X(\4;4`B7!2#\3%"H:AP\O&/+A@V"(<\QKR+W.
  628. M*&-GGQ#5ZNY'V*88S!14LH^OP"(#]J^Y-2*^`W'"X7S8U/!_F94Z>T9UFCQM
  629. M0:-(K2W!^\400!`=!NNA_1\`)1\$BI>-\"FO*+B=SZ\Z'Z_1=[MW[W[G@4,D
  630. M701IHFP_/,GC[AYJPH-YP1&02+`^W.?"/('&$(WZ,C'(*&8A!/),0.(;)@WH
  631. MV$"1.K/^\^$0HD0)VR,AT`3'PH)Y1B6C'UR,@CE[MCS`Q'&I41H98QF*K:N1
  632. M]1ZX!4;]>"+<#P`+4$L!`@L`"@````8```"A#`[B8]CE!@```!````H`````
  633. M```````@`````````%-#4DE05"Y&3E102P$""P`*````!@``D#04'4Y'N9T&
  634. M````$```"P```````````"`````-!P``04Y425%512Y&3E102P$""P`*````
  635. M!@"J@OH8>0#MG'01```@&```#````````````"````#3#0``4T-23D9/3E0N
  636. M15A%4$L!`@L`"@````8```"A#!BV7PY]!@```!````P````````````@````
  637. M<1\``$U%1$E%5D%,+D9.5%!+`0(+``H````&`!H[B0WE-.3_W@4````0```*
  638. M````````````(````!@F``!&55154D4N1DY44$L!`@L`"@````8``)`T%.1Z
  639. MCT$;!@```!````H````````````@````'BP``$9215-.3RY&3E102P$""P`*
  640. M````!@"J@OH8JO]VH,$'``"I$0``#``````````!`"````!A,@``4T-23D9/
  641. M3E0N4$%34$L!`@L`"@````8``)`T%-.([)M5!@```!````D````````````@
  642. M````3#H``%)/34%.+D9.5%!+`0(+``H````&````H0S@QQ1]'@8````0```,
  643. M````````````(````,A```!#3TU0551%4BY&3E102P4&``````D`"0```@``
  644. &$$<`````
  645. `
  646. end
  647. ---- END ------------------- CUT HERE ----------------------
  648.