home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / altsrc / articles / 11330 < prev    next >
Internet Message Format  |  1994-10-12  |  28KB

  1. Path: wupost!psuvax1!news.pop.psu.edu!news.cac.psu.edu!howland.reston.ans.net!spool.mu.edu!uwm.edu!omnifest.uwm.edu!omnifest.uwm.edu!not-for-mail
  2. From: mark@omnifest.uwm.edu (Mark Hopkins)
  3. Newsgroups: alt.sources
  4. Subject: Crazy Evaluation: optimal combinator reduction
  5. Date: 12 Oct 1994 03:08:24 -0500
  6. Organization: Omnifest
  7. Lines: 453
  8. Distribution: na
  9. Message-ID: <37g5ho$6sp@omnifest.uwm.edu>
  10. NNTP-Posting-Host: 129.89.70.58
  11.  
  12. Subject: Crazy Evaluation -- Optimal Combinator Reduction
  13.    This is the source to a combinator reduction program dating from 10/23/93.
  14. I probably did a minor upgrade on New Year's Day of '94, and I inserted the
  15. reduction algorithm actually conforming to the description below on 9/28/94.
  16. The description below related to a feature (optimal reduction) which was a
  17. totally unintended consequence that simply emerged from the original design,
  18. and I never got around to going back to filling in the loose ends until now.
  19. Following my own recommendation (the "SECD-2..." comp.lang.functional articles
  20. from 9/94, I cleaned up the algorithm by rigorously deriving it the from
  21. the specification given in com.doc.
  22.  
  23.    Since the source is so small, it's included packaged in zip-uuencoded form
  24. below.  A copy may also be found in alt.sources under the same subject header.
  25.  
  26.    The unique feature of this software is that its reduction algorithm is
  27. optimal: no expression is ever stored more than once anywhere at any time
  28. during the entire history of a session, no expression is ever reduced more
  29. than once, even infinite cycles are blocked.  No evaluation is ever done that
  30. does not need to be done.  Nothing is ever forgotten, nothing ever thrown
  31. away.  There is no garbage and therefore no garbage collection.  So I call
  32. it CRAZY EVALUATION.
  33.  
  34.    In this kind of environment, garbage collection would be have to be forced.
  35. An obvious strategy is to periodically nuke terms based on some use/aging
  36. principle.  You might think of this as a temporal caching mechanism where
  37. the underlying "locality of reference" assumption is now in time, not space.
  38. Part of the processor would likewise be devoted entirely to doing associative
  39. term lookups for the evaluator -- which I call GARBAGE RECYCLING.
  40.  
  41.    If you have a lot of memory available, I'll be interested in seeing what
  42. happens when you run the interpreter on the input:
  43.  
  44.                  S (S S) S (S (S S) S) (S (S S) S);
  45.  
  46. which may be more compactly written as
  47.  
  48.                      M = S (S S) S; M M M;
  49.  
  50. Its resolution is unknown, last I checked.
  51.  
  52.    If one allows for the dynamic creation of combinator rules, one can go
  53. even further than the algorithm presented here.  Details are given in the
  54. software documentation.
  55.  
  56. section 1 of uuencode 5.10 of file com.zip    by R.E.M.
  57.  
  58. begin 644 com.zip
  59. M4$L#!!0````(`'%P01U]]2Q$]1,``!))```)````0T]-+T-/32Y#U5QM4^O&
  60. MDOZ>JOR!_=1Q<D#"@L!)MG;+BLF5;7FA,,8'FX5;0%'"%J`]MN6K%S";PW_?
  61. MZ9X9:68L$SC)O7LOB61)T]WS],N\M33G^V@^GN:3$'Y)LTD4[SSL?_M-^6R<
  62. M/2]"XUF:)='\?N7A)$@J'DZC6WK('D_"NV@>PG#DC0Z'H\/V$/:4IP<GYS?#
  63. MD3^@I]]^\^,6',X7>09W<3(+,IB$2?083N`NB6>0/83L^70:/S$@D#[/LV#I
  64. M0)[BW:<\F&?Y#`9!@O>-;[\!`!^:4+-J[+=FU^`+^_79^;##3K6K&KNHPV5M
  65. MIW8M']>:1.NR\PX3L/6CA+3Y&$(6?`[GD"["<11,818&:9Z$*60QS%@)`Q>E
  66. ML$CB^R28P3B>+:9A%DZ?"<<\GF\GX3AGT)@@*WQD@E"9+`GQ%#R&21I,4QN"
  67. M^032_/9_PG&&@C6%2=(XGD^B+(KG*=>0_JS`AGX,X7+!`*6L$!B42;Z81N,@
  68. M"R>PL[,#K,YD1V&Y)98DG.3C['6.P@K#MM?O^Z?T(,V"+!I#-,^@=]A'.^\Y
  69. MX)^>GIP.V?6N6WKXV+NX$04?_QTE*:S_Y8^LQSB:V/`;0<-G[0>7KML/3-!]
  70. MF(T?@L2R^;/H#BQ\WH3-J_FF3577Z[PL";,\F7/V%Z4>E`]G?:R*BR\J,X1M
  71. M;Z,X+BR?8\VLV`%L'G.[2BAI92$^V.I2N#IH."G_,;B91FD&WH#+O%LD#,"=
  72. MQ02&2>)`[?+#Y!IJ#FDA%&0\K(8DL[R!`URF[<*CR2IK\P98&MR$\XF%UZ*>
  73. MG$%'G0@\8U"L5Z]+)S45S]@R,%8PGH;!^"&<4"1^F`![&"<PC691MG,U9]@5
  74. M&0Z$RRBS]@I;D9&VO.DTQJ"R\GD:W<^9K-9S%J:%E8CH`IHP"Y#2XJ4EX@N$
  75. MNFN#0%8[R3.([V`6SN+D&4%H%9>!<*'#8(I((*)*!ZH1(199ZZ\ZJ@83SN\9
  76. M]Y\.5+:8`V]X<'/L7<#N<F]W]]MOL"]F125<"KE;5KU;%J99DH\S&#[/;N,I
  77. M;/'?U7)_N8`M=G(QE%4.KCL/YGXP"UVJ``Z"],$E+M^5I/UPF3DP"B*4_^(6
  78. MC4(4(\LHN+V4:EP[T(V2-&MAQ^!`+V"7+NK+*VO'B^>A:$5#6\<1/@U+^PZ%
  79. M?879=GD)TC#!190QK:;AW&*2ZB`-S9Z-%\\6DCHPM%TI0L@GXQ?:FE"PTSAP
  80. M!:*1:&)Q`M8!UV?$?H8N*X+OL"?9W71A5*_;<`#U9L$@*CS8V%W>W<DJA;UZ
  81. M<?SY;&%6*PK9C_2$435AQ5;'2,0M6?V:_(1@=EU1QL[;^^BUHIVC/=$JLX7%
  82. M"X-9B*;138R52S#8*#@FN[1U]+]A?$?!9A>$7!@CYXY%<]-37XP+D@H!(VZG
  83. MA*>IX2C77`>%&8.OE(?:R!`C_$6\D?G":1KRL"L8"VE"4RHMGJO>X4]D*PKG
  84. M^4PXR/];'DQ[?.`[O4UZ3(]P%K&?3ISU,,QG>.8%S[,>DPJ]<!F-`VPUX@IZ
  85. M_H4V`(J61+'0;N5WE]0%7+MEHV@_R%ALBW%E$O.Q$D<XVX6GAV@:@A6EZ2(8
  86. MAU;[P9:MX"G*Q@\XYLG:4&:0AN"?=!M&LY)%F]9F483*&*5V67JZ6MHL2[FU
  87. MC'*W+"?;&<4[93':U"B]NE*0!3-1_%($1)0&T\5#0.I^^0)BI+_95)2GMM0>
  88. M8*RV\CL7D&6>SU987&@/L$G_5LZ?^.QA`-O$"OM-$(T!;VV%COT9`P)Z+QAG
  89. M80+DH:J1@?]M<6@/CNI?6?ZB-F56_ET3W6B+F0[3P-4(WH#TJV!NH65`=GR\
  90. MGQ`=&LDO",LN17J*MTME%E93?5.ALNDNKC5C@XT-*$SP)F=1L_K_<%-3N$E6
  91. M=AREM'P93V/ZO:JMJ>B?VXN%L?F<N!8NLR10*O\PKJ%YRJ%WMVBNU-G*_A4G
  92. M&M;6*$@_VQ9-.NQRHH+WO![>"\/PK\>MDQ[.@@>]OS+Q)\<MAF<4W'/9-&KV
  93. M<:8\=6"8!31=$@.ZET39LZ/,;GK1_+,#I^&=0],;%Q`#M./9;2Q7!+A**O04
  94. MH\-AIS"-0/E;.4T[#A(F\[^C-,I27LM!&$S$S(DA]18+:<16/'D6DRDY"^SW
  95. M87?Y$>=_8E`@>RP7B/FRW[]VQ:ILA&O((,_B69`QA,3-5XA\N7<XAP"7C>,\
  96. M24*F>AIF632_=\`ZZ]O#P6$?G@(&$&*DF\9C!AG/*3P]A'.!'J)4F(Y)#J;3
  97. M9YSXX%HUGU?10A*F69S@LB&&70[C/(FRD,&W^"+7NTTSC`UV>QMG#Y"GN((.
  98. MV7D6C),XE0O/(D_`@%H#!WP'^C985R338I=-L'Q[>Q\-N.,M%CMD8E&\4K!"
  99. MC:ZHI!;S!&M@.T8)U[)>9UQVB>^L7XUP\'='V'\CPL[)N8JO0$;<7)!"W>T=
  100. M#E1J;ND!DH@55>%0WD[EK(C=,+:^6S8#(L0)T6V(4Y\?MV`0I"GL-J`;S2<0
  101. M3*>TNDP?`HR8-+\M\Q@IQ8#L^@<TXP-?S&TUA93^'GM*'V=Z]TA(G8.MZU.T
  102. MV6($\E?,1S-)'%C4(FS1:F=KEC&`'YW7ZI)S,"U8]+&*9C>[C2K9>R[<)F'P
  103. M61U]B/RC3BXU0"OI#"^RUY5>V&MPQZ`+9M0R:0"!.,^D9QIP,V>RTOP6OI^[
  104. M/!-W&V<9^\D7O'%S$4WXR8&?*0="#KO9=>!FC^Z)BBID4`=%#>AW["MPI,+K
  105. MTO-*IX&*\PXFPBY*"Q"JAZ(GQ,P89-$LY*P>`V_$4I`PNG$PQZ#,GJ)QR/NP
  106. M)U9)QJ1+0(8H-0(EGEU70/L%/HK+>MTNZ7"M,W!@(%>\PCI?&;OF3(;J*Z<0
  107. M']*:4[C_L,/77]H,10]('`RR:)Z'U9.4=S0%V(>/OPOOYD.NX"M8M^&GK\/X
  108. MUB:TIR1(#6@JK9@UY3S/N`F;&JJ2M<^]TA1>07/T39U^::(]"EG6BJP7Y79=
  109. M2]8YUC3K=ZB&A8-5\(,5\!IV>YT=5KNE)@]P8S;-_ZBD7G>*:'`!YY]E.S+L
  110. M4]TCRWJ,8-,GO#<?<LSVR^9FQM?:#IO(2TA[JTS&V+ZN@_\]%Z_TO3\UH#T-
  111. M@Z3H>68,D3[DJ1W)U_8>:YO6U[=[GF51??&G-]_J$7!E0/OZ$9#6'3A=.0X^
  112. MA\/GF54F?(S4'TUP'#@8*+E(GM'ZSLB6L6><!A-T^+K!IH4FU,N4EYK%0[?*
  113. M&3WF[=@#[F`J.1A4).UH;<;+1']?U"_Q^32O6RY6\W3R+4,Y6,@4&7M":QT^
  114. M8+$[6B"QN^V]@H4OI<2;GNU]7#$A?KJAY579H-F3T_"N$"93?50/=41B[5;*
  115. MYMF_TAB.<HT%6K;.=Q7W(>YH'F1Q8I79:T=9OSGEBL](L]';*Z_E]Q3DZ.OW
  116. M&5`LE/FHJPW$?HE<,;``I1B9KT;_-#N32O6Z8FU<&J^WH+=83)^M<GV*5[BZ
  117. M^/UFP%<LV$M\^0)\05*1HA<92206ZGRG]Q]2E%2V24!0)G_*M=Y''KTQBQ53
  118. MR:LF`46U"&M]M4HIJY94$*J\4JU8>I6\:K74]#DB\D==T.&-_>//?[#]2XL?
  119. MJ.,W/=S8*#R@%:J>%(,@":_N&*F.@=ZQO;]C45:S^.-J!8KU5KG4CKNR_]=B
  120. MKVA4!/=W.S&<7$AU%6)%DJ,42VY>S.]^@=U?F;B&]G!;3AK$,"H8)::B/>^6
  121. M*!0-9+'2BK2'ZV5H?86&@#^VU>[#+7C$D[(+>7?G33.+/]IW?\^PEM^$?/M-
  122. MD2\X3!TX8D>''2-VG+/CC!TM=K39,61'EQW]E(GZ/IQ/HCO9D]T=%MD(P,\V
  123. M((?M?7:B3))1'Z;&4NPE^RE]0B`E*5"-H.7(J9XCK9XC5L7CJS4=K:F)1@BC
  124. MT>CF6H^AHV'H2%US.8'$TMRMA--9`R<WX)1M5,#A0T7N0&XK2$8:DI&TQJ.!
  125. MQ8'':CBC-7`>*^`XK]CLC?`?#?CG&OSSTIF/[+\W*7#^CU6@\,*CC8>BRIFF
  126. MREGI"8M=V6]3YNP?[@U%'U69EJ9,BY1YXIZQV-6*.@X\56O46J/1TSLU^CM9
  127. M('=*4SQI%FAK%FBK%GA:C<VU^K?_N?4OK/!DAO-0TW^HZ_^^&!C^"]E@331T
  128. M-6MT56L\OM,:W7\1:SQ66D.\@?`?@VF.T]`U;R!PW?*I6O\^3C$/\72$IPZ>
  129. M1G@ZQ],9GEIX:N-IB*>N3+PIUBK?2CCP"7/_98IF-2NCK";4R;A,7[6?Q]-H
  130. MC"GK+$QFC3)-1J]8V$V1FL./%5U%@ODRU\SJB#GBER^($7/I&QOTO)PZ8UDQ
  131. M;T6$.L1^.8GC?V)EQ9<)(IG(U?NE*DFG)+%\=;VD9N6*.:BZYNVOTA43WKZ\
  132. M5FG4Y!OE/<4,6JF:1Z>6>*2),?JO4&.;WN,@(0\^<['E:.E36F&5YM=RF,6Z
  133. M4[/Q:OY,)5\MU5,6_'/IU>RI,ML7WK5H84;Q7WQGK?/H(29B$9K[1OQQR151
  134. MJ+0&39=ZG:.D;RU^7OG60@E\T8KQ94YP&R=9.&E`%N-'U?-GIG6X2-=_>J'Z
  135. MNZ_YN(RH3VI$R3#DSNV;3E-MKHJ`.L7#BA@5B_`@;U7?E9G38N%HF."3R/"L
  136. M[2M?>46IKAP-L::\LH<MY;W.H2$HTJ5JK`S6A\-J5RO]3*YLX$?$UB$[.W!$
  137. MYPZ=1W0^I_,9G5MT;M-Y2.<N.]OXT;'$UD^=-RX6B4,-UR+WM3QT8'G$C@X[
  138. M1NPX9\<9.UKL:+-CR(ZN*T:<PWF48:I8_61O>2AR>B()63NL.7#'Q.[9+A-M
  139. M%!YA(:OOHXCC9<<@Z"!!1W"/C,(1%HX4[G.#X!P)SHF`J6$4GF'AF<+=,@A:
  140. M2,`4_PFYVT9A&PO;5,BYAP;!$`F&@KMK%':QL"NXR\RC_`I$Y!9%"OY"3GB#
  141. MZ3B?8AN\]#&3<+7<\=4I#@[S#G@.M)2LVA][5\)JO5QB78<.7'IX<02>K+/H
  142. M&'A^1/(W93I;?5>"J>$FT^17>I/Q1][&8F4B<_F&5SGO>+\B7I/^F6\BO8J^
  143. MA#1PH<4'6+Q>$2SLZ8F/[ND5V>62_-"!K1\58JLE/\Q?=AJ"KH5T(U:!0LGI
  144. M!HR.C^#8MENVY+A%CC.X9+^:=*$$YS@3'%#UQ[&:JDKH'D'W-.$E<D_`\%HB
  145. MOA3D)6Y?4A'8%GB5:-7Y,O99GJWH&1",<W91<BHP.-,Y,DD&0M0F!@G*M*1@
  146. M:YMU$<PALE8`U5B'DE4-A#5OZ8R)G/)B`=^BBLC!P991$=$2AV9V<SFXQMLC
  147. M["3P.LX>PN0I2D/9F#WZH*F4@"%UV%`?*=%SQ*3:#2U^W_%^EOHR[4TODY(J
  148. MO<J:SDC-Q+[Y)6ZASS^ZNU#@ZKG[-[R,51:`KO%)J/C8LW4R<F#@G3K0\CH,
  149. MYZ<S!WH^>];SCND34'B!-M,//]Z46TL\VMIV^1\8F;]1Q,`/3=O=N;*6TOBU
  150. M'[S6#SL;&QLUAY),)Z,&(=O>IQ'FAX*NW;;;)1T#TB`"1D<;#(D6-QE*^DZG
  151. MY2MRO4Y!CS^TT9#SN/Q*X7-+/J9FP2?W)U:R-?&O8.OYHRHVR51J-<6_DLT[
  152. M+K42^R-K.R;/7\1?#9#'&PPTS4K:%_I"5?@$MH99,$;/%SN4Z($#6SU9PO<F
  153. MR3OQ/6TWP=TDOQ53@V(ST@ML=25M\>Y@>.'`$$\^GKIXZ@TO-(ICI#A&BF.D
  154. M.$:*8SG!\QG8Q)*81\']JSOZM-UZC-C8:(%/C)T6&%]*RQGB7K/A,9[X)5W[
  155. M=.W3=9>NNW3=H^L>76L#+YF!=Q-#Y=I7KKO*=:^X+H3HS9*@4HAST!B\%108
  156. MG,8""-78)SWL$HJR]4XZO=@Y1/=;%BI>;\)_VMJ8P$LOF=!Z'=OP8W`3)/=D
  157. M;;$5Z34%L!$8\+H<7A?A=2O@=0UX70&O6PF/EUXRH=<[%Z_#,ZA]\JG"77PX
  158. M8M(RQ:E4%X\O85]5W3LV5>]QU7NH>J]"]9ZA>D^HWJM4G9=>]K[.,]AGF"MG
  159. M#L]'>'X%/-^`YPMX?B4\7GKI5\!;9[H7V:*UO;04TSRD,:(K`MJ(9Q'..B@1
  160. MQ@(,WZ#P(GL<S&J\M<-Y>\]REX0"G.V(&^W.U^ZZVAUW[JL>?%OG@+W:]K8Y
  161. MZ!>-$SLW+#9;@M$X_&H!.%;UULKGP])*<8677\J/WD<G`^!&N]S>9E67'[O/
  162. M@FBNK?J-X<@!?\^%8E>?*W9>\&R!L"1^983[_?#6OQ`M@)IFD82E*]H*)Z>Z
  163. MXBV[NK$>[VF8:IV,4-9PY)T*W\OXZ)G1@9OS&G)SCD^;<S;MS9V:[2JPX#[.
  164. M8B!QNC$)D?`W[L1KO(6IQZLDI`/O]&TUX48^-8Q5F^G=&4Z4<1L2S9,UO:ZN
  165. MN&)*'5JB4&2ON:U)`@=)$TG\^L]YK5K&A":P*VC6FN]95^I"?G7W>C5\RR3I
  166. M1_AHRGNQUHZ:CMB&Y'>-%P9"O]\QFBI5I"(4!I6;TU(>[-$<-E/:&^:[X).1
  167. M51X>DUY'0_B*;2;A79!/LT9U;>1"GJHW8./KL'Y'#W@QTQ^=#*XO>]=F]&_^
  168. ML*EIAUVN:#SZ(,073LK3JG\20?XS"%9*V4C1./57,JM)UN)=E>F-BX'NC<V-
  169. MS0;@6.$*DWH#'+9>:32T499SF*&QXNM-3S>%;#F+<(S_[L>;/*V">X>_>?VM
  170. MS37]T%L5:&^N1(P408[E?<T:9MROK%3Q^PR=*G,5];J::6BR((9Z2CZ@<;C@
  171. MLWD+/X.C9+YXX/\M-^KR-7"RC%@;(FC)VFMMZZX1P*I:B7__T]FZ^-=<R[\:
  172. MXQTD+K?+.?FU`V8P5X'"3>!4(V-?;^=I0>4=BX9?)H<=9;YYO5[&7Z0,;S"0
  173. M,OBGK<5T\%II26J'PO[_M_\#4$L#!!0````(`)EK01UETDBX&````$$````'
  174. M````0T]-+TE.-Z7!00T````!P+]-`2\]/.4/)81=?0BA`5!+`P0*``````!P
  175. MI%<;LV!O[PX````.````!P```$-/32])3C%7($D@*$L@=2!V*0T*&E!+`P04
  176. M````"`!R&20<AY)KWD8```!<````!P```$-/32])3C7+,U"P5?!6\+16R#,$
  177. MLMP4\@R`3",(TQ#(-(8PC:QYN4J`S)A2/8U2!0TG$'+3!"$-;Q#RU-142%1(
  178. M4DC6!"O,,^;ED@(`4$L#!`H``````!E=01V:^"`@&````!@````'````0T]-
  179. M+TE.,$T@/2!3("A3(%,I(%,[#0I-($T@>`T*&E!+`P04````"`!]I%<;,^Q,
  180. MQ"4````N````!P```$-/32])3C)S,U2P58A)4ZA0J%2HTE,`,32`;$T%#2!?
  181. MTYJ7"Z@`*LO+)04`4$L#!!0````(`)%K01UZ]=SZ7!P``+Q2```+````0T]-
  182. M+T-/32Y$3T.E/&MS&S>2WUG%/W"?^OS%,YL15X_DMJ+(WI)E^:RR8SN6?-D]
  183. MQ^<"9T`2Y^&`&<R(I'_]H;L!S)-RLN=*)'$&W6@TNAO]`F'P+]5K.#J"2W@N
  184. MUQH6NH0KO9ZK0E3VS_<RJ]-*Z6(ZF4ZBXQANBJK4X9D%OULI`_8_`8M22L@\
  185. M$@&OQ7J>";@2>5KGM8%*MS&GNKB7)?XEBFPZ29LWI9\31+[4I:I6ZQG`386S
  186. ME#*7PL@,D54K"9MZGJL4,KT6JF`*]&(Z$<7>#C55J0B1L?#_U#6LQ1YJ(T%5
  187. M3*(=M:G+C;:/A(&]'6$L@H6J9K3<DQ@)7EOZ(%>%=,N5R+'P$%86$BE9Z#S7
  188. M6U4L$?5:5.>(`@[]0Z9?J&)35_!4UY7]C<,M\M*28O\OM)_EB&;1&UH'V$56
  189. MR/![61K[`/F"2"P)^XW,(%.E3*M\/YTL2CL#TO5%[N=:E!F8E:[S#*0EW&(1
  190. M=JEK=93J7!<):#NRW"HCB0E;E>=02.+R=")WFURERF*E20BI17*D%T<+E2,W
  191. M4"1RB-P?1_\-NH#G;V\3W%FH32URI,B_?HZO/[RY^4=,FRCM7+23I5Z68HT$
  192. M/"XE9+J0O`NG,:_1\968>BO6&SLU,S`5!<QQ`VI>&NV&I0RY=6P_E;I>KNS?
  193. M?YL!7(MTY<!09J<3HXJEQ60764J#++4`HL)%&64J`WK1VUU5R;49;*Z3%2?"
  194. MYAQN$GB5P/,$[A+X-8$/"3Q+X"J!VP1>]$!Q@9DL*K50$D'O1:G$'.E'_IG]
  195. M>JY1QI&D2A2!IJ%T=440B>R/B(0E$U0S&T2YK"I9@B[A<^(PR`SF>_@J2XV/
  196. MU[H<F0O_,:@AV,?T*U-+59EX9.)Y#+_4NK*H6[,G((LTUZC/JH!,UW;5\#L.
  197. MLX0]BF<]1IW%\*(NG&G8H%0*K]TWO.U5*3*%ST3NQ"499Y4W-XAJ`3L4AMJ9
  198. M%4N>)8!WW<^VB'9]:O#?98L($,;H5`D$9=N4RX6=7LZ6,YIB#T\@LG_$L.\O
  199. M[/O8&TLQ-W8-;+1&]L_^^VUW`KM3F,UFL"M@1FCQ6?2;?6I_G-$K^T<QV\?T
  200. M=PQCM*,ARS2I@2[R/10RE<:(<H_DEW*M[R58FM2R5M6^92&&F-@VB;R_JA]B
  201. MN#1&+8NU+*H#JX&=)5^>_`3RU#V0O]?J7N06!`FQZYC)T]@.Z6/_CQC^L]3U
  202. M!L7]Z`@VHK0@*VFD(3,_EV%#6P9LB1!#0DP];PR`F3E3[.S$5AC$CLAJM!8@
  203. M8*66*XM-+A86+U*Z0D.-@_#]6E8KG:$RE=/)=J72%=Q`JE6!Y*"0RG(-O]2B
  204. MJ.HUO'-`JH"3'W\\15%^?"]AHPWJBB@KE:(ET&SW\63+\!`4%:UMHU(Z5U.]
  205. MWLPL;EWN(7J$M%__7@NG")>;3:E%NGH$)\=_/?OKCV<)'[E&WLO2OF]/4DID
  206. M`RJHI2D7Q;(62_MFCL?ILLY%V;*4!C)!X_"LF4Y^_.N/W[/))UEIT,ZE49DT
  207. M,;\D4O&'RLG^6)H<17!J,<1L],]B>$O'8MOJD_'.!XKB;7XPZ\ZU(*M2:8NZ
  208. M)50=3Z-9RXP5HBXR6>9[VF7O>R#&MU'Q/Z=V`2CJ:Y$3$KL`MA_N_,$3"QG%
  209. MJV<AH`/;`D.NEU#$8*$E3S6=V)GKG/@W2A%.FRFSR<7>+D3[8ZTT%?L=O.CI
  210. M!/ES0+?@.F"C`^MMT3O+$!$:8>2K.^C&_#`#&UGB/,A1,YVH/*^1^\SA$>_G
  211. ML._S7F9R!T^>PA5Z`R*MZK77MH5"8:VVFLEB+\2L])8]CH8Q#>/(R9'W(F=9
  212. MGTXB'/H&)2:'%_:7DSE3V?>F0F5QC"SJ]1Q/O85])S<&*O%%%DF+J=]83FN.
  213. M%I?[HPCW.9Q!=`/'";S"'\_A)($[_/$K?OR`/Y[AQRO\ZQ9_O(#CV'.E(;1Q
  214. MBULDHY3DBFQ%^^P6])!\%?65WI73"6USL[\SMZKKED*CZ[DI58'X--H^5:V(
  215. M7T:L[8]]48D=NLHB3>6&)RU9[RRVVY4HR929QHQX<HPLE23/131'@IU*IC)#
  216. MF,H+`/F;C5*^()T@;R_IR<%!&=M!9/^[I9,VAFC?_DA\)<F:=U<JACZ=__?Y
  217. M&)Y`0/&3_=,^L6@_-[OD738HQ-HN\_-Q`I]/[/^G"9W`R%;D1WG/_&!K5<G2
  218. MK@6=+^0BFW<7CB1@-,<C[+2+>ZW\\6.!URBH]G7#^^D$G8BKEE7ZF0P0K>@Y
  219. M>C2>RZP]I.ZE*$S.)CQ$:PU_$[!DD`"P"SJ=5+A$<F'M&B[DT]N>ZI<U.:V;
  220. M3;X?,O-B9\<_@=MH%W/PE><=1]2=#=Z#[D,O@.$O%O87XAJ@#XX$CY,G3^'V
  221. MXPXNCNCOVT_)<'>W%&^Y4?(32BX).ZT7:+EP"VN=(8T9"CXO]H`S$Q#A&BTU
  222. MWQBTCXD?]I=:P!XG+W2%1Q6:00V[OM-V$<G8K6VX_(Y;.-OS.'SXFWOZ&S\>
  223. MPLTD#_ZX^T1X2:*-]+N)`2FZN=*%C7-=57I]5&]@+8I"EN[D[/`,,P*%JA0'
  224. M?D96WB7F#:_VP;-.G+N=`8>^!FZ\74*L[5-^4VKT4!-`0A,ZYT59*J^_::I+
  225. M-B6Z*Y;3":W$T=EV7P0)W=Q[_.VSMP!VW`H-.]!I6F.P0N$LNV#W0R#30(D*
  226. M,$U1`;H$'MZOJ_7/K@3%]F;DN;#/7V&`.G@3[8#$Z_G8.\'O#L#-\=T=S,?>
  227. MU@SY*WZHQ\'O<<`'_'`_/C<->`;BX)":2;BB20[105AN>0@C^H9(5GISE.EM
  228. MX242`:[YT#B'EU)D&'G]MIO!#E[%/\$[H4I^`GOX.ON*L9E]3`,C>KF&(N[M
  229. M%BJ*!7]Z8R&13#0X^"EVGQ$U,?=5`+SX5Z?&23R./P@!-_"1GET<(0V?AM0W
  230. MX$][8\-D81,^[C]]_/H)+O[<\(B)&WT/T178,3B$3N4GK>?1G7_8!P3_$J6*
  231. MA*;]\:[A]+_(I8;-WQKYD5[9#S1Q`VC?043/@M!@W'N#LK=V8=1-)4O1RI=*
  232. M>-%VL^V?E*JB('*/?W2"L'>E6JM*W4MX+]&,V+^F$V\^T:J]+60[&P+1O*[P
  233. M@"XTK*4H^$BC$%\7,F;;#*I%X'0BFDR'\L3.T&]84-KS@)]58#X8K=3`?H4!
  234. M-7P')SCH!7Z($ZCAZ1,X=AI=]",.(W^O99%*._A+3$D3<M7(\Z6TRN)_OG`F
  235. MAF:\PB1=)LN>&V+VII('8Q##5`]LCWL9*!;X@3;TIC)@=%ZW@SUG]ET`),LU
  236. M^;:X1ICOSPG4XJ#/`N8)YL;48CK92O1[]);?V`5A1B]S_E]P]NL$[$"<*:,=
  237. M``.J,C)?6,28[:DME19K[+,+RO2R)L9K"`X;Y1;S:)Q%%7,H'7\7&$1KK!R/
  238. M:#>WF`V_E[WM"*2E<M3']M.%!RA2T2NX(=:-D%%%-/\\@)`,'AQ\RKLYA\B^
  239. M9UD\-/2,AT;(7/K),![(/<='#Z3V!_\0^$5#P9\%C0@Z'B7Y0=!G#CCPD?6Y
  240. MD]D<CWJV7K-I&\;>!REPD]@G'%N]X=RIJ.RC$S=S>X/8B]KBKOAW;C_807,!
  241. M^%(6E)L*>N>\.I9;$'-,3PYT<3R(JU@9MTX9D1/3R:U".Q,6,D#5*%2^/Q0<
  242. M=M@0/4-.,R=P,-68*%AP['`:@O4GK_VM5+-7?1I\:#:<J0:<RLT6`VX1[5*,
  243. M2ECWXZ:P^KH#%8`:AO@Z7CNY$T)52L0I#/Y4\0-O89.%X?I5@K]_\,FMPVD+
  244. M.\7),7P'/UB*3G]@MM26P+,8T[@\'84..(Q`J'2$U1B:K(61\I+?P]5CD\`9
  245. MO,)?IW#SV'GJ`DLO^`?BM+.-XCJKX<5C#CY/:WCVF+UT3"Z'RF<[DK[KQKMA
  246. M"#NF+N_L?=-^(-(N.ABTW;+`#"P.VG.,<"B/Y_[=P`Z.GL+NH5&OJ-+PK5&_
  247. MAE'VU_ZAD7=^Y/YAC`#/'74/C_O0X(O023L\]AF-_,HX(_O7`V.OVF._/K2B
  248. MV^[(;^!]T1Z]]Z,YY]/>39]6Q)(/Q2>IR'.9P?OKY]?_\`)9K;#0[$:6:KFJ
  249. MII.KMV_NWE]>W7WX^;&/4#ESS-4++,YPRAGF,A6N=CTH.4\G"RFJNI2=Q`3:
  250. MWS>Z):6JG<BMMBJ5J'(H@^U4`YIF"]:IB9"+@;)J*ET^"'P6TR(X_!VQ`@93
  251. MX0K9L\<BAU'S/.>2=ZCXOL$LR+TL(-VG6/ALP7(B;2/1.LU<[X'C5TJ),K+A
  252. ME2PR5[QFVP3O7?'BIEB@=9$^V\6>&P61[D4O,9P`>M.<FW,U=Y\I;R?PR$W]
  253. MW]K@WN25RULJJM>F?SQQV6CG<XCLCR99N5<R9T,V6,D?PDLE0<38_MG*LYB-
  254. M3-5"I9Z9RL"<VBQ\0T$H0`1C1JZI<K8,'=B"4^*Z1!\S[-G@*!.EJO:<(%.\
  255. MAGT2ZM><%FP*X#U3PK!7"'N9=%?H85LI1+BB?#/"P&4OF<:8%C!"AUKXM^UW
  256. M!UG[!(Y.VK1TP8].'@`,XXXP_R]S0['6S^)+WX5N\7KH&MRYD&XE17;D-@%U
  257. MG&A9^*7>Q?`4`Z\AJ,#-DKL>=5W0)P=`.W7X<=`+#O<NN>SIB6W1F2#+T([L
  258. MT>;0*+VP`R-5I'E-*;T[%_^XZ'4ZZ:_5QSB7Q9YJ;.QR"2CDEN?%;A:JE,XE
  259. MK$4F$Y"*ZG1S:>$E]2[4)6<+O>@F:&M)_;CLAC4^U/8U57(MT?:UR$M+RA[D
  260. M#KM%L'J[P"PNJ7Q!3J`O-J0E62TZ">QJG%SZMY@C%163[8J$M^P^\#AJ:N*E
  261. M>`18U*I=-@PK91+3C:D$'U#:A^U4:G,,N$2J=U<XQ@S.7B-U6(I[*$[XB'F0
  262. M7DV!9N$MJW1[E_O`%W=/OP'<WV/RF$K9\9&8A#O<C!')ZNC\Q_<X]./5)QS\
  263. MOBWXR+`K8FD:BI)=T#OX0,!(](=//-N'H0*,PE@*/]J_O':W./`2.?`2L;T\
  264. MH,(=*B[>X_B+JZ=_?@$7EA@"I@4\/;B`&6MJRV7W"9EVOH@[T/R1P:I/<BSR
  265. MK=@;WSOE9#:@T`MXA'T+I<@?N5B`ZK=^%5BI;RV`5O4(Z_CH+3R:3CH@;;-C
  266. M`3'/KA>L%FQ#G"YBBQ]K3:X=Y2T-;ZW/8"N2KO%,]_X-*S'KY*;4]]*ETM!3
  267. M+]V2<(7.3<%I?#'$HY5%1D`E*O1;WT)#%J\:C$/#YJQ2VXQ'J,PH1HT?%*.]
  268. M&MA[&GCQ\FEK@78DK4&X)CO'?\?^W&)P%1/%;BOR'DV!2+]`750JYV@<P4P%
  269. M?C,(G,N\(EV1)W;)3A)LM"K8^HV-9O332;WQ,:3?"-QW5=1-IPOO6L0)KG7-
  270. MYK=WWN"0.)E.Q`)]L%`=;9<X.X;//?"G#/EK<J>HCEUJIS)W5(BB8APL:U&*
  271. MHI+A/!F1')+\T%3I9`'+[1%N4-Q19]_%ZAQ?Z;I0O9/1]CXSBE'3BEW4Z82/
  272. M+DZ+6(+9+S4K7:)SY@XQXAL7F_H>ZF/TD]?8'H3T3B?D)Z]$;=B1OC2P$"6(
  273. M`9QKITEE6>"D86<>FT[?A3N+L(NNR&2J,HG^FS]^6GDG4>_L_`K;S+)](=8J
  274. M/7S$(%*)+H3+"[AYVPD%.V#0VG9\SF<!%E-94YE%(6*761_DQ(%T!HV?05W`
  275. MTT.`#\"<G7,WA3#D]>VPDX+E"\U7)UHSM=EP+$/*..)*#@1\Q!)2)Q$'5UW@
  276. M[\]!%"+72\W=V6>!'"K[EQ)M/"643Q-B9Z\)+U?%%[<_J)G-UN*+)#@6#Y3-
  277. MPQ8_Q6TC\V"HG-M=UT98<M`H;469N3/@[B"N)Q;7"*MX2WC`R7D@WM7\VX84
  278. MW<^1CLD.AN,!AH$]1C24^3_N(FO0/"38M1F7;`S^<2_F4A9!XO:R&HP^\:,[
  279. M(^F4)?.'_?+.ZO0<Z5_IR&B<YY:(<_(@\3U]/E>GOE(3B?/Y7<]M2R"H:=JY
  280. MJD8W4'WI&-?_?O3A&?\$^:L6W9T]$&\=#T8>]Z9S[W9#+!X*/A!<VWUBW^6!
  281. M&.]X,"V$6#GZ,!99M:%/@M_XJR^7]8RSM\+4PX.[E33U/K^!S'E*/TTGH:&]
  282. M7*.`?)@!/&L='RP:)FPT>0VJ^.*UCL[M#TT/554*S(MP0-3T$!\=N58(=Y<`
  283. M<T>JN-?Y/3L9U"?+DXIB.G%=?W86:E+#8]'-Y+,\LC"8WV)#:1=FE^<C*EXB
  284. MML/!HL;#363WHJC$DBPA7?(H5;>?D7HU.:6ARK;+^#/2I-8;76*K?;Y/*(8C
  285. MH?44./=6%BF>*M56AHUQ0NU3@HN.X%#++4NN_>B/QM>R<BM]UZX&N'.+7FQ*
  286. M>:_(0CNM[=A&;*]A3X1=JMPB_&4,%6F3:^CZA41+EW!J1^()0X$ONO$K2?[G
  287. MT)9U?=+.*<66(6069ZW:;A-,7AWEZHML==7RZ6!ZEKZ5_"1S\/[Z^8>KZ^@Z
  288. M=A:]L1P0_9+`NP2NJ9(2G2:HXM>!L8`EK*M_7KV^N?(NE,O.1&Q7KNG0:7*_
  289. MF+C#\D9&WB5YDJ*":];REHL?\&-V]>W[GR]?PPO[ZS;@9Q>^.8&0V:<0,?N.
  290. MPE))(KR$7+>R,[IT^Q.U=J$/=WT@8FS9M.A$Q'RDLC^/C'Y]>7?]WE+L:B'>
  291. MT,K*-;12/^L3N/XIO-NN\([/.^]0'8=^6AF]B^'"+JUSUD:\(T\@(E%_%R?P
  292. MKI-?3W,I2CKB_3:X%EU9L5WG_6S(^:D-C:,:E@4_*VJ&M_MVHI/Y@`/_=?W^
  293. M[N;*L2",1+%X!T^>P'%,L1+:A_-V+$%MMDS=DQ9QS:$;[D=TV.$Z%P*_YGMT
  294. MI?QZ?^'(J].86,HCTK"14*<5X=2;K#%]O?,CU25Z;KKPL1W*".T$%2&$RL.'
  295. ME)HP*[ANM.8T#D)R>W?]+DCU=4AUH4LAB!O<U6`1/`XG8;-Z&G#-*VPG)AA9
  296. MIJ4I'E?HN'#/@,,8D<+?W;Q]0]/''1D-BFN1,N]86T?",]8.NE,F3<,A%(.C
  297. MAK)W3KPM<E+YZ!K%E>R)VVV4YL";L[@1GX8Y0\J^@],!=8&$:\?`%JT-H>",
  298. M\="O[Z0V#JZGM5V'LU.^G<;YK"$>[L4[E,A/0,VZ@0-^3FC1:(`;AITD+&B>
  299. M9QVE.&BO.(Y%RX*2T$W?M2PH=[AP7^PIM8HV-%VM--?59"_`-WR3R?<.M3"?
  300. MMQ7?4>TMW)".CGX.%WXZLO#.VEGG'IP!C/[F)`Z+E\@WNE*IDWSG%.18<TMS
  301. M*A/J!5Y:JE!H$_BEDY^;2S1"AAL@*$U-##X9C6*\U^YUO\ARSA4S]A-W7^=O
  302. M,;SS28UK+,`9+@S150FOH$5KCWS!$C)ITE+-$:G$SBB^@D#M;WY=SH495.",
  303. M7E1;4;H;-?M0?\\R[LO25->K<1Z\JA3R$7@+\J5:KF1Y]):J56^QQDK12.N^
  304. M,Q:+Z\W&R]86TT(8/5'_%I&%_J<C!UWM=NG))3>PS&EGO5FPQTFF&<MI+I/"
  305. M-4O,+:J,3*`HEWC7XEX5R^%5%9\";;4]T\U'^U1D7+'4?`&CR)3%B/IB9\&'
  306. M=,O'4$LA]V1W6@PSM5C(DAE.5TQ5X\)6_O)'^V)0G5/Q%Y>$^50_+Y4Y+73)
  307. MG;JN:,,[(6&3BU3Z)A_,$.7(!V8+W7'(LND$DV@%WZ!RA6_J%F=A&=0@WO#-
  308. M-VTPBFT1B.9B)].ZZO7GC5YEW80&2V9O"$NHG#)K]\:0'`BND_CT59""UC6P
  309. M-J$WQ=A9GL`E7@CNI9TC-*XNC+;ON8#8O;R)LGO3S6->NIQ`KQ_%I:]#R0KX
  310. M?EI__:'H<LG]&\+WS!30WE?G!]'1Y>Y,XR1=VN8Q78G=]XXO$@;?X^BH1@94
  311. M&IX1?V\63I;:U#P;2\"%G/P`/R5(IY-,ENK>74RZ;-7EYWS@\=`5-^AG<FP*
  312. M+AR@[>#$=XDI54%V1SBC?30,@K#`Z*<=(Y)O(33UOJJ4Q1*'L34U%5Z7]%?:
  313. MADELMZQAY9-7Q)=G*(5.C4U%[\#SEL]+3G,?SJF6-[7^%CY9N]!)(?`&Z:;$
  314. MR\VHLZJ:3K:^W8+R$9(;JK#U5$I_=8*"]*4L7)C>-.]7X@N.KC>PUJ8**8FM
  315. M+K\$$SV/X9:^OB%<^38)MK"&Z]VM:VLLA#>%ZST@URO5Y49CJASFM<JK(\QV
  316. M>41@:KRD<?C&5[C?#=_!,VK"X&L=2/M^X[I7^-LED'&M^Y,*[[TN:[K>1KD_
  317. M[G`.9+>OMT&T+555R8)+!RY"YDMV\;=HN_P[/#N'*QR%JA/JVTO-L0Y*1&C>
  318. MH!M,8UI)X??:R/Q>(A=?..$K,9G0"R1$AGJ$"^M\/X0OJ+MNMW9QS<7RS0%/
  319. M79N\6=W^&"9E$+@0^VDE;K5-DP^G&J:3P]E#*L(2!BK#7GZR?WY\]FF,J61U
  320. M72)-TE"<TPYVBBRRS.TM*^4P,VN!F$*:ZQF5B!&/CYH?V$JN2?LTW]W*WW)9
  321. M]$I\#5^)\U3=6(EB*1-8Z2WU8;E"OP7GCIR>[/D3RF`QEV^TS?>NMX2^V*)S
  322. M5M)FMER:L92ZWQ9>A_.GT7)?C0SFRW8T@',J=$N;%"'</FAZ$0ZT0F+AM*PE
  323. M=A0?'+`0N9'^8H)+1G&^CW*B3E%0@FJT[YU8K'-4(:YP3PV_Q^%AI?R(:T,!
  324. MX,WWEBR-X3DI(OPL"K6I\^`T'NI*NPM1_4T%;&@I`TG-&L;BHDMV>.T_)^]T
  325. MT2]T-EDV4KGI!._@AB[405<=A4E,2JA$YNT&.7>VMF[USKY)&Q\>_H9'N);J
  326. MC`+VYK$G_0=F]F$'JQW>=_F]QA,'=0%/+S+'HE1&FG/8XN'^1149)V`KGA;S
  327. M#20$&!OAY&$MS<0TX]\!?I5Y[AQT%E1AI)->*F$69BM+=W<9;1`^#`3A6>Z^
  328. M5V$OA;O7BFC2JN:F1XR;+&E;#MS,1I7\O1#3B4>"S3\4G8D'N8-HHZ#!+C?H
  329. M<I3H#`C6ZY'6QE!<]I%R@H<QGIM&KW6YL4M?)W3_.,7L?,,K.CA=28$\06['
  330. M'WQ)SL-?`@#P^C/6LBR>SX=-X^O/)V[,X1XZ;FU\`$7A4!1\BN,>\K2)0TT7
  331. MM-V'@B)(=TV>^,=V@[\#)QA%#K7G,C>XC@0)=5CL?#.`EWK;R!NS>EDKLZ(O
  332. MHEC/94920QA\.TNX/TZG?\4>!HJBOW__:*DK_>C?1\Y.84R]#OEJ[C3U\3<:
  333. M=/2D0N'-[6/BC^IQX?I&2RE>63W^B;YXYJ23G0WO+Z#X^_BF[.@J_7<6D.#W
  334. M\!<X'</Q#32',.$V'&ZB/W2H[$DXO&O1^^Z"YM;)0*!?HQ1WN`&X32@0_8$G
  335. MYVX]V/4^1K@'C,^9'+1R>%Y3([1R7[J&*8]U(R1@ZB5_Y0)9\*"D.,8+*TDN
  336. M?I48E97+.J6LRP/'&6=$[T[@[A3NSD('<KBH-@9$C+@[^;N%>7SNH5C93MF&
  337. MDKVBVI.`M3*4R/;Q:R3@T4KG\I'+2ELDK0AH.M%S5$7>C056E%U(BC`HX6Z3
  338. M"-<CQ\?C1^0-U28)[RBYP/K!WQ[F+A$]N._HBP]6_(`",/<BVNOXT%Y'<>_*
  339. MP;YA&!&XWE3[YAN-L&$(;Y]&L:OK<=&,TAZM;!CS<.:R%>Z[.MHGS^^U(F]G
  340. MKBHV:(M<[BAC1]D./MM<.\ATT@E'W#53XE7BOO0C&"`T+!C)R$&?.[=O)9T8
  341. MT:X`OXZMJLO"M7K0$=^]P,@E;+=%PUCH7]Z`*/Z)-V%\`S#("V+@>Z%:WL'_
  342. MTP(XJH8VP,/83W\Y]1;`\8[OC;E`$?E%D6R>0Z[U%ZQ*?>'*_9]ADB=DH,A=
  343. MND:LY4'(/P;^\(EM%W\^<G?'/_ZW_P-02P,$%`````@`%VQ!'3BZSN\=!P``
  344. M.@\```H```!#3TTO4D5!1$U%C5??D]O[G#/^!/F$RD_K<.>E\=CV.[LU5
  345. MG$0/B3W5=3I]ZJR6(+F]Y2ZS/Z0P?WT!+"G)%[O3FWN0R`7PX0/V`[0-ZO<)
  346. M/AR5S2H9[^#/\*,*!]4A_!WUI*UQ':Q6\'%,9E`6MGXX&*>2#_2^R9IMZJJN
  347. M`."Q-Q'H/_4(T>>@$9('!?IB$A83&(/O@AJ@H:@4H0U^@/M7=Z_?W&W>K.MJ
  348. M!\9%#`D;<7>Q4[;SP:1^`*535M9.Y-^U/@SLAN+Q\0:C#F8LV`YH_0G(='/W
  349. M^KN[S5_7C/2S,U".!+1*`C+H%E7*`>'&E\3KZHSA)9QZHWLXJ4@'DT^"(COC
  350. M$KJ&'!"@B+]F=,Q`KQ)$,XQT!`<,';WG9.N*@5(J'5%C&8WIW"THU\`.'!XQ
  351. M0.<3J."S$TB=YP0/2C_QM]98J8QQG'!=6>\C`H6/!"09"\Z?*-$?O*7,^.`P
  352. M@3\YRI&J,="Y4NP;!O'-_L/V^]7K]7K]35W1ZW%ME>O6;7:2+J%3(1EM,98R
  353. M;8C$6T))3Y2C=/(HI)\K$^$P$5V&OOH<*>\&@SD*VB0GQ8MTR8C:M$87,)TY
  354. MHN.,",.Z\7I][BMD2C668A$?&.PDY>:.B[Y-)T6EPAB1<I=J4'X+W/O-=V]A
  355. MM6*.F$!L/9W=@5",'+%'%1KP+<1,557LE0Y2<7^X,/"IM"LW&='Z,^5W+IV4
  356. M/=TR\%9I^L!]024RCIRGKSBY)5*.:/U(G^OJ<D>,#ZN#BL0JUR"K#N=VM6HX
  357. M-'1.69UME@!7]XKHH72B]/M5Z@IZY9K5Y<Y(-^Y>'!$RQXB&6W2FA'E:GPEO
  358. M38@)9J>2THE<I%*@O[W?[[9P0^6\=&KC';Z\+65%PM/4U6)-%I]4).@L),,T
  359. M^YX?+4)PIH\]4`FH)%?VV[HB6PK!=3J[V"[6L=P<AIE'>L"WD#N&3>\WFU?E
  360. MM3HC2V;`(A8F$L$[B,E82VP=4>)[VYQ=LW2TQN*YPNM9ZN9(=77-CO`>=5!)
  361. M]W"3U%.YI:PI6OOL4JG!VU??KMZ]_9:S4128,G)XJJMS+[.$F)@B'PBBPY31
  362. M:%"C/!JP4X<IS5\FP7NV);S#5%>#TKVAFJROY;DQY"WY(*J9E'&?R77K@WR]
  363. M=-;=L[ZK*Z*%0$0?F+=$E$4X((J@'PWSSD[:@`@GDWIPGO#'%(Q<`B;[43IW
  364. M)$99`PG3T@&3S_#S/_:/<*,.T=N<T$XPY)A>EL(H!^]_V>]6V\4^S)6XXBWV
  365. M/MMF.<!4*$=."A4%T5?<(%F3!\)T.@-<29]$,M,]<:V*?/6H1"[X\XR=KW-K
  366. M6`R)CE9$-S[,O//?_O']XV[_N-ON'^">;P'A/(D#EX<#AE+F>;Y$,`D'\SMY
  367. M.TQ7M3A[N_Y[)=[R.!++<RV32B8FH^,E_$\?__GO_>.'3W\(_Z793!7!P!,5
  368. MF_\SY&4\^YS&G#AS8G1B0N'@B72=0T"7J*`1$]^\^VMUS\[\FO$\<X7;:V67
  369. MI8+8-RE^<17@%ICG]`-W'/XFV$0[8E'Z2"D2H0,K'?ER11Z4FTZE\DD:A>M=
  370. M5TT.9;KP1$V&7A,:N31\72D#<7W[E4@"<`[%'3['*L<O>]9RG'6S9-=XC'2(
  371. M1;5L(0>4MVN`7[P,I;I:K*@\G6?!8;=E8,GSU`<>\^JD)E'24+1=/G%(PM"5
  372. M]8Y'O;4H5/)5=C!:I87\^01<#BQKW4PRQ%X)1:RJ`7,D;V1W(2-RBQ!3*:B$
  373. MW<3+`LO<'S;+>;A=:*FKLPV%9"-L'N#YDEJDAPXH&SV,GF(>K`@Z_L8[F+3/
  374. ME2M6WZ9A_59@O1]!]ZB?B"YZXD/#O'GND)$>M,:91+FSY);9T)BF+%FSX+,5
  375. M;XJPQS'A<GWO-[):[OV`BS@0&=FF6-1+5HV8QV!X\@ZXKJM']80%T1,WH''O
  376. MA%"?TSM14>-B4DYCF<J[5N:?$G$I:^[DU&`TZ("EIRBNP]-GESI3%K=BJ)6#
  377. MS@N.NFISX)XH5T&@S:-P6>()A!5!^_(^UIX72QZ-<XHR!XS3-C?8K*_DCYA0
  378. M#?&RYK\2@LW6EP,<0I?W:PFP75W-I/_U"^*9$\(I;N![K_.`+A5FELDV.Y5M
  379. M8)&/*P_&_64&01[V:A@M5WO,*5X=(FK.IY9#1??BDO26Q[?TU6<Z-JJ0N$@3
  380. MH5@60,8(3X:WBG_Y+%7*$7E5)N;YH(S<_Z!.423JI":9E-8\74:L-1HI(I5#
  381. MV!JG8+H^/9^\N[:NR/1%4XQY_PE3`=,+(SS.]=.\J>\`G:9W?&$Y(!UO/.4B
  382. MY"5?5XUA[X><1$<AY@.W*R_@8`9>!Y!SBV(\*)EDR#\6RF\6B(IGZVBH!B*3
  383. MJ9!E>)]@"!?WS4-9*%A]*="SK#X<,4Q%`F>5JRN^!7*5EB5]V0X[=!CD5YYG
  384. MN53P&DZ(3SSQC)=F1Q7L!!]U\N5BU]7]9O.F+%7R$XIG!-7Y3_\%4$L#!!0`
  385. M```(`,B*/AV@Y]RX1````%@````'````0T]-+TE.,PM(S"Q2L%5P4G!6"+%6
  386. M\$E-*P'R0A2\K16",M,S(!P-;P5/36M>KL0D(!>L(5$A"<@O`#$UP'H2DS05
  387. M-"`Z@$Q>+BD`4$L#!!0````(`+FD5QLW_L`$'P```",````'````0T]-+TE.
  388. M-///34U/5+!5"%?P5-``$IK6"LX*P0H086^%"EXN*0!02P,$%`````@`CEY!
  389. M'>MKAT0W````8P````<```!#3TTO24XV2\S)X>524%#0\%2HT%30\%:H4*@$
  390. MTBY@7@B4%PZF(>I"H6).(%JA"LARAK."X2PW*,N:ETL*`%!+`P04````"`"2
  391. M<$$=NZ4FLQX"```?#0``"````$-/32]/550PK5:Y3L0P$.U7VG]PF4A;.-Z;
  392. M%12`D!"E092IZ)&6PI_/'(Z/Q+&=A<8[GKSW9GS,>'LI[H46C1:Z%?HB8(ZN
  393. M!V$_H*LC"QSV>X?POFO7JPI0H.6##.`+CH`D@M<K`84IJ()I+%B8O&X,G=4%
  394. M)ZY'0FRW/C.3M"2]`1YJ3C9*H;3;*BNM:*XR^YNE5:Y!L6!'6PM<@(0QEU/M
  395. MABP.WV_!-&PJG+$>6$NSR2@MR,IX+;_'O2(\:<ZEYI12!][PX;7%$DH#X_QM
  396. MS+:JE(K@<3DE"?,E50'/ZE>55BVGU!BFE6/OC&*=W/D&,A+#-8%06SQUOEH1
  397. MIUCN2^C9/39Q2ZHJ_^R6CPI%TP;J8/]<5Z@_^J1FO^,3(WN+4PX`UA^SS2G?
  398. MGO4@2.+N;/HMMR2,D4O=*R<OLL2#U/X<UROWE1F:#'#Q-S<)U,R%WQ&L%^GS
  399. MB-TV2I#<Z"4SX1V-86%!QLUH"6ER`C'87FI:&U:DF6]^XRB-YQ6+AG!<A::M
  400. M[DYYXFR+"FCC2K473.9?:EY;2B;9GB;8H=T0H_!0+2&[V"E2>,&*#UJ6[3)S
  401. MG3[U)V5TO6Y2Y$J7N?\L_ZY[:\:#7-W_F?\3M]VUB:*@Q)XE=F`>$+,#%]A'
  402. MM/<DL0>)`[A.[()/#4#[([+/S#YA+I@P@)!R`LJ9*.AN``:_L*CKS]?W]4XH
  403. M0+T*N1%O.#SC\([#)PX?.#SB\(2#!O1&O`BD_P)02P,$%`````@`DW!!'5H=
  404. MIN!<````A@````@```!#3TTO3U54,0M7\%30\%8H52C35+"U4X@W4+!5`'.M
  405. M@1)`7KP!+Q>*"C"+EPM,@?BEO%RE(**X)+6@V$K!6$'#4\%0!Z@,2+@H&.@H
  406. MA("(<!`W%,1R`A'.("(81+@I&&CR<@$`4$L#!!0````(`)1P01U,7M8]RP``
  407. M`(\"```(````0T]-+T]55#*53ST+PC`4W`7_PXT)=$C<M-0ABB".*AD[V5FH
  408. M0^NO][V\?J0Q"$*Y7.[=NUYJ@PH.OD1M`W,E`:G*\5=;#44W.C4:5'OD%G)V
  409. M-'J]^L.,+DHGFQ]=1O/A`VG0S:F_3.B7:5D7F?HX+6=*4J0\#^/W?8_2U\3#
  410. MY`W)2)H[T0C<4)5V,B*YW^)?Z%"DAXU9)I=<0O.)2M/`B7:\(U1:2-N!A&C2
  411. M>:RDTT3'7[:OQ[/=P5JH,TR!"\.1X<;@L2EP9^:P+7!@=F4XP=#V!U!+`P04
  412. M````"`"4<$$=FO\:%J(````@`0``"````$-/32]/550S"U'P5M!P4G!6"%%(
  413. M5$C25+"U4X#S%+QYN6`<H+BS@@:0I<G+!66`%(#$0=+>"DF\7!`&4,1;(9&7
  414. MRQML!)"7")+1\%;PU$2W"6$06!K99(AZJ.D0#M0&N`R0AMCC"7&?)R^7)\1&
  415. MH,J"Q,PBD#V\7,4EJ07%5@J&!@H:G@J&.D!M1CH*+@H&.D"C3704PD&L4!#A
  416. M!))U!LD&@[AN"@9`%P$`4$L#!!0````(`)5P01WB*SWF9@```,0````(````
  417. M0T]-+T]55#2+-U"P50A7\+16<%8(5M``<N,--!6\%6SM%!!2P4`!J!0O%U9A
  418. MA0I4'=Y``8B40@6*'A0)D)X*7BX@*BY)+2BV4C!6T/!4,-`!JC+447`!L4)`
  419. M1#B("`413B#"&20;#"+<%$`N`@!02P,$%`````@`EG!!'0E$],R=`0``'`@`
  420. M``@```!#3TTO3U54-:5436O"0!"]"_Z'=]Q`#FH_H!5[T!(('FOI46+HO6!_
  421. M/W1F9S/972=KH+#1.//>FS>3..<5=CBBW>(`I^<$M^?35'0JN"/.*_KN*EPJ
  422. M]'!-.!RML'N#(5/0R`7ZY>)_`H:#*79.O=S6GDO-JYJ\G-1E]6:1DDH)(T<*
  423. M?[F8`%&ZK8)B%HL)L<=8/Q45JXFW\YKN%!/(C**$XTMF&>O/I-RK0[F!,)+N
  424. M%+(YY4H9)^)1,6(D(R*E-EB()`A#(;V.^E3&TFE!`WJK:N,BQ4:;H4`@-'$7
  425. M:D/%YU/06=[EW3%<=48#!3`NZ"?T+3PO"&+8-28(A<DKDE<`80O#'Z'IW&5N
  426. M,D;S,99`,MLF9$/-Q!;I%--B6X:BSBCD!V)SM"7FB/X$4+1)U<A+VB-(PP)X
  427. MWK"'@B@CLU`\@U%\F-_02IKDNGZ9:AMI[_[59L@VLZQ_[H$G_5M-L6*(:U@R
  428. M?AT,"8]JPX*(0?&*\*9:<1T73UW?/)E"ZOK[_7-]Q>8)KL6F)@\/-=ZQJG'"
  429. MNL87WWWRQQ[/-0YXK/'!/QN\$/L/4$L#!!0````(`)=P01V'J9TGG0```$$!
  430. M```(````0T]-+T]55#95CC$+@S`0A?=`_L.-"71('%OLH"*(HXICZ-#-H6"'
  431. MG+^^]V)L[?+=NR_WT(XBE7>*6O62..<F6^3Q\(QM_E[)8*VFWZN19+6JDMGV
  432. M&R-)7'UV&WK#O\EW[=GR88.C$ON-@I<D4E*1G*3'LN!'\?EH40&EPFD)SN(E
  433. M>,@B21G[ZC"U6M_/UWHE[\ATY"_4`PTP`C,P`150`P/0$MH?4$L#!!0````(
  434. M`)AP01W4'<#0.0```%8````(````0T]-+T]55#=S5H!`6SL(@Y<+2A67I!84
  435. M6RD8*FAX*ACH*'B#"!<0$0(BPD%$*(AP`A'."H8Z"L$@EIN"@28O%P!02P$"
  436. M%``4````"`!Q<$$=??4L1/43```220``"0`````````!`"``````````0T]-
  437. M+T-/32Y#4$L!`A0`%`````@`F6M!'6722+@8````00````<``````````0`@
  438. M````'!0``$-/32])3C=02P$"%``*``````!PI%<;LV!O[PX````.````!P``
  439. M```````!`"````!9%```0T]-+TE.,5!+`0(4`!0````(`'(9)!R'DFO>1@``
  440. M`%P````'``````````$`(````(P4``!#3TTO24XU4$L!`A0`"@``````&5U!
  441. M'9KX("`8````&`````<``````````0`@````]Q0``$-/32])3C!02P$"%``4
  442. M````"`!]I%<;,^Q,Q"4````N````!P`````````!`"`````T%0``0T]-+TE.
  443. M,E!+`0(4`!0````(`)%K01UZ]=SZ7!P``+Q2```+``````````$`(````'X5
  444. M``!#3TTO0T]-+D1/0U!+`0(4`!0````(`!=L01TXNL[O'0<``#H/```*````
  445. M``````$`(`````,R``!#3TTO4D5!1$U%4$L!`A0`%`````@`R(H^':#GW+A$
  446. M````6`````<``````````0`@````2#D``$-/32])3C-02P$"%``4````"`"Y
  447. MI%<;-_[`!!\````C````!P`````````!`"````"Q.0``0T]-+TE.-%!+`0(4
  448. M`!0````(`(Y>01WK:X=$-P```&,````'``````````$`(````/4Y``!#3TTO
  449. M24XV4$L!`A0`%`````@`DG!!';NE)K,>`@``'PT```@``````````0`@````
  450. M43H``$-/32]/550P4$L!`A0`%`````@`DW!!'5H=IN!<````A@````@`````
  451. M`````0`@````E3P``$-/32]/550Q4$L!`A0`%`````@`E'!!'4Q>UCW+````
  452. MCP(```@``````````0`@````%ST``$-/32]/550R4$L!`A0`%`````@`E'!!
  453. M'9K_&A:B````(`$```@``````````0`@````"#X``$-/32]/550S4$L!`A0`
  454. M%`````@`E7!!'>(K/>9F````Q`````@``````````0`@````T#X``$-/32]/
  455. M550T4$L!`A0`%`````@`EG!!'0E$],R=`0``'`@```@``````````0`@````
  456. M7#\``$-/32]/550U4$L!`A0`%`````@`EW!!'8>IG2>=````00$```@`````
  457. M`````0`@````'T$``$-/32]/550V4$L!`A0`%`````@`F'!!'=0=P-`Y````
  458. M5@````@``````````0`@````XD$``$-/32]/550W4$L%!@`````3`!,```0`
  459. '`$%"````````
  460. `
  461. end
  462. sum -r/size 64469/24838 section (from "begin" to "end")
  463. sum -r/size 13480/18007 entire input file
  464.  
  465.